Editing Models with Task Arithmetic
1. 文章总结及思考
1.1 背景
背景和动机:科研人员经常会想要在预训练之后再去编辑模型,来提高在下游任务上的性能,减少偏差或不符合期待的行为,让模型对齐人类偏好,或用新的信息更新模型。
文章主要工作:提出了一种基于任务向量的算术操作去编辑模型的新范式,主要包括三点:
- 通过任务向量取反进行遗忘
- 通过任务向量加法进行学习
- 任务类比
摘要和引言结论:用task arithmetic来编辑模型是简单、快速且有效的。从内存或计算来看,推理时间没有额外的成本,因此我们只要在模型权重上进行元素操作。此外,向量运算成本低廉,允许使用者快速尝试多个任务向量。有了task arithmetic,实践者可以重复使用或转移他们创建的模型或大量公开模型的知识,所有这些都不要求获得数据或额外训练。
任务向量推论:当任务$A,B,C,D$形成了“$A$对于$B$就像$C$对于$D$”的类比关系时,任务向量$\tau_{new}=\tau_C+(\tau_B-\tau_A)$可以提升在任务$D$上的性能,即使很少或没有那个任务的数据。即组合前三个任务可以提高在第四个任务上的性能,即使第四个任务的训练数据很少甚至没有。
1.2 文章工作
1.2.1 通过取反进行遗忘
实验推理:文章用了八个任务进行实验,对图像分类实验,实验发现,负的任务向量将ViT-L/14的平均准确率降低了45.8%但对控制任务的准确率却几乎没有影响。相比之下,使用随机向量对目标精度没有太大影响,而对梯度上升进行微调却会严重降低控制任务的性能(见文中$Tab.1$);对文本生成实验,实验发现,用取反任务向量的方式编辑是有效的,它将归类为有毒生成内容的数量从4.8%降到了0.8%,同时将控制任务的困惑度控制在预训练模型的0.5%以内。相比之下,使用梯度上升进行微调通过将控制任务的性能降低到不可接受的水平来减少有毒内容的生成,而对非有毒数据进行微调在减少任务生成和在控制任务上的表现都比任务向量差。作为实验对照,添加随机向量对毒性生成内容或在WikiText-103上的困惑度几乎没有影响(见文中$Tab.2$)。
结论:对目标任务的任务向量取反可以降低在目标任务上的准确率,但对控制任务几乎没有影响,因此可以利用对任务向量取反来减少模型的不期待的行为。
文章总结:这篇工作提出了一种基于任务向量的算术操作去编辑模型的新范式。对于各种视觉和NLP模型,添加多个专门的任务向量可以得到一个在所有目标任务上都表现良好的模型,甚至可以提高在单个任务上的性能。取反任务向量允许使用者移除不期待的模型行为,例如,有毒的生成内容,或甚至完全忘记特定任务,同时在其他任务地方保持性能。最后,task analogies利用现有数据来提高数据稀缺的领域或子群体的性能。对任务向量的算术运算只涉及添加或减去模型权重,因此计算效率很高,特别是与涉及额外微调的替代方案相比。因此,用户可以轻松地尝试各种模型编辑,从大量公开的微调模型中回收和转移知识。由于这些操作产生了相同大小的单个模型,因此它们不会产生额外的推理成本。
1.2.2 通过加法进行学习
实验推理:对于图像分类任务,从两个任务中添加任务向量可以提高两者的准确率,从而得到一个可以与使用两个专门的微调模型媲美的单个模型(见文中$Figure 2$),且添加任务向量可以为图像分类任务构建多任务模型(见文中$Figure3$);对于NLP任务,使用外部任务向量可以提高目标任务的性能(见文中$Tab.3 $),用任务类比可以提升域泛化能力(见文中$Tab.4$)。
结论:任务向量加法可以从内部模型或公开可获得的微调模型重复使用或转移知识,而不需要额外的训练或训练数据。随着可用任务向量数量的增加,可以产生更好的多任务模型。当所有任务向量都可用时,尽管将多个模型压缩为一个,通过添加任务向量得到的最佳模型的平均性能可以达到91.2%。
1.2.3 任务类比
举例,文中式子$\hat \tau_{lion\ indoors}=\tau_{lion\ outdoors}+(\tau_{dog\ indoors}-\tau_{dog\ outdoors})$:
这个式子是指每个向量都有两个特性:$\tau_{lion\ indoors}$表示这个任务向量具有狮子和室内两个特性,以此类推,$\tau_{lion\ outdoors}$表示(狮子,室外),$\tau_{dog\ indoors}$表示(狗,室内),$\tau_{dog\ outdoors}$表示(狗,室外),$\tau_{dog\ indoors}-\tau_{dog\ outdoors}$得到(狗,室内)和(狗室外)的差值,即(室内,室外)的差值,再用这个差值加上(狮子,室外)就得到了(狮子,室内),以此类比,可以得到文中其他式子(例如文章举的国王和王后的例子,实际上就是:国王=王后-女+男,就是一个向量减去它的一个特定特征剩下一个通用特征,再用这个通用特征加上别的向量的一个特定特征就得到了这个向量的通用特征和另一个向量的特定特征的组合)。
实验推理:通过类比学习子群,当目标子群的数据很少或完全没有时,组合相关子群的任务向量可以提高目标子群的准确率(见$Figure 4$);任务向量通常是接近正交的(看$Figure5$的图,横轴和纵轴交叉点的值接近0,即cos接近0,说明两个向量几乎正常,$a*b*\cos90^{\circ}\approx0$)
结论:当一个目标任务的标记数据无法获得时,我们可以使用任务类比来提高目标任务的准确率,使用具有标记数据的辅助任务和无监督学习目标。任务类比比起预训练模型对新的目标类别的准确率方面有更大的提高,即使没有相关的训练数据。
1.2.4 文章工作局限性
任务向量局限在有相同体系结构的模型,因为它们依赖于对模型权重的元素操作。此外,文章提出所有的实验中只对从相同的预训练初始化中微调的模型执行了算术运算。
2.知识点基础
2.1 目标任务和控制任务?
Target Task(目标任务) 是模型的主要目标,是我们最关心的任务。
Control Task(控制任务) 是用于评估模型性能的辅助任务,帮助我们更好地理解模型的行为和泛化能力。
2.2 怎么理解任务之间的analogy relationship?
- 结构相似性:两个任务可能在数据结构或模型结构上相似。例如,图像分类和目标检测任务都涉及图像数据,但目标检测任务需要额外的边界框信息。
- 功能相似性:两个任务可能在功能上相似。例如,情感分析和主题分类任务都涉及文本数据的分类,但分类的类别不同。
- 数据分布相似性:两个任务的数据分布可能相似。例如,两个不同的图像分类任务可能使用相同的数据集,但关注的类别不同。
2.3 OCR
OCR(Optical Character Recognition,光学字符识别)是一种将图像中的文字内容转换为可编辑文本的技术。它广泛应用于文档扫描、图像处理、数据录入等领域,能够自动识别和提取图像中的文字信息。
核心思想:
- 图像预处理:对输入的图像进行预处理,包括灰度化、二值化、去噪、边缘检测等,以提高字符识别的准确性。
- 字符分割:将图像中的文字区域分割成单个字符或单词。这一步通常涉及连通域分析、投影分析等技术。
- 特征提取:提取每个字符的特征,如轮廓、笔画、纹理等。这些特征将用于后续的字符识别。
- 字符识别:使用机器学习或深度学习模型(如卷积神经网络,CNN)对提取的特征进行分类,识别出具体的字符。
- 后处理:对识别结果进行校正和优化,包括拼写检查、上下文分析等,以提高识别的准确性和可读性。
2.4 CLIP
CLIP 是一种多模态深度学习模型,通过对比学习将图像和文本嵌入到一个共享的嵌入空间中,支持图像和文本之间的相互检索和理解。
2.5 在模型和模型之间外推什么意思?
原文第3页:
When negating a task vector τ , applying the resulting vector τnew = −τ corresponds to extrapolating between the fine-tuned model and the pre-trained model.
模型外推 是指在训练数据范围之外的输入上应用机器学习模型的过程。换句话说,它涉及使用模型对超出训练数据分布的输入进行预测。这种能力对于模型的泛化能力和适应新情况的能力至关重要。
核心概念:
- 训练数据范围:训练数据范围是指模型在训练过程中所见过的数据分布。这些数据通常用于模型的学习和优化。
- 超出训练数据范围:外推涉及对超出训练数据范围的输入进行预测。这些输入可能在数值范围、特征分布或任务类型上与训练数据有所不同。
- 泛化能力: 模型的泛化能力是指其在未见过的数据上表现良好的能力。外推能力是泛化能力的一个重要方面,特别是在面对未知或变化的环境时。
2.6 Civil Comments?
google的一个数据集,主要用途:毒性评论检测、身份提及检测、模型性能评估、偏差研究、MTL、数据集扩展。
2.7 Detoxify
Detoxify 是一个开源项目,旨在通过机器学习算法检测和消除在线交流中的有害言论,从而构建更健康的在线社区。该项目由 Unitary 团队开发,使用 PyTorch Lightning 和 Hugging Face Transformers 构建,能够预测和分类有毒评论。
核心功能
- 毒性评论检测:Detoxify 能够识别文本中的恶意、攻击性或有毒内容,并提供相应的评分。
- 多语言支持:该项目支持多种语言的有害评论分类,适用于不同语言环境。
- 预训练模型:Detoxify 提供了经过大量数据训练的预训练模型,这些模型在多个社交平台的评论数据上进行了训练。
- 简单 API 接口:该项目包含一个简单的 API 接口,使得非技术人员也能轻松地将毒性检测功能集成到自己的应用程序中。
2.8 perplexity
困惑度,是一种衡量语言模型性能的指标,用于评估模型对文本数据的预测不确定性。困惑度越低,表示模型对数据的预测越准确。
2.9 zero-shot model
Zero-Shot Model(零样本模型) 是一种机器学习模型,能够在没有直接针对特定任务进行训练的情况下,完成该任务。这种模型通过利用预训练的通用知识,直接应用于新的、未见过的任务,而无需额外的训练数据。
核心思想:
- 预训练模型:零样本模型通常基于大规模的预训练模型,这些模型在大量的无监督或弱监督数据上进行训练,学习通用的语言或视觉表示。
- 通用表示:预训练模型学习到的表示能够捕捉数据中的通用特征和模式,使其能够适应多种不同的任务。
- 任务适应:在面对新的任务时,零样本模型直接使用预训练的表示,而不需要针对该任务进行额外的训练。
zero-shot是不训练模型但是让模型去做特定任务,例如直接告诉模型写一份什么样的代码;one-shot是给模型一个例子让模型仿照例子写;few-shot是给多个例子。
2.10 T5-base model
T5-Base 是 Google Research 开发的 T5(Text-to-Text Transfer Transformer)模型的一个变体,具有约 2.2 亿个参数。T5 模型的核心思想是将所有自然语言处理(NLP)任务转化为文本到文本的格式,即输入和输出都是文本字符串。这种统一的框架使得 T5 能够灵活地应用于多种 NLP 任务,如翻译、摘要和问答等。
T5-Base 的架构 T5-Base 基于 Transformer 架构,包含编码器和解码器两部分。编码器处理输入文本,解码器生成输出文本。具体来说:
- 编码器:由多层(例如 12 层)组成,每层包括自注意力机制、前馈神经网络(FFN)和层归一化。
- 解码器:同样由多层组成,每层包括自注意力机制(带有掩码以防止未来位置的注意力)、交叉注意力机制、FFN 和层归一化。
T5-Base 的训练目标
- 预训练:T5 使用“跨度掩码”(Span Corruption)进行预训练,即随机掩码一系列标记,然后训练模型预测这些跨度。
- 微调:预训练完成后,T5 在特定任务(如翻译、摘要)上进行微调,通过在标记的数据集上训练来适应这些任务。
T5-Base 的应用场景
- 文本摘要:将长文本压缩为简短的摘要,保留关键信息。
- 语言翻译:在不同语言之间进行高质量的翻译。
- 问答系统:构建能够理解问题并生成准确答案的系统。
T5-Base 的优势
- 统一框架T5 的文本到文本框架使其能够以统一的方式处理多种 NLP 任务,无需针对每个任务进行大量修改。
- 大规模预训练:T5 在 C4 数据集(Colossal Clean Crawled Corpus)上进行预训练,这是一个非常庞大且干净的数据集,使得 T5 能够在多种任务上表现良好。
- 性能:在多个基准测试中,T5 表现出色,优于许多其他模型。
2.11 Compatible Checkpoints
原文第5页:
Then, we search for compatible checkpoints on Hugging Face Hub, finding 427 candidates in total.
Compatible Checkpoints(兼容性检查点) 是指在机器学习和深度学习中,模型训练过程中保存的中间状态,这些状态可以被其他模型或框架兼容加载和使用。这些检查点通常包含模型的权重、优化器状态、训练进度等信息,使得模型可以在不同环境中继续训练或进行推理。
2.12 $\hat \tau_{lion\ indoors}=\tau_{lion\ outdoors}+(\tau_{dog\ indoors}-\tau_{dog\ outdoors})$
这个式子是指每个向量都有两个特性:$\tau_{lion\ indoors}$表示这个任务向量具有狮子和室内两个特性,以此类推,$\tau_{lion\ outdoors}$表示(狮子,室外),$\tau_{dog\ indoors}$表示(狗,室内),$\tau_{dog\ outdoors}$表示(狗,室外),$\tau_{dog\ indoors}-\tau_{dog\ outdoors}$得到(狗,室内)和(狗室外)的差值,即(室内,室外)的差值,再用这个差值加上(狮子,室外)就得到了(狮子,室内),以此类比,可以得到文中其他式子。
