
引言大模型的成长之路想象一下如果要把一个孩子培养成优秀的作家你会怎么教读书识字先让他阅读海量书籍掌握语言的基本规律和知识练习写作教他怎么按照要求写文章比如写一篇游记评价反馈告诉他写得好的地方和不好的地方精益求精不断改进越来越会写大模型的训练过程和这个教育流程惊人地相似二、第一阶段预训练——海量数据的读书识字2.1 预训练是什么预训练Pretraining就是让模型阅读海量文本学习语言的基本规律和世界知识。数据量有多大GPT-3的训练数据约5000亿个Token相当于几千本书的内容来源网页、维基百科、书籍、GitHub代码、论文、问答网站等举个类比预训练就像让学生读遍图书馆里所有的书。虽然他可能不理解每本书的深意但他学会了语言的规律记住了很多知识。2.2 数据是怎么处理的原始数据质量参差不齐需要精心处理数据来源原始大小过滤后大小说明CommonCrawl网页爬虫45TB570GB过滤掉低质量网页WebText2Reddit推荐-较小高质量讨论内容Books1/Books2-较小互联网书籍Wikipedia-较小维基百科百科知识数据处理流程质量过滤删除低质量、乱码内容去重避免重复内容隐私消除去除个人敏感信息分词Tokenization把文本切成一个个Token2.3 什么是TokenToken是大模型处理文本的基本单位可以理解为字或词。换算关系1个英文字符 ≈ 0.3个Token1个中文字符 ≈ 0.6个Token举例原文我爱学习AIToken化[我, 爱, 学习, AI]Token数量约4个2.4 训练需要多少算力预训练是烧钱的环节模型参数量GPU数量训练时间GPT-31750亿约1000块数周BLOOM1760亿384块A1003.5个月为什么这么贵模型参数庞大数百亿到千亿级别数据量巨大数千亿Token需要高性能GPU集群2.5 预训练后得到什么预训练完成后得到基础模型Base Model。基础模型的能力掌握了大量语言规律记住了很多世界知识但不会按照人类指令回答问题思考题为什么基础模型不能直接用因为它的训练目标是预测下一个字而不是回答问题。你问今天天气怎么样它可能会继续写怎么样呢我也不知道——因为它以为你在让它续写句子而不是问问题三、第二阶段有监督微调(SFT)——学会听指令3.1 SFT是什么有监督微调Supervised FinetuningSFT也叫指令微调就是教模型理解人类指令并按要求回答。类比预训练学会了说话SFT学会了听话——理解用户想要什么。3.2 SFT数据长什么样SFT数据是指令回答的配对示例数据{instruction: 复旦大学有几个校区,output: 复旦大学现有4个校区分别是邯郸校区、新江湾校区、枫林校区和张江校区...}数据量通常只需要几万条高质量数据比预训练少得多3.3 数据怎么构建有四种主要方法方法说明优点缺点手动构建人工编写指令和回答高质量、可解释费时费力数据集转换整合现有开源数据集多样性、规模大需格式标准化自动构建用LLM生成指令Self-Instruct高效、可扩展质量需过滤综合模式结合多种方法兼顾各方面流程复杂Self-Instruct流程用GPT生成任务指令生成对应的输入输出过滤低质量数据相似度过滤形成训练数据集3.4 一个有趣的发现表层对齐假设研究发现高质量的数据量可能不需要那么多实验结果LLaMA 65B 1000条高质量数据LIMA的效果竟然和52000条数据Alpaca差不多这说明模型的能力主要来自预训练SFT只是教它怎么展示这些能力。3.5 SFT后的模型能做什么SFT模型具备理解用户指令的能力基本的问答、翻译、摘要能力对未知任务的泛化能力很多开源模型如ChatGLM、Vicuna、MOSS都是SFT模型效果可以达到ChatGPT的90%四、第三阶段奖励建模(RM)——学会评判好坏4.1 RM是什么奖励建模Reward Modeling就是训练一个模型来判断回答的质量高低。类比RM就像一个阅卷老师给每个答案打分。4.2 RM数据怎么构建RM数据是指令多个回答排序示例数据指令如何提高写作能力回答A排第1多读多写刻意练习...回答B排第2每天写日记...回答C排第3随便写就行...标注者按质量排序A B C数据量通常需要百万条对比数据4.3 RM模型怎么训练RM本质上是一个二分类模型给定两个回答A和B判断哪个更好输入指令 回答A 回答B输出A更好的概率4.4 RM为什么重要RM的准确率直接决定下一阶段强化学习的效果如果RM判断错误模型就会学歪——把差的回答当成好的。五、第四阶段强化学习(RL)——最终精益求精5.1 RL是什么强化学习Reinforcement Learning就是用RM的反馈进一步优化模型。类比RL就像学生根据老师的评分不断改进自己的写作技巧。5.2 RL的核心流程详细流程用户给出指令SFT模型生成回答RM对回答打分奖励根据奖励调整模型参数使得模型倾向于生成高分回答5.3 RL有什么问题RL有几个挑战稳定性不高训练容易发散超参数众多调参难度大多样性降低模型可能变得保守有趣发现Andrej Karpathy指出RL会使模型输出的熵降低也就是变得更确定、更安全但也可能减少创造性。5.4 RL之后得到什么最终得到的RL模型就是像ChatGPT、Claude这样的产品级模型。它具备理解复杂指令生成高质量回答较少的幻觉和错误六、完整流程回顾让我们用一个表格总结四个阶段阶段目标数据算力时间产出预训练学习语言和知识数千亿Token1000GPU数周Base ModelSFT学会理解指令数万条指令-回答1-100GPU数天SFT ModelRM学会评判质量百万条对比排序1-100GPU数天RM ModelRL优化回答质量十万条指令1-100GPU数天ChatGPT成本分布预训练最昂贵90%以上成本后三个阶段相对便宜七、给技术人员的启示7.1 为什么开源SFT模型效果很好因为模型的能力主要来自预训练只要预训练做得好SFT用几千条数据就能获得不错的效果。7.2 自己训练模型需要什么场景推荐方案快速验证用开源SFT模型如ChatGLM领域定制在开源模型基础上微调完全自研需要巨额算力不建议7.3 LoRA低成本的微调方案如果只是想微调LoRA是一个好选择只训练少量参数原本参数的1%以下效果接近全量微调一块GPU就能微调7B模型八、总结大模型的训练流程可以概括为预训练打基础学知识 →SFT学指令懂用户 →RM学评判知好坏 →RL精益求精更优秀每个阶段都有其独特的作用预训练决定了模型的天花板SFT让模型落地RMRL让模型升华