我的项目代码:https://github.com/tatsu-lab/stanford_alpaca
博客介绍:https://crfm.stanford.edu/2023/03/13/alpaca.html
Alpaca 总览
Alpaca 是 LLaMA-7B 的微调版本,应用 Self-instruct[2] 形式借用 text-davinct-003 构建了 52K 的数据,同时在其构建策略上做了一些批改。
性能上作者对 Alpaca 进行了评估,与 openai 的 text-davinct-003 模型在 self-instruct[2] 场景下的性能体现类似。所以比起老本来看,Alpaca 更便宜。
text-davinct-003 与 chatGPT 同为 gpt3.5 模型之一,比 GPT- 3 模型 curie、babbage、ada 模型更好的品质、更长的输入和统一的指令遵循来实现任何语言工作
整体思路如下图
基于 Self-instruct 的数据生成
Self-instruct
Self-instruct 是一个利用 LLM 来生成指令遵循数据来指令微调模型的框架,外围奉献是生成指令遵循数据 。
指令数据由指令、输出、输入组成 。作者的数据生成 piple 蕴含四个步骤:
1)生成工作指令,
2)确定指令是否代表分类工作,不便 3 区别
3)失常工作应用输出优先方法,分类工作应用输入优先的 prompt 指令办法生成实例
4)过滤低质量的数据。
具体的 Self-instruct 能够看我别的文章。
Alpaca
Alpaca 基于 self-instruct,
- 改用 GPT-3.5:text-davinci-003 来生成指令数据(self-instruct 应用的 GPT-3:davinci)
- 指令生成时应用新的 prompt,间接一次性生成 20 个工作的指令(self-instruct 是迭代生成的,更费钱)
- 指令生成不辨别 分类 / 非分类工作,可能是 GPT3.5 更好,不须要区别了。
- 每个指令只生成 1 个实例。
最终的后果是以少于 $500 的便宜价格取得了 52K 的数据,下图反映了其数据多样性,内圈是词根是动词的指令,外圈是示意指标的指令。