今天小编在查看paperswithcode热门榜时,发现一个对LLaMA和BLOOM做指令微调,以改善中文表达的开源。这个开源一推出就收获上千星,非常有意思。地址在这里:
https://paperswithcode.com/paper/exploring-the-impact-of-instruction-data
https://github.com/lianjiatech/belle ★★★★★ (>2.5 stars)
并且作者还给出了量化版本,在issue中还提出计划做LLaMA和BLOOM的评测,以及更大参数量模型的中文化。一起期待吧~
![](https://img.haomeiwen.com/i13727053/88a94674cc5ebdb1.png)
![](https://img.haomeiwen.com/i13727053/a4fbc2290972474e.png)
![](https://img.haomeiwen.com/i13727053/3c4a262487415e2c.png)
![](https://img.haomeiwen.com/i13727053/9f3b7dce79f49678.png)
另外,这个开源也对应于一篇技术报告
探索指令数据缩放对大语言模型的影响——基于真实世界用例的实证研究
Exploring the Impact of Instruction Data Scaling on Large Language Models: An Empirical Study on Real-World Use Cases
Mar 2023
Yunjie Ji, Yong Deng, Yan Gong, Yiping Peng, Qiang Niu, Lei Zhang, Baochang Ma, Xiangang Li
[Beike Inc., Beijing, China]
https://arxiv.org/abs/2303.14742
最近,ChatGPT的成功吸引了许多复制它的努力,指令微调策略是取得显著成果的关键因素。指令微调不仅显著提高了模型的性能和泛化能力,而且使模型生成的结果更符合人类的语音模式。然而,目前的研究很少研究不同数量的指令数据对模型性能的影响,尤其是在真实世界的用例中。在本文中,我们探讨了基于不同规模的指令数据的指令调优的大型语言模型的性能。实验中构建了一个由12个主要在线用例组成的评估数据集。以Bloomz-7B1-mt为基础模型,结果表明:1)仅增加指令数据量就可以持续改进开放式生成等任务,2)在数学和代码等任务中,模型性能曲线在增加数据量的同时保持相当平坦。我们进一步分析了这些现象的可能原因,并提出了未来潜在的研究方向,如有效选择高质量的训练数据、扩展基础模型和专门用于硬任务的训练方法。我们将发布我们的训练和评估数据集,以及模型检查点。
1简介
指令微调的目的Wei等人(2021);Sanh等人(2021);Chung等人(2022);欧阳等人(2022)旨在使模型能够理解并正确响应各种人类指令。关键是通过在输入文本之前将描述任务的文本连接为指令,来引导模型理解任务需求。与微调模型以解决特定的NLP任务不同,指令调优旨在提高模型对看不见的任务的泛化能力,这是通过用各种类型的指令生成和训练的方式处理所有任务来实现的。
最近,用人类反馈训练的模型Ouyang等人(2022);Bai等人(2022);齐格勒等人(2020);Stiennon等人(2022);Ganguli等人。;Nakano等人(2022);Korbak等人(2023)(尤其是ChatGPT和GPT-4)引起了人工智能领域研究人员的极大关注,因为它可以对人类输入产生高质量的响应,甚至可以根据随后的对话自我纠正之前的错误。指令调优策略是ChatGPT取得显著效果的关键因素之一。为了复制ChatGPT,研究社区Taori等人(2023);Computer(2023)主要通过在多样化和高质量的指令数据集上微调大型语言模型来获得有能力的指令跟随模型。
然而,指令数据大小的影响尚未得到很好的探讨,尤其是对于来自在线ChatGPT用户的典型用例的评估。Liang等人(2022);Qin等人(2023);Ye等人(2023);Bang等人(2023年);斯里瓦斯塔瓦等人(2022);Suzgun等人(2022)评估了可用的大型语言模型,但没有注意到训练策略的影响。同时,大多数评估集中在传统的NLP任务上,并使用英语数据集进行。为了填补这些空白,我们构建了一个多样化、高质量的中文教学训练和评估数据集,并进行了广泛的实验来分析模型在不同规模的教学数据上的性能。最后,我们获得了以下重要的实验结果:
•在头脑风暴和翻译等任务中,200万个样本的数据集,甚至更少,可以使模型获得令人满意的性能。
•不断增加的数据量仍然会提高开放式QA和提取等任务的性能,这表明瓶颈尚未达到。但改进的潜力可能是有限的。
•该模型在数学和代码方面的性能仍然很差,数据大小的增加不再带来性能的提高。这表明了一些未来的研究方向,如有效选择高质量的训练数据,在参数和基本能力方面扩展基础模型,以及专门用于数学和代码等任务的训练方法。
总之,我们对训练数据大小对指令跟随模型性能的影响进行了实验,并得出了一些初步结论,为未来的工作提供了方向。同时,我们将开源我们的训练和评估数据,以及我们模型的检查点。
2相关工作
2.1大型语言模型
基于Transformer的语言模型,特别是生成型大型语言模型,极大地推动了自然语言处理Vaswani等人的发展。(2017);Devlin等人(2018);Lan等人(2019);Yang等人(2019);Dong等人(2019);Clark等人(2020);Raffel等人(2020);Brown等人(2020);Zhang等人(2022);Chowdhery等人(2022);Black等人(2022);Hoffmann等人(2022);Glaese等人(2022);斯里瓦斯塔瓦等人(2022)。GPT(Generative Pre-trained Transformer)模型家族就是一个显著的例子,RLHF Ouyang等人增强了其理解和遵守人类指令的能力。(2022);Bai等人(2022);齐格勒等人(2020);Stiennon等人(2022);Ganguli等人。;Nakano等人(2022);Korbak等人(2023)在ChatGPT。因此,ChatGPT已经从一个基本的NLP任务求解器发展成为一个完整的自然语言助手,可以执行生成对话和检测代码中的错误等任务。
2.2指令微调
教学微调是Wei等人(2021)提出的一个新趋势;Sanh等人(2021);Mishra等人(2021)试图通过教语言模型遵循自然语言来提高语言模型的性能。通过将所有任务格式化为自然语言,生成语言模型能够处理几乎所有的NLP任务。早期的研究集中在对通用NLP任务求解器进行指令调优,并且有一种趋势是将越来越多的NLP数据集转换为统一的数据集,然后进行多任务训练Xu等人(2022);Xie等人(2022);Wang等人(2022a);Khashabi等人(2020);Min等人(2021);Ye等人(2021);Liu等人(2019);Zhong等人(2021);Chung等人(2022)。然而,这些模型仍然难以理解一般的人类指令,尤其是在现实世界的用例中。直到RLHF Ouyang等人(2022)等训练方法的出现;Bai等人(2022);齐格勒等人(2020);Stiennon等人(2022),模型真正开始理解各种人类指令并产生良好的反应。最近,研究界在复制ChatGPT Taori等人方面做出了巨大努力。(2023);计算机(2023)。在他们的工作中,数据量和任务类型差异很大,这些因素对模型性能的影响尚未得到很好的探讨。
2.3 LLM的评估
有许多对大型语言模型的评估,如OPT Zhang等人(2022)、BLOOM Workshop等人(2022年)、GLM Zeng等人(2023年)和GPT-3 Brown等人(2020年),在各种任务中。Liang等人(2022)对30个大型语言模型进行了全面评估。Qin等人(2023)评估了ChatGPT在各种NLP任务上的性能。Ye等人(2023)比较了GPT和GPT-3.5系列模型的性能。Bang等人(2023)比较了ChatGPT在多种语言和模式下的推理、减少幻觉和互动能力。然而,这些评估主要关注现有模型的性能,而不是评估模型在不同教学数据规模下的性能。此外,许多评估数据由传统的NLP任务组成,这与现实世界中的人类使用场景不同。斯里瓦斯塔瓦等人(2022)提供了204个任务,这些任务被认为超出了当前大型语言模型的能力。Suzgun等人(2022)从BIG Bench中选择了23项最困难的任务,形成了BIG BenchHard(BBH)。我们提出的评估数据集更接近真实世界的人类使用场景,专门针对中国社区。
3方法
在本节中,我们将介绍获得高质量指令调优数据的方法,以及构建多样化测试指令的方法。与我们之前的工作Ji等人(2023)相同,ChatGPT也需要评估指令遵循模型生成的响应。提示列在附录6.1中。
3.1生成训练数据
高质量指令数据的手动注释需要大量资源。鉴于强大的上下文学习能力,大型语言模型可以基于高质量的种子集Wang et al.(2022b)生成大量多样的教学数据。在本文中,我们采用了与Taori等人相同的方法。(2023)。我们将Taori等人(2023)提供的开源种子数据翻译成中文,并修改了一些大量涉及西方文化和背景知识的数据,使其更符合中国的文化和背景信息。然后,使用这些种子数据作为上下文示例,我们需要ChatGPT生成更多的样本。
3.2生成评估数据
我们选择从ChatGPT生成的一部分数据进行评估。注释人员被要求更正ChatGPT的响应,以获得测试指令的黄金响应。我们的测试说明分为12种类型,涵盖了在线用户最常见的用例。表1显示了这些测试说明的详细信息。此外,我们计划继续扩大我们的评估数据集,因为更多的数据会带来更可靠的评估结果。
4个实验
4.1型号说明
本文主要研究中文文本的模型性能。虽然LLAMA Touvron等人(2023年)、OPT Zhang等人(2022年)以及GPT-J Wang和Komatsuzaki(2021)没有针对中国人进行特别优化,但我们选择Bloomz-7b1-mtWorkshop等人(2021年);Muennighoff等人(2022)作为我们的基础模型,该模型有71亿个参数,并在基于Bloom-7b1的xP3mt数据集上进一步微调。如表2所示,我们用20万、60万、100万和200万个指令示例训练Bloomz-7b1-mt,分别获得BELLE-7B-0.2M、BELLE-7B-0.6M、BELLE-7B-1M和BELLE-7B-2M。在本文中,我们只探讨了数据规模的影响,并将模型规模的影响留给未来的工作。我们用64个批量、2个时期、3e-6的恒定学习率、0.001的权重衰减来训练这些模型。对于每条指令,我们的指令遵循模型需要生成一次响应。尽管模型对同一指令产生的反应可能不同,但我们认为这种波动对实验结果几乎没有影响。
4.2指标
如6.1所述,ChatGPT被要求评估指令遵循模型生成的响应。对于所有指令,ChatGPT给出的分数在0到1之间,其中0分是最差的,1分是最好的。对于每种类型的教学,我们计算模型在测试示例上的平均分数。此外,考虑到ChatGPT几个版本的波动性,每个模型的响应都会被评估三次,并将分数取平均值。值得注意的是,我们没有采用自一致性Wang等人(2022b),因为我们测试集中的许多类型的指令没有唯一的标准答案。通过在2023年3月25日调用gpt-3.5-turbo API来实现评估。
4.3分析
就总体得分而言,随着数据量的增加,模型的性能不断提高,而这种持续改进并不总是可以在所有类型的指令中预期的。同时,我们发现该模型仅用了200k个训练实例就已经取得了良好的性能。
数学、代码和COT
对于Math、Code和COT指令,该模型的性能较差,有20万个训练示例。在将训练示例的数量增加到100万个之后,模型的性能得到了提高,然后很难进一步提高性能,而且远未达到令人满意的水平。这可能有两个原因:1)这三种类型的训练数据的质量较差,因此随着数据量的增加,错误的训练数据抑制了性能的提高。2) 模型大小不足以实现能力的出现,因此无法对这三类需要推理能力的指令进行进一步改进。
提取、分类、封闭式QA和摘要
对于提取、分类、封闭QA和摘要等常见的NLP任务的指令,增加训练数据量可以不断提高性能。这表明,我们仍然可以通过在未来的训练计划中增加训练示例来获得进一步的绩效改进。然而,重要的是要注意增加这些类型数据的比例是否会导致其他类型指令的性能下降。
Open QA
对于Open QA,随着数据量的增加,模型的性能会不断提高。解决这项任务需要模型的参数知识,因此我们可以得出结论,增加训练数据量使模型能够更好地产生事实答案,并减少幻觉。
翻译
在翻译任务中,Belle-7b-0.2m取得了良好的性能,表明该模型的翻译能力可能来自Bloomz-7b1-mt的多语言能力。
重写
在重写任务中,模型需要纠正语法错误或对原文进行转述,使其更加流畅和简洁。这种类型的任务相对简单,并且该模型仅用60万个训练示例就表现良好,因此我们可以在未来专注于其他任务。
生成
在生成任务中(例如,生成一篇关于某个主题的文章,写一封电子邮件),将数据大小从20万增加到100万会显著提高性能,之后性能会趋于平稳。
Brainstorming
在头脑风暴任务中,20万的数据集被证明是模型性能的最佳大小。这可能是由于对这类指令的响应是多样的,并且缺乏判断响应质量的明确标准,导致ChatGPT在评分时往往给出更高的分数。它还表明,大型语言模型善于对这类指令做出响应。
总之,对于翻译、重写、生成和头脑风暴任务,200万甚至更少的数据大小可以使模型表现良好。对于提取、分类、封闭式QA和摘要任务,模型的性能可以随着数据大小的增加而不断提高,这表明我们仍然可以通过简单地增加训练数据大小来提高模型的性能。但改进的潜力可能是有限的。模型在数学、代码和COT指令方面的性能仍然很差,需要在数据质量、模型规模和训练策略方面进行进一步的探索。
5结论和未来工作
在本文中,我们评估了不同数量的指令数据对模型性能的影响。我们发现,数十万个训练示例可以在翻译、重写、生成和头脑风暴任务上取得良好的效果。数据大小的增加仍然会导致提取、分类、封闭式QA和摘要等任务的性能提高,这表明瓶颈尚未达到。然而,在数学、代码和COT等任务中,模型性能较差,并且数据大小的增加不再带来性能的提高。
上述发现为我们未来的工作指明了三个方向。首先,我们将继续探索在提取、分类、封闭式QA和摘要任务中增加数据量的极限。其次,我们将提高训练数据的质量,以进一步提高模型性能,特别是在数学、代码和COT方面,其中ChatGPT生成的训练数据质量较低。此外,有效选择高质量的数据也值得研究。最后,我们将评估基础模型对性能的影响,包括模型参数的数量和预先训练的语言模型的基础能力。
6附录A
6.1提示ChatGPT作为评估者
我们之前的工作Ji等人(2023)已经证明,ChatGPT的排名偏好在一定程度上与人类一致。因此,在本文中,我们也将ChatGPT作为一个注释器来评估指令跟随模型生成的响应。表3列出了我们用于不同类型指令的提示。
![](https://img.haomeiwen.com/i13727053/7cd12f5b0e2401b5.png)
![](https://img.haomeiwen.com/i13727053/a3650f51c8badae1.png)
![](https://img.haomeiwen.com/i13727053/0ced8f50c7f4f8df.png)
![](https://img.haomeiwen.com/i13727053/ab57beac819d019c.png)
![](https://img.haomeiwen.com/i13727053/d6c1d5cee3955200.png)
网友评论