|
本文以 DeepSeek-V3 为例,带你看懂一个大模型从「什么都不会」到「聪明得体」的全过程,也彻底搞清楚两个关键概念: Pre-Train(预训练)是啥 Post-Train(后训练)又是干嘛的 一、预训练:用海量数据打下通识能力的底子预训练是使用大规模未标注语料,训练语言模型在无指令、无任务的前提下学会建模自然语言的概率分布,进而获得通用语言理解与生成能力。 1)它解决的问题是: - 模型如何预测下一个词/句子 - 如何建立词与词、句与句之间的语义与语法关联 2)输出结果是: - 一个掌握语言规律、世界知识、部分推理能力的通用语言模型(base model) DeepSeek-V3 的预训练做了什么 1. 用了多少数据 DeepSeek V3在14.8万亿高质量、多样化的tokens上进行预训练。与DeepSeek V2相比,V3优化了预训练语料库,提高了数学和编程样本的比例,同时扩展了英语和中文以外的多语言覆盖范围。 2. 上下文支持多长 预训练期间,DeepSeek-V3 分阶段提升其上下文处理能力: 从 4K → 32K → 最终支持128K tokens 3. 训练任务是什么 不仅仅是“预测下一个词”。DeepSeek-V3 采用多 token 预测(Multi-Token Prediction, MTP): - 模型同时预测多个未来 token(例如下2词、下3词) - 保持因果链,提升学习表达规划的能力 (我们之前专门讲过 MTP,这里不再赘述) 4. 此外,还做了一些性能优化的工作 DeepSeek-V3 做了系统级优化,比如: - 架构优化:采用 Mixture-of-Experts(MoE) + MLA(多头潜在注意力) - FP8混合精度训练:首次验证FP8训练在极大规模模型上的有效性 - DualPipe算法:设计高效流水线并行算法,减少流水线气泡 二、后训练:让模型从“知道很多”变成“说得对、答得好”后训练是指在预训练模型基础上,通过人类提供的任务数据和偏好信号,进一步微调模型,使其能够理解指令、执行任务、并生成符合人类期望的响应,提升其对齐性、实用性和安全性。 1)它解决的问题是: - 模型是否能听懂具体任务指令(如:写摘要、答问题) - 回应是否符合人类偏好(简洁、得体、相关) - 表达是否稳定、逻辑性强、低幻觉 2)输出结果是: - 一个能理解并执行人类指令的对齐模型(aligned model) - 拥有基本助手能力,可用于对话系统、代码协作、文档处理等场景 DeepSeek-V3 的后训练做了什么对于DeepSeek V3,后训练主要包含两个核心步骤:监督微调和强化学习。这两步虽然概念简单,但实施过程中充满了精妙的技术设计和创新理念。 1. 监督微调(SFT):理解并执行人类指令监督微调是DeepSeek V3后训练阶段的第一个关键步骤,旨在引导预训练模型转变为能够理解并执行人类指令的助手。 DeepSeek团队构建了包含150万个跨领域指令实例的精选数据集,针对不同类型的任务采用差异化数据构建方法: 1)推理数据的精细打造: 对于需要深度思考的数据(如数学问题、编程挑战和逻辑谜题),团队没有使用人工构建问答对,而是采用了知识蒸馏的方式。 DeepSeek 首先为特定领域(如代码、数学或通用推理)开发专家模型(通过组合SFT和RL训练而成)。这些专家模型成为数据生成器,为最终模型提供两种类型的SFT样本: - 原始问题和回答对 - 包含系统提示、问题和R1回答的三元组 通过这种方式,使最终模型能够兼具R1的推理深度和良好的输出格式. 2)日常交互数据的人机协作:对于创意写作、角色扮演和简单问答等场景,团队使用DeepSeek-V2.5生成初始回应,再由人类标注者审核验证,确保答案的准确性和适当性。这种人机协作方式既提高了数据创建效率,又保证了数据质量。 2. 强化学习:优化回答,更贴人类偏好SFT 只是“模仿”,强化学习则是“优化偏好”——让模型学会什么样的回答更受欢迎、更合理。 1)奖励来自哪里 DeepSeek V3的奖励模型采用了双轨奖励体系,根据问题性质提供精确反馈: 基于规则的客观奖励:针对有确定答案的问题(如数学或编程题),设计了规则化验证机制: - 要求模型在特定格式提供最终答案,然后通过规则验证 - 对于编程问题,利用编译器根据测试用例生成客观反馈 这种方法提供了不易被操纵的可靠评估标准。 基于模型的灵活奖励:针对开放性问题或主观任务,采用从DeepSeek-V3 SFT checkpoint训练的奖励模型来进行评估 2)优化策略创新:采用群体相对策略优化(GRPO): - 对每个 prompt 生成多个回答 - 比较 group 内得分差距,构建优势函数 - 优化策略,使回答更符合偏好方向 这一方式比传统 PPO 更稳定、计算效率高,更适用于大模型训练。(具体详解参看之前的内容) 三、照例总结一下通过 DeepSeek-V3 的训练过程,我们可以清晰看到大模型成长的两大关键阶段: - 预训练:用超大规模的数据构建语言“底座”,让模型具备通用理解与表达能力。 - 后训练:通过指令数据与人类偏好引导,让模型更懂任务、更贴人类、更实用安全。 |