一文解决所有「语言模型」疑问:能不能训多个epoch?怎么微调效率高?需要多少条数据?


一文解决所有「语言模型」疑问:能不能训多个epoch?怎么微调效率高?需要多少条数据?

文章插图
新智元报道
编辑:LRS
【新智元导读】关于语言模型,你的问题可能已经有了答案 。
过去几个月里,Meta的LLaMA引领了一场语言模型的开源狂潮,并且随着大众对语言模型训练研究的深入,很多问题也都有了答案 。
比如需要人类反馈和强化学习来对齐语言模型吗?语言模型在ChatGPT模拟数据上的效果怎么样?是否可以用多个epoch训练语言模型?
最近,lighting.AI的首席教研员、前威斯康星大学麦迪逊分校统计学助理教授Sebastian发布了一篇博客,介绍了一些解决上述疑问的研究成果 。
一文解决所有「语言模型」疑问:能不能训多个epoch?怎么微调效率高?需要多少条数据?

文章插图
在特定任务上微调语言模型
Goat模型是一个基于7B LLaMA微调的模型,在算术任务上的性能优于GPT-4,在零样本设置中还超越了75倍参数量的540B PaLM
一文解决所有「语言模型」疑问:能不能训多个epoch?怎么微调效率高?需要多少条数据?

文章插图
论文链接: https://arxiv.org/pdf/2305.14201.pdf
Goat相当于是一个专有用途的微调LLM,从直觉来看也肯定会优于GPT-4等通用聊天机器人 。
一文解决所有「语言模型」疑问:能不能训多个epoch?怎么微调效率高?需要多少条数据?

文章插图
不过对业务来说,这篇论文也打开了专用模型的大门,毕竟大部分公司追求的都是在某一领域超越GPT-4即可 。
虽然Goat并不是第一个针对特定任务进行微调的语言模型,还有大量的基于FLAN微调的工作,但Goat取得成功的两个要素在于:
1. 在一个更好的基础语言模型上,在目标任务(相对于通用预训练或指令微调)上进行有监督微调;
2. LLaMA对数字的分词技术(将每个数字单独分配一个token)
从实验结果可知二者的结合是很重要的,第一点是因为原始7 B LLaMA基础型号不如GPT-4;第二点是因为对OPT,GPT-J等模型的微调结果不如Goat好,因为其他模型的数字分词技术不统一 。
也有人有疑问,为什么不用Wolfram Alpha或常规计算器等工具进行算数计算,而非要用语言模型算数?
对这篇论文来说,算术任务可以很容易地合成数据集,评估也更方便,方便测试微调性能 。
从Goat到Gorilla
另一个微调LLM以提高某一特定功能的例子是Gorilla,一个专门用于生成API调用的LLM 。
一文解决所有「语言模型」疑问:能不能训多个epoch?怎么微调效率高?需要多少条数据?

文章插图
论文链接: https://arxiv.org/abs/2305.15334
研究人员使用LLaMA-7 B基础模型,并对来自Torch Hub、TensorFlow Hub和HuggingFace的1645个API调用进行了微调,发现经过微调的Gorilla在API调用上优于其他未进行微调的LLM 。
一文解决所有「语言模型」疑问:能不能训多个epoch?怎么微调效率高?需要多少条数据?

文章插图
让微调更高效
之前提到的Goat模型使用低秩自适应(LoRA)技术以提高微调的效率,可以在单个24GB显存GPU上对70亿参数LLaMA模型进行微调 。
一文解决所有「语言模型」疑问:能不能训多个epoch?怎么微调效率高?需要多少条数据?

文章插图
论文链接: https://arxiv.org/abs/2305.14314
而最近发布的一个新技术QLoRA(量化LoRA)可以在单个 48GB显存的GPU上训练650亿参数的LLaMA模型,量化的4位参数设置下,训练后得到的65B Guanaco模型保持了完整的16位微调任务性能,并且仅在微调24小时后就达到了ChatGPT性能的99.3% 。
一文解决所有「语言模型」疑问:能不能训多个epoch?怎么微调效率高?需要多少条数据?

文章插图
微调语言模型需要多少数据?
对于想要定制语言模型的从业者和研究人员来说,起步难题就是获得足够的数据进行微调 。


推荐阅读