已有LLM研究探索了训练数据对模型性能的影响,但这些研究大多集中在英文模型上,对于中文模型的研究相对较少。今天来看一篇来自贝壳的研究团队在2023年的一篇工作——《Towards Better Instruction Following Language Models for Chinese: Investigating the Impact of Training Data and Evaluation》。
这篇工作的核心目标是提升中文指令跟随语言模型的性能。具体来说,本文关注如何通过优化训练数据的数量、质量、语言分布等因素,以及改进评估方法,来提高开源语言模型在中文任务中的表现。
直接来看实验结果:
词汇扩展的影响
由于LLaMA的词表构建未针对中文进行优化,一个中文字符通常会被拆分为2-3个字节token,这严重影响了模型在中文数据上的微调和推理速度。为解决这个问题,本文基于字节对编码(BPE)算法,使用sentencepiece在1200万行中文文本上训练了一个新的分词器,并将其词表大小设为50K。然后将训练得到的新词表与原始LLaMA词表进行合并,最终得到一个包含79,458个token的新词表。
在相同训练数据(中文Alpaca-3.5&4 + ShareGPT)条件下:
- 基于LLaMA-EXT微调的模型得分为0.670
- 基于原始LLaMA微调的模型得分为0.652
结果表明:通过中文语料二次预训练扩展词汇表,显著提升了模型的中文理解能力。这得益于34亿中文词语的持续预训练增强了LLaMA的中文语言表征。
数据质量的影响
由于 ChatGPT 倾向于生成重复性较高的对话场景(如天气查询、机票预订等),因此,通过人工设计首轮对话提示来引导其生成更丰富的内容。首轮对话提示的目的是确定对话的主题和方向,从而让 ChatGPT 在后续轮次中能够生成与主题相关的对话内容。
在首轮对话提示的基础上,ChatGPT 继续生成多轮对话,模拟用户与 AI 助手之间的交互。通过这种方式,可以生成涵盖多种场景和主题的多轮对话数据。
使用LLaMA-EXT模型时:
- 采用GPT-4生成数据(Alpaca-4-zh)训练的模型得分为0.693
- 采用text-davinci-003生成数据(Alpaca-3.5-zh)训练的模型得分为0.642
证明:GPT-4生成的高质量训练数据能更有效提升模型性能,数据质量对模型表现具有决定性影响。
语言分布的影响
对比不同语言训练数据的效果:
- 纯中文数据(zh)训练的模型得分为0.679
- 纯英文数据(en)训练的模型得分为0.659
- 中英混合数据(en+少量ShareGPT中文)得分为0.668
关键发现:① 中文数据在中文测试场景中具有优势
② 模型的多语言能力可以实现跨语言知识迁移
③ 少量中文数据即可显著提升英文模型的本地化表现
数据量的影响
增加训练数据规模:
- 基础数据量(Alpaca+ShareGPT)得分为0.670
- 增加Belle-3.5数据后得分提升至0.762
表明:数据量在训练数据量方面,数据量的增加已被证明可以显著提高性能。扩大高质量训练数据规模能持续提升模型性能。但值得注意的是,如此巨大的改进可能部分来自belle-3.5和评估数据之间的相似分布。评估数据的类别、主题和复杂性将对评估结果产生很大影响。
与ChatGPT的差距
- 本文的最佳模型得分为0.762
- ChatGPT得分为0.824
技术报告证明中文大模型的训练是可行的,虽然与ChatGPT还有差距。这里需要指出后续RLHF也很重要。
总结
① 词汇扩展和中文预训练是提升中文性能的基础
② 数据质量比数量更重要
③ 多语言模型具有跨语言迁移能力
④ 构建均衡全面的评估集是准确衡量进展的关键