Files
note_sync/大模型/deepseek/01-基础模型/01-DeepSeek-LLM-2401.02954_abstract.md

16 KiB
Raw Permalink Blame History

DeepSeek LLM:以长期主义扩展开源语言模型

原文标题:DeepSeek LLM: Scaling Open-Source Language Models with Longtermism arXiv:2401.02954 | 发布:2024 年 1 月 5 日(v1) 作者/机构:DeepSeek-AI(Xiao Bi、Deli Chen、Guanting Chen 等,按姓氏字母序排列;DeepSeek 深度求索) 原文 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 数据污染 / 基准过拟合