LIMA: Less Is More for Alignment
论文题目:Less Is More for Alignment
论文地址:[2305.11206] LIMA: Less Is More for Alignment (arxiv.org)
版本:[v1] Thu, 18 May 2023 17:45:22 UTC (1,006 KB)
Abstract
大型语言模型通常分两阶段进行训练:(1)对海量原始文本进行无监督预训练,学习通用表征;(2)指令微调和强化学习,更好地适应最终任务和对齐用户偏好。
该论文通过训练LIMA来衡量这两个阶段的相对重要性,LIMA是一个65B参数的LLaMa语言模型,在没有任何强化学习或人类偏好建模的情况下,只对1000个精心策划的prompts和responses进行了标准监督损失的微调。
LIMA表现出了非常强大的性能,只从训练数据中的少数几个例子中学习到了特定的响应格式,包括一些复杂的查询。此外,模型对训练数据中的未见过的数据也能有较好的泛化。
在一项对照研究中,LIMA给出的结果43%的情况等同于或优于GPT-4,与Bard相比这一数据为58%,与使用人类反馈训练的DaVinci003相比这一统计数据高达65%。
实验结果强烈表明,大型语言模型中的几乎所有知识都是在预训练过程中学习的,只需要有限的指令调整数据便可以教会模型产生高质量的输出。
1 Introduction
要让预训练语言模型的响应和下游任务与用户偏好一致,常常需要在大量(百万)示例数据集上的 instruction-tuning ,以及 RLHF(reinforcement learning from human feedback) 的方法,才能实现ChatGPT级别的性能。
论文证明了在一个强大的预训练模型上,只利用1000个精心设计的训练示例对其进行微调,就可以获得非常强大的能力。
论文假设在预训练期间模型学习到了几乎所有知识和能力,而对齐就是模型学习与人类交互所需的风格和格式的简单的过程。
基于这个假设,论文整理了1000个近似于真实用户提示和高质量响应的示例,并在LLaMa的基础上训练了LIMA,然后将LIMA与其他模型进行了比较。
消融实验表明,当扩大数据量而不扩大prompt多样性时,模型的性能提升有限;而优化数据质量时则会获得重大收益。
尽管没有对话示例,但LIMA可以具备一定的多轮对话能力。论文在训练集中添加30个手工制作的对话链可以显著提高这种能力。
2 Alignment Data
论文提出了 Superficial Alignment Hypothesis (表面对齐假设): 模型在预训练阶段就学到了所有的知识和能里,而对齐就是教会模型在与人类交互的时候应该选择什么样的风格和格式。
如果假设是对的,那么可以进一步推测,只需要少量的示例就足够有效地微调一个预训练模型,也就是说少量样本的微调就能达到对齐的目的。
上图展示了训练集的1000个示例以及额外收集的开发集和测试集,Paper Authors 来源见[2.2 Manually Authored Examples](#2.2 Manually Authored Examples)。
数据集的示例有以下特点:
- 它们的输入即prompt多样,但是它们的输出有着一致的风格(什么叫做统一的风格,怎么量化?)
- 这些输入模拟真实用户,回答质量较高,并且都采用一种’a helpful AI assistant’风格的口吻。
- 1000个示例中,750个来自于三个社区的论坛,剩下的250个来自于人工编写。
2.1 Community Questions & Answers
主要来自三个论坛: Stack Exchange 、wikiHow、 Pushshift Reddit Dataset
其中Stack Exchange和wikiHow的数据集基本上比较符合AI助手的风格,而Reddit的高赞答案通常比较是幽默或引战(钓鱼)的,需要手动处理。
论文从三个论坛中选择一些帖子,然后对其进行一些预处理,比如统一为第一人称的口吻(“I”,"my),过滤太长、太短的答案,一处超链接、图片以及其他HTML格式的标签,排除较为主观的文章等等。
对三个社区的具体操作见论文对应章节【2.1Community Questions & Answers】。
上图展示了不同来源的训练示例。蓝色字体的是prompt,而灰色的[…]表示response太长没法显示。
2.2 Manually Authored Examples
论文的作者也手动编写了一定量的提示,并将作者分为了两组:A组与B组,分别创建250个提示。然后从A组中选择200个提示进行训练,并选择50个提示作为保留开发集。再过滤掉有问题的提示后,B组剩余的230个提示用于测试。
其中,对于200个训练集的提示,作者编写了高质量的答案,并且在编写答案时,尽量尝试使用统一语气,这种方式对于一个AI助手是合适的。具体来说,许多提示将通过对问题的一些确认以及随后的答案本身来回答。
初步实验表明,这种一致的格式通常会提高模型性能;作者假设它有助于模型形成一个思维链,类似于"让我们一步步思考"的提示。【1】【2】
此外,作者还设定了13个具有一定程度毒性或者恶意的prompt。**作者详细地编写了这部分的回答,这些回答部分或者完全拒绝了这样的命令,并且解释了为什么助手不应该遵循规则回答问题。**测试集中也有类似问题的提示。
可以看到,论文创建的数据中不仅有正向prompt的数据,而且还包含了一部分模型不应该听从的负向的prompt。
作者还从Super-Natural Instructions 数据集中抽取了50个训练示例(加上之前的200个作者人工编写的示例,总共有250个人工编写的示例)。作者为50种不同的自然语言生成任务各选择了一个训练示例。
Super-Natural Instructions 【3】是1616个不同的NLP任务以及专家编写的指令的基准,它涵盖了76种不同的任务类型。
作者认为,尽管潜在用户提示的分布与Super-Natural Instructions中的任务分布有所不同,但是他们的直觉是,这个小样本可以增加训练示例的多样性,并且可能增加模型的鲁棒性。
此外,作者提到,人工创建多样的提示并以统一的风格编写丰富的响应是很费力的,作者提到了最近的一些工作如 Unnatural Instructions 【4】、Self-Instruct【5】、Standford Alpaca【6】、Vicuna【7】、Dromedary【8】 ,它们采用蒸馏或者其他自动方式避免了人工劳动,优化了指令的数量而不是质量。与之相反, 本论文探索了专注于多样性和质量的影响。
下面展示了手工编写的示例。
3 Training LIMA
- 模型:LLaMa-65B
- 微调(对齐)所用数据集:前述1000个示例
- end-of-turn Token(EOT): 在每一轮的回复结束后,添加<EOT> 来表示回复结束。它与<EOS>的效果相同,但是避免了预训练模型将预先存在的EOS标记与之混淆。
其他具体参数见论文【3 training LIMA】
4 Human Evaluation
作者发现LIMA优于OpenAI的DaVinci003(基于RLHF)和一个Alpaca的由52000个示例训练的65B参数的复制品,并且常常能产生与GPT-4同等或者更好的答案。对LIMA生成结果的分析,发现其中50%的输出被认为是优秀的。
在如此少的示例上进行的简单的微调,却能够和sota的模型相匹敌,这个事实有力地支持了前述Superficial Alignment Hypothesis,它证明了预训练的力量以及相对于大规模指令对齐和强化学习方法的重要性。
4.1 Experiment Setup
对于每一个测试用的prompt,使LIMA生成一个对应的响应,然后要求众包工人将LIMA的输出与基线进行比较,并且标注他们更喜欢哪一个
论文采用了下面的基线模型
- Alpaca 65B
- Davinci003
- Bard
- Claude
- GPT-4
模型的响应来自2023年4月的实验。
对于每个提示,作者对基线模型的核采样参数 p p p以及温度参数 τ \tau τ做了设定,分别为0.9与0.7。
对(超参数为 1.2) 的先前生成的标记应用重复惩罚
这个没太懂,MOSS中也用到了,以后看看。
最大标记长度设置为2048
方法: 每一步,向标注者展示一个简单的prompt以及两个可能的响应(来自不同的模型)。标注者被要求标注哪个响应更好,或者是否两个响应都没有明显优势。下图展示了对人类标注者具体的要求。同时,也对GPT-4提出了相同的要求,并收集其标注结果。
**标注者内部的一致性:**作者通过tie-discounted accuracy(平局折扣精度)来计算,最终发现在人类标注者之间,达成了不错的共识。同时,也发现GPT-4一定程度上与人类标注者也是一致的,从而在这个任务上通过了 Turking Test 。具体的方法可见论文【4.1 Experiment Setup/ Inter-Annotator Agreement】
Turking Test:来自论文【9】. 机器能够学会理解指令吗?这项测试检查模型遵循不同复杂程度的自然语言指令的能力。
4.2 Results
图 1 显示了人类偏好研究的结果,而图 2 显示了 GPT-4 偏好的结果。
实验结果分析:
-
LIMA模型击败了Alpaca 65B以及Davinci003
-
Davinci003进行了RLHF的训练,一个据说更优越的方法
所以可以看出RLHF不是必须的?
-
58% 的时间 LIMA 响应至少与 Bard 一样好。
-
虽然 Claude 和 GPT-4 通常比 LIMA 表现更好,但在一些情况下 LIMA 确实产生了更好的响应。
-
讽刺的是,与自己的输出相比, GPT-4 也有 19% 的时间更喜欢 LIMA 输出。感觉这是一个很有意思的问题。
4.3 Analysis
“尽管我们的主要评估是针对最先进的模型对 LIMA 进行评估,但必须记住其中一些基准实际上是经过高度调整的产品,可能在训练过程中接触了数百万真实用户提示,从而设定了非常高的标准。”
这段话没有完全理解,是说这些先进的模型本身非常优秀,将LIMA与它们做对比,想要让LIMA取得好成绩有些困难?
作者此外通过手动分析50个随机样例进行了绝对评估。
将每个示例标记为三类之一:
- Fail,响应不符合提示的要求;
- Pass,响应符合提示的要求;
- Excellent ,模型对提示提供了出色的响应
根据上图可以看到,50%的响应可以被看做excellent,并且LIMA可以对50中的44个做出合理的响应。
上图展示了几个测试集具体的例子。in distribution意为在训练集中由与之相似的示例;out of distribution则相反。此外safety 表示对模型是否会拒绝不安全的行为的任务。
作者的实验表明,LIMA有一定的泛化能力,以及在一定情况下,可以拒绝不安全的行为,具体见论文。
数据量太小,真的准吗?
5 Why is Less More?
这一部分探索了为什么少即是多?针对数据多样性、质量以及数量进行了消融实验。
作者观察到,为了对齐的目的,扩大输入多样性和输出质量有可测量的积极影响,而单独扩大数量可能不会。
具体实验部分,作者对每个测试集的提示采样5个响应,并通过要求ChatGPT来对响应的有用性进行评分。
让ChatGPT对提交的响应打分,分值从1-6。给出答案的同时还要求ChatGPT要按照一步一步推理的方式给出过程,避免简单地陈述答案。
Diversity
为了测试多样性对结果的影响,需要去控制质量和数量,论文比较了wikiHow 数据(同构提示,有着出色响应)和质量过滤的Stack Exchange数据(异构提示,有着出色响应)。
可以去阅读论文的2.1节关于对三个论坛数据取样的介绍,对Stack Exchange数据做了多样性和质量控制,而wikihow的数据认为是高质量的
在这节中,数据集不再采用1000个示例,而是从wikiHow中采样了2000个示例,从Stack Exchange中采样了2000个质量过滤的数据。
虽然作者将 Stack Exchange 与 wikiHow 作为多样性的代表进行比较,但作者承认在从两个不同来源采样数据时可能存在其他混淆因素。
wikiHow的本身数据都是高质量的,但是都是how to 形式的问题,因此认为是同构的,也就是不具备多样性;
而Stack Exchange数据的形式多样,数据质量不一致,因此需要质量过滤
图5显示了更多样的Stack Exchange数据 使得结果获得更高的性能(wikiHow与Filtered Stack Exchange)
Quality
又从Stack Exchange 采样了2000个没有过滤的数据,比较在这个数据集和经过质量过滤的数据集上训练的模型的性能差异。图5显示了在二者之间有着0.5的差距(Unfiltered Stack Exchange与Filtered Stack Exchange的对比)
Quantity
通过指数级的增加训练所用示例的数量来对比数量对结果的影响。
图6显示,加倍训练示例没有提高响应的质量。
综合本节的实验,可以得出,对齐的比例定律不一定只受数量的影响,而在于保持质量的同时提高提示的多样性。
6 多轮对话
不过,一个仅在1000个单轮对话上进行微调的模型能否产生多轮对话的能力?
作者在10个实时对话中测试LIMA,参考[4.3节](#4.3 analysis)中的方式将每个响应标记为Fail、Pass或Excellent。
对于一个zero-shot 聊天机器人,LIMA的响应极其地连贯,并引用了前面对话的信息。
然而,很明显模型在超出分布的情况下运行;在10次对话中有6次,LIMA在3次交互内未能遵循提示。
为了提高对话能力,作者又收集了30个多轮对话链,加上原有的1000个示例重新训练微调,得到新的模型,并对相同的提示进行测试。
两个模型对prompt多轮对话的示例如图8:
图7展示了没有经过多轮对话训练的模型和经过相应微调的模型的结果对比,可见,加入了30个示例后生成质量显著提高,高质量的响应从45.2%提升到了76.1%,而失败的响应从30.5%降低到了2.2%
30个样本的微调就可以使得模型有强大的多轮对话能力,而且没有多轮对话微调的模型也有一定的对话能力。这支持了作者的假说:这些能力是在预训练期间学习的,然后可以经过有限的监督训练展现出来。
Generating Text with Complex Structure
作者还对模型生成具有复杂结构的回答做了相关实验。
之前的实验中,LIMA不能很好地回答那些指定答案结构的问题。例如, 将一篇文章总结成要点,或者写一篇由几个关键要素组成的文章。
因此,作者尝试加入6个这样的示例,看能否帮助模型泛化到没见过的答案结构。
上图展示了具体的示例,可以看到无论是见过的结构还是没见过的结构,LIMA都能很好的完成。
8 Discussion
作者展示了对1000个精心筛选的示例进行强预训练语言模型微调可以在广泛的提示范围内产生出色且有竞争力的结果。然而,这种方法也存在局限性。
首先,在构建这些示例时需要付出相当大的精力,而且很难扩大规模。
其次,LIMA并不像产品级模型那样稳健;虽然LIMA通常会生成良好的回复,但在解码过程中出现不幸的样本(unlucky sample)或对抗性提示(adversarial prompt)往往会导致弱回复(weak response)。
尽管如此,本研究呈现的证据表明用简单的方法应对复杂的对齐问题具有潜力。
总结
-
Superficial Alignment Hypothesis:在预训练期间模型学习到了几乎所有知识和能力,而对齐就是模型学习与人类交互所需的风格和格式的简单的过程
-
整理了两类共1000个高质量示例
-
LIMA展现了强大的能力
-
提高提示和输出的多样性和质量有很积极的影响,而单独扩大数量可能不会
-
有一些局限性:不够稳健;需要人工构建高质量示例,难以扩大规模
References
[1] NeurIPS 2022 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (neurips.cc)
[2] NeurIPS 2022 Large Language Models are Zero-Shot Reasoners (neurips.cc)
[3] EMNLP 2022 Super-NaturalInstructions: Generalization via Declarative Instructions on 1600+ NLP Tasks - ACL Anthology
[4] ACL 2023 Unnatural Instructions: Tuning Language Models with (Almost) No Human Labor - ACL Anthology
[5] ACL 2023 Self-Instruct: Aligning Language Models with Self-Generated Instructions - ACL Anthology
[7] Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality | LMSYS Org
[7] Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality | LMSYS Org
[9] [2010.11982] The Turking Test: Can Language Models Understand Instructions? (arxiv.org)