随着大规模语言模型的日渐强大,人们对 AI 模型提出了伦理道德方面的更高要求。业界在模型规模扩展方面具有算力资源优势,但要想让模型更规范、可靠,需要学术界的努力。
近日,斯坦福基于 Meta 的 LLaMA 7B 模型微调出一个新模型 Alpaca。该研究让 OpenAI 的 text-davinci-003 模型以 self-instruct 方式生成 52K 指令遵循(instruction-following)样本,以此作为 Alpaca 的训练数据。研究团队已将训练数据、生成训练数据的代码和超参数开源,后续还将发布模型权重和训练代码。
- 项目地址:https://github.com/tatsu-lab/stanford_alpaca
- 试用地址:https://alpaca-ai-custom6.ngrok.io/
实验结果表明,Alpaca 的很多行为都与 text-davinci-003 类似。也就是说,只有 7B 参数的轻量级模型 Alpaca 性能可媲美 GPT-3.5 这样的超大规模语言模型。
我们来看一下 Alpaca 模型是如何做到的。
训练方法
在学术界的预算条件下,训练高质量的指令遵循模型面临两个重要挑战:强大的预训练语言模型和高质量的指令遵循数据。
Meta 最近发布的 LLaMA 系列模型解决了第一个挑战。对于第二个挑战,2022 年底的 self-instruct 论文提出使用现有的强大语言模型自动生成指令数据。
论文地址:https://arxiv.org/abs/2212.10560
按照这种方法,Alpaca 使用 LLaMA 7B 模型的监督学习在 text-davinci-003 以 self-instruct 方式生成的 52K 指令遵循样本上进行微调。
self-instruct 方法概览。
Alpaca 的研究团队首先使用 self-instruct 种子集中的 175 个人工编写的指令输出(instruction-output)对,然后用该种子集作为 in-context 样本 prompt text-davinci-003 来生成更多指令。该研究通过简化生成 pipeline 改进了 self-instruct 方法,并显著降低了成本。
该研究共生成了 52K 个不同的指令和相应的输出作为训练数据,其中使用了 OpenAI 开放的 API,成本不到 500 美元。由于研究团队已将训练数据开源,对于想要复现 Alpaca 的开发者来说,这500美元就省下了。
有了这个指令遵循数据集,该研究下一步使用 Hugging Face 的训练框架微调了 LLaMA 模型,并利用了 FSDP(Fully Sharded Data Parallel)和混合精度训练等技术。成本方面,在 8 个 80GB A100 上微调一个 7B LLaMA 模型需要 3 个小时,这对大多数云计算提供商来说成本不到 100 美元。
模型评估
该研究使用来自 self-instruct 评估集的输入进行了人工评估,这项工作由 5 名研究团队的学生完成。该评估集由 self-instruct 论文的作者收集整理,涵盖了多种面向用户的 instruction,涉及电子邮件、社交媒体和办公工具。
在将 text-davinci-003 和 Alpaca 7B 进行 blind pairwise 比较之后,研究者发现这两个模型的性能非常相似,并且 Alpaca 略优于 text-davinci-003。
从参数规模的角度看,Alpaca 远远小于 text-davinci-003,移动端甚至也可以运行 7B 的轻量级语言模型。这让 Alpaca 意义非凡。
除了利用上述静态的 self-instruct 评估集,该研究还对 Alpaca 模型进行了交互测试,并发现 Alpaca 的表现通常与 text-davinci-003 相似。
下面是研究团队测试的两个例子,结果表明 Alpaca 的输出良好,并且反映出指令遵循数据集的一般风格。例如,Alpaca 输出的答案通常比 ChatGPT 更简洁,这和 text-davinci-003 类似。
模型缺陷
实验中,Alpaca 还表现出语言模型的几种常见缺陷,包括幻觉、毒性和刻板印象,其中幻觉问题尤其严重。
例如在下图中,Alpaca 回答坦桑尼亚的首都是达累斯萨拉姆,但实际上应该是多多马。
此外,Alpaca 能够生成一些看似良好却包含错误或虚假信息的文本,这可能会误导人们。
Alpaca 可能包含许多与底层语言模型和指令调优数据相关的其他缺陷。但是,Alpaca 对机器学习社区仍然具有重要意义,因为它提供了一个相对轻量级的模型,可作为研究重要缺陷的基础。斯坦福的研究团队还强调:Alpaca 只可用于学术研究,禁止任何商业用途。
接下来,斯坦福的研究团队会进一步探究 Alpaca 模型的安全性、理解能力、规模扩展等等。研究团队希望 Alpaca 能够促进指令遵循模型的发展。