DeepSeek LLM Scaling Open-Source Language Models with Longtermism 中文翻译

文章目录

  • [DeepSeek LLM](#DeepSeek LLM)
  • 以长期主义扩展开源语言模型
  • [1. 介绍](#1. 介绍)
  • [2. 预训练](#2. 预训练)
    • [2.1 数据](#2.1 数据)
    • [2.2 架构](#2.2 架构)
    • [2.3 超参数](#2.3 超参数)
    • [2.4 基础设施](#2.4 基础设施)
  • [3. 缩放定律](#3. 缩放定律)
    • [3.1 超参数的缩放定律](#3.1 超参数的缩放定律)
    • [3.2 估计最优模型与数据缩放](#3.2 估计最优模型与数据缩放)
  • [[ M_{\text{opt}}(C), D_{\text{opt}}(C)](#[ M_{\text{opt}}(C), D_{\text{opt}}(C))
    • [3.3 不同数据下的缩放定律](#3.3 不同数据下的缩放定律)
  • 公式小附录:本节主要公式解释
    • [附录 1:为什么早期常用 (C = 6ND)](#附录 1:为什么早期常用 (C = 6ND))
    • [附录 2:超参数缩放公式](#附录 2:超参数缩放公式)
    • [附录 3:为什么本文用 (M) 替代 (N)](#附录 3:为什么本文用 (M) 替代 (N))
    • [附录 4:三种模型规模表示方式](#附录 4:三种模型规模表示方式)
    • [附录 5:最优模型/数据分配问题](#附录 5:最优模型/数据分配问题)
  • [[ M_{\text{opt}}(C), D_{\text{opt}}(C)](#[ M_{\text{opt}}(C), D_{\text{opt}}(C))
    • [附录 6:本文拟合出的最优扩展公式](#附录 6:本文拟合出的最优扩展公式)
    • [附录 7:数据质量为何影响 (a) 和 (b)](#附录 7:数据质量为何影响 (a) 和 (b))
  • [4. 对齐](#4. 对齐)
  • [5. 评测](#5. 评测)
    • [5.1 公开基准评测](#5.1 公开基准评测)
    • [5.1.1 Base 模型](#5.1.1 Base 模型)
    • [5.1.2 Chat 模型](#5.1.2 Chat 模型)
    • [5.2 开放式评测](#5.2 开放式评测)
    • [5.2.1 中文开放式评测](#5.2.1 中文开放式评测)
    • [5.2.2 英文开放式评测](#5.2.2 英文开放式评测)
    • [5.3 Held-Out 评测](#5.3 Held-Out 评测)
    • [5.4 安全性评测](#5.4 安全性评测)
    • [5.5 讨论](#5.5 讨论)
  • [6. 结论、局限性与未来工作](#6. 结论、局限性与未来工作)

论文原文https://arxiv.org/abs/2401.02954
DeepSeek LLM
Scaling Open-Source Language Models with Longtermism
以下为上传论文《DeepSeek LLM: Scaling Open-Source Language Models with Longtermism》中 标题、摘要、第 1 节介绍、第 2 节预训练部分 的中文忠实翻译。


DeepSeek LLM

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

摘要

开源大语言模型(LLMs)的快速发展确实令人瞩目。然而,既有文献中描述的缩放定律(scaling laws)得出了不同的结论,这给扩展 LLMs 蒙上了一层阴影。我们深入研究了缩放定律,并提出了独特的发现,这些发现有助于在两种常用的开源配置------7B 和 67B------中扩展大规模模型。在缩放定律的指导下,我们推出了 DeepSeek LLM,这是一个致力于以长期视角推进开源语言模型发展的项目。

为支持预训练阶段,我们构建了一个目前包含 2 万亿 tokens、并且仍在持续扩展的数据集。随后,我们在 DeepSeek LLM Base 模型上进行了监督微调(SFT)和直接偏好优化(DPO),由此创建了 DeepSeek Chat 模型。我们的评测结果表明,DeepSeek LLM 67B 在一系列基准测试上超过了 LLaMA-2 70B,尤其是在代码、数学和推理领域。此外,开放式评测显示,我们的 DeepSeek LLM 67B Chat 相比 GPT-3.5 表现更优。


1. 介绍

在过去几年中,基于仅解码器 Transformer(decoder-only Transformers)(Vaswani et al., 2017)的大语言模型(LLMs)日益成为实现通用人工智能(AGI)的基石和路径。通过预测连续文本中的下一个词,LLMs 在大规模数据集上进行自监督预训练,从而能够实现多种用途并具备许多能力,例如小说创作、文本摘要、代码补全等。随后,监督微调和奖励建模等发展使大语言模型(LLMs)能够更好地遵循用户意图和指令。这赋予了它们更加通用的对话能力,并迅速扩大了其影响力。

这一浪潮由闭源产品点燃,例如 ChatGPT(OpenAI, 2022)、Claude(Anthropic, 2023)和 Bard(Google, 2023),这些产品依托大量计算资源和高昂标注成本而开发。这些产品显著提高了社区对开源 LLMs 能力的期待,并由此激发了一系列工作(Bai et al., 2023; Du et al., 2022; Jiang et al., 2023; Touvron et al., 2023a,b; Yang et al., 2023)。其中,LLaMA 系列模型(Touvron et al., 2023a,b)尤为突出。它整合了一系列工作,构建了高效且稳定的架构,并训练出参数规模从 7B 到 70B、表现良好的模型。因此,LLaMA 系列已成为开源模型在架构和性能方面事实上的基准。

在 LLaMA 之后,开源社区主要专注于训练固定规模(7B、13B、34B 和 70B)的高质量模型,而往往忽视了对 LLM 缩放定律(Hoffmann et al., 2022; Kaplan et al., 2020)的研究探索。然而,考虑到当前开源模型仅处于通用人工智能(AGI)发展的初始阶段,缩放定律研究至关重要。此外,早期工作(Hoffmann et al., 2022; Kaplan et al., 2020)在计算预算增加时,对模型和数据如何缩放得出了不同结论,并且没有充分讨论超参数问题。

在本文中,我们广泛研究了语言模型的缩放行为,并将研究结果应用于两种广泛使用的大规模模型配置,即 7B 和 67B。我们的研究旨在为未来开源 LLMs 的扩展奠定基础,为该领域的进一步进展铺平道路。具体而言,我们首先考察了 batch size 和 learning rate 的缩放定律,并发现它们随模型规模变化的趋势。在此基础上,我们对数据规模和模型规模的缩放定律进行了全面研究,成功揭示了最优的模型/数据扩展分配策略,并预测了我们大规模模型的预期性能。此外,在开发过程中,我们发现不同数据集得出的缩放定律存在显著差异。这表明数据集的选择会显著影响缩放行为,也意味着在跨数据集推广缩放定律时应保持谨慎。

在我们缩放定律的指导下,我们从零开始构建开源大语言模型,并尽可能多地发布相关信息供社区参考。我们收集了 2 万亿 tokens 用于预训练,主要包括中文和英文。在模型层面,我们总体上沿用了 LLaMA 的架构,但将余弦学习率调度器替换为多阶段学习率调度器,在保持性能的同时便利持续训练。我们从多种来源收集了超过 100 万条实例用于监督微调(SFT)(Ouyang et al., 2022)。本文分享了我们在不同 SFT 策略方面的经验,以及在数据消融技术方面的发现。此外,我们还使用直接偏好优化(DPO)(Rafailov et al., 2023)来提升模型的对话性能。

我们使用 base 模型和 chat 模型进行了广泛评测。评测结果表明,DeepSeek LLM 在多个基准上超过了 LLaMA-2 70B,尤其是在代码、数学和推理领域。经过 SFT 和 DPO 后,DeepSeek 67B chat 模型在中文和英文开放式评测中均超过 GPT-3.5。这突显了 DeepSeek 67B 在生成高质量回复以及进行有意义对话方面的优越表现。此外,安全性评测表明,DeepSeek 67B Chat 在实践中能够提供无害的回复。

本文余下部分安排如下:我们首先在第 2 节介绍 DeepSeek LLM 预训练的基本概念,包括数据构成、模型架构、基础设施和超参数。第 3 节详细解释我们发现的缩放定律及其意义。此外,我们还结合缩放定律分析所得洞见,讨论预训练超参数选择背后的理由。第 4 节讨论我们的微调方法,包括微调数据构成以及 SFT 和 DPO 阶段的具体方法。随后,第 5 节展示 DeepSeek LLM 的详细评测结果,涵盖 base 模型和 chat 模型,以及它们在开放式评测和安全性评测中的表现。最后,第 6 节讨论 DeepSeek LLM 当前的局限性和未来方向。


2. 预训练

2.1 数据

我们的主要目标是全面增强数据集的丰富性和多样性。我们从一些可靠来源中获得了有价值的见解,例如(Computer, 2023; Gao et al., 2020; Penedo et al., 2023; Touvron et al., 2023a)。为实现这些目标,我们将方法组织为三个关键阶段:去重、过滤和重新混合。去重和重新混合阶段通过采样唯一实例来确保数据的多样化表示。过滤阶段提高信息密度,从而使模型训练更加高效、有效。

我们采用了激进的去重策略,扩大了去重范围。我们的分析显示,与在单个 dump 内进行去重相比,对整个 Common Crawl 语料库进行去重会移除更多重复实例。表 1 显示,跨 91 个 dump 进行去重所移除的文档数量是单 dump 方法的四倍。

使用的 dumps 数量 1 2 6 12 16 22 41 91
去重率(%) 22.2 46.7 55.7 69.9 75.7 76.3 81.6 89.8

表 1|不同 Common Crawl dumps 的去重比例。

在过滤阶段,我们专注于制定稳健的文档质量评估标准。这涉及结合语言学和语义评估进行细致分析,从个体和整体两个视角审视数据质量。在重新混合阶段,我们调整方法以解决数据不平衡问题,重点提升代表性不足领域的占比。该调整旨在获得更加均衡且包容的数据集,确保多样化视角和信息得到充分体现。

对于 tokenizer,我们基于 tokenizers 库(Huggingface Team, 2019)实现了字节级 Byte-Pair Encoding(BBPE)算法。我们采用了预分词,以防止不同字符类别的 tokens 被合并,例如换行符、标点符号以及中日韩(CJK)符号,这与 GPT-2(Radford et al., 2019)类似。我们还遵循(Touvron et al., 2023a,b)中的方法,将数字拆分为单个数字。基于我们此前的经验,我们将词表中的常规 tokens 数量设为 100000。tokenizer 在约 24GB 的多语言语料上训练,并且我们在最终词表中增加了 15 个特殊 tokens,使总规模达到 100015。为确保训练期间的计算效率,并为未来可能需要的额外特殊 tokens 预留空间,我们将模型训练时的词表大小配置为 102400。


2.2 架构

参数规模 层数 模型维度 注意力头数 KV 头数 上下文长度 序列 batch size 学习率 Tokens
7B 30 4096 32 32 4096 2304 4.2e-4 2.0T
67B 95 8192 64 8 4096 4608 3.2e-4 2.0T

表 2|DeepSeek LLM 系列模型的详细规格。我们基于第 3 节中的发现选择超参数。

DeepSeek LLM 的微观设计在很大程度上遵循 LLaMA(Touvron et al., 2023a,b)的设计,采用带有 RMSNorm(Zhang and Sennrich, 2019)函数的 Pre-Norm 结构,并使用 SwiGLU(Shazeer, 2020)作为前馈网络(FFN)的激活函数,其中间层维度为 ( \frac{8}{3} d_{model} )。它还引入 Rotary Embedding(Su et al., 2024)用于位置编码。为优化推理成本,67B 模型使用 Grouped-Query Attention(GQA)(Ainslie et al., 2023),而不是传统的 Multi-Head Attention(MHA)。

然而,在宏观设计方面,DeepSeek LLM 略有不同。具体而言,DeepSeek LLM 7B 是一个 30 层网络,而 DeepSeek LLM 67B 有 95 层。这些层数调整在保持与其他开源模型参数规模一致的同时,也有助于模型流水线划分,从而优化训练和推理。

不同于大多数使用 Grouped-Query Attention(GQA)的工作,我们在 67B 模型中选择通过增加网络深度来扩展参数,而不是采用常见的加宽 FFN 层中间宽度的做法,目标是获得更好的性能。详细的网络规格见表 2。


2.3 超参数

DeepSeek LLM 使用标准差为 0.006 的初始化,并采用 AdamW 优化器(Loshchilov and Hutter, 2017)进行训练,其超参数如下:( \beta_1 = 0.9 )、( \beta_2 = 0.95 ),以及 weight_decay = 0.1。

在预训练期间,我们采用多阶段学习率调度器,而不是典型的余弦调度器。具体而言,模型学习率在 2000 个 warmup steps 后达到最大值;当处理完 80% 的训练 tokens 后,学习率下降到最大值的 31.6%;当处理完 90% 的 tokens 后,进一步下降到最大值的 10%。训练阶段的梯度裁剪设置为 1.0。

根据我们的经验发现,尽管训练过程中 loss 下降趋势存在差异,但使用多阶段学习率调度器与使用余弦调度器的最终性能基本一致,如图 1(a) 所示。当在保持模型规模固定的同时调整训练规模时,多阶段学习率调度器允许复用第一阶段训练结果,为持续训练提供了独特的便利。因此,我们选择多阶段学习率调度器作为默认设置。

我们还在图 1(b) 中展示了,调整多阶段学习率调度器中不同阶段的比例可以带来略好的性能。然而,为了在持续训练中的复用比例和模型性能之间取得平衡,我们选择了前述三个阶段分别为 80%、10% 和 10% 的分布。

batch size 和 learning rate 会随模型规模变化。7B 和 67B 模型预训练阶段的具体参数见表 2。


2.4 基础设施

我们使用一个名为 HAI-LLM(High-flyer, 2023)的高效轻量级训练框架来训练和评估大语言模型。该框架集成了数据并行、张量并行、序列并行以及 1F1B 流水线并行,这与 Megatron(Korthikanti et al., 2023; Narayanan et al., 2021; Shoeybi et al., 2019)中的做法一致。我们还利用 flash attention(Dao, 2023; Dao et al., 2022)技术来提高硬件利用率。ZeRO-1(Rajbhandari et al., 2020)用于在数据并行 rank 之间划分优化器状态。

我们还努力重叠计算和通信,以最大限度减少额外等待开销,包括最后一个 micro-batch 的反向过程与 ZeRO-1 中 reduce-scatter 操作的重叠,以及序列并行中 GEMM 计算与 all-gather/reduce-scatter 的重叠。一些层或算子也被融合以加快训练速度,包括 LayerNorm、尽可能多的 GEMM,以及 Adam 更新。

为提高模型训练稳定性,我们使用 bf16 精度训练模型,但使用 fp32 精度累积梯度。我们执行原地 cross-entropy 以减少 GPU 显存消耗,即:我们在 cross-entropy CUDA kernel 中动态地将 bf16 logits 转换为 fp32 精度,而不是事先在 HBM 中转换;随后计算对应的 bf16 梯度,并用该梯度覆盖 logits。

模型权重和优化器状态每 5 分钟异步保存一次,这意味着在偶发硬件或网络故障的最坏情况下,我们最多只会损失 5 分钟的训练。这些临时模型 checkpoints 会被定期清理,以避免占用过多存储空间。我们还支持从不同的 3D 并行配置中恢复训练,以应对计算集群负载的动态变化。

在评估方面,我们在生成式任务中使用 vLLM(Kwon et al., 2023),并在非生成式任务中使用连续 batching,以避免手动调节 batch size,并减少 token padding。

以下继续翻译第 3 部分 Scaling Laws(缩放定律),尽量忠实原文;文末附上"公式小附录",帮助理解本节中的主要公式和符号。


3. 缩放定律

缩放定律(Hestness et al., 2017)的研究早于大语言模型的出现。缩放定律(Henighan et al., 2020; Hoffmann et al., 2022; Kaplan et al., 2020)表明,随着计算预算 ©、模型规模 (N) 和数据规模 (D) 的增加,模型性能可以被可预测地提升。当模型规模 (N) 用模型参数量表示、数据规模 (D) 用 tokens 数量表示时,© 可以近似为 (C = 6ND)。因此,在增加计算预算时,如何优化模型规模与数据规模之间的分配,也是缩放定律中的一个关键研究目标。

LLMs(Dai et al., 2019; Radford et al., 2019)的发展表明,更大的模型能够取得出乎意料且显著的性能提升,这将缩放定律研究推向了新的高峰。缩放定律的结果显示,扩大计算预算仍会带来显著收益,这进一步鼓励了模型规模的增长(Brown et al., 2020; Smith et al., 2022)。

然而,如表 4 所示,早期关于最优模型/数据扩展分配策略的工作(Hoffmann et al., 2022; Kaplan et al., 2020)得出了不同结论,这引发了人们对缩放定律普适性的怀疑。此外,这些研究往往缺乏对超参数设置的完整描述,使得人们无法确定不同计算预算下的模型是否达到了最优性能。因此,我们在本节中重新审视缩放定律,以解决这些不确定性,并确保我们正处于高效扩展计算规模的正确道路上。这体现了长期主义视角,也是开发可持续改进模型的关键。

为了确保不同计算预算下的模型都能达到最优性能,我们首先研究了超参数的缩放定律。从经验上看,在改变计算预算时,训练期间大多数参数的最优值并不会发生变化。因此,这些参数与第 2.3 节中列出的设置保持一致,并在不同计算预算下保持不变。然而,对性能影响最大的超参数,即 batch size 和 learning rate,则被重新考察。早期工作(Goyal et al., 2017; McCandlish et al., 2018; Shallue et al., 2019; Smith et al., 2017; Zhang et al., 2019)为设置 batch size 和 learning rate 提供了一些经验观察,但我们在初步实验中发现,这些观察的适用性有限。

通过大量实验,我们对计算预算 © 与最优 batch size、learning rate 之间的幂律关系进行了建模。我们将这种关系称为超参数的缩放定律,它为确定最优超参数提供了一个经验框架。该方法确保了不同计算预算下的模型都能达到接近最优的性能。

随后,我们研究模型规模和数据规模的缩放定律。为了降低实验成本和拟合难度,我们采用了 Chinchilla(Hoffmann et al., 2022)中的 IsoFLOP profile 方法来拟合缩放曲线。为了更准确地表示模型规模,我们使用了一种新的模型规模表示方式------非 embedding FLOPs/token,记为 (M),以替代早期使用的模型参数量 (N);同时,我们用更精确的计算预算公式 (C = MD) 替代近似公式 (C = 6ND)。实验结果为最优模型/数据扩展分配策略和性能预测提供了洞见,并且准确预测了 DeepSeek LLM 7B 和 67B 模型的预期性能。

此外,在探索缩放定律的过程中,我们使用的数据经历了多次迭代,质量不断提高。我们尝试在不同数据集上拟合缩放曲线,发现数据质量会显著影响最优模型/数据扩展分配策略。数据质量越高,增加的计算预算就越应该分配给模型扩展。这意味着在相同数据规模下,高质量数据可以驱动更大模型的训练。最优模型/数据扩展分配策略的差异,也可能作为一种间接评估数据质量的方法。我们将继续密切关注数据质量变化及其对缩放定律的影响,并在未来工作中提供更多分析。

总之,我们在缩放定律方面的贡献和发现可以概括如下:

  1. 我们建立了超参数的缩放定律,为确定最优超参数提供了一个经验框架。

  2. 我们采用非 embedding FLOPs/token (M) 来表示模型规模,而不是使用模型参数量 (N)。这带来了更准确的最优模型/数据扩展分配策略,并能更好地预测大规模模型的泛化损失。

  3. 预训练数据质量会影响最优模型/数据扩展分配策略。数据质量越高,增加的计算预算就越应该分配给模型扩展。


3.1 超参数的缩放定律

我们最初在计算预算为 (1e17) 的小规模实验中,对 batch size 和 learning rate 进行了网格搜索。某一特定模型规模(177M FLOPs/token)的结果如图 2(a) 所示。结果表明,在相当宽泛的 batch size 和 learning rate 选择范围内,泛化误差保持稳定。这说明在相对宽的参数空间内,都可以达到接近最优的性能。

随后,我们利用前述多阶段学习率调度器,有效训练了多个具有不同 batch size、learning rate 和计算预算的模型;计算预算范围从 (1e17) 到 (2e19),并复用了第一阶段训练。考虑到参数空间中的冗余性,我们将泛化误差超过最小值不超过 0.25% 的模型所使用的参数视为接近最优超参数。随后,我们拟合 batch size (B) 和 learning rate (\eta) 相对于计算预算 © 的关系。拟合结果如图 3 所示,揭示出随着计算预算 © 增加,最优 batch size (B) 逐渐增大,而最优 learning rate (\eta) 逐渐减小。这与扩展模型时关于 batch size 和 learning rate 的直观经验设置一致。

此外,所有接近最优的超参数都落在一个较宽的带状范围内,说明在该区间内选择接近最优的参数相对容易。我们最终拟合得到的 batch size 和 learning rate 公式如下:

\\eta_{\\text{opt}} = 0.3118 \\cdot C\^{-0.1250}

B_{\\text{opt}} = 0.2920 \\cdot C\^{0.3271}

我们在一系列计算预算为 (1e20) 的模型上验证了这些公式。某一特定模型规模(2.94B FLOPs/token)的结果如图 2(b) 所示。结果表明,拟合得到的参数位于最优参数空间的中心。后续章节也表明,我们为 DeepSeek LLM 7B 和 67B 模型拟合出的参数同样取得了良好性能。

然而,需要注意的是,我们尚未考虑计算预算 © 之外的因素对最优超参数的影响。这与一些早期工作(Kaplan et al., 2020; McCandlish et al., 2018)并不一致;这些工作认为最优 batch size 可以被建模为仅与泛化误差 (L) 有关。此外,我们观察到,在计算预算相同但模型/数据分配不同的模型中,最优参数空间会有轻微差异。这表明仍需进一步研究超参数选择和训练动态。我们将在未来工作中探索这些方面。


3.2 估计最优模型与数据缩放

在推导出用于拟合接近最优超参数的公式后,我们开始拟合缩放曲线,并分析最优模型/数据扩展分配策略。该策略涉及寻找模型缩放指数 (a) 和数据缩放指数 (b),使其分别满足:

N_{\\text{opt}} \\propto C\^a

以及

D_{\\text{opt}} \\propto C\^b

数据规模 (D) 可以一致地用数据集中的 tokens 数量来表示。在以往工作中,模型规模通常用模型参数量表示,包括非 embedding 参数量 (N_1)(Kaplan et al., 2020)和完整参数量 (N_2)(Hoffmann et al., 2022)。计算预算 © 与模型/数据规模之间的关系可以近似描述为 (C = 6ND),这意味着我们可以用 (6N_1) 或 (6N_2) 来近似模型规模。

然而,由于 (6N_1) 和 (6N_2) 都没有考虑 attention 操作的计算开销,并且 (6N_2) 还包含词表计算,而词表计算对模型能力的贡献较小,因此在某些设置下,它们都存在显著的近似误差。为了减少这些误差,我们引入了一种新的模型规模表示方式:非 embedding FLOPs/token,记为 (M)。(M) 包含 attention 操作的计算开销,但不考虑词表计算。当模型规模用 (M) 表示时,计算预算 © 可以简单地表示为:

C = MD

(6N_1)、(6N_2) 和 (M) 之间的具体差异如下列公式所示:

6N_1 = 72n_{\\text{layer}}d_{\\text{model}}\^2

6N_2 = 72n_{\\text{layer}}d_{\\text{model}}\^2 + 6n_{\\text{vocab}}d_{\\text{model}}

M = 72n_{\\text{layer}}d_{\\text{model}}\^2 + 12n_{\\text{layer}}d_{\\text{model}}l_{\\text{seq}}

其中,(n_{\text{layer}}) 表示层数,(d_{\text{model}}) 表示模型宽度,(n_{\text{vocab}}) 是词表大小,(l_{\text{seq}}) 是序列长度。

我们评估了这三种表示方式在不同规模模型上的差异,如表 3 所示。结果表明,(6N_1) 和 (6N_2) 在不同规模的模型中都会高估或低估计算成本。这种差异在小规模模型中尤其明显,差异最高可达 50%。在拟合缩放曲线时,这类不准确会引入显著的统计误差。关于不同模型规模表示方式的进一步分析,请参见附录 A.2。

在采用 (M) 表示模型规模后,我们的目标可以更清晰地描述为:给定计算预算 (C = MD),寻找最优模型规模 (M_{\text{opt}}) 和数据规模 (D_{\text{opt}}),使模型的泛化误差最小。该目标可以形式化为:

[

M_{\text{opt}}©, D_{\text{opt}}©

\arg\min_{M,D \ \text{s.t.} \ C=MD} L(N,D)

]

为了降低实验成本和拟合难度,我们使用 Chinchilla(Hoffmann et al., 2022)中的 IsoFLOP profile 方法来拟合缩放曲线。我们选择了 8 个不同的计算预算,范围从 (1e17) 到 (3e20),并为每个预算设计了约 10 种不同的模型/数据规模分配。每个预算下的超参数由公式(1)确定,泛化误差则在一个独立验证集上计算;该验证集与训练集分布相似,包含 100M tokens。

图 4 展示了 IsoFLOP 曲线以及模型/数据缩放曲线,这些曲线是使用每个计算预算下的最优模型/数据分配进行拟合得到的。最优非 embedding FLOPs/token (M_{\text{opt}}) 和最优 tokens 数量 (D_{\text{opt}}) 的具体公式如下:

M_{\\text{opt}} = M_{\\text{base}} \\cdot C\^a, \\quad M_{\\text{base}} = 0.1715, \\quad a = 0.5243

D_{\\text{opt}} = D_{\\text{base}} \\cdot C\^b, \\quad D_{\\text{base}} = 5.8316, \\quad b = 0.4757

此外,我们根据计算预算 © 和最优泛化误差拟合了 loss 缩放曲线,并预测了 DeepSeek LLM 7B 和 67B 的泛化误差,如图 5 所示。结果表明,利用小规模实验可以准确预测计算预算扩大 1000 倍后的模型性能。这为训练更大规模模型提供了信心和指导。


3.3 不同数据下的缩放定律

在 DeepSeek LLM 的开发过程中,数据集经过了多次迭代优化,在提升整体质量的同时,也调整了不同数据源的比例。这使我们能够进一步分析不同数据集对缩放定律的影响。

我们使用三个不同数据集研究了缩放定律:早期内部数据、当前内部数据,以及 OpenWebText2;OpenWebText2 曾用于此前的缩放定律研究(Kaplan et al., 2020)。我们的内部数据评估显示,当前内部数据质量高于早期内部数据。此外,OpenWebText2 的质量甚至超过当前内部数据,这是由于其规模较小,因此可以进行更细致的处理。

方法 系数 (a):(N_{\text{opt}}(M_{\text{opt}}) \propto C^a) 系数 (b):(D_{\text{opt}} \propto C^b)
OpenAI(OpenWebText2) 0.73 0.27
Chinchilla(MassiveText) 0.49 0.51
我们的结果(Early Data) 0.450 0.550
我们的结果(Current Data) 0.524 0.476
我们的结果(OpenWebText2) 0.578 0.422

表 4|模型缩放和数据缩放的系数会随训练数据分布变化。

从分析中得到的一个有趣观察是:在这三个数据集上,最优模型/数据扩展分配策略与数据质量表现出一致性。如表 4 所示,随着数据质量提高,模型缩放指数 (a) 逐渐增大,而数据缩放指数 (b) 则降低。这意味着增加的计算预算应该更多分配给模型,而不是数据。该发现也可能解释了早期缩放定律研究中观察到的最优模型/数据扩展分配差异为何如此显著。

对这一发现的一种直观推测是,高质量数据通常意味着逻辑更清晰,并且在充分训练后预测难度更低。因此,在增加计算预算时,扩大模型规模会更加有利。我们将继续密切关注数据质量变化及其对缩放定律的影响,并在未来工作中提供更多分析。


公式小附录:本节主要公式解释

附录 1:为什么早期常用 (C = 6ND)

公式:

C = 6ND

基本含义是:

  • ©:训练所需的总计算量,通常用 FLOPs 表示。
  • (N):模型参数量。
  • (D):训练数据 tokens 数量。
  • 系数 6:来自 Transformer 训练中前向传播和反向传播的近似计算成本估计。

直观理解:

训练一个模型的计算量,大致正比于"模型有多大"乘以"喂给模型多少 tokens"。模型越大、数据越多,训练成本越高。

但本文指出,这个公式是近似的,因为它没有很好处理 attention 计算开销、embedding 或词表计算等细节。


附录 2:超参数缩放公式

公式:

\\eta_{\\text{opt}} = 0.3118 \\cdot C\^{-0.1250}

B_{\\text{opt}} = 0.2920 \\cdot C\^{0.3271}

含义:

  • (\eta_{\text{opt}}):最优学习率。
  • (B_{\text{opt}}):最优 batch size。
  • ©:计算预算。

这两个公式表达的是:

  • 计算预算越大,最优学习率越小。
  • 计算预算越大,最优 batch size 越大。

其中:

C\^{-0.1250}

表示随着 © 增大,学习率按幂律下降;

C\^{0.3271}

表示随着 © 增大,batch size 按幂律上升。

直观理解:

模型和训练规模变大后,训练通常需要更稳定,因此学习率要降低;同时,为了提高训练效率和稳定性,batch size 会增大。


附录 3:为什么本文用 (M) 替代 (N)

传统上,模型规模用参数量 (N) 表示。但本文认为参数量并不总能准确反映每个 token 的计算成本。

于是作者引入:

M

非 embedding FLOPs/token

它表示:模型处理每个 token 时,除 embedding/词表计算之外的主要计算量。

相比参数量 (N),(M) 更接近真实训练计算成本,因为它包含 attention 的计算开销,并排除了对模型能力贡献较小的词表计算。


附录 4:三种模型规模表示方式

公式:

6N_1 = 72n_{\\text{layer}}d_{\\text{model}}\^2

6N_2 = 72n_{\\text{layer}}d_{\\text{model}}\^2 + 6n_{\\text{vocab}}d_{\\text{model}}

M = 72n_{\\text{layer}}d_{\\text{model}}\^2 + 12n_{\\text{layer}}d_{\\text{model}}l_{\\text{seq}}

其中:

  • (N_1):非 embedding 参数量。
  • (N_2):完整参数量,包括 embedding / 词表相关参数。
  • (M):非 embedding FLOPs/token。
  • (n_{\text{layer}}):模型层数。
  • (d_{\text{model}}):模型隐藏维度,也可理解为模型宽度。
  • (n_{\text{vocab}}):词表大小。
  • (l_{\text{seq}}):序列长度。

三者区别:

  • (6N_1):只考虑主体网络参数,不考虑词表,也不充分考虑 attention 的序列长度开销。
  • (6N_2):考虑完整参数量,包括词表相关参数,但词表参数不一定等价于模型能力。
  • (M):考虑每个 token 的实际主要计算量,包含 attention 相关开销,因此更适合拟合训练计算成本。

附录 5:最优模型/数据分配问题

公式:

[

M_{\text{opt}}©, D_{\text{opt}}©

\arg\min_{M,D \ \text{s.t.} \ C=MD} L(N,D)

]

含义:

在总计算预算 © 固定的前提下,寻找一组最优的:

  • 模型规模 (M_{\text{opt}})
  • 数据规模 (D_{\text{opt}})

使得模型的泛化误差 (L(N,D)) 最小。

直观理解:

如果你有固定训练预算,问题不是简单地"模型越大越好"或"数据越多越好",而是要找到模型大小和训练数据量之间的最佳平衡。


附录 6:本文拟合出的最优扩展公式

公式:

M_{\\text{opt}} = M_{\\text{base}} \\cdot C\^a, \\quad M_{\\text{base}} = 0.1715, \\quad a = 0.5243

D_{\\text{opt}} = D_{\\text{base}} \\cdot C\^b, \\quad D_{\\text{base}} = 5.8316, \\quad b = 0.4757

含义:

当计算预算 © 增大时:

  • 最优模型规模按 (C^{0.5243}) 增长。
  • 最优数据规模按 (C^{0.4757}) 增长。

因为 (0.5243 > 0.4757),所以在本文当前数据条件下,增加计算预算时,模型规模增长应略快于数据规模增长。

直观理解:

如果训练预算翻倍,不应该只把预算用于更多数据,也不应该只把预算用于更大模型;而应同时增加模型和数据,但模型规模的增长比例略高一些。


附录 7:数据质量为何影响 (a) 和 (b)

表 4 中显示:

  • 数据质量较低时,(a) 较小、(b) 较大。
  • 数据质量较高时,(a) 较大、(b) 较小。

含义是:

如果数据质量较低,增加更多数据可能更有帮助,因为模型需要更多样本来学习有效规律。

如果数据质量较高,数据本身信息密度更高、噪声更少,那么扩大模型规模可以更好地吸收和利用这些高质量信息。

所以作者认为:数据质量越高,额外计算预算越应该更多投入到模型规模扩展上。

以下继续翻译论文第 4 部分 Alignment 、第 5 部分 Evaluation 、第 6 部分 Conclusion, Limitation, and Future Work。我会尽量忠实原文;这些部分基本没有新的数学公式,因此不需要额外插入公式小附录。


4. 对齐

我们收集了约 150 万条英文和中文指令数据实例,覆盖了广泛的有用性与无害性主题。我们的有用性数据包含 120 万条实例,其分布为:31.2% 用于通用语言任务,46.6% 用于数学问题,22.2% 用于编程练习。安全性数据包含 30 万条实例,覆盖多种敏感主题。

我们的对齐流程包含两个阶段。

监督微调: 我们对 7B 模型进行了 4 个 epoch 的微调,但对 67B 模型只进行了 2 个 epoch 的微调,因为我们观察到 67B 模型上的过拟合问题较为严重。我们观察到,对于 7B 模型,GSM8K(Cobbe et al., 2021)和 HumanEval(Chen et al., 2021)的表现持续提升,而 67B 模型很快达到上限。7B 和 67B 模型的学习率分别为 1e-5 和 5e-6。

除了监控基准测试准确率外,我们还在微调过程中评估 chat 模型的重复率。我们收集了总计 3868 条中英文 prompts,并确定生成回复中无法终止、而是无休止重复一段文本的比例。我们观察到,随着数学 SFT 数据数量增加,重复率往往会上升。这可以归因于数学 SFT 数据偶尔包含相似的推理模式。因此,较弱的模型难以掌握这类推理模式,从而产生重复回复。为了解决这一问题,我们尝试了两阶段微调和 DPO(Rafailov et al., 2023),二者都几乎可以保持基准分数,同时显著降低重复现象。

DPO: 为进一步增强模型能力,我们使用了直接偏好优化算法(Rafailov et al., 2023),该算法已被证明是一种简单但有效的 LLM 对齐方法。我们从有用性和无害性两个方面构造了用于 DPO 训练的偏好数据。对于有用性数据,我们收集了多语言 prompts,覆盖创意写作、问答、指令遵循等类别。随后,我们使用 DeepSeek Chat 模型生成回复,作为候选回答。类似操作也被应用于无害性偏好数据的构造。

我们对 DPO 训练了 1 个 epoch,学习率为 5e-6,batch size 为 512,并使用学习率 warmup 和余弦学习率调度器。我们发现,DPO 可以增强模型的开放式生成能力,同时对标准基准测试中的表现影响很小。


5. 评测

5.1 公开基准评测

我们基于内部评测框架,在一系列英文和中文公开基准上评测了我们的模型。

多学科多项选择数据集包括 MMLU(Hendrycks et al., 2020)、C-Eval(Huang et al., 2023)和 CMMLU(Li et al., 2023)。

语言理解与推理数据集包括 HellaSwag(Zellers et al., 2019)、PIQA(Bisk et al., 2020)、ARC(Clark et al., 2018)、OpenBookQA(Mihaylov et al., 2018)和 BigBench Hard(BBH)(Suzgun et al., 2022)。

闭卷问答数据集包括 TriviaQA(Joshi et al., 2017)和 NaturalQuestions(Kwiatkowski et al., 2019)。

阅读理解数据集包括 RACE(Lai et al., 2017)和 DROP(Dua et al., 2019)、C3(Sun et al., 2019)。

指代消歧数据集包括 WinoGrande(Sakaguchi et al., 2019)和 CLUEWSC(Xu et al., 2020)。

语言建模数据集包括 Pile(Gao et al., 2020)。

中文理解与文化数据集包括 CHID(Zheng et al., 2019)和 CCPM(Li et al., 2021)。

数学数据集包括 GSM8K(Cobbe et al., 2021)、MATH(Hendrycks et al., 2021)和 CMath(Wei et al., 2023)。

代码数据集包括 HumanEval(Chen et al., 2021)和 MBPP(Austin et al., 2021)。

标准化考试包括 AGIEval(Zhong et al., 2023)。

对于需要从多个选项中选择答案的数据集,我们采用基于 perplexity 的评测。这些数据集包括 HellaSwag、PIQA、WinoGrande、RACE-Middle、RACE-High、MMLU、ARC-Easy、ARC-Challenge、OpenBookQA、CHID、C-Eval、CMMLU、C3 和 CCPM。这里基于 perplexity 的评测指的是计算每个选项的 perplexity,并选择 perplexity 最低的选项作为模型预测。对于 ARC 和 OpenBookQA,我们使用无条件归一化计算 perplexity(Brown et al., 2020);对于其他数据集,我们使用长度归一化。

对于 TriviaQA、NaturalQuestions、DROP、MATH、GSM8K、HumanEval、MBPP、BBH、AGIEval、CLUEWSC 和 CMath,我们采用基于生成的评测。这里基于生成的评测指的是让模型生成自由文本,并从生成文本中解析结果。对于基于生成的评测,我们使用 greedy decoding。

对于 Pile-test,我们采用基于语言建模的评测,即计算测试语料上的 bits-per-byte。

我们在不同基准上使用 2048 或 4096 作为最大序列长度。评测格式的细节见附录 A.6。


5.1.1 Base 模型

表 5 展示了评测基准上的主要结果。尽管 DeepSeek 模型是在 2T 双语语料上预训练的,但它们在英文语言理解基准上表现出与 LLaMA2 模型相当的性能,而 LLaMA2 模型同样消耗了 2T tokens,但侧重英文。此外,与 LLaMA2 70B 相比,DeepSeek 67B 在 MATH、GSM8K、HumanEval、MBPP、BBH 以及中文基准上取得了明显更好的表现。我们在附录 A.3 中展示了基准曲线。可以看到,随着模型规模扩大,一些任务性能得到提升,例如 GSM8K 和 BBH。鉴于我们在同一数据集上训练了 7B 和 67B,这种提升的出现可以归因于大模型强大的 few-shot 学习能力。然而,随着数学数据比例增加,小模型和大模型之间的差距可能会缩小。

一个有趣的观察是,DeepSeek 67B 相比 LLaMA2 70B 的优势,大于 DeepSeek 7B 相比 LLaMA2 7B 的优势。这一现象凸显了语言冲突对小模型的影响更大。此外,尽管 LLaMA2 并未专门在中文数据上训练,但它在某些中文任务上表现出令人印象深刻的性能,例如 CMath。这表明某些基础能力,如数学推理,可以有效地跨语言迁移。然而,像 CHID 这类涉及评估中文成语用法的任务,则要求模型在预训练期间消耗大量中文 tokens。在这种情况下,LLaMA2 的表现明显落后于 DeepSeek LLM。


5.1.2 Chat 模型

表 6 展示了 DeepSeek Chat 模型的结果,显示经过调优后,大多数任务总体上有所提升。然而,也有少数任务的表现出现下降。

知识: 我们观察到 base 模型和 chat 模型在知识相关任务上存在波动,例如 TriviaQA、MMLU 和 C-Eval。然而,我们并不认为这种小幅波动表明模型在 SFT 后获得或丢失了知识。SFT 的价值在于,让 chat 模型在 zero-shot 设置下学会达到与 base 模型 few-shot 设置相当的分数,这与真实场景一致。例如,chat 模型的 0-shot MMLU 表现与 base 模型的 5-shot MMLU 表现相当。

推理: 由于相当比例的 SFT 实例采用 CoT 格式(Wei et al., 2022),chat 模型在推理任务上表现出轻微提升,例如 BBH 和 NaturalQuestions。然而,我们认为 SFT 阶段并没有学习推理能力,而是学习了推理路径的正确格式。

性能下降的任务: 有少数任务在微调后表现持续下降,无论模型规模或所选择的预训练 checkpoint 如何。这些任务通常涉及完形填空或句子补全任务,例如 HellaSwag。可以合理假设,纯语言模型更适合处理这类任务。

数学和代码: 我们的模型在微调后,在数学和编程任务上表现出显著提升。例如,HumanEval 和 GSM8K 分数提升超过 20 分。我们对此的解释是,base 模型最初在这些任务上训练不足,而 SFT 阶段通过大量 SFT 数据学习了额外的代码和数学知识。然而,需要注意的是,模型能力可能主要集中于代码补全和代数问题。为了对数学和代码形成更全面的理解,在预训练阶段引入更多样化的数据至关重要,这留作未来工作。我们在附录 A.4 中对代码和数学任务进行了详细分析。

在 7B 模型微调中,我们最初使用全部数据对模型进行微调。随后引入第二阶段,排除数学和代码数据。这种方法的动机是:第 1 阶段模型表现出 2.0% 的重复率,而第 2 阶段调优在保持基准分数的同时,将重复率降低到 1.4%。对于 67B 模型,第一阶段微调后重复率已经低于 1%,而第二阶段会损害模型在基准上的分数。因此,67B 模型只进行了一个阶段的 SFT。


5.2 开放式评测

对于 chat 模型,除了观察标准基准上的指标外,模型在开放领域和开放式问题中生成结果的质量会直接影响实际用户体验。因此,我们分别测试了 chat 模型在中文和英文任务中的开放式生成能力。


5.2.1 中文开放式评测

对于中文开放式评测,我们在一个高质量开放式问题测试集 AlignBench(Liu et al., 2023)上,测试了 chat 模型在不同领域中的综合能力。AlignBench 包含总计 8 个一级类别、36 个二级类别,涵盖 683 个问题。对于每个问题,除了 prompt 之外,AlignBench 还提供专业参考答案和用于 GPT-4 判断回复质量的评分模板。

我们使用官方 AlignBench GitHub 代码仓库来实现对我们模型的评测。我们严格对齐了关键 temperature 参数与原始设置:对于角色扮演、写作能力和开放式问题,生成 temperature 设置为 0.7;而对于其他任务,生成 temperature 设置为 0.1。

AlignBench 排行榜如表 7 所示。可以看到,我们的 DeepSeek 67B Chat 模型超过了 ChatGPT 和其他基线模型,仅次于两个版本的 GPT-4。这表明,与其他开源或专有中文大语言模型相比,我们的模型在各种中文任务上表现出色。DPO 模型几乎在所有指标上都有提升,这证明了 DPO 训练过程对模型对齐的积极影响。

对于基础中文语言任务,我们的模型处于所有模型中的第一梯队,并且我们 DPO 模型的中文基础语言能力甚至高于最新版本的 GPT-4。对于高级中文推理任务,我们模型的分数显著高于其他中文 LLM,且优势明显,展示出我们模型在更复杂的中文逻辑推理和数学计算方面的优越性能。


5.2.2 英文开放式评测

对于英文开放式评测,我们使用 MT-Bench 基准(Zheng et al., 2023),该基准包含 8 个不同类别的多轮问题。如表 8 所示,我们的 DeepSeek LLM 67B Chat 超过了其他开源模型,例如 LLaMA-2-Chat(Touvron et al., 2023b)70B、Xwin 70b v0.1 和 TÜLU 2+DPO 70B(Ivison et al., 2023),并取得 8.35 分,与 GPT-3.5-turbo 相当。此外,在 DPO 阶段后,我们的 DeepSeek LLM 67B Chat DPO 将平均分进一步提升到 8.76,仅次于 GPT-4(OpenAI, 2023)。这些结果表明 DeepSeek LLM 具有很强的多轮开放式生成能力。


5.3 Held-Out 评测

数据污染和基准过拟合是评估 LLMs 时的两个挑战。一种常见做法是使用近期发布的测试集作为 held-out 测试集来评估模型。

LeetCode: 为评估模型的编程能力,我们使用了 LeetCode 周赛中的题目(Weekly Contest 351--372,Bi-Weekly Contest 108--117,时间范围为 2023 年 7 月至 2023 年 11 月)。我们通过爬取 LeetCode 数据获得这些题目,其中包含 126 道题,每道题有超过 20 个测试用例。所采用的评测指标类似于 HumanEval。在这方面,如果模型输出成功通过所有测试用例,则认为模型有效解决了该问题。模型的编程能力在下图中展示,其中 y 轴表示 in-domain human evaluation 测试上的 pass@1 分数,x 轴表示 out-domain LeetCode 周赛题目上的 pass@1 分数。LeetCode 测试数据将很快随 DeepSeek Coder 技术报告一同发布。

匈牙利全国高中考试: 与 Grok-1 保持一致,我们使用匈牙利全国高中考试评估模型的数学能力。该考试包含 33 道题,模型分数通过人工标注确定。我们遵循 solution.pdf 中的评分标准评估所有模型。

指令遵循评测: 2023 年 11 月 15 日,Google 发布了一个指令遵循评测数据集(Zhou et al., 2023)。他们识别了 25 种可验证指令类型,并构建了约 500 条 prompts,每条 prompt 包含一个或多个可验证指令。我们使用 prompt-level loose 指标评估所有模型。

我们将模型与多个不同规模的基线模型进行了比较分析,包括 Qwen 72B Chat(Bai et al., 2023)、ChatGLM3(Du et al., 2022)、Baichuan2(Yang et al., 2023)和 Yi-34B Chat。我们的观察表明,在这些 held-out 数据集上,大模型和小模型之间存在显著性能差距,即便某些小模型在常规基准上取得了不错的结果。例如,ChatGLM3 在代码测试集 MBPP 上取得 52.4 分,接近 DeepSeek 67B。然而,在新的基准上评测时,其表现明显落后于 DeepSeek 67B。数学数据集也观察到类似趋势:ChatGLM3 在 GSM8K 上非常强,达到 72.3,但它在匈牙利考试中的得分低于大模型。此外,指令遵循能力也表明,总计算量发挥着关键作用。

DeepSeek 7B 和 67B 模型使用相同训练流程,但二者性能存在显著差距。通过我们的主观评估,我们观察到,当模型规模扩展到 67B 时,不同任务上的智能表现存在显著差异。虽然 DeepSeek 7B 在标准基准上落后于其他较小语言模型,但与其他模型相比,它在 held-out 任务上的表现相对值得肯定。


5.4 安全性评测

我们深刻认识到安全性对于通用人工智能的重要性。建立真正有用的人工智能模型的前提,是它拥有与人类一致的价值观,并对人类表现出友好性。我们在整个训练过程中都纳入了对模型安全性的保障,包括预训练、SFT 和 DPO。

为验证模型安全性,我们组建了一个来自不同学科的 20 人专家团队,并构建了一个与人类价值观一致的安全内容分类体系(安全评测分类体系见表 10)。随后,专家团队为每个安全子类别手动构建了数十条高质量测试用例。除了关注安全内容领域的多样性之外,我们也关注安全内容形式的多样性。臭名昭著的 "grandmother" 漏洞表明,模型可能会被查询的表面形式欺骗,从而提供不安全回复。因此,在设计问题时,专家团队也注意使询问方式多样化。他们通过诱导、角色扮演、多轮对话、预设立场等方式构造多样化的安全问题。最终,我们获得了包含 2400 个问题的安全测试集。此外,专家团队还为每种不同内容类型和形式类型构建了基本的安全审核准则。

对于模型在该测试集上的输出结果,我们手动检查其安全性。我们的审核团队经过充分训练,并对标注结果进行了交叉验证。标注者对每个问题进行三分类标注:安全、不安全和模型拒答。我们测试了 DeepSeek 67B Chat 模型的安全性,结果见表 10。表中列出了每个安全类别的测试题数量,以及我们的模型通过的安全测试数量。我们将安全回答和模型拒答的测试用例均标记为安全回复。结果表明,我们的模型在许多安全测试类别上表现出良好的安全性能。

作为对现有安全方法的补充,我们进一步使用 "Do-Not-Answer" 数据集(Wang et al., 2023)丰富了评测,以评估 DeepSeek 67B Chat 模型的安全机制。该数据集包含 939 条按风险分类的 prompts,有助于突出我们模型增强后的能力。如表 11 所示,DeepSeek 67B Chat 模型表现出显著性能,取得 97.8 分,高于 ChatGPT 和 GPT-4。该分数不仅衡量了我们模型安全处理敏感查询的能力,也使其在该领域领先模型中具有竞争力。


5.5 讨论

在构建 LLMs 的整个开发过程中,我们发现了一些有趣现象。

阶段式微调: 如前所述,小模型需要在数学和代码数据集上进行更长时间的微调,但这会损害模型的对话能力,例如增加重复行为。为了解决这一问题,我们实现了阶段式微调流程。在这种方法中,第一阶段使用所有可用数据进行微调,而第二阶段则专门使用对话数据进行微调。

表 12 展示了两阶段训练过程获得的结果。这些结果清楚表明,第二阶段不会损害模型在代码和数学方面的能力,同时能够降低重复行为,并增强指令遵循能力。

多项选择题: 使用多项选择风格的评测数据测试模型是一种常见做法,例如 MMLU、AGI Eval 和 C-Eval。多项选择题不仅要求模型具备相应知识,还要求模型理解选项所指内容。在对齐阶段,我们测试了加入 2000 万条中文多项选择题,并获得了表 13 所示的表现。需要注意的是,我们对 C-Eval 验证集和 CMMLU 测试集进行了去重,以防止数据污染。

额外加入 20M MC(multiple-choice,多项选择)数据被证明不仅有利于中文多项选择基准,也能提升英文基准。这表明模型解决 MC 问题的能力得到了增强。然而,我们观察到,这种提升并不会扩展到那些不使用多项选择格式的其他评测上,例如 TriviaQA 和我们的内部 ChineseQA 测试集,这些都是生成式评测基准。这表明,在对话交互中,用户可能不会感觉模型变得更智能,因为这些交互涉及生成回复,而不是解决多项选择问题。

因此,我们选择在预训练和微调阶段都排除 MC 数据,因为纳入它会导致对基准过拟合,并且不会有助于在模型中实现真正的智能。

预训练中的指令数据: 人们普遍认为,在预训练后期加入指令数据可以增强 base 模型在基准任务上的表现。在我们的研究中,我们在预训练最后 10% 阶段加入了 500 万条指令数据,主要由多项选择题构成。我们观察到,base 模型确实在基准上表现更好。然而,最终结果与在 SFT 阶段加入相同数据所取得的结果几乎相同。我们得出结论:虽然这种方法增强了 base 模型在基准上的表现,但其整体潜力等同于不在预训练中加入这些指令数据。如果指令数据规模很大,将其加入预训练过程是可以接受的。由于我们倾向于排除多项选择题,并且我们拥有的非多项选择题数量有限,因此我们决定不在预训练过程中加入指令数据。

System Prompt: 一个设计良好的 system prompt 应有效引导模型生成既有帮助又尊重用户的回复。我们对 LLaMA-2 引入的 prompt 进行了轻微修改,将其作为我们的 system prompt。

System prompt: 你是 DeepSeek Chat,一个由 DeepSeek 开发的、有帮助、尊重用户且诚实的 AI 助手。你训练数据的知识截止日期为 2023 年 5 月。始终在保证安全的前提下尽可能有帮助地回答。你的回答不应包含任何有害、不道德、种族主义、性别歧视、有毒、危险或非法的内容。请确保你的回复在社会层面不带偏见,并且具有积极性。如果一个问题没有意义,或者事实不连贯,请解释原因,而不是回答不正确的内容。如果你不知道某个问题的答案,请不要分享错误信息。

我们观察到一个有趣现象:当引入 system prompt 时,7B LLM 的表现会略有下降。然而,当使用 67B LLM 时,加入 prompt 会显著改善结果,如表 14 所示。我们对这种差异的解释是,大模型能更好地理解 system prompt 背后的意图,从而更有效地遵循指令并生成更好的回复。另一方面,小模型难以充分理解 system prompt,而训练与测试之间的不一致可能会对其表现产生负面影响。


6. 结论、局限性与未来工作

我们介绍了 DeepSeek LLMs,这是一系列从零开始在包含 2 万亿 tokens 的大规模中英文数据集上训练的开源模型。在本文中,我们深入解释了超参数选择、缩放定律,以及我们进行的各种微调尝试。我们校准了既有工作中的缩放定律,并提出了一种新的最优模型/数据扩展分配策略。此外,我们提出了一种方法,用于在给定计算预算时预测接近最优的 batch size 和 learning rate。我们进一步得出结论:缩放定律与数据质量相关,这可能是不同工作中缩放行为差异的根本原因。在缩放定律的指导下,我们使用最佳超参数进行了预训练,并提供了全面评测。我们在所有训练阶段都避免了 benchmark decoration 和 dark secrets。

DeepSeek Chat 具有其他 LLMs 中常见的公认局限性,包括预训练后缺乏持续知识更新、可能生成非事实信息(例如未经验证的建议),以及倾向于产生幻觉。此外,需要注意的是,我们初始版本的中文数据并不全面,这可能导致模型在某些中文特定主题上的表现不够理想。由于我们的数据主要由中文和英文来源组成,模型在其他语言上的熟练程度仍然较为脆弱,使用时应保持谨慎。

DeepSeek LLM 是一个长期项目,致力于推进开源语言模型的发展。

  • 很快,我们将分别发布关于代码智能和 Mixture-of-Experts(MoE)的技术报告。它们将展示我们如何为预训练创建高质量代码数据,以及如何设计稀疏模型以达到稠密模型的性能。

  • 目前,我们正在为 DeepSeek LLM 的下一版本构建更大且更优的数据集。我们希望下一版本在推理、中文知识、数学和代码能力方面将得到显著提升。

  • 我们的对齐团队致力于研究如何向公众交付一个有帮助、诚实且安全的模型。我们的初步实验证明,强化学习可以增强模型的复杂推理能力。

相关推荐
TangGeeA1 小时前
Hermes Agent RL / Evaluation Environment 使用与实现分析
人工智能·深度学习·机器学习
eastyuxiao1 小时前
第六章 AI+数字孪生融合技术
大数据·人工智能·数字孪生
CS创新实验室1 小时前
OpenAI GPT-5.5 技术深度报告
人工智能·gpt·大模型·llm
dhashdoia1 小时前
2026年深度体验:OpenAI Codex App如何重塑AI辅助编程工作流
人工智能·gpt·深度学习·claude
zhangfeng11332 小时前
CodeBuddy ai对话框上面的git docs terminal Rulds 干嘛用的,以thinkphp fastadmin 为例,插件市场
人工智能·git·编程
dfsj660112 小时前
第六章:炼丹师的内功
人工智能
AIoT科技物语2 小时前
包邮168元!无须编程,AI 驱动,ESP-Claw 物联网 OpenClaw 智能体套件,打通智能家居本地「感知、推理、决策」完整闭环
人工智能·物联网·智能家居
wzl202612132 小时前
从精细化运营视角,基于企销宝实现企微私域提速增效的技术实践
人工智能·自动化·企业微信
云天AI实战派2 小时前
ChatGPT/AI 常见故障排查指南:从 Realtime API、Codex 到智能体的全流程修复手册
人工智能·chatgpt