DeepSeek LLM:以长远主义视角扩展开源语言模型

414 阅读30分钟

核心内容总结

论文《DeepSeek LLM: Scaling Open-Source Language Models with Longtermism》于 2024 年 1 月问世。基于 Transformer 架构,采用了分组查询注意力(GQA)来削减推理成本,再配上多步学习率调度器,让训练效率飞升。最让人惊叹的是,DeepSeek LLM 用了一个包含 2 万亿字符的双语数据集,比 LLaMA 的数据量还要霸气!

这篇论文不仅探讨了开源大语言模型的迅猛发展,还大胆挑战了“规模定律”的传统看法。作者提出了全新的扩展策略,从 7B 到 67B 的模型配置都玩出了新花样,并利用 SFT 和直接偏好优化(DPO) 打造出了一款颇具“聊天细胞”的 DeepSeek Chat 模型。评测显示,67B 版本在代码、数学和推理上完胜 LLaMA-2 70B,就像是让对手见识了一把“真正的黑科技”。

模型网络核心设计:

  • 67B 模型引入分组查询注意力(GQA
  • 沿袭了 LLaMA的架构,采用 Pre-Norm 结构,配合 RMSNorm
  • 前馈网络(FFN)中使用 SwiGLU 作为激活函数
  • 模型引入了 Rotary Embedding用于位置编码

image.png

DeepSeek LLM 系列从 2 万亿标记的中英大数据中脱颖而出,不仅刷新了扩展定律,更用最优超参数和一系列微调实验验证了“只要数据够猛,模型就能飞”。当然,它也有自己的小毛病,比如知识更新跟不上、偶尔“胡说八道”……不过,正是这些不足激励着 DeepSeek 团队不断追求更高目标。接下来的代码和 MoE 技术报告,保证让你大开眼界!

同系列

论文整体如下

image.png

摘要

开源大型语言模型(LLMs)的迅速发展确实令人瞩目。然而,以往文献中描述的scaling laws得出的结论各异,这给大规模扩展LLMs的前景蒙上了一层阴影。我们深入研究了scaling laws,并提出了在两种广泛使用的开源配置(7B 和 67B)下促进大规模模型扩展的独特发现。在scaling laws的指导下,我们推出了DeepSeek LLM项目,该项目致力于以长远视角推进开源语言模型的发展。为支持预训练阶段,我们开发了一个目前包含2万亿标记并持续扩充的数据集。随后,我们对DeepSeek LLM基础模型进行了监督微调(SFT)和直接偏好优化(DPO),从而创建了DeepSeek Chat模型。我们的评估结果显示,DeepSeek LLM 67B在多个基准测试中,尤其在代码、数学和推理领域,均超越了LLaMA-2 70B。此外,开放式评估还表明,我们的DeepSeek LLM 67B Chat在中英文开放问答中表现优于GPT-3.5

1. 引言

在过去几年中,基于仅含解码器的Transformer(Vaswani 等人, 2017)的巨大语言模型(LLMs)已逐渐成为实现通用人工智能(AGI)的基石和路径。通过预测连续文本中的下一个词,LLMs在大规模数据集上进行自监督预训练,从而具备了小说创作、文本摘要、代码补全等多种功能和能力。随后,通过监督微调和奖励建模等技术,LLMs能更好地遵循用户意图和指令,这不仅赋予它们更为灵活的对话能力,也迅速扩大了它们的影响力。

这种浪潮由诸如ChatGPT(OpenAI, 2022)、Claude(Anthropic, 2023)和Bard(Google, 2023)等封闭式产品所激发,这些产品依赖于大量计算资源和巨额标注成本的开发。它们大大提高了社区对开源LLMs能力的期望,并因此激发了一系列相关研究(Bai 等, 2023;Du 等, 2022;Jiang 等, 2023;Touvron 等, 2023a,b;Yang 等, 2023)。在这些工作中,LLaMA系列模型(Touvron 等, 2023a,b)尤为突出,通过整合多项研究成果构建了一种高效稳定的架构,能够训练出参数规模从7B到70B不等的高性能模型,使其成为开源模型在架构和性能上的事实基准。

2. 预训练

2.1 数据

DeepSeek的主要目标是全面提升数据集的丰富性和多样性。他们从(Computer, 2023; Gao et al., 2020; Penedo et al., 2023; Touvron et al., 2023a)等权威来源中获得了宝贵见解。为实现这一目标,我们将方法分为三个关键阶段:

  • 去重
  • 过滤
  • 重混

去重重混阶段通过抽取独特实例确保数据的多样性,而过滤阶段则通过提升信息密度,使得模型训练更高效、更有效.

我们采用了积极的去重策略,扩大了去重范围。我们的分析表明,对整个 Common Crawl 语料库进行去重,比仅在单个抓取中去重能移除更多重复实例。表 1 显示,跨 91 个抓取进行去重能够删除的文档数量是单个抓取方法的四倍左右

image.png

在过滤阶段,我们重点制定了稳健的文档质量评估标准,结合语言和语义评估对数据进行详细分析,从个体和整体角度考量数据质量。重混阶段则针对数据不平衡问题进行调整,着力增加代表性不足领域的比例,以构建更均衡、包容性更强的数据集,确保多元视角和信息得到充分展现

对于分词器,我们基于 Huggingface 团队 (2019) 的 tokenizers 库实现了字节级 Byte-Pair Encoding (BBPE) 算法。采用预分词策略防止不同字符类别(如换行符、标点符号以及中日韩(CJK)符号)之间的标记合并,这一做法类似于 GPT-2 (Radford 等, 2019)。同时,我们采用 (Touvron 等, 2023a,b) 中的方法,将数字拆分为单个数字。基于以往经验,我们将词汇表中常规标记的数量设置为 100,000。分词器在约 24GB 的多语言语料库上训练,并通过增添 15 个特殊标记将最终词汇量扩充至 100,015。为在训练中确保计算效率并为未来可能增加的特殊标记预留空间,我们将模型训练时的词汇表大小配置为 102,400

2.2 模型架构

image.png

表 2 | DeepSeek LLM 系列模型的详细规格。我们基于第 3 节的研究结果选择了这些超参数

微观设计
DeepSeek LLM 的微观设计在很大程度上沿袭了 LLaMA (Touvron 等, 2023a,b) 的架构,采用 Pre-Norm 结构,配合 RMSNorm (Zhang 和 Sennrich, 2019) 以及在前馈网络(FFN)中使用 SwiGLU (Shazeer, 2020) 作为激活函数,其中间层维度设置为 8×dmodel。此外,模型引入了 Rotary Embedding (Su 等, 2024) 用于位置编码。为优化推理成本,67B 模型采用了 Grouped-Query Attention (GQA) (Ainslie 等, 2023) 而非传统的多头注意力(MHA)

宏观设计
在宏观设计上,DeepSeek LLM 略有不同:7B 模型为 30 层网络,而 67B 模型则扩展为 95 层。这种层数的调整在确保参数与其他开源模型一致的前提下,也便于划分模型流水线,从而优化训练与推理过程。不同于大多数使用 Grouped-Query Attention (GQA) 的工作,我们选择通过加深网络层数(而非增宽 FFN 中间层)来扩展 67B 模型的参数,力求达到更佳性能

2.3 超参数

DeepSeek LLM 的初始化标准差设置为 0.006,并采用 AdamW 优化器 (Loshchilov 和 Hutter, 2017) 进行训练,其超参数设置为:β1 = 0.9,β2 = 0.95,权重衰减(weight_decay)= 0.1。

在预训练过程中,我们使用了多阶段学习率调度器,而非传统的余弦调度器。具体而言,模型的学习率在经过 2000 步预热后达到最大值,随后在处理完 80% 的训练标记后降至最大值的 31.6%,在处理完 90% 的标记后进一步降至最大值的 10%。训练过程中,梯度裁剪设置为 1. image.png 基于实验证据,我们发现尽管训练期间损失下降趋势存在差异,但采用多阶段学习率调度器的最终性能基本与余弦调度器一致,

  • 图 1(a) 所示。当在保持模型规模固定的情况下调整训练规模时,多阶段学习率调度器允许复用第一阶段的训练成果,为持续训练提供了独特便利。因此,我们将多阶段学习率调度器设为默认方案。
  • 图 1(b) 中还展示了调整多阶段学习率调度器各阶段比例能够略微提升性能,但为了在持续训练中的复用比例与模型性能之间达到平衡,我们选择了 80%、10% 和 10% 的阶段比例分布。

需要注意的是,批量大小和学习率会随模型规模变化而调整。7B 和 67B 模型预训练阶段的具体参数详见表 2

2.4 基础设施

我们采用名为 HAI-LLM(High-flyer, 2023)的高效轻量级训练框架来训练和评估大型语言模型。该框架整合了数据并行、张量并行、序列并行以及 1F1B 流水线并行技术,类似于 Megatron (Korthikanti 等, 2023;Narayanan 等, 2021;Shoeybi 等, 2019) 的做法。我们还利用 flash attention 技术 (Dao, 2023;Dao 等, 2022) 来提升硬件利用率;同时,通过 ZeRO-1 (Rajbhandari 等, 2020) 在数据并行的各个节点之间划分优化器状态。我们还努力实现计算与通信的重叠,尽量减少额外的等待开销,这包括 ZeRO-1 中最后一个微批次的反向传播过程与 reduce-scatter 操作,以及序列并行中的 GEMM 计算和 all-gather/reduce-scatter 操作。

为了加速训练,部分层/算子进行了融合,例如在可能情况下融合 LayerNorm、GEMM 以及 Adam 更新。为提升训练稳定性,我们采用 bf16 精度训练,但梯度累积采用 fp32 精度。此外,为减少 GPU 内存消耗,我们在 CUDA 内核中采用就地交叉熵计算,即在交叉熵 CUDA 内核中即时将 bf16 logits 转换为 fp32(而非预先在 HBM 中转换),计算相应的 bf16 梯度,并用该梯度覆盖 logits。

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

在评估方面,我们在生成任务中使用 vLLM (Kwon 等, 2023),而在非生成任务中采用连续批处理方法,以避免手动调整批量大小并减少标记填充

3. scaling laws

在大语言模型出现之前,关于scaling laws的研究已存在 (Hestness 等, 2017)。scaling laws(Henighan 等, 2020;Hoffmann 等, 2022;Kaplan 等, 2020)表明,随着计算预算 C、模型规模 N 和数据规模 D 的增加,模型性能可以按可预测的方式得到提升。当将模型规模 N 表示为模型参数、数据规模 D 表示为标记数量时,计算预算 C 可近似表示为 C = 6N·D。因此,在增加计算预算的过程中,如何在模型规模与数据规模之间进行最佳分配成为scaling laws中的一个关键研究目标

大型语言模型的发展 (Dai 等, 2019;Radford 等, 2019) —— 较大模型取得了意想不到且显著的性能提升 —— 使得scaling laws的研究达到了新的高度。scaling laws的结果表明,scaling计算预算能够持续带来显著收益,这进一步鼓励了对模型规模的scaling (Brown 等, 2020;Smith 等, 2022)。

然而,如表 4 所示,早期研究(Hoffmann 等, 2022;Kaplan 等, 2020)在最优模型/数据扩展分配策略上得出了不同结论,这对scaling laws的普适性提出了质疑。此外,这些研究通常未对超参数设置进行完整描述,导致在不同计算预算下是否达到了最优性能存在不确定性。因此,我们在本节中重新审视scaling laws,以解决这些不确定性,并确保我们在高效scaling计算资源方面走在正确道路上,这也体现了长远视角,是不断提升模型性能的关键

image.png

3.1 超参数scaling laws

我们最初在计算预算为 1e17 的小规模实验中,对批量大小和学习率进行了网格搜索,并在一个特定模型规模(177M FLOPs/标记)的实验中展示了结果(见图 2(a))。结果表明,在较宽的批量大小和学习率取值范围内,模型的泛化误差基本保持稳定,这说明在这个较宽的参数空间内能够实现近乎最优的性能。

image.png 随后,我们利用前述的多阶段学习率调度器,在批量大小、学习率以及计算预算(从 1e17 到 2e19)的不同组合下训练了多个模型,并通过复用第一阶段的训练成果来减少实验冗余。考虑到参数空间中的冗余,我们将那些泛化误差相较最小值上升不超过 0.25% 的参数设置视为近似最优。接着,我们将批量大小 B 和学习率 η 分别与计算预算 C 进行幂律拟合。图 3 展示了拟合结果,表明随着 C 的增大,最优批量大小 B 逐渐增大,而最优学习率 η 则逐渐降低,这与扩展模型时对批量大小和学习率的直观经验一致。同时,所有近似最优超参数均落在一个较宽的区间内,表明在这个区间内选择近似最优参数相对容易。我们最终拟合得到的公式为:

ηopt=0.3118C0.1250η_{opt} = 0.3118 · C^{−0.1250}
Bopt=0.2920C0.3271B_{opt} = 0.2920 · C^{0.3271}

图中灰色圆点表示泛化误差不超过最小值 0.25% 的模型,虚线为对小规模模型的幂律拟合,而蓝色星号代表 DeepSeek LLM 7B 和 67B 模型

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

然而,需要注意的是,我们尚未考虑除计算预算 C 之外的其他因素对最优超参数的影响。这与部分早期工作(Kaplan 等, 2020;McCandlish 等, 2018)中提出的“最优批量大小仅与泛化误差 L 相关”的观点存在不一致。此外,我们观察到,在相同计算预算下,不同的模型/数据分配会使得最优参数空间略有差异,这表明对超参数选择和训练动态性的理解还需进一步研究,我们将在未来工作中对此进行探讨。

3.2 估计最优模型与数据扩展

在推导出近似最优超参数公式之后,我们进一步开始拟合扩展曲线,并分析最优的模型与数据扩展分配策略。该策略的目标是寻找满足以下关系的模型扩展指数 a 和数据扩展指数 b

NoptCaN_{opt} ∝ C^a      DoptCbD_{opt} ∝ C^b

其中,数据规模 D 一直用数据集中标记的数量表示。在之前的工作中,模型规模通常用模型参数表示,如非嵌入参数 N1(Kaplan 等, 2020)和完整参数 N2(Hoffmann 等, 2022)。计算预算 C 与模型和数据规模的关系可近似描述为 C = 6N·D,即可以用 6N1 或 6N2 来近似模型规模。然而,由于 6N1 和 6N2 都未考虑注意力操作的计算开销,而 6N2 还包含对词汇表的计算(这部分对模型能力贡献较低),在某些设置下会产生显著的近似误差。

为此,我们引入了一种新的模型规模表示方法:非嵌入 FLOPs/标记 M。M 包含了注意力操作的计算开销,但不包括词汇表计算。采用 M 表示模型规模后,计算预算 C 可简化为 C = M·D。下列公式展示了 6N1、6N2 与 M 之间的具体区别:

image.png

其中,nlayern_{layer} 为层数,dmodeld_{model} 为模型宽度,nvocabn_{vocab} 表示词汇表大小,lseql_{seq} 为序列长度。表 3 展示了在不同规模模型上,这三种表示方法之间的差异。结果显示,无论是 6N1 还是 6N2,在不同模型规模下都可能出现过高估计或低估计算成本的情况,尤其在小规模模型中,误差甚至可达 50%,这种不准确性在拟合扩展曲线时会引入较大的统计误差。更多关于不同模型规模表示的讨论可参见附录 A.2

image.png

采用 M 表示模型规模后,我们的目标可以更清晰地表述为:在给定计算预算 C = M·D 的条件下,寻找使模型泛化误差 L(N, D) 最小的最优模型规模 M_opt 和最优数据规模 D_opt,即:

image.png

为了降低实验成本和拟合难度,我们采用了 Chinchilla (Hoffmann 等, 2022) 中的 IsoFLOP 方法,对从 1e17 到 3e20 的 8 个不同计算预算下的数据进行拟合,并为每个预算设计了大约 10 种不同的模型/数据扩展分配方案。每个预算下的超参数均根据公式(1)确定,并在与训练集分布相似、包含 1 亿标记的独立验证集上计算泛化误差。

image.png

图 4 展示了 IsoFLOP 曲线以及基于每个计算预算下最优模型/数据分配拟合得到的扩展曲线。最优非嵌入 FLOPs/标记 M_opt 和最优数据规模 D_opt 的具体公式为:

image.png

此外,我们还根据计算预算 C 与最优泛化误差拟合了损失扩展曲线,并预测了 DeepSeek LLM 7B 和 67B 的泛化误差(见图 5)。结果表明,通过小规模实验得到的扩展曲线可以准确预测在 1000 倍计算预算下模型的性能,这为大规模模型的训练提供了充足的信心和指导

image.png

3.3 不同数据下的scaling laws 在 DeepSeek LLM 的开发过程中,我们对数据集进行了多次迭代,通过调整不同数据来源的比例并提升整体质量,从而进一步分析了不同数据对扩展规律的影响。

我们分别使用了三种数据集进行扩展规律的研究:早期内部数据、当前内部数据以及 OpenWebText2(此前扩展规律研究中使用的,Kaplan 等, 2020)。内部数据的评估结果显示,当前内部数据的质量高于早期内部数据;而 OpenWebText2 的数据质量甚至超过当前内部数据,这主要归因于其较小的规模使得处理更为精细。

下面给出不同方法下模型扩展指数和数据扩展指数的对比

image.png

表 4 显示了不同训练数据分布下模型扩展和数据扩展系数的变化。一个有趣的观察是,随着数据质量的提高,模型扩展指数 a 逐渐增大,而数据扩展指数 b 则相应减小,这表明在增加计算预算时,应更多地将资源分配给模型扩展而非数据扩展。这个发现或许也能解释早期扩展规律研究中观察到的不同最优模型/数据分配策略的差异。

直观上,高质量的数据通常意味着逻辑更清晰、预测难度更低,因此在充分训练后,更有利于扩大模型规模。我们将继续关注数据质量的变化及其对scaling laws的影响,并在未来工作中提供更多详细分析

【总结】

我们在扩展规律方面的主要贡献和发现可以总结为:

• 我们建立了超参数扩展规律,为确定最优超参数提供了经验框架。
• 我们采用非嵌入 FLOPs/标记 M 来表示模型规模,而不再单纯依赖模型参数 N,从而得到更准确的最优模型/数据扩展分配策略,并更好地预测大规模模型的泛化损失。
• 预训练数据的质量会显著影响最优模型/数据扩展分配策略:数据质量越高,相同数据规模下应将更多计算预算用于模型扩展

4. 对齐

我们收集了大约 1.5 百万条中英文指令数据实例,涵盖了广泛的有益性与无害性主题。其中,有益性数据包含 1.2 百万条实例,分布为:通用语言任务占 31.2%,数学问题占 46.6%,编码练习占 22.2%;而安全数据则包含 30 万条实例,覆盖各种敏感话题。

我们的对齐流程分为两个阶段:

  • 监督微调
    我们对 7B 模型进行了 4 个 epoch 的监督微调,而 67B 模型仅进行 2 个 epoch,因为我们观察到 67B 模型存在较为严重的过拟合问题。在 7B 模型上,GSM8K (Cobbe 等, 2021) 和 HumanEval (Chen 等, 2021) 的表现均持续改善,而 67B 模型很快便达到性能上限。对应的学习率设置为:7B 模型采用 1e-5,67B 模型采用 5e-6。此外,我们还监控了聊天模型在微调过程中的重复率。为此,我们收集了共计 3868 个中英文提示,并统计生成响应中未能终止、而不断重复某一文本序列的比例。我们观察到,随着数学相关 SFT 数据比例的增加,重复率呈上升趋势,这可能是因为数学 SFT 数据中有时包含相似的推理模式,较弱模型难以捕捉,从而导致重复输出。针对这一问题,我们尝试了两阶段微调及直接偏好优化(DPO)方法,两者均在基本保持基准分数的前提下,显著降低了重复率。

  • 直接偏好优化(DPO)
    为进一步提升模型能力,我们采用了直接偏好优化算法 (Rafailov 等, 2023),这是一种简单而有效的对齐方法。我们构造了针对有益性与无害性两方面的偏好数据:有益性数据方面,我们收集了涵盖创意写作、问答、指令跟随等类别的多语言提示;无害性数据方面,则采用了类似策略生成偏好数据。

在 DPO 阶段,我们训练了 1 个 epoch,采用的学习率为 5e-6,批量大小为 512,并结合了学习率预热与余弦调度器。实验表明,DPO 能显著增强模型的开放式生成能力,同时对标准基准的分数影响甚微

5. 评估

我们在英文和中文的多个公共基准上对模型进行了评估,评估均基于内部评估框架。评估数据集涵盖如下类别:
• 多学科多选题数据集(如 MMLU、C-Eval、CMMLU);
• 语言理解与推理数据集(如 HellaSwag、PIQA、ARC、OpenBookQA、BigBench Hard);
• 封闭书本问答数据集(如 TriviaQA、NaturalQuestions);
• 阅读理解数据集(如 RACE、DROP、C3);
• 参考消歧数据集(如 WinoGrande、CLUEWSC);
• 语言模型数据集(如 Pile);
• 中文理解与文化数据集(如 CHID、CCPM);
• 数学数据集(如 GSM8K、MATH、CMath);
• 代码数据集(如 HumanEval、MBPP);
• 标准化考试数据集(如 AGIEval)。

对于需要从多个选项中选取答案的数据集,我们采用基于困惑度的评估方法:
– 对每个选项计算困惑度,选择困惑度最低的选项作为模型预测;
– 对于 ARC 与 OpenBookQA,则采用无条件归一化(参见 Brown 等, 2020);
– 其他数据集则使用长度归一化。

对于 TriviaQA、NaturalQuestions、DROP、MATH、GSM8K、HumanEval、MBPP、BBH、AGIEval、CLUEWSC 与 CMath,则采用生成式评估方法,即让模型生成自由文本,并从生成结果中解析答案,生成过程采用贪婪解码。对于 Pile-test,则采用基于语言模型的评估,即计算测试语料的每字节比特数。不同基准测试的最大序列长度分别设定为 2048 或 4096,评估格式的详细信息请参见附录 A.6。

5.1.1 基础模型

表 5 展示了主要基准测试的评估结果。尽管 DeepSeek 模型在预训练时使用了包含 2T 双语标记的语料,但在英文语言理解任务上,其表现与 LLaMA2 模型相当(后者同样使用 2T 标记,但主要侧重英文)。此外,DeepSeek 67B 在 MATH、GSM8K、HumanEval、MBPP、BBH 以及中文基准测试中的表现明显优于 LLaMA2 70B。部分任务(例如 GSM8K 与 BBH)的性能提升,可归因于大模型强大的少样本学习能力;而随着数学数据比例增加,小模型与大模型间的性能差距可能会缩小。

5.1.2 聊天模型

表 6 展示了 DeepSeek 聊天模型的评估结果。总体上,经过微调后,大多数任务的表现有所提升,但也有少部分任务略有下降。知识类任务(如 TriviaQA、MMLU、C-Eval)出现波动,但这并不意味着模型知识的得失,而是微调使得聊天模型在零样本下达到与基础模型少样本设置相近的效果。例如,聊天模型在零样本 MMLU 上的表现与基础模型在五样本下的表现相似。由于大量 SFT 示例采用链式思考格式,聊天模型在推理任务(如 BBH 与 NaturalQuestions)上略有提升,但这主要反映了对正确推理格式的学习,而非真正提升推理能力。在数学与代码任务上,微调使得 HumanEval 与 GSM8K 分数均提升超过 20 分,说明 SFT 阶段通过大量相关数据为模型补充了数学与代码知识。不过,这也表明模型可能主要侧重于代码补全与代数问题,真正全面理解数学与编程仍需在预训练阶段引入更多多样化数据。

image.png

image.png

image.png

5.2 开放式评估

为了更好反映实际应用场景,我们针对开放领域问题和多轮对话进行了评估。

5.2.1 中文开放式评估

我们在高质量的开放式问题数据集 AlignBench(Liu 等, 2023)上测试了模型在不同领域的表现。AlignBench 包含 8 个一级类别、36 个二级类别,共 683 个问题,每个问题均配有专业参考答案及 GPT-4 的评分模板。评估过程中,我们严格按照官方设定调整生成温度参数:对于角色扮演、写作及开放式问题,温度设为 0.7;其他任务则设为 0.1。AlignBench 排行榜(见表 7)显示,DeepSeek 67B 聊天模型超越了 ChatGPT 及其他基线模型,仅次于 GPT-4,这证明了其在中文基础语言任务和高级中文推理任务上的卓越表现。经过 DPO 微调后,模型在几乎所有指标上均有所提升,显示了 DPO 在模型对齐中的积极作用。

5.2.2 英文开放式评估

在英文开放式评估中,我们采用 MT-Bench(Zheng 等, 2023)作为评估基准,该基准涵盖 8 个不同类别的多轮问题。表 8 显示,DeepSeek LLM 67B 聊天模型的平均得分达到 8.35,与 GPT-3.5-turbo 相当;经过 DPO 微调后,平均得分进一步提升至 8.76,仅次于 GPT-4,充分展现了模型在多轮开放式生成任务中的强大能力。

─────────────────────────────

5.3 保留评估

为应对数据污染和基准过拟合问题,我们采用近期发布的测试集作为保留评估数据集。
例如,在 LeetCode 编程题评估中,我们采集了 2023 年 7 至 11 月期间的 LeetCode 每周比赛题(包括 Weekly Contest 351–372 与 Bi-Weekly Contest 108–117,共 126 道题,每题均含超过 20 个测试用例),评估指标与 HumanEval 类似:若模型输出通过所有测试用例,则视为正确。图示中,横轴代表模型在 LeetCode 周赛题上的 pass@1 分数,纵轴代表其在内部人类评估测试集上的 pass@1 分数。
此外,我们还使用匈牙利全国高中考试题对模型数学能力进行评估,该考试共 33 道题,模型得分由人工标注,依据 solution.pdf 中的评分标准进行。
在指令跟随评估中,我们采用了 Google 于 2023 年 11 月 15 日发布的评估数据集(Zhou 等, 2023),该数据集包含 25 种可验证指令,约 500 个提示,每个提示可能包含一个或多个指令,我们采用松散的提示级评估指标进行评分。

5.4 安全评估

我们始终高度重视模型的安全性,认为构建真正有益的人工智能的前提是模型需具备与人类一致的价值观并对人类友好。为此,我们在预训练、监督微调(SFT)和 DPO 全流程中均加入了安全保障措施。
我们组建了由 20 名各领域专家组成的团队,并构建了与人类价值观一致的安全内容分类体系(见表 10)。专家团队为每个安全子类别精心构造了数十个高质量测试用例,并通过诱导、角色扮演、多轮对话、预设立场等多种方式设计问题,以确保安全测试的多样性。最终,我们构建了包含 2400 道问题的安全测试集,并为各类型内容制定了基本安全评审指南。经专家团队人工检测与交叉验证,DeepSeek 67B 聊天模型在各类安全测试集上均表现出较高的安全性。

5.5 讨论

在部分任务中,无论选用哪一预训练检查点或模型规模,微调后都会出现性能下降的现象,这类任务通常涉及填空或句子补全(如 HellaSwag),表明纯语言模型在此类任务上具有天然优势。
在数学和代码任务中,尽管微调显著提升了 HumanEval 与 GSM8K 的分数,但这可能主要反映了模型对代码补全与代数问题的专长,而全面理解数学与编程仍需在预训练阶段引入更丰富的数据。
此外,我们还观察到,尽管 DeepSeek 7B 与 67B 均采用相同预训练流程,但在保留评估数据集上,大模型(67B)的表现显著优于小模型(7B),说明总计算量对指令跟随能力起着至关重要的作用。

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

本文围绕扩展开源大语言模型展开讨论,在预训练、扩展规律、对齐以及评估多个层面上进行了系统研究。我们基于大规模计算预算下的扩展规律分析,提出了新的模型规模表示方法(非嵌入 FLOPs/标记 M),并据此构建了最优模型与数据扩展分配策略,进而成功训练出 DeepSeek LLM 系列模型。实验结果表明,无论在基础模型还是聊天模型的评估中,DeepSeek LLM 均展现出优异性能,特别是在代码、数学和复杂推理任务上,相较于同类开源模型取得了明显优势。

然而,本文工作仍存在一定局限性。例如,在超参数调优过程中,我们尚未充分探讨除计算预算外其他因素对最优参数设置的影响;另外,预训练数据的多样性与质量仍有提升空间,如何在更广泛的数据环境下进一步提高模型性能仍需深入研究。未来,我们计划在以下几个方向展开进一步工作:  • 深入探索超参数选择和训练动态性之间的关系,以获得更精细的模型调优策略;  • 继续扩充和优化预训练数据集,尤其在特定领域数据的质量与平衡性方面;  • 研究更多高效的对齐与微调技术,进一步提升模型在开放式生成任务中的表现;  • 探讨模型安全性与鲁棒性问题,确保大模型在实际应用中的可靠性和安全性。

总之,本研究为开源大语言模型的长远扩展提供了有力理论支撑和实践指导,我们期待未来在该领域的持续探索能够推动通用人工智能技术的不断进步

同系列

引用资料: