
数据集速览
| 数据集名称 | Alpaca(52K 指令演示数据) |
| 发布机构 | 斯坦福 CRFM(基础模型研究中心) |
| 发布时间 | 2023 年 3 月 |
| 数据规模 | 52K(5.2 万)条指令-输出对 |
| 语言 | 英文为主 |
| 许可证 | 仅供学术研究,禁止商用 |
| 一句话定位 | 用 self-instruct 方法、以极低成本自动生成指令微调数据的开山之作 |
它解决了什么问题
2023 年初,GPT-3.5、ChatGPT 这类指令跟随模型已经很强,但学术界做相关研究却很困难——没有一个开放模型能在能力上接近闭源模型,而高质量指令数据又稀缺且昂贵。Alpaca 团队的答案是:既然强模型本身就能”教”出数据,为什么不用一个更强的模型来自动生成指令数据?于是他们把目光投向了 self-instruct 这篇论文提出的思路,并用它做出了一个让人印象深刻的实验。
5.2 万条数据是怎么来的
Alpaca 的数据生成严格建立在 self-instruct 方法之上。流程的起点是 175 条由人工撰写的”指令-输出”种子样本,这些种子来自 self-instruct 论文公开的种子集。然后,团队把种子作为上下文示例喂给 OpenAI 的 text-davinci-003,让模型照着示例的风格批量生成新的指令和对应输出。与原始 self-instruct 相比,Alpaca 简化了生成流程,去掉了不少中间环节,从而显著压低了成本。
最终,这套流程产出了 5.2 万条唯一的指令及其输出,数据生成环节通过 OpenAI API 的花费不到 500 美元。随后团队用这批数据对 LLaMA 7B 做监督微调,在 8 张 80GB A100 上训练 3 小时,成本不到 100 美元。也就是说,一个能”对话”的 7B 模型,数据加训练的总成本控制在了 600 美元以内——这个数字在当时是极具冲击力的。
初步效果与评价
团队用 5 位学生作者在 self-instruct 评测集上做了盲测对比:Alpaca 7B 对阵 text-davinci-003,结果 Alpaca 以 90 比 89 的微弱优势胜出。考虑到 Alpaca 的参数量只有后者的零头、训练数据也只有 5.2 万条,这个结果相当出人意料。团队自己也承认评测规模有限、多样性不足,但至少说明了一个关键事实:在指令跟随这件事上,数据质量的重要性可能远超数据规模。
当然,Alpaca 的输出风格也明显带有数据来源的烙印——因为生成数据的是 text-davinci-003,Alpaca 的回答往往比 ChatGPT 更短。此外,它同样继承了语言模型常见的幻觉、有毒和刻板印象问题,团队特别提到幻觉在 Alpaca 身上表现得比 text-davinci-003 还要明显。
「仅供研究、禁止商用」的三重原因
Alpaca 的许可证相当严格,明确只允许学术研究、禁止任何商业用途。这个决定背后有三层考量:第一,Alpaca 基于 Meta 的 LLaMA,而 LLaMA 本身就是非商用许可,Alpaca 必须继承这一限制;第二,指令数据来自 OpenAI 的 text-davinci-003,而 OpenAI 的使用条款禁止用其输出去开发与 OpenAI 竞争的模型;第三,团队认为 Alpaca 缺乏充分的安全设计,不适合面向一般用途部署。
这一”非商用”限制,也直接催生了后来的大量替代品。社区很快就涌现出一批可商用、可复现的指令数据集——比如完全由人工标注的 Dolly、多语言的 OpenAssistant,以及中文的 COIG、BELLE、Firefly 等。Alpaca 的价值,与其说是一份可以直接拿来商用的数据,不如说是它打开了一扇门:让”用强模型自动生成指令数据”这条路被所有人看见。
self-instruct:让模型自己出题
Alpaca 数据生成的底层方法叫 self-instruct,来自华盛顿大学等团队的一篇论文。它的核心思想可以用一句话概括:用一个能力还不错的模型,去自动「出题」并「答题」,从而滚雪球式地扩充指令数据,而不需要人工逐条编写。这个方法的大致流程分四步:先从少量人工种子任务出发,让模型生成一批新的指令;再对生成的指令做分类,判断它们属于哪一类任务;然后为每条指令生成对应的输入-输出示例;最后过滤掉低质量的条目,把合格的补充进任务池,进入下一轮迭代。
self-instruct 的价值在于,它把「造指令数据」这件原本依赖大量人工的事,变成了一件可以自动扩展的事。Alpaca 正是抓住了这个思路,并做了大幅简化——它跳过了任务分类等中间环节,直接用 text-davinci-003 从 175 条种子一路生成到 5.2 万条,把成本压到了 500 美元以内。这种「用强模型制造数据、再喂给小模型」的模式,从此成了指令数据合成的主流范式,影响延续至今。
它在中文本土的延续
Alpaca 的「非商用」限制,在中文社区同样催生了一批替代品,而且它们很快把重心转向了中文指令场景。COIG 是智源(BAAI)推出的中文指令数据集,旨在构建高质量、多来源的中文指令语料;BELLE 由深圳团队打造,开源了数百万条规模的中文指令数据;Firefly 同样提供了百万级的中文指令与多轮对话数据。这些数据集的出现,让中文开源模型的指令微调第一次有了足够的「弹药」。
它们和 Alpaca 的差异,不只是语言。更重要的是,它们在数据来源上更注重多样性和真实性:除了机器生成,还会引入真实对话、人工改写、翻译等多种来源,以缓解纯机器生成带来的风格同质问题。回头看,Alpaca 点燃的这把火,在中文社区烧得尤其旺——今天绝大多数开源中文模型,其指令微调数据都能追溯到这条「机器生成 + 人工种子」的路线上。
下载与使用
Alpaca 的数据和代码都发布在 GitHub 仓库 tatsu-lab/stanford_alpaca 上,5.2 万条演示以 JSON 格式提供,包含 instruction、input、output 三个字段。数据生成代码和微调代码也一并开源。需要注意的是,官方此前提供的在线演示已经下线,团队给出的理由是托管成本以及内容过滤器的不完善。想要复现的话,可以直接用这份数据对任意基础模型做监督微调。
横向对比同类指令数据
把 Alpaca 放进指令数据的坐标系里看:Dolly 走的是纯人工路线,只有 1.5 万条但完全可商用;OpenAssistant 依赖社区众包,规模超过 60 万条对话、覆盖多语言;而 Alpaca 是”机器生成、人工种子”的代表,成本最低但受制于生成模型的许可。三者的取舍恰好代表了指令数据获取的三条路径——人工、众包、机器生成。Alpaca 站在机器生成这条路上,用最低的成本证明了这条路的可行,代价则是许可和多样性上的妥协。
局限与注意事项
Alpaca 数据的局限同样明显。首先是许可问题,非商用限制让它在实际落地中几乎只能用于研究。其次是多样性,5.2 万条数据全部由单一模型(text-davinci-003)生成,风格同质、输出偏短,难以覆盖真实用户复杂多变的指令分布。第三,机器生成的数据天然带有生成模型的错误与偏见,团队也承认幻觉问题突出。最后,从现在的视角回看,Alpaca 更像一个历史性的实验样本,而非一个适合直接用于生产的指令语料——但它留下的方法论遗产,至今仍在影响几乎所有指令数据集的构建。
参考来源
斯坦福 CRFM 官方博客《Alpaca: A Strong, Replicable Instruction-Following Model》(crfm.stanford.edu/2023/03/13/alpaca.html);GitHub 仓库 tatsu-lab/stanford_alpaca;self-instruct 论文(arXiv:2212.10560)。


