我的项目代码: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,

  1. 改用GPT-3.5:text-davinci-003来生成指令数据(self-instruct应用的GPT-3:davinci)
  2. 指令生成时应用新的prompt,间接一次性生成20个工作的指令(self-instruct是迭代生成的,更费钱)
  3. 指令生成不辨别 分类/非分类工作,可能是GPT3.5更好,不须要区别了。
  4. 每个指令只生成1个实例。

最终的后果是以少于$500的便宜价格取得了52K的数据,下图反映了其数据多样性,内圈是词根是动词的指令,外圈是示意指标的指令。