# DeepSeek LLM:以长期主义扩展开源语言模型 > **原文标题**:DeepSeek LLM: Scaling Open-Source Language Models with Longtermism > **arXiv**:[2401.02954](https://arxiv.org/abs/2401.02954) | **发布**:2024 年 1 月 5 日(v1) > **作者/机构**:DeepSeek-AI(Xiao Bi、Deli Chen、Guanting Chen 等,按姓氏字母序排列;DeepSeek 深度求索) > **原文 PDF**:[01-DeepSeek-LLM-2401.02954.pdf](./01-DeepSeek-LLM-2401.02954.pdf) ## 一、摘要(全文翻译) 开源大语言模型(Large Language Models, LLMs)的快速发展确实令人瞩目。然而,以往文献中所描述的缩放定律(scaling laws)给出了各不相同、彼此矛盾的结论,这为扩展大语言模型蒙上了一层阴影。 我们深入研究缩放定律,并给出了我们独特的发现,这些发现有助于以两种当前被广泛使用的开源配置——7B 与 67B——来扩展大规模模型。 在缩放定律的指导下,我们提出了 DeepSeek LLM,这是一个以长期视角(long-term perspective)致力于推进开源语言模型的项目。为支撑预训练阶段,我们构建了一个目前包含 2 万亿(2 trillion)token 且仍在持续扩充的数据集。我们进一步在 DeepSeek LLM Base 模型上开展有监督微调(Supervised Fine-Tuning, SFT)与直接偏好优化(Direct Preference Optimization, DPO),由此得到 DeepSeek Chat 模型。 我们的评估结果表明,DeepSeek LLM 67B 在一系列基准上超越了 LLaMA-2 70B,尤其是在代码、数学与推理等领域。此外,开放式评估(open-ended evaluation)显示,我们的 DeepSeek LLM 67B Chat 相比 GPT-3.5 展现出更优的表现。 ## 二、核心贡献 1. **超参数缩放定律(Scaling Laws for Hyperparameters)**:为批大小(batch size)与学习率建立关于算力预算 $C$ 的幂律关系式,保证不同预算下的模型都落在近最优区间——解决早期工作未交代超参数、无法确认各预算模型是否最优的隐患。 2. **提出新的模型规模表示 $M$**:以非嵌入 FLOPs/token 取代参数量 $N$,把粗糙的 $C=6ND$ 换成 $C=MD$,使模型/数据最优分配与大规模模型泛化损失预测更准(旧表示在小模型上误差可达 50%)。 3. **揭示数据质量会改变最优分配策略**:数据质量越高,新增算力应越多投向模型而非数据,并把分配系数的差异反过来当作评估数据质量的手段——这可能是各研究缩放结论矛盾的根因。 4. **从零训练并开源 DeepSeek LLM 7B / 67B**:在 2 万亿中英双语 token 上预训练,微调数据约 150 万条;67B 在代码、数学、推理及中文基准上超越 LLaMA-2 70B。 5. **对齐流程与开放域表现**:SFT + DPO 得到的 DeepSeek 67B Chat 在中文 AlignBench 上超过 ChatGPT、仅次于两版 GPT-4;英文 MT-Bench 上 DPO 版达 8.76。 6. **工程经验与反「刷榜」立场**:公开两阶段微调、多选数据注入、系统提示(system prompt)缩放效应等发现,并拒绝为提高榜单分数注入多选数据。 ## 三、方法与技术要点 ### 3.1 数据:去重、过滤、重混与分词器 数据构建分三步:**去重(deduplication)、过滤(filtering)、重混(remixing)**。去重的痛点是只在单个 dump 内去重会遗留大量跨 dump 重复,因此作者把范围扩大到整个 Common Crawl:跨 91 个 dump 统一去重时去重率达 89.8%,而单 dump 仅 22.2%,前者消除的文档量是后者的四倍。过滤阶段从语言与语义两个层面建立质量评估标准,兼顾个体与全局视角以提升信息密度;重混阶段针对数据不平衡,加大代表性不足领域的采样比重。 分词器采用基于 tokenizers 库的字节级字节对编码(Byte-level BPE, BBPE),并像 GPT-2 一样做预分词,避免换行、标点与中日韩(CJK)符号等不同字符类别之间的 token 合并;数字按 LLaMA 做法拆成单个数字位。常规词表规模设为 100000,在约 24 GB 多语种语料上训练,另加 15 个特殊 token 共 100015;模型实际词表配置为 102400,以留出扩展空间。 ### 3.2 架构与超参数:微观沿用 LLaMA,宏观刻意加深深层 微观设计大体沿用 LLaMA:Pre-Norm + RMSNorm、FFN 用 SwiGLU 且中间层维度为 $\frac{8}{3}d_{model}$、位置编码用旋转位置编码(Rotary Embedding)。为降低推理开销,67B 用分组查询注意力(Grouped-Query Attention, GQA)替代多头注意力(Multi-Head Attention, MHA)。 宏观设计刻意不同:7B 为 30 层,67B 为 **95 层**;作者没有像多数 GQA 工作那样加宽 FFN 中间维度,而是把 67B 的参数扩张放在网络深度上,以求更好性能,同时保持与其他开源模型相当的参数量,并便于流水线切分。 具体配置(Table 2): | 模型 | $n_{layers}$ | $d_{model}$ | $n_{heads}$ | $n_{kv\_heads}$ | 序列长度 | 批大小 | 学习率 | 训练 token | |---|---|---|---|---|---|---|---|---| | 7B | 30 | 4096 | 32 | 32 | 4096 | 2304 | 4.2e-4 | 2.0T | | 67B | 95 | 8192 | 64 | 8 | 4096 | 4608 | 3.2e-4 | 2.0T | 初始化标准差 0.006,优化器为 AdamW,$\beta_1=0.9$、$\beta_2=0.95$、weight_decay $=0.1$,梯度裁剪 1.0。**关键替换:用多步(multi-step)学习率调度器替代余弦调度器**——2000 步 warmup 后达到峰值,训练 80% token 后降至峰值的 31.6%,90% 后降至 10%。两者最终性能基本一致,但多步调度器允许扩大训练规模时复用第一阶段结果,便于持续训练(continual training);三段比例调激进虽略优,为兼顾复用比例仍取 80%/10%/10%。 ### 3.3 训练基础设施 使用轻量框架 HAI-LLM,集成数据并行、张量并行、序列并行与 1F1B 流水线并行,配合 FlashAttention 与 ZeRO-1(切分优化器状态);工程上重叠计算与通信(如最后 micro-batch 反传与 ZeRO-1 reduce-scatter),并融合 LayerNorm、GEMM、Adam 更新等算子。为稳定训练,以 bf16 计算、fp32 累积梯度;采用原地(in-place)交叉熵,在内核中把 bf16 logits 即时转 fp32 并算出梯度后覆写 logits,降低显存占用。权重与优化器状态每 5 分钟异步保存,最坏只损失 5 分钟进度,并支持换用不同 3D 并行配置恢复;评估时生成式任务用 vLLM,非生成式任务用连续批处理(continuous batching)。 ### 3.4 缩放定律:先定超参数,再定模型/数据配比 **超参数缩放定律**:在 1e17 预算的小规模实验上网格搜索批大小与学习率,发现泛化误差在很宽区间内保持稳定;把误差超出最小值不超过 0.25% 的参数视为「近最优」,并借多步调度器复用第一阶段,在 1e17–2e19 训练多组模型拟合得到: $$ \eta_{\mathrm{opt}} = 0.3118 \cdot C^{-0.1250}, \qquad B_{\mathrm{opt}} = 0.2920 \cdot C^{0.3271} $$ 即算力越大,最优批大小越大、学习率越小。作者坦承该式未考虑算力之外的因素,同等算力下不同配比的最优参数空间亦略有差异。 **新的模型规模表示**:$C=6ND$ 忽略了注意力算子的开销(完整参数版本还计入对容量贡献较小的词表计算),小模型上误差可达 50%。作者改用非嵌入 FLOPs/token $M$: $$ 6N_1 = 72\,n_{layer}\,d_{model}^{2},\quad 6N_2 = 72\,n_{layer}\,d_{model}^{2}+6\,n_{vocab}\,d_{model} $$ $$ M = 72\,n_{layer}\,d_{model}^{2}+12\,n_{layer}\,d_{model}\,l_{seq}, \qquad C = MD $$ 其中 $6N_1/M$ 在 0.43–0.92、$6N_2/M$ 在 0.81–1.32 之间,偏差具有系统性。优化目标形式化为: $$ M_{\mathrm{opt}}(C), D_{\mathrm{opt}}(C)=\underset{M,D\ \mathrm{s.t.}\ C=MD}{\mathrm{argmin}} L(N,D) $$ 采用 Chinchilla 的 IsoFLOP profile,取 8 个算力预算(1e17–3e20)、每预算约 10 种配比,超参数由上式确定,泛化误差在含 100M token 的独立验证集上以 bits-per-byte 度量。拟合结果: $$ M_{\mathrm{opt}} = 0.1715 \cdot C^{0.5243}, \qquad D_{\mathrm{opt}} = 5.8316 \cdot C^{0.4757} $$ 即模型规模指数略大于数据规模指数,算力增长应更多投向模型;该曲线成功预测了 7B/67B 性能(小规模实验可预测 1000 倍算力的模型)。 **数据质量改变缩放行为**:在三套数据上重复拟合后,质量越高则 $a$ 越大、$b$ 越小。直观解释是高质量数据逻辑清晰、充分训练后预测难度更低,更值得扩大模型。 | 方法(数据) | 模型缩放系数 $a$ | 数据缩放系数 $b$ | |---|---|---| | OpenAI(OpenWebText2) | 0.73 | 0.27 | | Chinchilla(MassiveText) | 0.49 | 0.51 | | 本文(早期内部数据) | 0.450 | 0.550 | | 本文(当前内部数据) | 0.524 | 0.476 | | 本文(OpenWebText2) | 0.578 | 0.422 | ### 3.5 对齐:SFT 与 DPO 对齐数据约 150 万条中英指令,覆盖有益性(helpfulness)与无害性(harmlessness):有益数据 120 万条,其中通用语言任务 31.2%、数学题 46.6%、编程练习 22.2%;安全数据 30 万条,覆盖各类敏感话题。 SFT 阶段 7B 微调 4 个 epoch、67B 仅 2 个(67B 过拟合明显),学习率分别为 1e-5 与 5e-6;7B 上 GSM8K 与 HumanEval 持续提升,67B 很快触及上限。作者还用 3868 条中英提示监测「重复率」(生成无法终止、无限重复文本的比例),发现数学 SFT 数据越多重复越高——数学数据推理模式相似,弱模型难以掌握;两阶段微调与 DPO 都能几乎保分并显著降重。DPO 按有益性与无害性构造偏好数据(候选回复由 DeepSeek Chat 生成),训练 1 个 epoch、学习率 5e-6、批大小 512,配合 warmup 与余弦调度,增强开放域生成能力而对标准基准影响不大。 ## 四、主要实验结果 | 基准 / 任务 | 本模型 | 对比对象 | 说明 | |---|---|---|---| | MATH(4-shot,Base) | 67B:18.7 | LLaMA-2 70B:13.5 | 数学大幅领先 | | GSM8K(8-shot,Base) | 67B:63.4 | LLaMA-2 70B:58.4 | 同上 | | HumanEval(0-shot,Base) | 67B:42.7 | LLaMA-2 70B:28.7 | 代码优势最显著 | | MBPP(3-shot,Base) | 67B:57.4 | LLaMA-2 70B:45.6 | 同上 | | BBH(3-shot,Base) | 67B:68.7 | LLaMA-2 70B:62.9 | 推理领先 | | AGIEval(0-shot,Base) | 67B:41.3 | LLaMA-2 70B:37.2 | 标准化考试 | | MMLU(5-shot,Base) | 67B:71.3 | LLaMA-2 70B:69.0 | 英文知识小幅领先 | | Pile-test(BPB,Base) | 67B:0.642 | LLaMA-2 70B:0.649 | 越低越好 | | RACE-High(5-shot,Base) | 67B:50.7 | LLaMA-2 70B:54.3 | 英文阅读理解落后 | | DROP(F1,1-shot,Base) | 67B:67.9 | LLaMA-2 70B:69.2 | 略有差距 | | C-Eval(5-shot,Base) | 67B:66.1 | LLaMA-2 70B:51.4 | 中文知识断层领先 | | CMMLU(5-shot,Base) | 67B:70.8 | LLaMA-2 70B:53.1 | 同上 | | CHID(0-shot,Base) | 67B:92.1 | LLaMA-2 70B:55.5 | 成语理解 | | CCPM(0-shot,Base) | 67B:88.5 | LLaMA-2 70B:66.2 | 中文文化 | | C3(0-shot,Base) | 67B:75.3 | LLaMA-2 70B:61.7 | 中文阅读理解 | | CMath(3-shot,Base) | 67B:63.0 | LLaMA-2 70B:53.9 | 中文数学 | | GSM8K(0-shot,Chat) | 67B Chat:84.1 | 67B Base:63.4 | 微调后 +20.7 分 | | HumanEval(0-shot,Chat) | 67B Chat:73.8 | 67B Base:42.7 | 微调后 +31.1 分 | | MT-Bench(英文开放域) | 67B Chat DPO:8.76 | GPT-3.5-turbo-0613:8.39;GPT-4-1106-preview:9.26 | 仅次于 GPT-4 | | AlignBench(中文开放域) | 67B Chat DPO:6.69 | ChatGPT(gpt-3.5-turbo-0613):6.08;gpt-4-1106-preview:8.01 | 超越 ChatGPT,仅次于两版 GPT-4 | | LeetCode(held-out) | 67B Chat:17.5 | Qwen 72B Chat:12.7;GPT-4:48.4 | 新题泛化仍远逊 GPT-4 | | 匈牙利高中数学竞赛(held-out) | 67B Chat:58 | Qwen 72B Chat:52;GPT-4:68 | 人工评分 | | IFEval(指令遵循,held-out) | 67B Chat:55.5 | Qwen 72B Chat:50.8;GPT-4:79.3 | prompt-level loose | | Do-Not-Answer(安全) | DeepSeek-67B-Chat:97.8 | ChatGPT:97.7;GPT-4:96.5;LLAMA-2-7B-Chat:99.4 | 分数越高越安全 | | HumanEval(对比代码专精模型) | DeepSeek-LLM-Chat 67B:73.8% | Wizard-Coder 34B:73.2% | 代码数据更少但持平 | | GSM8K(对比数学专精模型,CoT) | 67B Chat:84.1% | MetaMath 70B:82.3% | 跨语言数学全面领先 | | GSM8K(工具集成推理,TIR) | 67B Chat:86.7% | ToRA-Code 34B:80.7% | 程序辅助解题优于 CoT | 领先集中在代码、数学、推理与中文任务:67B 相对 LLaMA-2 70B 在 HumanEval(42.7 vs 28.7)、MBPP(57.4 vs 45.6)、MATH(18.7 vs 13.5)、GSM8K(63.4 vs 58.4)、BBH(68.7 vs 62.9)及几乎全部中文基准(C-Eval 66.1 vs 51.4、CHID 92.1 vs 55.5)上明显更好;在 2T 中英双语数据、不如 LLaMA-2 纯英文专注的前提下,英文语言理解基准(HellaSwag 84.0 对 84.0、ARC、OpenBookQA)基本持平。仍有差距的是 RACE-High(50.7 vs 54.3)、DROP(67.9 vs 69.2)、TriviaQA(78.9 vs 79.5)与 WinoGrande(79.8 vs 80.4)。67B 对 LLaMA-2 70B 的优势大于 7B 对 7B,说明「语言冲突」对更小模型伤害更大;LLaMA-2 未专门训练中文却在 CMath 上不俗,说明数学推理等能力可跨语言迁移,而 CHID 这类需大量中文语料浸润的任务则显著落后。对齐后 Chat 模型在数学与代码上提升超过 20 分,知识/推理类基准仅达到「零样本逼近基座少样本」水平,而 HellaSwag 这类完形任务稳定下降。 ## 五、结论、局限与影响 - **结论**:作者从头训练了 2 万亿中英双语 token 的 DeepSeek LLM 系列,交代了超参数选择、缩放定律与微调尝试;校准了此前的缩放定律,提出新的最优模型/数据分配策略($a=0.5243$、$b=0.4757$),给出「按算力预算预测近最优批大小与学习率」的方法,并指出缩放定律与数据质量相关——这可能是各研究缩放结论矛盾的根因。作者强调所有训练阶段都避免「榜单装饰」与暗箱操作。 - **局限性**(作者自述):DeepSeek Chat 存在大模型通病:预训练后缺乏持续知识更新、可能给出非事实信息(如未经验证的建议)、易产生幻觉;初始版本中文数据不够完备,部分中文特定话题欠佳;数据以中英为主,其他语言能力较脆弱。作者也承认缩放定律研究尚未考虑算力之外影响最优超参数的因素。 - **影响**:论文把「数据质量 → 最优算力分配」的因果链条公开化,为开源模型的规模决策提供可复用方法论;非嵌入 FLOPs/token 与超参数幂律式成为业界常用的拟合口径。文中预告了后续代码智能与混合专家(Mixture-of-Experts, MoE)报告(目标以稀疏模型达到稠密性能),并称下一版将提升推理、中文知识、数学与代码能力;对齐团队的初步实验证明强化学习可增强复杂推理。论文还暴露了「多选数据能刷高榜单但不能真正提升智能」:加入 2000 万条中文多选数据后 MMLU 49.4→60.9、C-Eval 47.0→71.3、CMMLU 49.7→73.8,而生成式评测 TriviaQA 与 ChineseQA 几乎不变,故预训练与微调阶段都剔除多选数据。 ## 六、关键术语对照表 | English | 中文 | |---|---| | Scaling Laws | 缩放定律 | | Longtermism | 长期主义 | | Non-embedding FLOPs/token ($M$) | 非嵌入每 token 计算量 | | IsoFLOP Profile | 等算力曲线(轮廓) | | Compute Budget ($C$) | 算力预算 | | Supervised Fine-Tuning (SFT) | 有监督微调 | | Direct Preference Optimization (DPO) | 直接偏好优化 | | Grouped-Query Attention (GQA) | 分组查询注意力 | | Multi-Head Attention (MHA) | 多头注意力 | | Byte-level BPE (BBPE) | 字节级字节对编码 | | Multi-step Learning Rate Scheduler | 多步学习率调度器 | | Chain-of-Thoughts (CoT) | 思维链 | | Tool-Integrated Reasoning (TIR) | 工具集成推理 | | Held-Out Evaluation | 留出集(防污染)评估 | | Bits-per-Byte (BPB) | 每字节比特数 | | Repetition Ratio | 重复率 | | System Prompt | 系统提示 | | Contamination / Benchmark Overfitting | 数据污染 / 基准过拟合 |