https://www.jianshu.com/p/f8f8f660d2c3
https://crfm.stanford.edu/2023/03/13/alpaca.html
https://crfm.stanford.edu/alpaca/
https://github.com/tatsu-lab/stanford_alpaca
https://github.com/tatsu-lab/stanford_alpaca/blob/main/generate_instruction.py
延伸:
https://github.com/wptoux/self-instruct-zh
我们介绍了Alpaca 7B,这是一个在52K指令上从LLaMA 7B模型微调而来的模型。在我们对单圈指令遵循的初步评估中,Alpaca的行为在质量上与OpenAI的text-davinci-003相似,同时体积小得惊人,易于复制/便宜(<600美元)。
概述
GPT-3.5(text-davinci-003)、ChatGPT、Claude和Bing Chat等指令遵循模型的功能越来越强大。现在,许多用户定期与这些模型交互,甚至在工作中使用它们。然而,尽管指令遵循模型得到了广泛部署,但仍有许多不足之处:它们会产生虚假信息,传播社会刻板印象,并产生有毒语言。
为了在解决这些紧迫问题方面取得最大进展,学术界的参与至关重要。不幸的是,在学术界对指令遵循模型进行研究一直很困难,因为没有一个易于访问的模型在功能上接近OpenAI的text-davinci-003等闭源模型。
我们发布了一个名为Alpaca的指令遵循语言模型的研究结果,该模型是从Meta的LLaMA 7B模型中微调而来的。我们在52K指令上训练Alpaca模型,随后使用text-davinci-003以self-instruct生成演示。在self-instruct的评估集上,Alpaca表现出许多类似于OpenAI的text-davinci-003的行为,但它也出奇地小,易于复制/便宜。
我们正在发布我们的训练配方和数据,并打算在未来发布模型权重。我们还举办了一个交互demo(https://crfm.stanford.edu/alpaca/),使研究社区能够更好地了解Alpaca的行为。交互可能会暴露出意想不到的能力和失败,这将指导我们对这些模型的未来评估。我们还鼓励用户在我们的网络演示中报告任何相关行为,以便我们能够更好地理解和缓解这些行为。由于任何发布都有风险,我们将在稍后的博客文章中讨论我们对此次公开发布的思考过程。
我们强调,Alpaca仅用于学术研究,禁止任何商业用途。这个决定有三个因素:首先,Alpaca是基于LLaMA的,它有非商业许可证,所以我们必须继承这个决定。其次,指令数据基于OpenAI的text-davinci-003,其使用条款禁止开发与OpenAI竞争的模型。最后,我们没有设计足够的安全措施,因此Alpaca还没有准备好用于一般用途。
训练配方
在学术预算下训练高质量的instruction-following模型有两个重要挑战:强大的预训练语言模型和高质量的instruction-following数据。Meta最新发布的LLaMA模型解决了第一个挑战。对于第二个挑战, self-instruct建议使用现有的强语言模型来自动生成instruction数据。特别是,Alpaca是一个语言模型,根据OpenAI的text-davinci-003生成的演示,在52K指令上使用LLaMA 7B模型的监督学习进行微调。
下图说明了我们是如何获得Alpaca模型的。对于数据,我们在self-instruct方法的基础上生成了instruction-following demonstrations 。我们从 self-instruct seed set中的175个人工编写的指令输出对开始(instruction-output pairs)。然后,我们提示text-davinci-003使用上下文示例中的种子集生成更多指令(We then prompted text-davinci-003 to generate more instructions using the seed set as in-context examples)。我们通过简化生成管道(详见https://github.com/tatsu-lab/stanford_alpaca#data-generation-process)对自学方法进行了改进,并显著降低了成本。我们的数据生成过程产生了52K条独特的指令和相应的输出,使用OpenAI API的成本不到500美元。
有了这个instruction-following的数据集,我们利用Fully Sharded Data Parallel和混合精度训练等技术,使用Hugging Face的训练框架对LLaMA模型进行了微调。在我们的首次运行中,在8个80GB A100上微调7B LLaMA模型需要3个小时,这在大多数云计算提供商上的成本不到100美元。我们注意到,可以提高训练效率以进一步降低成本。
初步评估
为了评估Alpaca,我们对 self-instruct evaluation set的输入进行了人类评估(由5名学生作者进行)。该评估集由self-instruct作者收集,涵盖了一系列面向用户的指令,包括电子邮件写作、社交媒体和生产力工具。我们对text-davinci-003和Alpaca 7B进行了盲配对比较,发现这两种型号的性能非常相似:Alpaca以90:89赢过了text-davinci-003。
考虑到模型的小尺寸和少量的instruction following数据,我们对这个结果感到非常惊讶。除了利用这个静态评估集,我们还一直在交互测试Alpaca模型,发现Alpaca在不同的输入集上的行为通常与text-davinci-003类似。我们承认,我们的评估可能在规模和多样性方面受到限制。因此,我们发布了一个关于Alpaca的互动演示,鼓励读者自己评估Alpaca并给我们反馈。
在本节的其余部分中,我们将包括几个交互示例,以展示Alpaca的功能和局限性。
上面的例子表明,Alpaca的输出通常写得很好。我们注意到Alpaca反映了指令instruction-following集的一般风格。因此,Alpaca的回答通常比ChatGPT更短,这反映了text-davinci-003的输出更短。
已知限制
Alpaca还表现出语言模型的几种常见缺陷,包括幻觉、毒性和刻板印象。幻觉似乎尤其是Alpaca的常见故障模式,即使与text-davinci-003相比也是如此。
例如,在下图中,Alpaca错误地说坦桑尼亚的首都是达累斯萨拉姆,达累斯萨拉姆是坦桑尼亚最大的城市。(直到1974年,这里才被多多马取代。)
此外,Alpaca可以用来生成书写良好的输出,传播错误信息,如以下示例所示。
Alpaca可能包含许多与底层语言模型和指令调优数据相关的其他限制。然而,我们相信该工件仍然对社区有用,因为它提供了一个相对轻量级的模型,作为研究重要缺陷的基础。我们鼓励用户通过在网络演示中标记故障来帮助我们识别新的故障类型。总的来说,我们希望Alpaca的发布能够促进对指令遵循模型及其与人类价值观一致性的进一步研究。
释放的内容
我们今天发布以下内容:
演示:每个人都可以尝试Alpaca的互动演示,https://crfm.stanford.edu/alpaca/
数据:52K演示用于微调Alpaca,https://github.com/tatsu-lab/stanford_alpaca#data-release
数据生成过程:用于生成数据的代码,https://github.com/tatsu-lab/stanford_alpaca#data-generation-process
训练代码:用于使用Hugging FaceAPI对模型进行微调,https://github.com/tatsu-lab/stanford_alpaca#fine-tuning
我们打算在不久的将来释放以下内容:
模型权重:我们已联系Meta,以获得关于发布7B Alpaca和更大LLaMA模型的微调版本的Alpaca模型重量的指导。
发布决定
我们相信,释放上述内容将使学术界能够按照语言模型对教学进行受控的科学研究,从而产生更好的科学,并最终产生新的技术来解决这些模型的现有缺陷。
与此同时,任何释放都会带来一些风险。首先,我们认识到,发布我们的训练配方揭示了某些能力的可行性。一方面,这使更多的人(包括不良行为者)能够创建可能造成伤害的模型(无论是有意还是无意)。另一方面,这种意识可能会激励迅速的防御行动,尤其是学术界,他们现在有能力对这些模型进行更深入的安全研究。总的来说,我们认为这一特定版本对研究界的好处大于风险。
鉴于我们正在发布训练配方,我们认为,鉴于配方的简单性,发布数据、模型权重和训练代码所带来的进一步风险最小。与此同时,发布这些内容对可复制科学有着巨大的好处,因此学术界可以使用标准数据集、模型和代码进行受控比较并探索扩展。
为Alpaca部署交互式演示也会带来潜在风险,例如更广泛地传播有害内容,降低垃圾邮件、欺诈或虚假信息的门槛。我们已经制定了两种风险缓解策略。首先,我们使用OpenAI的内容审核API实现了一个内容过滤器,该过滤器根据OpenAI的使用策略过滤掉有害内容。其次,我们使用Kirchenbauer等人2023中描述的方法对所有模型输出进行水印处理,以便其他人可以(以一定的概率)检测输出是否来自Alpaca 7B。最后,我们对使用演示有严格的条款和条件;它仅限于非商业用途和遵循LLaMA许可协议的用途。
我们知道,一旦我们发布模型权重,或者如果用户按照模型训练自己的指令,就可以规避这些缓解措施。然而,通过安装这些缓解措施,我们希望推进最佳实践,并最终制定负责任部署基础模型的社区规范。
未来发展方向
我们对Alpaca带来的研究机会感到兴奋。未来有许多令人兴奋的方向:
评估:我们需要更严格地评估Alpaca。我们将从HELM(语言模型的整体评估)开始,它有望发展到捕捉更具生成性的、遵循指令的场景。
安全:我们希望进一步研究Alpaca的风险,并使用自动红队、审计和自适应测试等方法提高其安全性。
理解:我们希望更好地理解能力是如何从训练配方中产生的。您需要基本模型的哪些财产?当你扩大规模时会发生什么?需要指令数据的哪些财产?在text-davinci-003上使用自我指导的替代方案是什么?