Task06:大模型之Adaptation

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.通过上述⽅法,可以更灵活地应对各种不同的下游任务,既实现了对特定任务的精确
适配,⼜在⼀定程度上控制了计算和存储的成本,从⽽在实际应⽤中取得更好的性能和
效率。
  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值