大模型在CoT的加持下,可以很好地解决数学推理等问题,而这种能力只有模型参数到达一定数量时才涌现出来
大模型在强大的同时,但哪里获得微调>100B模型的算力?如果小模型也能获得CoT加持是非常理想的,但是有研究指出,在小规模模型上使用CoT甚至会有负面影响
普遍认为让小模型从CoT中获益是非常困难的,但文章假设:将小模型运用于专有任务,也可以达到很好的modeling performance,而非聚焦于模型的通用能力
文章方法:从GPT3.5(175B)上将其CoT reasoning的能力蒸馏到FlanT5(11B)上。(FlanT5是基于T5小模型,经过CoT指令微调得到的,它具有CoT的通用能力,但相较大模型差得多)
文章的发现与贡献:
Dataset:在GSM8K数据集上微调,但是在MultiArith, ASDiv, SVAMP上validation,并且在BigBench Hard上测试模型在专有任务的泛化能力;
Model:T5和FlanT5作为基础模型,code-davinci-002【OpenAI的一个基础模型,适用于纯代码补全任务,隶属于GPT系列】生成蒸馏/专有数据;
采用Code-Davinci-002生成训练所需要的微调数据集,主要有以下四种format:
通过这四种数据格式,作者可以探索以下问题:
训练时让teacher和student的输出分布用KL散度进行衡量(仅存储分布的top-5节约内存,因为top-5的概率之和已经接近于1)
蒸馏训练中,使用distribution match策略更优;
训练中,如果使用in-context learning训练,模型在测试时同时具有in-context和zero-shot能力;而如果只使用zero-shot训练,模型将损失几乎所有的in-context能力,这就是为什么文章需要混合不同format的数据。