6.1引⾔
1.为什么需要Adaptation?从以下⼏个⽅⾯进⾏详细探讨:
1.格式的不同:
1.⾃然语⾔推理(NLI): 下游任务如NLI涉及两个句⼦的⽐较以产⽣单
⼀的⼆进制输出。这与语⾔模型通常⽤于⽣成下⼀个标记或填充MASK标记
的任务截然不同。例如,NLI的逻辑推理过程涉及多层次的⽐较和理解,⽽
不仅仅是根据给定的上下⽂⽣成下⼀个可能的词。
2.BERT训练与MASK标记: BERT训练过程中使⽤了MASK标记,⽽许多下游
任务可能并不使⽤这些标记。这种不同可能导致在针对具体任务时需要对
模型进⾏显著的调整。
2.主题转变:
1.特定领域的需求: 下游任务可能集中在特定的主题或领域上,例如医疗
记录分析或法律⽂档解析。这些任务可能涉及专⻔的术语和知识,与模型
的通⽤训练任务相去甚远。
2.⼴泛主题的灵活性: 语⾔模型可能需要处理各种不同的主题。如果下游
任务突然聚焦在⼀个新的或⾮常独特的领域上,这可能会超出模型的训练
范围。
3.时间转变:
1.新知识的需求: 随着时间的推移,新的信息和知识不断涌现。例如GPT-
3在拜登成为总统之前就已训练完毕,因此可能缺乏有关他总统任期的最新
信息。
2.⾮公开信息的需求: 有时下游任务可能涉及在训练期间不公开的信息。
这可能需要更多特定领域的专业知识和调整。
2.总结:”为什么需要语⾔模型的Adaptation?“,下游任务与语⾔模型的训练任务之
间 的不同之处⾮常复杂。这些差异可以从格式、主题和时间三个⽅⾯来探讨,每个⽅
⾯都可能涉及许多具体的挑战和需求。通过深⼊了解这些不同之处,我们可以更好地理
解如何有效地适配语⾔模型以满⾜各种下游任务的需求。
3.通⽤的adaptation配置
1.下⾯提供使⽤预训练语⾔模型(LM)的参数来适配(adapt)下游任务的⼀般
设置。这个过程分为相关且逐渐递进的各个部分:
1.预训练语⾔模型(Pre-trained LM):在适配阶段的开始,我们已经有
了⼀个预训练的语⾔模型,⽤参数θLM表示。这个模型被训练来理解和⽣成
语⾔,但不是特别针对任何特定任务。
2.下游任务数据集(Downstream Task Dataset):这些数据可以是⽂本
分类、情感分析等任务的特定实例,每个样本由输⼊x和⽬标输出y组成
3.适配参数(Adaptation Parameters):
4.任务损失函数(Task Loss Function):衡量模型在下游任务上的表现
5.优化问题(Optimization Problem):使得任务损失在整个下游数据集
最⼩化
6.2主流的⼏种Adaptation⽅法
1.Probing,策略是⼤规模预训练阶段就已经⼴泛使⽤的⼀种微调策略,这⼀⼩节将讨
论探测(Probing)策略的引⼊及其应⽤,同时探讨固定⻓度表示的策略。
2.Probing⽅法的引⼊,是⼀种分析和理解模型内部表示的技术。
3.Probing的适⽤性和适配,探测主要适⽤于仅编码器模型(例如,BERT),但
解码器模型也可以使⽤(Liu et al. 2021)。对于Adaptation来说,我们从
语⾔模型LM) 最后⼀层表示中训练⼀个Probing(或预测头)到输出
4.固定⻓度表示的策略
1.CLS token策略(Devlin et al. 2018):在预训练和微调期间,我们
在提示符前加上⼀个名为CLS的特殊token。我们使⽤与CLS token对应的
嵌⼊向量作为“序列级”嵌⼊。
2.平均化token策略:另⼀种常⻅⽅法是对L个token求平均。注意,由于
每个嵌⼊向量都是上下⽂相关的并且位置依赖的,这并不使模型具有置换
不变性。
5.总结:探测作为⼀种强⼤的分析⼯具,通过冻结语⾔模型表示编码器(上图中
灰⾊部分)和优化特定任务的探针(上图中预测头,蓝⾊部分)来⼯作。这些模
型可以是线性的或浅前馈预测头,提供了⼀种灵活的⽅法来理解和解释深度学习
模型的内部⼯作机制。固定⻓度表示的策略也进⼀步促进了这⼀⽬的,提供了灵
活⽽有效的解决⽅案。
2.Fine-tuning微调是在更⼤的模型家族(即,⾮常具有表现⼒)上进⾏优化的,并
且通常⽐探针有更好的性能。
1.Fine-tuning对于zero-shot能⼒,零样本学习)是⼀种机器学习范式,在训
练阶段没有⻅过的任务或类别上进⾏泛化的能⼒。零样本学习的能⼒使得模型具
更⾼的灵活性和泛化能⼒,能够在未⻅过的任务上迅速适应。
2.经过微调后对零样本性能的影响:
1.模型调整:技术如FLAN和T0微调模型以获得更好的零样本性能。它们通
过统⼀许多下游任务的prompt format(提示格式),并根据此格式微调
模型来执⾏各种各样的任务。
2.性能提升:与原始语⾔模型相⽐,未⻅任务的零样本性能得到了显著提
⾼。这表明微调可以有效地改善模型的泛化能⼒。
3.学习新技能:模型正在学习使⽤提示格式来执⾏零样本任务。这样的提
示格式有助于引导模型理解和完成全新的任务,从⽽实现了真正的零样本
学习
3.⽤于⼈类对⻬语⾔模型的Fine-tuning,的LLMs中,指令(instructions)
常常作为输⼊提示(prompt),来引导模型产⽣特定类型的输出。⼈类反馈在模
型的训练和微调中起着关键作⽤。
4.微调的过程和影响,微调可以使语⾔模型更好地与⼈类价值观和⽬标⼀致。下
⾯是InstructGPT对GPT-3模型进⾏微调的三个步骤:
1.收集⼈类书写的示范⾏为:这⼀步骤涉及收集符合⼈类期望的示例,并
对这些示例进⾏监督微调。
2.基于指令的采样与⼈类偏好:对于每个指令,从步骤1的LM中采样k个输
出。然后收集⼈类对哪个采样输出最优先的反馈。与步骤1相⽐,这些数据
更便宜。
3.使⽤强化学习⽬标微调LM:通过强化学习⽬标微调步骤1中的LM,以最⼤
化⼈类偏好奖励。
4.影响:经过这样的微调,1.3B的InstructGPT模型在85%的时间⾥被优
先于175B的GPT-3,使⽤少样本提示时为71%。在封闭领域的问答/摘要⽅
⾯,InstructGPT 21%的时间会产⽣虚构信息,相⽐GPT-3的41%有所改
善。在被提示要尊重时,InstructGPT⽐GPT-3减少了25%的有毒输出。
5.总结:
1.冻结(灰⾊):⽆需任何操作。
2.优化(蓝⾊,每个任务有所不同):语⾔模型的所有参数,外加⼀
个新的预测头。
3.微调是⼀种强⼤的⼯具,可以使预先训练的语⾔模型更好地符合⼈
类的期望和需求。通过监督学习、⼈类反馈和强化学习等⼿段,可以
显著提⾼模型在特定任务和场景下的性能。然⽽,仍需关注并解决某
些⽅⾯的挑战,如偏⻅和虚构信息的产⽣,以确保语⾔模型的安全和
可靠使⽤。虽然有⼀些挑战和限制,但微调仍然是现代机器学习中⼀
种⾮常有⼒的⼯具。
3.Lightweight Fine-tuning,轻量级微调(Lightweight Fine-Tuning)是⼀种
特殊的微调技术,旨在结合全⾯微调的表现⼒和更节省资源的优点。轻量级微调试图在
不需要为每个任务存储完整语⾔模型的同时,保持与全⾯微调相同的表现⼒。换句话
说,它希望在减⼩模型存储需求和计算负担的同时,仍然实现出⾊的性能。
1.轻量级微调的变体,包括:
1.提示调整(Prompt Tuning):通过微调模型的输⼊prompt提示来优化
模型的表现。提示调整可以被视为⼀种更灵活的微调⽅法,允许⽤户通过
调整输⼊提示来导向模型的输出,⽽不是直接修改模型参数。
2.前缀调整(Prefix Tuning):与提示调整类似,前缀调整也集中在输
⼊部分。它通过添加特定前缀来调整模型的⾏为,从⽽对特定任务进⾏定
制。
3.适配器调整(Adapter Tuning):适配器调整是通过在模型的隐藏层之
间插⼊可训练的“适配器”模块来微调模型的⼀种⽅法。这些适配器模块允
许模型在不改变原始预训练参数的情况下进⾏微调,从⽽降低了存储和计
算的需求。
2.Prompt Tuning,提示调整(Prompt Tuning)是⼀种特殊的微调技术,主要
⽤于⽂本分类任务。Prompt Tuning的灵感来源于推理为基础的⾃适应提示设
计/⼯程。与传统的微调⽅法不同,提示调整专注于优化输⼊提示,⽽不是改变模
型的内部参数。提示调整涉及不同的初始化策略:
1.随机词汇词嵌⼊(Embedding of random vocab words):选择随机
的词汇作为嵌⼊。
2.类标签词嵌⼊(Embedding of class label words):使⽤与分类标
签相关的词汇进⾏嵌⼊。
3.随机初始化(Random init):这种⽅法通常效果不佳,不推荐使⽤。
4.总的来说,Prompt Tuning是⼀种创新的轻量级微调⽅法,通过在输⼊
上添加可学习的嵌⼊,⽽不是改变整个模型的结构来实现任务特定的优
化。这不仅减少了计算和存储的需求,⽽且还允许使⽤较⼤的冻结模型来
实现与全⾯微调相当的性能。在⽂本分类等任务中,提示调整提供了⼀种
灵活和⾼效的解决⽅案。
3.Prefix Tuning,前缀调整(Prefix Tuning)是⼀种特别设计⽤于语⾔⽣成
任务的微调⽅法,已在BART和GPT-2模型上进⾏了开发。
1.Prefix Tuning通过在输⼊的开始处添加k个位置,并在每个注意⼒层连
接额外的可学习权重,作为键(keys)和值(values)来实现。这些附加
的权重允许模型在微调过程中学习特定任务的上下⽂和结构。虽然Prefix
Tuning与Prompt Tuning在某些⽅⾯有相似之处(例如,都涉及微调输
⼊),但两者之间存在重要区别。⽐如与PomptTuning不同,Prefix T
uning不仅添加可学习的输⼊,还在每个注意⼒层中添加可学习的权重。这
些权重可以更好地捕获任务特定的依赖关系和上下⽂信息。
2.前缀调整通过在注意⼒机制的键和值部分添加可学习的权重,为模型提
供了⼀种强⼤的微调⼿段。这种⽅法允许模型更好地捕捉任务特定的模
式,并与提示调整等其他技术相辅相成,提供了⼀种灵活和强⼤的任务特
定优化⼿段。
4.Adapter Tuning(适配器调整)是⼀种微调技术,通过在每个(冻结的)
Transformer层之间添加新的学习“bottleneck”层(称为适配器)来实现。
5.Lightweight Fine-tuning的其他性质
1.Lightweight Fine-tuning的表达能⼒相当复杂,因为它与特定的
预训练语⾔模型(LM)紧密相连。如果预训练LM的权重为0,则
Pormpt/Prefix Tuning将不起作⽤。
2.以上提到的Promt/Prefix/Adapter Tuning提供了⼀种实现个性化模型
的⽅法。
3.Lightweight Fine-tuning⽅法的鲁棒性得到了提升,这些⽅法倾向于
在与全⾯微调相⽐,改善分布外(out-of-distribution,OOD)的性
能,例如在不同主题或领域的⽂本上的表现。
4.Prefix Tuning有助于提⾼模型在领域外(OOD)的准确性,例如在X
SUM摘要任务中,其中模型在新闻⽂章上进⾏微调,并在体育(新闻到体
育)或在{世界,英国,商业}⽂章上进⾏训练,并在{健康,科技}⽂章上
进⾏测试(在新闻内部)。
6.总结:
1.冻结(灰⾊):整个/⼤部分语⾔模型
2.优化(蓝⾊,根据任务变化):少量额外参数(参数的<1%)
3.⽅法:提示调整、前缀调整、适配器调整,以及其他⽅法(LoRA,
BitFit等)
6.3总体总结,
1.需要将⼤型语⾔模型适配到各种不同的下游任务中,这些任务可能与语⾔建模有很⼤
不同。
2.探测法(Probing):探测法在冻结的语⾔模型之上训练⼀个特定任务的预测头,将
语⾔模型视为良好的表示提取器。冻结语⾔模型倾向于限制该⽅法的表现能⼒。
3.微调(Fine-tuning):微调将⼤型语⾔模型参数视为下游任务的进⼀步训练的初
始 化,这⽐探测更具表现⼒,但也更昂贵,因为我们必须为每个下游任务保存整个模
型。
4.轻量级微调(Lightweight fine-tuning):轻量级微调在微调和探测之间取得了
平衡,只优化少量参数(模型的<1%),但它优化了模型的⾼杠杆部分,因此仍然⾮常
具有表现⼒。
5.通过上述⽅法,可以更灵活地应对各种不同的下游任务,既实现了对特定任务的精确
适配,⼜在⼀定程度上控制了计算和存储的成本,从⽽在实际应⽤中取得更好的性能和
效率。