Distilling Step-by-Step: 可以用更少的训练数据与模型尺寸战胜同级别的LLM!
- Introduction
- Method
- 实验
- 参考
Introduction
作者提到部署大模型存在时延、内存、算力等挑战,所以目前的趋势是微调、蒸馏一个不是很大的语言模型,如Vicuna、Alpaca,但是获取特定下游任务的数据是困难的、昂贵的。
为了解决上述问题,作者提出了Distilling Step-by-Step,可以通过用更少的数据、更小模型战胜在同等数据集上的大模型。(本文中作者通过实验770M-T5战胜了540BPaLM)
Method
Distilling step-by-step 一共分为两步:
- 把一些未标注的数据通过CoT的方式prompt LLM生成label与理论基础(也就是为什么得到这样结果)。
- 把得到的数据在小模型中finetune。
其中第一步案例如下:
这样就可让小模型既可以学到这个任务怎么做,怎可以学到为什么这么做,增加小模型对特定任务的理解。
现在有了 xi(来自于原始为标注的数据)、ri(理论基础)、yi(标签),作者为了更好的将三者联系起来:
输入问题,把output改为答案+答案的解题思路。
在计算损失函数的时候,对二者加权计算。
实验
参考
https://arxiv.org/pdf/2305.02301.pdf