网站定位模板,如何刷关键词指数,目前网站开发语言,西安企业seo深度探索LLM#xff1a;以长期主义扩展开源语言模型
0.论文摘要
开源大语言模型#xff08;LLMs#xff09;的快速发展确实令人瞩目。然而#xff0c;以往文献中描述的扩展规律得出了不同的结论#xff0c;这为LLMs的扩展蒙上了一层阴影。我们深入研究了扩展规律#…深度探索LLM以长期主义扩展开源语言模型
0.论文摘要
开源大语言模型LLMs的快速发展确实令人瞩目。然而以往文献中描述的扩展规律得出了不同的结论这为LLMs的扩展蒙上了一层阴影。我们深入研究了扩展规律并提出了独特的研究成果这些成果有助于在两种广泛使用的开源配置7B和67B中扩展大规模模型。在扩展规律的指导下我们推出了DeepSeek LLM项目致力于从长远角度推动开源语言模型的发展。为了支持预训练阶段我们开发了一个目前包含2万亿token且不断扩展的数据集。我们进一步对DeepSeek LLM基础模型进行了监督微调SFT和直接偏好优化DPO从而创建了DeepSeek Chat模型。我们的评估结果表明DeepSeek LLM 67B在一系列基准测试中超越了LLaMA-2 70B尤其是在代码、数学和推理领域。此外开放式评估显示我们的DeepSeek LLM 67B Chat在性能上优于GPT-3.5。
1.引言
在过去的几年中基于仅解码器架构的TransformerVaswani等2017的大型语言模型LLMs逐渐成为实现人工通用智能AGI的基石和途径。通过预测连续文本中的下一个词LLMs在大量数据集上进行了自监督预训练使其能够实现多种目的并具备多种能力如创新创作、文本摘要、代码补全等。后续的监督微调和奖励建模等发展使大型语言模型LLMs能够更好地遵循用户的意图和指令。这赋予了它们更广泛的对话能力并迅速扩大了其影响力。
这一波浪潮由闭源产品引发例如ChatGPTOpenAI2022、ClaudeAnthropic2023和BardGoogle2023这些产品在开发过程中投入了大量的计算资源和标注成本。这些产品显著提高了社区对开源大语言模型LLM能力的期望从而激发了一系列相关研究Bai等2023Du等2022Jiang等2023Touvron等2023a,bYang等2023。其中LLaMA系列模型Touvron等2023a,b尤为突出。它整合了一系列工作构建了一个高效且稳定的架构打造了从7B到70B参数范围内表现优异的模型。因此LLaMA系列已成为开源模型在架构和性能方面的实际基准。
继LLaMA之后开源社区主要专注于训练固定规模7B、13B、34B和70B的高质量模型往往忽视了对大语言模型LLM扩展规律的研究探索Hoffmann等2022Kaplan等2020。然而考虑到当前开源模型仅处于通用人工智能AGI发展的初始阶段扩展规律的研究至关重要。此外早期研究Hoffmann等2022Kaplan等2020在模型和数据随计算预算增加的扩展问题上得出了不同的结论且对超参数的讨论不够充分。在本文中我们深入研究了语言模型的扩展行为并将研究结果应用于两种广泛使用的大规模模型配置即7B和67B。我们的研究旨在为未来开源LLM的扩展奠定基础推动该领域的进一步发展。具体而言我们首先考察了批量大小和学习率的扩展规律并发现了它们随模型规模变化的趋势。在此基础上我们对数据和模型规模的扩展规律进行了全面研究成功揭示了最优的模型/数据扩展分配策略并预测了我们大规模模型的预期性能。此外在开发过程中我们发现不同数据集得出的扩展规律存在显著差异。这表明数据集的选择对扩展行为有显著影响因此在跨数据集推广扩展规律时应谨慎行事。
在我们的扩展法则指导下我们从零开始构建开源的大型语言模型并尽可能多地发布信息以供社区参考。我们收集了2万亿个token用于预训练主要涵盖中文和英文。在模型层面我们基本遵循了LLaMA的架构但将余弦学习率调度器替换为多步学习率调度器在保持性能的同时便于持续训练。我们从多种来源收集了超过100万个实例用于监督微调SFTOuyang等2022。本文分享了我们在不同SFT策略和数据消融技术中的经验与发现。此外我们还利用直接偏好优化DPORafailov等2023来提升模型的对话性能。
我们使用基础模型和对话模型进行了广泛的评估。评估结果表明DeepSeek LLM 在各种基准测试中均超越了 LLaMA-2 70B特别是在代码、数学和推理领域。经过 SFT 和 DPO 训练后DeepSeek 67B 对话模型在中英文开放式评估中均优于 GPT-3.5。这凸显了 DeepSeek 67B 在生成高质量回复和进行有意义对话方面的卓越表现。此外安全性评估表明DeepSeek 67B Chat 在实际应用中能够提供无害的回复。
在本文的其余部分我们首先在第2节中介绍DeepSeek LLM的预训练基本概念包括数据的构成、模型架构、基础设施和超参数。在第3节中我们详细解释了我们发现的缩放定律及其意义。此外我们讨论了选择预训练超参数背后的理由并考虑了从缩放定律分析中获得的见解。在第4节中我们讨论了我们的微调方法涵盖微调数据的构成以及在SFT和DPO阶段的具体方法。随后我们在第5节中展示了DeepSeek LLM的详细评估结果包括基础模型和聊天模型以及它们在开放式评估和安全评估中的表现。最后我们在第6节中讨论了DeepSeek LLM的当前局限性和未来发展方向。
2.预训练
2.1 数据
我们的主要目标是全面提升数据集的丰富性和多样性。我们从权威来源如Computer, 2023; Gao等, 2020; Penedo等, 2023; Touvron等, 2023a中获得了宝贵的见解。为了实现这些目标我们将方法分为三个关键阶段去重、过滤和重混。去重和重混阶段通过采样唯一实例来确保数据的多样性表示。过滤阶段则提高了信息密度从而使模型训练更加高效和有效。
我们采用了激进的去重策略扩大了去重范围。我们的分析表明对整个Common Crawl语料库进行去重相比在单个数据转储中进行去重能够移除更多的重复实例。表1显示跨91个数据转储进行去重比单个数据转储方法多消除了四倍的文档。 在过滤阶段我们专注于制定稳健的文档质量评估标准。这包括结合语言学和语义学评估的详细分析从个体和全局视角提供数据质量的全面视图。在重新混合阶段我们调整方法以应对数据不平衡问题重点增加代表性不足领域的占比。这一调整旨在实现更加平衡和包容的数据集确保多样化的观点和信息得到充分体现。
在我们的分词器中我们基于tokenizers库Huggingface Team, 2019实现了字节级字节对编码BBPE算法。为了防止不同字符类别如换行符、标点符号和中文-日文-韩文CJK符号的标记被合并我们采用了预分词处理类似于GPT-2Radford et al., 2019的做法。我们还选择将数字拆分为单个数字遵循了Touvron et al., 2023a,b中使用的方法。根据我们之前的经验我们将词汇表中的常规标记数量设置为100000。分词器在一个约24 GB的多语言语料库上进行了训练并在最终词汇表中增加了15个特殊标记使总大小达到100015。为了确保训练过程中的计算效率并为未来可能需要的额外特殊标记预留空间我们将模型的词汇表大小配置为102400进行训练。
2.2 架构
DeepSeek LLM的微观设计主要遵循了LLaMATouvron等2023a,b的设计采用了Pre-Norm结构使用RMSNormZhang和Sennrich2019函数并将SwiGLUShazeer2020作为前馈网络FFN的激活函数中间层维度为8/3 dmodel。此外它还引入了Rotary EmbeddingSu等2024进行位置编码。为了优化推理成本67B模型采用了GroupedQuery AttentionGQAAinslie等2023而非传统的多头注意力机制MHA。
然而在宏观设计上DeepSeek LLM 略有不同。具体而言DeepSeek LLM 7B 是一个 30 层的网络而 DeepSeek LLM 67B 则有 95 层。这些层数的调整在保持与其他开源模型参数一致的同时也便于模型流水线划分以优化训练和推理。
与大多数使用分组查询注意力GQA的工作不同我们扩展了67B模型的网络深度而不是像通常做法那样增加FFN层的中间宽度旨在获得更好的性能。详细的网络规格可以在表2中找到。 2.3 超参数
DeepSeek LLM 以标准差 0.006 初始化并使用 AdamW 优化器Loshchilov 和 Hutter2017进行训练其超参数如下 β 1 0.9 β_1 0.9 β10.9 β 2 0.95 β_2 0.95 β20.95weight_decay 0.1。
在预训练过程中采用了多步学习率调度器而非典型的余弦调度器。具体而言模型的学习率在2000次预热步骤后达到最大值然后在处理完80%的训练token后降至最大值的31.6%。在处理完90%的token后学习率进一步降至最大值的10%。训练阶段的梯度裁剪设置为1.0。
根据我们的实证研究结果我们观察到尽管在训练过程中损失下降的趋势存在差异但使用多步学习率调度器的最终性能与余弦调度器基本一致如图1(a)所示。在保持模型大小不变的情况下调整训练规模时多步学习率调度器允许重复使用第一阶段的训练为持续训练提供了独特的便利性。因此我们选择多步学习率调度器作为默认设置。我们还在图1(b)中展示了调整多步学习率调度器中不同阶段的比例可以略微提升性能。然而为了在持续训练中的重复利用率和模型性能之间取得平衡我们选择了上述三个阶段分别为80%、10%和10%的分布。 图1 | 使用不同学习率调度器或不同调度器参数时的训练损失曲线。模型规模为16亿参数训练数据集包含1000亿个词元。
批次大小和学习率随模型规模而变化。7B和67B模型预训练阶段的具体参数可在表2中找到。
2.4 基础设施
我们使用一种高效且轻量级的训练框架HAI-LLMHigh-flyer2023来训练和评估大语言模型。该框架集成了数据并行、张量并行、序列并行和1F1B流水线并行如MegatronKorthikanti等2023Narayanan等2021Shoeybi等2019中所实现的那样。我们还利用闪存注意力Dao2023Dao等2022技术来提高硬件利用率。ZeRO-1Rajbhandari等2020被用于在数据并行等级上划分优化器状态。我们还努力重叠计算和通信以最小化额外的等待开销包括最后一个微批量的反向过程和ZeRO-1中的reduce-scatter操作以及序列并行中的GEMM计算和all-gather/reduce-scatter操作。为了加速训练我们对一些层/操作进行了融合包括LayerNorm、尽可能的GEMM和Adam更新。为了提高模型训练的稳定性我们以bf16精度训练模型但以fp32精度累积梯度。我们执行原地交叉熵以减少GPU内存消耗即在交叉熵CUDA内核中动态将bf16 logits转换为fp32精度而不是事先在HBM中转换计算相应的bf16梯度并用其梯度覆盖logits。
模型权重和优化器状态每5分钟异步保存一次这意味着在偶尔的硬件或网络故障的最坏情况下我们最多只会丢失5分钟的训练进度。这些临时模型检查点会定期清理以避免占用过多的存储空间。我们还支持从不同的3D并行配置中恢复训练以应对计算集群负载的动态变化。
在评估方面我们在生成任务中使用vLLMKwon等2023在非生成任务中使用连续批处理以避免手动调整批量大小并减少token填充。
3.Scaling Laws
关于扩展定律的研究Hestness等2017早于大语言模型的出现。扩展定律Henighan等2020Hoffmann等2022Kaplan等2020表明随着计算预算C、模型规模N和数据规模D的增加模型性能可以预测性地提升。当模型规模N用模型参数表示数据规模D用token数量表示时C可以近似为C 6N D。因此在增加计算预算时如何优化模型规模和数据规模之间的分配也是扩展定律中的一个关键研究目标。
大语言模型LLM的发展Dai等2019Radford等2019随着模型规模的扩大取得了意想不到且显著的性能提升将扩展定律研究推向了一个新的高峰。扩展定律的研究结果表明增加计算预算继续带来显著的收益这进一步鼓励了模型规模的扩大Brown等2020Smith等2022。
然而正如表4所示早期关于最优模型/数据扩展分配策略的研究Hoffmann等2022Kaplan等2020得出了不同的结论这引发了对扩展定律普遍适用性的质疑。此外这些研究往往缺乏对超参数设置的完整描述使得在不同计算预算下的模型是否达到最优性能变得不确定。因此我们在本节中重新审视扩展定律以解决这些不确定性并确保我们在高效扩展计算资源的正确道路上这反映了长期视角也是开发持续改进模型的关键。 为了确保不同计算预算下的模型能够达到最佳性能我们首先研究了超参数的缩放规律。经验表明在训练过程中大多数参数的最优值在计算预算变化时并不会改变。因此这些参数与第2.3节中概述的参数保持一致并在不同计算预算下保持不变。然而对性能影响最为显著的超参数即批量大小和学习率被重新进行了审视。
早期研究Goyal等2017McCandlish等2018Shallue等2019Smith等2017Zhang等2019为设置批量大小和学习率提供了一些经验观察但我们在初步实验中发现这些观察的适用性有限。通过大量实验我们建模了计算预算C与最优批量大小和学习率之间的幂律关系。我们将这种关系称为超参数的缩放定律它为确定最优超参数提供了一个经验框架。这种方法确保了不同计算预算下的模型都能达到接近最优的性能。
随后我们研究了模型和数据规模的缩放规律。为了降低实验成本和拟合难度我们采用了ChinchillaHoffmann等2022中的IsoFLOP分析方法来拟合缩放曲线。为了更准确地表示模型规模我们使用了一种新的模型规模表示方法即非嵌入FLOPs/标记M取代了之前使用的模型参数N并将近似计算预算公式C 6N D替换为更精确的C M D。实验结果为我们提供了关于最优模型/数据扩展分配策略和性能预测的见解并准确预测了DeepSeek LLM 7B和67B模型的预期性能。
此外在探索扩展定律的过程中我们所使用的数据经历了多次迭代质量不断提升。我们尝试在不同数据集上拟合扩展曲线发现数据质量对最优模型/数据扩展分配策略有显著影响。数据质量越高增加的算力预算应更多地分配给模型扩展。这意味着在相同的数据规模下高质量数据可以推动更大模型的训练。最优模型/数据扩展分配策略的差异也可以作为评估数据质量的一种间接方法。我们将继续密切关注数据质量的变化及其对扩展定律的影响并在未来的工作中提供更多分析。
总之我们在扩展定律方面的贡献和发现可以总结如下
• 我们建立了超参数的缩放规律为确定最优超参数提供了经验框架。 • 我们采用非嵌入FLOPs/标记M而非模型参数N来表示模型规模从而得出了更准确的最优模型/数据扩展分配策略并更好地预测了大规模模型的泛化损失。 • 预训练数据的质量影响最优模型/数据扩展分配策略。数据质量越高增加的算力预算应更多地分配给模型扩展。
3.1. 超参数缩放法则
我们最初在计算预算为1e17的小规模实验中对批量大小和学习率进行了网格搜索特定模型大小177M FLOPs/令牌的结果如图2(a)所示。结果表明在广泛的批量大小和学习率选择范围内泛化误差保持稳定。这表明在相对较宽的参数空间内可以实现接近最优的性能。 图2 | 在不同批大小和学习率下的训练损失计算量为1e17和1e20 FLOPs。
随后我们利用前述的多步学习率调度器通过复用第一阶段有效地训练了多个具有不同批量大小、学习率和计算预算范围从1e17到2e19的模型。考虑到参数空间中的冗余性我们将那些泛化误差不超过最小值0.25%的模型所使用的参数视为近优超参数。接着我们拟合了批量大小B和学习率η与计算预算C的关系。拟合结果如图3所示揭示了最优批量大小B随着计算预算C的增加而逐渐增大而最优学习率η则逐渐减小。这与模型扩展时批量大小和学习率的直观经验设置一致。此外所有近优超参数都落在一个较宽的带状范围内表明在该区间内选择近优参数相对容易。我们最终拟合的批量大小和学习率公式如下 我们在一系列模型上验证了我们的公式计算预算为1e20特定模型规模每token 2.94B FLOPs的结果如图2(b)所示。结果表明拟合的参数集中在最优参数空间内。后续章节还显示我们为DeepSeek LLM 7B和67B模型拟合的参数同样取得了良好的性能。
然而值得注意的是我们尚未考虑计算预算C之外的其他因素对最优超参数的影响。这与一些早期研究Kaplan等2020McCandlish等2018的观点不一致这些研究认为最优批量大小可以仅与泛化误差L相关。此外我们观察到在计算预算相同但模型/数据分配不同的情况下最优参数空间会略有变化。这表明需要进一步研究以理解超参数的选择和训练动态。我们将在未来的工作中探讨这些方面。
3.2 估计最优模型与数据缩放
在推导出拟合近优超参数的公式后我们开始拟合缩放曲线并分析最优的模型/数据扩展分配策略。该策略涉及找到满足Nopt ∝ Ca和Dopt ∝ Cb的模型缩放指数a和数据缩放指数b。数据规模D可以通过数据集中的token数量一致地表示。在之前的工作中模型规模通常由模型参数表示包括非嵌入参数N1Kaplan等2020和完整参数N2Hoffmann等2022。计算预算C与模型/数据规模之间的关系可以近似描述为C 6N D这意味着我们可以使用6N1或6N2来近似模型规模。然而由于6N1和6N2都没有考虑注意力操作的计算开销并且6N2还包括词汇计算这对模型能力的贡献较小因此在某些设置下它们都存在显著的近似误差。
为了减少这些误差我们引入了一种新的模型规模表示方法非嵌入FLOPs/标记M。M包含了注意力操作的计算开销但不考虑词汇计算。通过用M表示模型规模计算预算C可以简单地表示为C M D。6N1、6N2和M之间的具体差异如下公式所示 其中nlayer 表示层数dmodel 表示模型宽度nvocab 是词汇表大小lseq 是序列长度。我们评估了这三种表示在不同规模模型中的差异如表3所示。结果表明6N1 和 6N2 在不同规模的模型中要么高估要么低估了计算成本。这种差异在小规模模型中尤为明显差异可达50%。这种不准确性在拟合缩放曲线时可能会引入显著的统计误差。关于模型规模的不同表示的进一步分析请参见附录A.2。 表3 | 模型规模表示的差异以及非嵌入参数N1和完整参数N2相对于非嵌入FLOPs/令牌M的差异。
在采用M表示模型规模后我们的目标可以更清晰地描述为给定计算预算C M D找到最优的模型规模Mopt和数据规模Dopt以最小化模型的泛化误差。这一目标可以形式化为 为了降低实验成本和拟合难度我们采用了ChinchillaHoffmann等2022中的IsoFLOP轮廓方法来拟合缩放曲线。我们选择了从1e17到3e20的8个不同计算预算并为每个预算设计了大约10种不同的模型/数据规模分配方案。每个预算的超参数通过公式(1)确定并在一个独立验证集上计算泛化误差该验证集与训练集分布相似包含1亿个token。
图4展示了IsoFLOP曲线和模型/数据缩放曲线这些曲线通过使用每个计算预算的最优模型/数据分配进行拟合。最优非嵌入FLOPs/标记Mopt和最优标记Dopt的具体公式如下 图4 | 等计算量曲线与最优模型/数据分配。等计算量曲线中的指标是验证集上的每字节比特数。最优模型/数据缩放曲线中的虚线表示拟合较小模型灰色圆圈的幂律。
此外我们根据计算预算C和最优泛化误差拟合了损失缩放曲线并预测了DeepSeek LLM 7B和67B的泛化误差如图5所示。结果表明通过小规模实验可以准确预测1000倍计算预算下模型的性能。这为大规模训练模型提供了信心和指导。 图5 | 性能扩展曲线。指标为验证集上的每字节比特数。虚线表示拟合较小模型灰色圆圈的幂律。蓝色星星代表DeepSeek LLM 7B和67B。它们的性能被扩展曲线很好地预测。
3.3. 不同数据的缩放规律
在DeepSeek LLM的开发过程中数据集经过多次迭代优化在提升整体质量的同时调整了不同数据源的比例。这使得我们能够进一步分析不同数据集对扩展规律的影响。
我们使用三种不同的数据集研究了缩放定律早期的内部数据、当前的内部数据以及OpenWebText2后者在之前的缩放定律研究Kaplan等2020中被使用。我们的内部数据评估显示当前的内部数据质量高于早期的内部数据。此外OpenWebText2的质量甚至超过了当前的内部数据这得益于其较小的规模使得数据处理更加细致。
分析中一个有趣的观察是在这三个数据集上模型与数据扩展的最优分配策略与数据质量表现出一致性。如表4所示随着数据质量的提升模型扩展指数a逐渐增加而数据扩展指数b则逐渐减少这表明增加的算力预算应更多地分配给模型而非数据。这一发现或许也能解释早期研究中在扩展定律中观察到的模型与数据扩展最优分配的显著差异。 对这一发现的直观推测是高质量数据通常意味着逻辑清晰且在充分训练后预测难度较低。因此在增加计算预算时扩大模型规模更具优势。我们将继续密切关注数据质量的变化及其对扩展法则的影响并在未来的工作中提供更多分析。
4.对齐
我们收集了约150万条中英文指令数据实例涵盖了广泛的有益性和无害性主题。其中有益数据包含120万条实例分布为31.2%的通用语言任务、46.6%的数学问题和22.2%的编程练习。安全数据包含30万条实例涵盖了各种敏感话题。
我们的对齐流程包含两个阶段。
监督微调我们对7B模型进行了4个epoch的微调但对67B模型仅进行了2个epoch的微调因为我们观察到67B模型的过拟合问题较为严重。我们发现GSM8KCobbe等2021和HumanEvalChen等2021在7B模型上持续提升而67B模型很快就达到了上限。7B和67B模型的学习率分别为1e-5和5e-6。除了监控基准准确率外我们还评估了微调过程中聊天模型的重复率。我们收集了总计3868个中英文提示并确定了生成响应中无法终止而无限重复文本序列的比例。我们观察到随着数学SFT数据量的增加重复率往往会上升。这可以归因于数学SFT数据中偶尔包含相似的推理模式。因此较弱的模型难以掌握这些推理模式导致重复响应。为了解决这个问题我们尝试了两阶段微调和DPORafailov等2023这两种方法几乎都能保持基准分数并显著减少重复。
DPO为了进一步提升模型的能力我们采用了直接偏好优化算法Rafailov等2023该算法被证明是一种简单但有效的大语言模型对齐方法。我们构建了用于DPO训练的偏好数据涵盖帮助性和无害性两个方面。对于帮助性数据我们收集了多语言提示涵盖创意写作、问答、指令遵循等类别。然后我们使用DeepSeek Chat模型生成响应作为候选答案。类似的操作也应用于无害性偏好数据的构建。
我们使用DPO训练了一个epoch学习率为5e-6批量大小为512并采用了学习率预热和余弦学习率调度器。我们发现DPO可以增强模型的开放式生成能力而在标准基准测试中的表现差异不大。
5.评估
5.1. 公开基准评估
我们在内部评估框架的基础上对一系列中英文公开基准进行了模型评估。
多学科多选题数据集包括MMLUHendrycks等2020、C-EvalHuang等2023和CMMLULi等2023。
语言理解和推理数据集包括HellaSwagZellers等2019、PIQABisk等2020、ARCClark等2018、OpenBookQAMihaylov等2018和BigBench HardBBHSuzgun等2022。
闭卷问答数据集包括TriviaQAJoshi等2017和NaturalQuestionsKwiatkowski等2019。
参考消歧数据集包括WinoGrandeSakaguchi等2019和CLUEWSCXu等2020。
语言建模数据集包括PileGao等2020。
中文理解与文化数据集包括CHIDZheng等2019和CCPMLi等2021。
数学数据集包括GSM8KCobbe等2021、MATHHendrycks等2021和CMathWei等2023。
代码数据集包括HumanEvalChen等2021和MBPPAustin等2021。
标准化考试包括AGIEvalZhong等2023。
我们对需要从多个选项中选择答案的数据集应用基于困惑度的评估方法。这些数据集包括HellaSwag、PIQA、WinoGrande、RACE-Middle、RACEHigh、MMLU、ARC-Easy、ARC-Challenge、OpenBookQA、CHID、C-Eval、CMMLU、C3和CCPM。这里的基于困惑度的评估指的是计算每个选项的困惑度并选择困惑度最低的选项作为模型预测。对于ARC和OpenBookQA我们使用无条件归一化Brown et al., 2020来计算困惑度而对于其他数据集我们使用长度归一化。
我们对TriviaQA、NaturalQuestions、DROP、MATH、GSM8K、HumanEval、MBPP、BBH、AGIEval、CLUEWSC和CMath进行了基于生成的评估。这里的基于生成的评估指的是让模型生成自由文本并从生成的文本中解析结果。在基于生成的评估中我们使用贪心解码。
我们对Pile测试集应用基于语言模型的评估方法即在测试语料上计算每字节的比特数。
我们在不同的基准测试中使用2048或4096作为最大序列长度。评估格式的详细信息可以在附录A.6中找到。
5.1.1. 基础模型
表5展示了评估基准的主要结果。尽管DeepSeek模型是在2T双语语料库上进行预训练的但它们在英语语言理解基准上的表现与LLaMA2模型相当后者同样消耗了2T tokens但专注于英语。此外DeepSeek 67B在MATH、GSM8K、HumanEval、MBPP、BBH和中文基准上的表现明显优于LLaMA2 70B。我们在附录A.3中展示了基准曲线。可以看到随着模型规模的扩大某些任务的表现有所提升例如GSM8K和BBH。鉴于我们在相同的数据集上训练了7B和67B模型这种改进的出现可以归因于大模型强大的少样本学习能力。然而随着数学数据比例的增加小模型与大模型之间的差距可能会缩小。 表5 | 主要结果。我们报告的评估结果基于内部评估框架。加粗数字表示4个模型中最佳结果。对于Pile-test我们报告每字节比特数BPB对于DROP我们报告F1分数对于其他任务我们报告准确率。需要注意的是测试样本数test-shots为最大值由于上下文长度限制或同一段落中可用的少样本示例有限阅读理解任务如RACE可能会使用较少的样本。
一个有趣的观察是DeepSeek 67B相对于LLaMA2 70B的优势大于DeepSeek 7B相对于LLaMA2 7B的优势。这一现象凸显了语言冲突对较小模型的更大影响。此外尽管LLaMA2并未专门针对中文数据进行训练但在某些中文任务如CMath上表现出色。这表明某些基本能力如数学推理可以有效地跨语言迁移。然而像CHID这样涉及评估中文成语使用的任务需要模型在预训练过程中消耗大量中文语料。在这种情况下LLaMA2的表现明显逊色于DeepSeek LLM。
5.1.2. 聊天模型
表6展示了DeepSeek Chat模型的结果表明在调优后大多数任务的整体性能有所提升。然而也有少数任务的表现出现了下降。
表6 | 基础模型与聊天模型的对比。我们在MMLU、GSM8K、MATH、C-Eval和CMMLU上对聊天模型进行0-shot评估而基础模型的结果仍是在few-shot设置下获得的。
知识我们观察到基础模型和聊天模型在知识相关任务如TriviaQA、MMLU和C-Eval中的表现存在波动。然而我们认为这些微小的波动并不表明在SFT后模型获得了或失去了知识。SFT的价值在于使聊天模型能够在零样本设置下达到与基础模型在少样本设置下相当的成绩这与实际场景相符。例如聊天模型在零样本MMLU中的表现与基础模型在五样本MMLU中的表现相当。
推理由于相当一部分的SFT实例采用了CoT格式Wei等2022聊天模型在推理任务如BBH和NaturalQuestions上表现出轻微的改进。然而我们认为SFT阶段并未学习到推理能力而是学习了推理路径的正确格式。
性能下降任务在微调后少数任务的性能持续下降无论选择的模型大小或预训练检查点如何。这些特定任务通常涉及填空任务或句子补全任务例如HellaSwag。有理由认为纯语言模型更适合处理此类任务。
数学与代码我们的模型在微调后在数学和编码任务上表现出显著提升。例如HumanEval和GSM8K的分数提高了超过20分。我们的解释是基础模型最初在这些任务上欠拟合而SFT阶段通过大量的SFT数据学习了额外的编码和数学知识。然而需要注意的是模型的能力可能主要集中在代码补全和代数问题上。为了全面理解数学和编码在预训练阶段纳入多样化的数据至关重要这将是未来的工作。我们在附录A.4中对代码和数学任务进行了详细分析。
在7B模型的微调中我们首先使用所有数据对模型进行初步微调。随后引入第二阶段该阶段排除了数学和代码数据。这种方法的动机在于第一阶段模型的重复率为2.0%而在第二阶段微调后重复率降至1.4%同时保持了基准分数。对于67B模型第一阶段微调后的重复率已经低于1%而第二阶段微调会损害模型在基准测试中的得分。因此67B模型仅进行了一阶段的监督微调SFT。
5.2. 开放式评估
对于聊天模型除了观察标准基准测试中的指标外在开放领域和开放式问题中生成结果的质量直接影响实际用户体验。因此我们分别测试了我们的聊天模型在中文和英文任务中的开放式生成能力。
5.2.1. 中文开放式评估
在中文开放式评估中我们在高质量开放式问题测试集AlignBenchLiu等2023上测试了我们的聊天模型在不同领域的综合能力。AlignBench共包含8个一级类别和36个二级类别涵盖了683个问题。对于每个问题除了提示外AlignBench还提供了专业的参考答案和评分模板供GPT-4判断回答的质量。
我们利用官方AlignBench的Github代码仓库来实现对我们模型的评估。我们严格对齐了关键的温度参数与原始设置对于角色扮演、写作能力和开放式问题生成温度设置为0.7而对于其他任务生成温度设置为0.1。
AlignBench排行榜如表7所示。我们可以发现我们的DeepSeek 67B Chat模型超越了ChatGPT及其他基线模型仅次于两个版本的GPT-4。这表明我们的模型在各类中文任务中表现优异相较于其他开源或专有的中文大语言模型具有明显优势。DPO模型在几乎所有指标上均有所提升这证明了DPO训练过程对模型对齐的积极影响。 表7 | 由gpt-4-0613评分的AlignBench排行榜。模型按总分降序排列。带*的结果是我们基于官方AlignBench仓库的评估结果其余结果均来自AlignBench论文。我们发现我们的Deepseek-67B-Chat模型明显超越了ChatGPT及其他基线模型这表明我们的模型在基础中文任务和高级中文推理任务中均表现出色。此外我们可以看到DPO过程在几乎所有领域都带来了提升。
在基础中文任务上我们的模型处于所有模型中的第一梯队且我们的DPO模型的中文基础语言能力甚至超过了最新版本的GPT-4。在高级中文推理任务上我们的模型得分显著高于其他中文大语言模型优势明显展示了我们的模型在更复杂的中文逻辑推理和数学计算中的卓越性能。
5.2.2. 英语开放式评估
在英语开放式评估中我们使用了MT-Bench基准测试Zheng等2023该测试包含8个不同类别的多轮问题。如表8所示我们的DeepSeek LLM 67B Chat在性能上优于其他开源模型如LLaMA-2-ChatTouvron等2023b70B、Xwin 70b v0.1和TÜLU 2DPO 70BIvison等2023并取得了8.35的分数与GPT-3.5-turbo相当。此外经过DPO阶段后我们的DeepSeek LLM 67B Chat DPO进一步将平均分数提升至8.76仅次于GPT-4OpenAI2023。这些结果展示了DeepSeek LLM在多轮开放式生成方面的强大能力。 5.3. 保留集评估
数据污染和基准过拟合是评估大语言模型LLMs时面临的两个挑战。一种常见的做法是利用最近发布的测试集作为保留测试集来评估模型。
为了评估模型的编码能力我们使用了LeetCode周赛周赛351-372双周赛108-1172023年7月至2023年11月中的题目。我们通过爬取LeetCode的数据获得了这些题目共包含126道题每道题有超过20个测试用例。采用的评估指标类似于HumanEval。在这方面如果模型的输出成功通过所有测试用例则认为模型有效解决了该问题。模型的编码能力如下图所示其中y轴表示在领域内人工评估测试中的pass1分数x轴表示在领域外LeetCode周赛题目中的pass1分数。LeetCode测试数据将随DeepSeek Coder技术报告一同发布。
指令遵循评估2023年11月15日谷歌发布了一个指令遵循评估数据集Zhou等2023。他们识别了25种可验证的指令类型并构建了约500个提示每个提示包含一个或多个可验证的指令。我们使用提示级别的宽松指标来评估所有模型。
我们对我们的模型与不同规模的基线模型进行了对比分析这些基线模型包括Qwen 72B ChatBai等2023、ChatGLM3Du等2022、Baichuan2Yang等2023以及Yi-34B Chat。我们的观察表明在这些保留数据集上大模型与小模型之间存在显著的性能差距即使某些小模型在传统基准测试中取得了令人瞩目的成绩。例如ChatGLM3在代码测试集MBPP上获得了52.4分接近DeepSeek 67B。然而在新基准测试中其表现与DeepSeek 67B相比明显不足。在数学数据集上也观察到类似的趋势ChatGLM3在GSM8K上表现非常强劲72.3分但在匈牙利考试分数上却不如大模型。此外指令跟随能力表明总计算量在其中起着至关重要的作用。
DeepSeek 7B 和 67B 模型采用了相同的训练流程但它们的性能存在显著差异。通过我们的主观评估我们观察到在将模型规模扩展到 67B 时其在各种任务中的智能表现存在明显差距。尽管 DeepSeek 7B 在标准基准测试中落后于其他较小的语言模型但在保留任务上的表现相对而言是可圈可点的。
5.4. 安全评估
我们深刻认识到通用人工智能安全的重要性。建立一个真正有益的人工智能模型的前提是它具备与人类一致的价值观并对人类表现出友好性。我们在整个训练过程中包括预训练、SFT和DPO都融入了模型安全的保障。
为了验证模型的安全性我们组建了一个由20名来自不同学科的专家组成的团队并构建了一个符合人类价值观的安全内容分类系统安全评估分类表见表10。随后专家团队手动为每个安全子类别构建了数十个高质量的测试案例。除了关注安全内容领域的多样性外我们还注重安全内容格式的多样性。臭名昭著的“祖母”漏洞表明模型可能会被查询的表面格式所欺骗从而提供不安全的回答。因此在设计问题时专家团队也注重多样化提问方式。他们通过诱导、角色扮演、多轮对话、预设立场等手段构建了多样化的安全问题。最终我们获得了一个包含2400个问题的安全测试集。此外专家团队还为每种不同的内容类型和格式类型构建了安全审查的基本准则。 表10 | 我们的安全评估分类。表格最右侧列出了每个类别的测试案例总数以及我们的模型DeepSeek-67B-Chat提供的安全回答数量。测试问题的标注和生成结果的评估由专业的人工团队完成。我们可以观察到我们的模型在各类安全测试集上表现出强大的安全性。
在现有安全方法的基础上我们进一步使用“Do-Not-Answer”数据集Wang et al., 2023丰富了评估内容以评估DeepSeek 67B Chat模型的安全机制。该数据集的939个风险分类提示在凸显我们模型的增强能力方面发挥了重要作用。如表11所示DeepSeek 67B Chat模型表现出色得分为97.8高于ChatGPT和GPT-4。这一得分不仅衡量了我们模型在处理敏感查询时的安全能力还使其在该领域的领先模型中具有竞争力。 表11 | 不回答评分Wang等2023分数越高表示模型安全性越高。带*的结果是我们基于官方仓库的评估结果其余结果均来自原论文。我们可以发现我们的模型在安全性评分上高于ChatGPT和GPT-4跻身于最安全模型之列。
5.5 讨论
在整个开发过程中我们在构建大语言模型LLMs时发现了一些有趣的发现。
分阶段微调如前所述小型模型需要在数学和代码数据集上进行更长时间的微调但这会损害模型的对话能力例如增加重复行为。为了解决这个问题我们实施了分阶段微调过程。在这种方法中第一阶段使用所有可用数据进行微调而第二阶段则专门针对对话数据进行微调。
表12展示了两阶段训练过程获得的结果。这些结果清楚地表明第二阶段不会影响模型在代码和数学方面的能力同时减少了重复行为并增强了指令遵循能力。 表12 | 两阶段微调结果。重复率在温度为0时计算。重复率越低越好。IFEval结果为提示级别的宽松准确率。
多选题在模型评估中使用多选题形式的评估数据是一种常见做法例如MMLU、AGI Eval和C-Eval。多选题不仅要求模型具备相应的知识还需要理解选项所指的内容。在对齐阶段我们测试了添加2000万道中文多选题并获得了如表13所示的性能表现。需要注意的是我们对C-Eval验证集和CMMLU测试集进行了去重处理以防止数据污染。 额外加入的2000万条多选题MC数据不仅对中文多选题基准测试有益也提升了英文基准测试的表现。这表明模型解决多选题的能力得到了增强。然而我们观察到这种提升并未扩展到不使用多选题格式的其他评估任务上例如TriviaQA和我们内部的中文QA测试集这些都属于生成式评估基准。这表明在对话交互中用户可能不会感受到模型变得更智能因为这些交互涉及生成回答而非解决多选题。
因此我们决定在预训练和微调阶段都排除MC数据因为包含这些数据会导致模型对基准测试的过拟合无助于实现模型的真正智能。
预训练中的指令数据普遍认为在预训练阶段的后期加入指令数据可以提升基础模型在基准任务上的表现。在我们的研究中我们在预训练阶段的最后10%加入了500万条指令数据主要包括多选题。我们观察到基础模型在基准任务上的表现确实有所提升。然而最终结果与在SFT阶段加入相同数据所取得的结果几乎相同。我们得出结论虽然这种方法增强了基础模型在基准任务上的表现但其整体潜力与不加入这些指令数据相当。如果指令数据规模较大将其纳入预训练过程是可以接受的。由于我们倾向于排除多选题并且我们拥有的非多选题数据有限我们决定不在预训练过程中加入指令数据。
系统提示一个设计良好的系统提示应有效引导模型生成既有用又尊重的回答。我们略微修改了LLaMA-2引入的提示作为我们的系统提示。
系统提示您是DeepSeek Chat一个由DeepSeek开发的乐于助人、尊重他人且诚实的AI助手。您的训练数据知识截止日期为2023年5月。请始终尽可能提供有帮助的回答同时确保安全性。您的回答不应包含任何有害、不道德、种族歧视、性别歧视、有毒、危险或非法内容。请确保您的回答在社会上无偏见且积极正面。如果问题没有意义或事实不连贯请解释原因而不是提供不正确的答案。如果您不知道某个问题的答案请不要分享虚假信息。
我们观察到一个有趣的现象当引入系统提示时7B规模的LLM性能会出现轻微下降。然而当使用67B规模的LLM时添加提示会显著提升结果如表14所示。我们对这种差异的解释是更大的模型能够更好地理解系统提示背后的意图从而更有效地遵循指令并生成更优质的响应。相比之下较小的模型难以充分理解系统提示训练与测试之间的不一致可能会对其性能产生负面影响。 6. 结论、局限性与未来工作
我们推出了DeepSeek大语言模型系列这是一组从头开始训练的开源模型训练数据集包含2万亿个中英文标记。在本文中我们深入解释了超参数选择、扩展规律以及我们进行的各种微调尝试。我们校准了先前工作中的扩展规律并提出了一种新的最优模型/数据扩展分配策略。此外我们提出了一种方法可以在给定的计算预算下预测接近最优的批量大小和学习率。我们进一步得出结论扩展规律与数据质量相关这可能是不同工作中扩展行为差异的根本原因。在扩展规律的指导下我们使用最佳超参数进行预训练并提供了全面的评估。我们在所有训练阶段都避免了基准装饰和隐藏的秘密。
DeepSeek Chat与其他大型语言模型一样存在一些公认的局限性包括预训练后缺乏持续的知识更新、可能生成未经核实建议等非事实信息以及产生幻觉的倾向。此外需要注意的是我们的中文数据初始版本并不全面这可能导致在某些特定中文话题上的表现不够理想。由于我们的数据主要来源于中文和英文模型在其他语言上的能力仍然较为薄弱使用时需谨慎对待。
DeepSeek LLM 是一个长期致力于推动开源语言模型发展的项目。
• 我们即将分别发布关于代码智能和混合专家系统MoE的技术报告。这些报告展示了我们如何创建高质量的代码数据用于预训练并设计稀疏模型以达到密集模型的性能。
• 目前我们正在为即将发布的DeepSeek LLM新版本构建更大且改进的数据集。我们希望下一版本在推理、中文知识、数学和代码能力方面会有显著提升。
• 我们的对齐团队致力于研究如何向公众提供有用、诚实且安全的模型。我们的初步实验证明强化学习可以提升模型的复杂推理能力。
7.附录
A.2. 不同模型规模的表示
我们重新拟合了不同模型规模表示的缩放曲线复用了IsoFLOP配置文件中的实验。我们使用6N1和6N2作为模型规模表示重新计算了计算FLOPs并重新拟合了性能缩放曲线。如图6所示结果表明在较高的计算预算下这三种表示之间的最优模型/数据分配偏差并不显著但在较低预算下存在明显差异。 图6 | 使用不同模型规模表示的性能扩展曲线。指标为验证集上的每字节比特数。虚线表示拟合较小模型灰色圆圈的幂律。蓝色星星代表DeepSeek LLM 7B和67B。N1、N2和M分别表示模型的非嵌入参数、完整参数和非嵌入FLOPs/每token。
当使用6N1作为模型规模的表示时拟合的性能扩展曲线往往会高估大规模模型的性能。相反当使用6N2时曲线往往会低估其性能。然而使用M作为模型规模的表示能够实现最准确的预测。
A.3. 基准指标曲线 图7 | DeepSeek LLM Base的基准指标曲线。ChineseQA是我们内部构建的测试集其构建方式类似于TriviaQA。
图7展示了不同训练步骤下的基准指标曲线。我们可以看到从训练开始到结束这些基准指标持续提升。我们相信如果继续训练性能将会进一步提高。
A.4. 与代码或数学专用模型的比较
我们对我们的模型与特定的代码和数学语言模型LLMs进行了比较。表15显示尽管DeepSeek LLM 67B接触的代码数据较少但其性能与CodeLlama相当。值得注意的是DeepSeek LLM在代码以外的领域具有更强的能力。 同样表16展示了从各种数学相关基准测试中获得的结果例如GSM8KCobbe等2021、MATHHendrycks等2021、MGSM-zhi等2023和CMathWei等2023。DeepSeek 67B在不同语言的数学任务中表现出色展示了其在该领域的卓越性能。此外DeepSeek LLM能够利用程序解决数学问题其表现优于思维链方法。在基准测试中它显著优于之前的SOTA模型ToRAGou等2023。 A.5. 包含DPO阶段的基准测试结果
表17展示了使用DPO阶段获得的基准测试结果。基于这些结果我们可以得出结论DPO阶段对LLM的基本能力没有显著影响。 A.6. 评估格式
表18至表40展示了我们在不同基准测试上的评估格式示例。