【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型
欢迎关注[【AIGC论文精读】](https://blog.csdn.net/youcans/category_12321605.html)原创作品
【DeepSeek论文精读】1. 从 DeepSeek LLM 到 DeepSeek R1
【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型
【DeepSeek论文精读】3. DeepSeekMoE:迈向混合专家语言模型的终极专业化
【DeepSeek论文精读】4. DeepSeek-V2:强大、经济且高效的混合专家语言模型
【DeepSeek论文精读】5. DeepSeek-V3 技术报告
【DeepSeek论文精读】6. DeepSeek R1:通过强化学习激发大语言模型的推理能力
【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型
- 0. 论文简介
- 0.1 基本信息
- 0.2 摘要
- 1. 项目介绍
- 2. 预训练
- 2.1 数据
- 2.2 架构
- 2.3 超参数
- 2.4 基础设施
- 3. 缩放规律
- 3.1. 超参数缩放定律
- 3.2. 估计最佳模型和数据缩放
- 3.3 使用不同数据量的规模规律
- 4. 对齐
- 5. 评估
- 5.1 公开基准测试评估
- 5.1.1 基准模型
- 5.1.2. 聊天模型
- 5.2 开放式评估
- 5.2.1. 中文开放式评估
- 5.2.2. 英文开放式评估
- 5.3. 留出验证
- 5.4. 安全评估
- 5.5. 讨论
- 6. 结论、局限性和未来工作
- A. 附录
- A.1. 致谢
- A.2. 不同模型规模表示
- A.3. 基准指标曲线
- A.4. 与代码或数学特定模型的比较
- A.5. 基准测试结果(带DPO阶段)
- A.6 评估格式
- 对 DeepSeek LLM 的总结
0. 论文简介
0.1 基本信息
- 论文标题:DeepSeek LLM: Scaling Open-Source Language Models with Longtermism
- 发布时间:2024 年 1 月 [2401.02954]
- 论文地址:https://arxiv.org/pdf/2401.02954
- 主要内容:
- 基于 Transformer 架构,采用分组查询注意力(GQA)优化推理成本。
- 支持多步学习率调度器,提升训练效率。
- 在预训练和对齐(监督微调与 DPO)方面进行了创新。
- 数据集规模:DeepSeek LLM 使用了一个包含 2 万亿字符的双语数据集进行预训练,这比 LLaMA 的数据集更大。
- 模型性能:DeepSeek LLM 在多个基准测试中表现优于 LLaMA,特别是在代码、数学和推理方面。
0.2 摘要
论文主要讨论了开源大型语言模型(LLMs)的快速发展以及如何通过 DeepSeek LLM 项目来推进这种发展。
首先,开源大型语言模型的发展非常迅速,但之前的文献中描述的规模定律得出了不同的结论,这给规模化的LLM蒙上了一层阴影。
然后,作者深入研究了规模定律,并提出了自己独特的发现,这些发现有助于在两种流行的开源配置(7B和67B)中扩展大型模型。在规模定律的指导下,作者引入了DeepSeek LLM项目,该项目致力于从长远的角度推进开源语言模型的发展。
为了支持预训练阶段,作者开发了一个目前包含2万亿个tokens(2 trillion tokens)的数据集,并且还在不断扩大。作者还对DeepSeek LLM基础模型进行了SFT和直接偏好优化(DPO),从而创建了DeepSeek Chat模型。
最后,评估结果表明,DeepSeek LLM 67B在各种基准测试中超过了LLaMA-2 70B,特别是在代码、数学和推理领域。此外,开放式评估显示,与GPT-3.5相比,DeepSeek LLM 67B Chat表现出更优越的性能。
1. 项目介绍
过去几年,基于仅解码器 Transformer(Vaswani 等人,2017 年)的大型语言模型(LLM)已逐渐成为实现通用人工智能 (AGI) 的基石和途径。通过预测连续文本中的下一个词,LLM 在海量数据集上进行自我监督预训练,使其能够实现各种目的并具备许多能力,例如新内容创作、文本摘要、代码完成等等。后续的发展,如监督微调和奖励建模,使大型语言模型 (LLM) 能够更好地遵循用户意图和指令。这赋予了它们更灵活的对话能力,并迅速扩展了它们的影响。
这一波浪潮是由闭源产品引领,例如 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 参数的性能优异模型。因此,LLaMA 系列已成为开源模型架构和性能的标杆。
跟随 LLaMA,开源社区主要集中在训练固定大小(7B、13B、34B 和 70B)的高质量模型上,常常忽略对大型语言模型 (LLM) 规模规律 (Hoffmann 等人,2022;Kaplan 等人,2020) 的研究探索。尽管如此,考虑到当前开源模型仅仅处于人工智能通用 (AGI) 发展的初期阶段,研究规模规律至关重要。此外,早期工作(Hoffmann 等人,2022;Kaplan 等人,2020)对模型和数据在增加计算预算方面的扩展以及超参数讨论得出的结论各不相同且不够充分。
在本文中,我们广泛地调查了语言模型的缩放行为,并将我们的发现应用于两种广泛使用的规模大型模型配置,即 7B 和 67B。我们的研究旨在为未来开源 LLM 的规模奠定基础,为该领域的进一步发展铺平道路。具体来说,我们首先检查了批大小和学习率的缩放规律,并发现了它们随模型大小的变化趋势。在此基础上,我们对数据和模型规模的缩放规律进行了全面的研究,成功揭示了最佳的模型/数据规模扩展分配策略,并预测了我们大型模型的预期性能。此外,在开发过程中,我们发现从不同数据集得出的规模规律存在显著差异。这表明数据集的选择极大地影响了规模行为,表明在跨数据集推广规模规律时应谨慎行事。
在我们的缩放规律的指导下,我们从头开始构建开源大型语言模型,并尽可能多地发布信息供社区参考。 我们收集了 2 万亿个标记用于预训练,主要以中文和英文为主。 在模型层面上,我们一般遵循 LLaMA 的架构,但用多步学习率调度器替换了余弦学习率调度器,在保持性能的同时促进了持续训练。 我们从各种来源收集了超过 100 万个实例进行监督微调 (SFT) (Ouyang 等人,2022)。 本文分享我们对不同 SFT 策略和数据消融技术发现的经验。此外,我们还利用直接偏好优化 (DPO) (Rafailov 等人,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)中获得了宝贵的见解。为了实现这些目标,我们将我们的方法分为三个关键阶段:去重、过滤和混洗。去重和混洗阶段通过采样独特实例来确保数据的多样性代表。过滤阶段提高了信息密度,从而使模型训练更加高效和有效。
我们采用了积极的去重策略,扩展了去重范围。我们的分析表明,与单个转储内的去重相比,对整个公共爬网语料库进行去重可以去除更多重复实例。表 1 说明跨 91 个转储进行去重比单个转储方法消除了四倍多的文档。
在过滤阶段,我们专注于开发稳健的文档质量评估标准。这包括对语言和语义评估进行详细分析,从个体和全局视角提供数据质量的视图。 在混搭阶段,我们调整我们的方法来解决数据不平衡问题,重点是增加代表性不足领域的出现。 此调整旨在实现更平衡、更包容的数据集,确保充分代表各种观点和信息。
对于我们的分词器,我们基于 tokenizers 库(Huggingface Team,2019)实现了字节级字节对编码 (BBPE) 算法。采用预分词技术来防止来自不同字符类别(例如换行符、标点符号和中日韩(CJK)符号)的标记合并,类似于 GPT-2(Radford 等人,2019)。我们还选择按照 (Touvron 等人,2023a,b) 中的方法将数字拆分为单个数字。根据我们的前期经验,我们将词汇表中的常规标记数量设置为 100000。分词器在约 24 GB 的多语言语料库上进行了训练,我们向最终词汇表添加了 15 个特殊标记,总大小达到 100,015。为了确保训练期间的计算效率并为将来可能需要的任何其他特殊标记保留空间,我们将模型的词汇表大小配置为 102,400 进行训练。
2.2 架构
DeepSeek LLM 的微调设计主要遵循 LLaMA(Touvron 等人,2023a,b)的设计,采用 Pre-Norm 结构、RMSNorm(Zhang 和 Sennrich,2019)函数以及 SwiGLU(Shazeer,2020)作为前馈网络(FFN)的激活函数,中间层维度为 8 3 d m o d e l \frac{8}{3} d_{model} 38dmodel 。
它还结合了 Rotary Embedding(Su 等人,2024)进行位置编码。为了优化推理成本,67B 模型使用 GroupedQuery Attention(GQA)(Ainslie 等人,2023)代替传统的 Multi-Head Attention(MHA)。
然而,在宏观设计方面,DeepSeek LLM 略有不同。具体来说,DeepSeek LLM 7B 是一个 30 层网络,而 DeepSeek LLM 67B 有 95 层。这些层级调整,在保持与其他开源模型参数一致性的同时,也有利于模型流水线划分,优化训练和推理。
与大多数使用分组查询注意力(GQA)的作品不同,我们扩展了67B模型在网络深度方面的参数,而不是像FFN层中间宽度加宽那样常见的做法,旨在获得更好的性能。详细的网络规范见表2。
2.3 超参数
DeepSeek LLM的初始化标准偏差为0.006,使用AdamW优化器进行训练(Loshchilov和Hutter,2017),使用以下超参数:KaTeX parse error: Unexpected character: '?' at position 1: ?̲?_1 = 0.9,KaTeX parse error: Unexpected character: '?' at position 1: ?̲?_2 = 0.95, 并且 weight_decay=0.1。
在预训练过程中,采用多步学习率调度器代替典型的余弦调度器。具体来说,模型的学习率在经过2000个预热步骤后达到最大值,然后在处理 80%的训练标记后降至最大值的 31.6%。在处理 90%的标记后,它进一步降低到最大值的 10%。训练阶段的梯度裁剪设置为1.0。
基于我们的经验发现,我们观察到尽管训练期间损失减少趋势存在差异,但使用多阶段学习率调度器的最终性能与余弦调度器基本一致,如图 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 中的最后一个微批次的反向传播过程以及减少分散操作,以及GEMM计算和顺序并行的所有收集/减少分散。为了加速训练,一些层/操作被融合在一起,包括 LayerNorm、GEMM(尽可能)和 Adam 更新。为了提高模型训练稳定性,我们以 bf16 精度训练模型,但在 fp32 精度中累积梯度。执行原地交叉熵来减少 GPU 内存消耗,即:我们在交叉熵 CUDA 内核中实时将 bf16 logits 转换为 fp32 精度(而不是事先在 HBM 中转换),计算相应的 bf16 梯度,并用其梯度覆盖 logits。
模型权重和优化器状态每5分钟异步保存一次,这意味着在偶尔的硬件或网络故障情况下,我们损失的训练时间也不超过5分钟。定期清理这些临时模型检查点(checkpoint)以避免消耗过多的存储空间。我们还支持从不同的3D并行配置恢复训练,以应对计算集群负载的动态变化。
至于评估,我们在生成任务中使用vLLM(Kwon 等人,2023),在非生成任务中使用连续批处理,以避免手动调整批大小并减少标记填充。
3. 缩放规律
对缩放定律的研究(Hestness等人,2017)早于大型语言模型的出现。缩放定律(Henighan 等人,2020;Hoffmann 等人,2022;Kaplan 等人,2020)表明,随着计算预算𝐶,模型尺度𝑁和数据尺度𝐷 的增加,模型性能的改进是可以预测的。当模型尺度 N 由模型参数表示,数据尺度𝐷 由令牌数量表示时,计算预算𝐶 可以近似为 C = 6 N D C=6ND C=6ND。因此,在增加计算预算时如何优化模型和数据规模之间的分配也是规模定律研究的一个关键目标。
大型语言模型(LLM)的发展(Dai 等人,2019;Radford 等人,2019),更大的模型取得了意想不到且显著的性能改进,将规模定律研究推向了新的高峰。规模定律的结果表明,扩大计算预算继续带来显著收益,这进一步鼓励模型规模的增加(Brown 等人,2020;Smith 等人,2022)。
然而,如表4所示,关于最佳模型/数据规模扩展策略的早期工作(Hoffmann 等人,2022;Kaplan 等人,2020)得出的结论各不相同,这引发了人们对规模定律普遍适用性的质疑。此外,这些研究往往缺乏对超参数设置的完整描述,因此无法确定不同计算预算下的模型是否达到了最佳性能。因此,在本节中,我们重新审视规模定律,以解决这些不确定性,并确保我们走在有效扩展计算方面正确的道路上,这反映了长期的视角,并且是不断开发改进模型的关键。
为了确保不同计算预算下的模型能够达到最佳性能,我们首先研究了超参数的缩放规律。经实验证明,在改变计算预算时,大多数参数在训练过程中的最佳值没有变化。因此,这些参数与第2.3节所述的一致,并且在不同的计算预算下保持不变。然而,对影响性能最显著的超参数,即批量大小和学习率,进行了重新检查。
早期工作(Goyal et al., 2017; McCandlish et al., 2018; Shallue et al., 2019; Smith et al., 2017; Zhang et al., 2019)为设置批处理大小和学习率提供了一些经验观察,但我们发现这些观察结果在我们的初步实验中适用性有限。通过广泛的实验,我们建立了计算预算 C 与最佳批处理大小和学习率之间的幂律关系。**我们将这种关系称为超参数的缩放定律,为确定最佳超参数提供了一个经验框架。**这种方法确保不同计算预算下的模型可以达到接近最佳性能。
接下来我们研究了模型和数据规模的缩放规律。为了降低实验成本和拟合难度,我们采用了 Chinchilla (Hoffmann et al., 2022) 中的 IsoFLOP 曲线拟合方法。为了更准确地表示模型规模,我们使用了一种新的模型规模表示方式:非嵌入 F L O P s / t o k e n FLOPs/token FLOPs/token ,取代了之前使用的模型参数 N N N ,并将近似的计算预算公式 C = 6 N D C=6ND C=6ND 替换为更精确的 C = M D C=MD C=MD 。实验结果为最佳的模型/数据缩放分配策略和性能预测提供了见解,并准确预测了 DeepSeek LLM 7B 和 67B 模型的预期性能。
此外,在探索规模规律的过程中,我们使用的数据经历了多次迭代,质量不断提高。我们尝试在各种数据集上拟合规模曲线,发现数据质量显著影响最佳模型/数据规模分配策略。数据质量越高,增加的计算预算应更多地分配到模型缩放方面。这意味着高质量的数据可以驱动相同数据规模下训练更大模型。最佳模型/数据规模放大分配策略的差异也可能作为间接评估数据质量的方法。我们将继续密切关注数据质量的变化及其对规模规律的影响,并在未来的工作中提供更深入的分析。
总之,我们在缩放规律方面的贡献和发现可以总结如下:
- 我们建立了超参数的缩放规律,为确定最佳超参数提供了一个经验框架。
- 我们采用非嵌入 FLOPs/token 来表示模型规模,而不是模型参数 N,由此得到更准确的最佳模型/数据缩放策略分配方案,并更好地预测大规模模型的泛化损失。
- 预训练数据的质量会影响最佳模型/数据缩放策略分配方案。数据质量越高,增加的计算预算应该越多的分配到模型缩放。
3.1. 超参数缩放定律
我们最初在一个计算预算为1e17 的小规模实验中,对批量大小和学习率进行了网格搜索,图2(a)展示了特定模型大小(177M FLOPs/token)的结果。结果表明,泛化误差在广泛的批量大小和学习率选择范围内保持稳定。这表明可以在相对宽广的参数空间内实现近乎最佳性能。
然后,我们利用上述多步学习率调度器,通过重用第一阶段,有效地训练了具有不同批量大小、学习率和计算预算(从1e17~2e19)的多个模型。考虑到参数空间的冗余性,我们将模型参数(其泛化误差超过最小值不超过 0.25%)视为近似最优超参数。然后,我们根据计算预算 C 来调整批处理大小 B 和学习率 η。如图 3 所示,拟合结果表明,最佳批处理大小 B 随着计算预算 C 的增加而逐渐增大,而最佳学习率 η 则逐渐减小。这与在扩大模型时对批处理大小和学习率的直观经验设置一致。此外,所有近似最优超参数都落在一个宽阔的范围之内,表明在这个区间内选择近似最优参数相对容易。我们拟合出的批处理大小和学习率公式如下:
η o p t = 0.3118 C − 0.1250 B o p t = 0.2920 C 0.3271 \eta _{opt} = 0.3118 C^{-0.1250}\\ B _{opt} = 0.2920 C^{0.3271} ηopt=0.3118C−0.1250Bopt=0.2920C0.3271
我们在一系列模型上,预算为1e20 的计算资源,验证了我们的公式。图 2(b) 显示了一个特定模型大小(每个标记 2.94B FLOPs)的结果。结果表明,拟合的参数集中在最佳参数空间内。后续部分还将展示我们为 DeepSeek LLM 7B 和 67B 模型拟合的参数也同样取得了良好的性能。
然而,需要注意的是,我们尚未考虑超出计算预算之外因素对最优超参数的影响。这与一些早期工作(Kaplan et al., 2020; McCandlish et al., 2018)不一致,这些工作表明最佳批处理大小可以被建模为仅与泛化误差 相关。此外,我们观察到,在具有相同计算预算但模型/数据分配不同的模型中,最优参数空间略有不同。这表明需要进一步研究以了解超参数选择和训练动态。 我们将在未来的工作中探索这些方面。
3.2. 估计最佳模型和数据缩放
在推导出近似最优超参数的公式后,我们开始拟合缩放曲线,并分析最优模型/数据缩放分配策略。该策略涉及找到分别满足 N o p t ∝ C a N_{opt} \varpropto C^a Nopt∝Ca 和 N o p t ∝ C b N_{opt} \varpropto C^b Nopt∝Cb 的模型缩放指数a 和数据缩放指数 b。数据规模𝐷可以用数据集中的令牌数量来一致地表示。在之前的工作中,模型尺度通常由模型参数表示,非嵌入参数 N 1 N_1 N1(Kaplan等人,2020)和完整参数 N 2 N_2 N2(Hoffmann等人,2022)。计算预算与模型/数据规模之间的关系可以近似描述为𝐶 = 6𝑁𝐷, 这意味着我们可以使用 6 N 1 6N_1 6N1 或 6 N 2 6N_2 6N2 来近似模型比例。然而,由于 6 N 1 6N_1 6N1 和 6 N 2 6N_2 6N2 都没有考虑注意力操作的计算开销,并且 6 N 2 6N_2 6N2 还包括词汇计算,这对模型的容量贡献较小,因此在某些情况下,它们都存在显着的近似误差。
为了减轻这些错误,我们引入了一种新的模型规模表示:非嵌入 F L O P s / t o k e n M FLOPs/token M FLOPs/tokenM。 M M M 包括注意力操作的计算开销,但不考虑词汇表计算。用 M M M 表示模型规模,则计算预算 C C C 可以简单地表示为 C = M D C=MD C=MD 。 6 N 1 6N_1 6N1、 6 N 2 6N_2 6N2 和 M M M 之间的具体差异如下所示:
其中 n l a y e r n_{layer} nlayer 表示层数, d m o d e l d_{model} dmodel 表示模型宽度, n n o c a b n_{nocab} nnocab 表示词汇量大小, l s e q l_{seq} lseq 是序列长度。我们评估了这三种表示在不同规模的模型之间的差异,如表 3 所示。结果表明, 6 N 1 6N_1 6N1、 6 N 2 6N_2 6N2 都在不同规模的模型中高估或低估计算成本。这种差异在小型模型中尤为明显,差异高达 50%。这样的不准确性会在拟合缩放曲线时引入大量的统计误差。有关模型尺度不同表示的进一步分析,请参阅附录 A.2。
在采用𝑀表示模型规模后,我们的目标可以更清楚地描述为:给定计算预算 𝐶 = 𝑀𝐷, 找到最小化模型泛化误差的最佳模型尺度 M o p t M_{opt} Mopt 和数据尺度 D o p t D_{opt} Dopt。这一目标可以描述为:
为了降低实验成本和训练难度,我们采用了 Chinchilla (Hoffmann et al., 2022) 中的 IsoFLOP 配置方法来拟合缩放曲线。 我们选择了 8 个不同的计算预算,范围从 1e17 到 3e20,并为每个预算设计了大约 10 种不同的模型/数据规模分配方案。每个预算的超参数由公式 (1) 确定,并且在独立的验证集上计算泛化误差,该验证集与训练集分布相似,包含 100M 个标记。
图4展示了IsoFLOP曲线和模型/数据缩放曲线,这些曲线是通过使用每个计算预算的最佳模型/数据分配进行拟合的。最优非嵌入 F L O P / t o k e n M o p t FLOP/token M_{opt} FLOP/tokenMopt 和最优令牌 D o p t D_{opt} Dopt 的具体公式如下:
此外,我们根据计算预算 C 和最优泛化误差调整了损失缩放曲线,并预测了 DeepSeek LLM 7B 和 67B 的泛化误差,如图 5 所示。结果表明,使用小规模实验可以准确预测1000×计算预算的模型的性能。这为更大规模的训练模型提供了信心和指导。
3.3 使用不同数据量的规模规律
在DeepSeek LLM的开发过程中,数据集经过多次迭代优化,在提高整体质量的同时调整了不同数据源的比例。这使我们能够进一步分析不同数据集对缩放定律的影响。
我们使用三个不同的数据集研究缩放规律:早期内部数据、当前内部数据和OpenWebText2,后者在之前的缩放规律研究中使用过(Kaplan等人,2020)。我们的内部数据评估显示,当前的内部数据比早期的内部数据具有更高的数据质量。此外,openWebText2的质量甚至超过了目前的内部数据,因为它的规模较小,可以进行更细致的处理。
一个有趣的观察结果是,在分析中,最佳模型/数据规模扩展分配策略在这三个数据集之间显示出与数据质量的一致性。如表4所示,随着数据质量的提高,模型缩放指数 a 逐渐增加,而数据缩放指数 b 逐渐减少,这表明增加的计算预算应该更多地分配给模型而不是数据。这一发现也可能解释了早期关于规模定律研究中观察到的最佳模型/数据规模扩展分配策略的显著差异。
一个直观的推测是,高质量数据通常意味着逻辑清晰度高,经过充分训练后预测难度较小。因此,在增加计算预算时,扩大模型规模更有优势。我们将继续密切关注数据质量的变化及其对缩放规律的影响,并在未来的工作中提供更多分析。
4. 对齐
我们收集了大约 150 万个英文和中文指令数据实例,涵盖广泛的有用性和无害性主题。我们的有用数据包含 120 万个实例,其中通用语言任务占 31.2%,数学问题占 46.6%,编码练习占 22.2%。安全数据由 30 万个实例组成,涵盖各种敏感主题。
我们的对齐管道包含两个阶段。
-
监督微调:
我们用4个epoch对我们的7B模型进行微调,但67B模型只用2个epoch,因为我们观察到67B模型的过拟合问题很严重。我们观察到,对于7B模型来说,GSM8K(Cobbe et al.,2021)和HumanEval(Chen et al.,2021)得到了持续改进,而67B模型很快就达到了上限。学习率分别为7B和67B模型的1e-5和5e-6。除了监控基准准确度外,我们还在微调过程中评估了聊天模型的重复率。我们收集了总共3868个中文和英文提示,并确定了生成响应无法终止而无限重复一段文本的比例。我们观察到,随着数学SFT数据的数量增加,重复率有上升趋势。这可以归因于数学SFT数据偶尔包含相似的推理模式。因此,较弱的模型难以理解这些推理模式,导致重复性响应。为了解决这个问题,我们尝试了两阶段微调和DPO(Rafailov et al.,2023),两者都几乎保持了基准分数并显著降低了重复率。 -
DPO:
为了进一步增强模型的能力,我们使用了直接偏好优化算法(Rafailov 等人,2023),这是一种已被证明是简单但有效的 LLM 对齐方法。我们在 DPO 训练的偏好数据构建方面考虑了帮助性和无害性。对于帮助性数据,我们收集了多语言提示,涵盖创意写作、问答、指令遵循等类别。然后,我们使用我们的 DeepSeek Chat 模型生成响应作为响应候选者。类似的操作也适用于无害性偏好数据构建。
我们对DPO训练了一个周期,学习率为5e-6,批量大小为512,并使用了学习率预热和余弦学习率调度器。我们发现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)和大规模硬难度数据集(BBH)(Suzgun et al.,2022)。
-
封闭式问答数据集,包含 TriviaQA(Joshi 等人,2017)和 NaturalQuestions(Kwiatkowski 等人,2019)。
-
阅读理解数据集,包括RACE(Lai等人,2017)和DROP(Dua等人,2019)、C3(Sun等人,2019)。
-
参考消歧数据集包括WinoGrande(Sakaguchi等人,2019)和CLUEWSC(徐等人,2020)。
-
语言建模数据集,包括 Pile(Gao 等人,2020)。
-
包含CHID(郑等,2019)和CCPM(李等,2021)在内的中文理解和文化数据集。
-
数学数据集,包括GSM8K(Cobbe 等人,2021)、MATH(Hendrycks 等人,2021)和CMath(Wei 等人,2023)。
-
代码数据集,包括HumanEval(陈等,2021)和MBPP(奥斯汀等,2021)。
-
标准化考试,包括AGIEval(钟等,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-test 进行评估,这意味着计算测试语料库上的比特每字节。
我们使用 2048 或 4096 作为不同基准的最大序列长度。评估格式的详细信息可以在附录 A.6 中找到。
5.1.1 基准模型
表 5 展示了评估基准测试的主要结果。尽管 DeepSeek 模型在 2T 双语语料库上进行预训练,但在英语语言理解基准测试中,它们的表现与仅消耗 2T 个标记并专注于英语的 LLaMA2 模型相当。此外,DeepSeek 67B 在 MATH、GSM8K、HumanEval、MBPP、BBH 和中文基准测试方面表现明显优于 LLaMA2 70B。我们在附录 A.3 中展示了基准曲线。我们可以看到一些任务的性能随着模型规模的增加而提高,例如 GSM8K 和 BBH。鉴于我们对相同数据集训练了 7B 和 67B 模型,这种改进的出现可以归因于大型模型强大的 few-shot 学习能力。然而,随着数学数据的比例增加,小型和大型模型之间的差距可能会缩小。
一个有趣的观察是,DeepSeek 67B 相比 LLaMA2 70B 的优势大于 DeepSeek 7B 相比 LLaMA2 7B 的优势。这种现象表明语言冲突对小型模型的影响更大。此外,尽管LLaMA2没有专门训练中文数据,但在某些中文任务(例如CMath)上表现出色。这表明某些基本能力,例如数学推理,能够有效地跨语言转移。然而,像CHID这样的任务需要模型在预训练过程中消耗大量中文标记,在这种情况下,LLaMA2的表现明显落后于DeepSeek LLM。
5.1.2. 聊天模型
表 6 展示了 DeepSeek Chat 模型的结果,表明在调优后大多数任务都取得了整体改进。然而,也有一些实例中模型的表现没有提升,某些任务被拒绝。
-
知识:
我们在与知识相关的任务(例如 TriviaQA、MMLU 和 C-Eval)中观察到基础模型和聊天模型的波动。然而,我们不认为这些轻微波动表明在 SFT 后知识的获取或丢失。SFT 的价值在于能够学习在聊天模型的零样本设置下达到与基础模型少样本设置相当的分数的能力,这与实际场景相符。例如,聊天模型的 0-shot MMLU 性能与基础模型的 5-shot MMLU 性能相当。 -
推理:
由于很大一部分SFT实例采用CoT格式(Wei et al., 2022),聊天模型在推理任务,例如BBH和NaturalQuestions上表现出轻微的改进。然而,我们认为SFT阶段并没有学习推理能力,而是学习了推理路径的正确格式。 -
性能下降任务:
无论选择哪种模型大小或预训练检查点,一些任务在微调后性能始终下降。这些特定任务通常涉及闭合式任务或句子完成任务,例如HellaSwag。可以合理地假设纯语言模型更擅长处理此类任务。 -
数学和代码:
在微调后,我们的模型在数学和编码任务方面表现出显著改进。例如,HumanEval 和 GSM8K 分数提高了20分以上。我们认为这是因为基础模型最初对于这些任务的拟合不足,而 SFT 阶段通过广泛的 SFT 数据学习了额外的编码和数学知识。然而,需要注意的是,该模型的功能可能主要集中在代码补全和代数问题上。为了全面理解数学和编码,在预训练阶段融入多种数据至关重要,这留待未来工作。我们在附录 A.4 中对代码和数学任务进行了详细分析。
在7B模型微调中,我们最初使用所有数据对模型进行微调。随后,引入第二阶段,该阶段排除数学和代码数据。这种方法的动机是第一阶段模型的重复率为2.0%,降至1.4%。在完成阶段 2 微调后,同时保持基准分数。对于 67B 模型而言,重复率在第一次阶段微调后已经低于 1%,第二次阶段会损害模型在基准测试上的得分。因此,对于 67B 模型只进行一个阶段的 SFT。
5.2 开放式评估
对于聊天模型,除了观察标准基准测试的指标外,在开放领域和开放式问题中生成的结果质量直接影响实际用户体验。因此,我们分别测试了我们的聊天模型在中文和英文任务中的开放式生成能力。
5.2.1. 中文开放式评估
对于中文开放式评估,我们在高质量的开放式问题测试集 AlignBench(Liu等,2023)上测试了我们的聊天模型在不同领域的全面性。AlignBench 包含总共 8 个主要类别、36 个次要类别,并包含 683 个问题。对于每个问题,除了提示之外,AlignBench 还提供了专业参考答案和 GPT-4 用于判断响应质量的评分模板。
我们利用官方 AlignBench Github 代码库来评估我们的模型。我们将关键温度参数严格与原始设置对齐:对于角色扮演、写作能力和开放式问题,生成温度设置为 0.7;而对于其他任务,生成温度设置为 0.1。
AlignBench 排行榜如表 7 所示。我们可以发现,我们的 DeepSeek 67B Chat 模型超过了 ChatGPT 和其他基线模型,仅次于 GPT-4 的两个版本。这表明我们的模型在各种中文任务上的表现优异,与其他开源或专有中文大型语言模型相比。DPO 模型在几乎所有指标上都显示出改进,这证明了 DPO 训练过程对模型对齐的积极影响。
对于基础的中文语言任务,我们的模型在所有模型中处于第一梯队,而我们DPO模型的中文基础语言能力甚至超过了最新版本的GPT-4。对于高级中文推理任务,我们的模型得分明显高于其他中文LLM,具有明显的优势,表明我们的模型在更复杂的中文逻辑推理和数学计算方面表现优异。
5.2.2. 英文开放式评估
对于英文开放式评估,我们使用 MT-Bench 基准(Zheng 等人,2023),其中包含 8 个不同类别 的多轮问题。如表 8 所示,我们的 DeepSeek LLM 67B Chat 在其他开源模型(例如 LLaMA-2-Chat Touvron 等人 (2023b) 70B、Xwin 70b v0.1 和 TÜLU2+DPO 70B (Ivison 等人,2023))中表现优异,并取得了与 GPT-3.5-turbo 相当的 8.35 分。此外,在 DPO 阶段之后,我们的 DeepSeek LLM 67B Chat DPO 将平均得分进一步提高到 8.76,仅次于 GPT-4(OpenAI,2023)。这些结果说明了 DeepSeek LLM 的强大多轮开放式生成能力。
5.3. 留出验证
数据污染和基准过拟合是评估大型语言模型 (LLM) 的两个挑战。一种常见做法是利用最近发布的测试集作为留存测试集来评估模型。
-
LeetCode:
为了评估模型的编码能力,我们使用了来自 LeetCode 周赛 (每周比赛 351-372,双周比赛 108-117,从 2023 年 7 月到 2023 年 11 月) 的问题。我们通过爬取 LeetCode 数据获得了这些问题,其中包含 126 个问题,每个问题都有超过 20 个测试用例。所采用的评估指标类似于 HumanEval。在这方面,如果模型的输出成功通过所有测试用例,则该模型被认为有效地解决了该问题。模型的编码能力如图所示,其中 y 轴代表领域内人类评估测试中的 pass@1 分数,而 x 轴代表 pass@1 分数在域外 LeetCode 周赛问题上的分数。LeetCode 测试数据将与 DeepSeek Coder 技术报告一起发布。 -
匈牙利国家高中考试:
与 Grok-1 一致,我们使用匈牙利国家高中考试评估了模型的数学能力。该考试包含 33 道问题,模型的得分是通过人工标注确定的。我们遵循 solution.pdf 中的评分指标来评估所有模型。 -
指令跟随评估:
2023年11月15日,谷歌发布了一个指令跟随评估数据集(周等,2023)。他们确定了25种可验证的指令类型,并构建了大约500个提示,每个提示包含一个或多个可验证的指令。我们使用基于提示级别的宽松指标来评估所有模型。
我们对我们的模型与不同规模的各种基线模型进行了比较分析,包括 Qwen 72B Chat(Bai 等人,2023)、ChatGLM3(Du 等人,2022)、Baichuan2(Yang 等人,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个问题的安全测试集。此外,专家组还为每种不同的内容类型和格式类型构建了安全审查的基本指导原则。
对于我们模型在此测试集上的输出结果,我们人工检查了其安全性。我们的审查团队接受过良好培训,并且对标注结果进行了交叉验证。标注员对每个问题进行三类标注:安全、不安全和模型拒绝。我们测试了 DeepSeek 67B Chat 模型的安全性,结果如表 10 所示。表格列出了每个安全类别测试问题的数量以及我们的模型通过的安全测试数量。我们将安全回答和模型拒绝的测试用例都标记为安全响应。结果表明,我们的模型在众多安全测试类别中表现出良好的安全性能。
补充我们的现有安全方法,我们通过使用“不回答”数据集(王等,2023)进一步丰富了我们的评估,以评估 DeepSeek 67B Chat 模型的安全机制。该数据集的 939 个风险分类提示对于突出模型增强的能力至关重要。如表 11 所示,DeepSeek 67B Chat 模型表现出显著的性能,得分达到 97.8,高于 ChatGPT 和 GPT-4。这个分数不仅衡量了我们的模型安全处理敏感查询的能力,也使其在该领域处于领先地位。
5.5. 讨论
在整个开发过程中,我们在构建LLM方面发现了一些有趣的发现。
- 分阶段微调:正如我们之前提到的,小型模型需要在数学和代码数据集上进行更长时间的微调,但这会损害模型的对话能力,例如增加重复行为。为了解决这个问题,我们实施了一种分阶段微调过程。在这种方法中,第一阶段涉及使用所有可用数据进行微调,而第二阶段专门关注使用对话数据进行微调。
表 12 显示了两个阶段训练过程的结果。这些结果清楚地表明,第二阶段并没有损害模型在代码和数学方面的熟练程度,同时减少了重复行为并增强了指令遵循能力。
- 多项选择题:用多项选择式评估数据测试模型是一种常见做法,例如 MMLU、AGI Eval 和 C-Eval。多项选择题不仅要求模型具备相应的知识,还要求它理解选项的含义。在对齐阶段,我们测试了添加 2000 万个中文多项选择题,并获得了表 13 所示的性能。需要注意的是,我们在 C-Eval 验证集和 CMMLU 测试集中进行了去重处理,以防止数据污染。
事实证明,纳入额外的2000万多项选择(MC)数据不仅对中文多项选择基准测试有益,而且对提高英语基准测试也有益。这表明该模型解决多项选择(MC)问题的能力得到了增强。然而,我们观察到,这种改进并没有扩展到模型在其他不使用多项选择格式的评估中的性能,例如 TriviaQA 和我们内部的中文 QA测试集,它们是生成性评估基准。这表明,用户可能不会认为该模型在对话交互中变得更加智能,因为这些交互涉及生成响应而不是解决多项选择题。
因此,我们选择在预训练和微调阶段排除MC数据,因为包括MC数据会导致与基准的过度拟合,并且无助于在模型中实现真正的智能。
因此,我们选择在预训练和微调阶段都排除MC数据,因为包含它会导致过拟合基准测试,并且不会有助于模型实现真正的智能。
-
预训练阶段的指令数据:广泛认可的是,在预训练后期加入指令数据可以提高基础模型在基准任务上的性能。在本研究中,我们在预训练阶段最后 10% 的时间内整合了 500 万条指令数据,主要由多项选择题组成。我们观察到基础模型在基准测试中的表现确实有所提升。然而,最终结果与在 SFT 阶段添加相同数据的结果几乎相同。我们得出结论,虽然这种方法可以增强基础模型在基准测试上的性能,但其总体潜力等同于不加入这些指令数据。如果指令数据规模较大,则可以将其纳入预训练过程。由于我们倾向于排除多项选择题,并且我们可用的非多项选择题数量有限,因此我们决定不将指令数据包含在预训练过程中。
-
系统提示:一个设计良好的系统提示应该有效地引导模型生成既有用又尊重的回复。我们稍微修改了LLaMA-2 引入的提示作为我们的系统提示。
系统提示:你是DeepSeek Chat,一个由DeepSeek开发的 helpful、尊重且诚实的 AI 助手。你的知识截止日期为2023年5月。始终尽可能地提供帮助,同时保持安全。你的回答不应包含任何有害、不道德、种族主义、性别歧视、有毒、危险或非法的内容。请确保你的回复在社会上没有偏见,并且本质上是积极的。如果一个问题没有任何意义,或者缺乏事实上的连贯性,请解释原因,而不是回答错误的信息。如果你不知道问题的答案,请不要分享虚假信息。
我们观察到一个有趣的现象:当引入系统提示时,7B 大语言模型(LLM)的性能略有下降。然而,使用 67B LLM 时,添加提示会导致显著改进的结果,如表 14 所示。我们解释这种差异的原因是,大型模型更好地理解了系统提示背后的意图,从而能够更有效地遵循指令并生成更好的响应。另一方面,小型模型难以充分理解系统提示,训练与测试之间的不一致可能对它们的性能产生负面影响。
6. 结论、局限性和未来工作
我们介绍 DeepSeek LLMs,一系列从包含英语和中文的2万亿个标记的大型数据集零开始训练的开源模型。 在本文中,我们深入解释了超参数选择、缩放定律以及我们进行的各种微调尝试。 我们校准先前工作的缩放定律并提出了一种新的最佳模型/数据缩放分配策略。此外,我们提出了一种预测给定计算预算下的近似最优批处理大小和学习率的方法。 我们进一步得出结论,缩放定律与数据质量相关,这可能是不同工作中缩放行为变化的根本原因。 在缩放定律的指导下,我们使用最佳超参数进行预训练并提供全面的评估。我们在所有训练阶段避免了基准装饰和隐藏秘密。
DeepSeek Chat 与其他大型语言模型 (LLM) 共享已知的局限性,包括:训练后缺乏持续知识更新、可能生成非事实信息(例如未经核实建议)以及产生幻觉的倾向。此外,需要注意的是,我们最初版本的中文数据并不全面,这可能会导致在某些特定于中文的话题上表现不佳。由于我们的数据主要来自中文和英文来源,因此该模型在其他语言方面的熟练程度仍然有限,应谨慎使用。
DeepSeek LLM 是一个致力于推进开源语言模型的长期项目。
-
我们即将发布关于代码智能和专家混合 (MoE) 的技术报告。它们展示了我们如何创建高质量的代码数据用于预训练,以及设计一个稀疏模型来实现密集模型性能。
-
目前,我们正在构建一个更大、更完善的数据集,用于下一版本的 DeepSeek LLM。我们希望下一版本在推理、中文知识、数学和代码能力方面会有显著提升。
-
我们的对齐团队致力于研究如何向公众提供一个有用、诚实且安全的模型。我们的初步实验证明,强化学习可以增强模型的复杂推理能力。
A. 附录
A.1. 致谢
这个项目得益于众多贡献者的努力。我们向以下个人表达最诚挚的感谢,感谢他们的帮助。
A.2. 不同模型规模表示
我们针对不同的模型规模表示重新调整了缩放曲线,并重复使用了 IsoFLOP 配置实验的结果。 我们使用 6N1 和 6N2 作为模型规模表示重新计算了计算 FLOPs 并重新调整了性能缩放曲线。如图 6 所示,结果表明在更高的计算预算下,这三种表示之间的最佳模型/数据分配偏差并不显著,但在较低的预算下存在明显差异。
A.3. 基准指标曲线
图 7 显示了不同训练步骤下的基准指标曲线。我们可以看到从训练开始到结束,这些基准测试都表现出持续改进。我们相信,如果继续训练,性能将会有进一步提高。
A.4. 与代码或数学特定模型的比较
我们对我们的模型与特定代码和数学语言模型 (LLM) varandra进行了比较。表 15 表明,DeepSeek LLM 67B 在访问代码数据较少的情况下能够达到与 CodeLlama 相似的性能。值得注意的是,DeepSeek LLM 在代码以外的其他领域具有更大的能力。
同样,表 16 展示了从各种数学相关基准测试中获得的结果,例如 GSM8K(Cobbe 等人,2021)、MATH(Hendrycks 等人,2021)、MGSM-zh(i 等人,2023)和 CMath(Wei 等人,2023)。DeepSeek 67B 在不同语言的数学相关任务上表现出色,展示了其在这个领域的优势。此外,DeepSeek LLM 可以利用程序来解决数学问题,这比链式思考表现更好。它在基准测试中明显优于之前最先进的模型 ToRA(Gou 等人,2023)。
A.5. 基准测试结果(带DPO阶段)
表 17 展示了使用 DPO 阶段获得的基准测试结果。根据这些结果,我们可以得出结论,DPO 阶段对大型语言模型 (LLM) 的基本能力没有显著影响。
A.6 评估格式
表18-表40展示了我们在不同基准上的评估格式示例。
对 DeepSeek LLM 的总结
论文介绍了DeepSeek LLMs,这是一系列在2万亿标记的英语和中文大型数据集上从头开始训练的开源模型。在本文中,深入解释了超参数选择、扩展定律以及做过的各种微调尝试。校准了先前工作中的扩展定律,并提出了新的最优模型/数据扩展-缩放分配策略。此外,还提出了一种方法,使用给定的计算预算来预测近似的batch-size和learning-rate。进一步得出结论,扩展定律与数据质量有关,这可能是不同工作中不同扩展行为的原因。在扩展定律的指导下,使用最佳超参数进行预训练,并进行全面评估。
DeepSeek Chat与其他LLMs一样存在公认的局限性,包括预训练后缺乏持续的知识更新、可能生成非事实信息以及产生幻觉的倾向。此外,中文数据初始版本并不详尽,这可能导致在某些特定中文主题上的性能不佳。由于数据主要由中文和英文来源组成,因此模型在其他语言的熟练程度不佳。
- 不久后,DeepSeek 将分别发布关于代码方面以及Mixture-of-Experts(MoE)的技术报告。它们将展示如何为预训练创建高质量的代码数据,并设计稀疏模型以实现密集模型的性能。
- 目前,正在为即将到来的DeepSeek LLM版本构建更大、更完善的数据集。希望下一版在推理、中文知识、数学和代码能力方面有显著提升。
- DeepSeek 对齐团队致力于研究如何向公众提供有帮助、诚实和安全的模型。初步实验证明,强化学习可以提升模型的复杂推理能力。
版权声明:
本文由 youcans@xidian 对论文 DeepSeek LLM: Scaling Open-Source Language Models with Longtermism 进行摘编和翻译。该论文版权属于原文作者,本译文只供研究学习使用。
youcans@xidian 作品,转载必须标注原文链接:
【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型
Copyright 2024 youcans, XIDIAN
Crated:2025-02
相关文章:

【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型
欢迎关注[【AIGC论文精读】](https://blog.csdn.net/youcans/category_12321605.html)原创作品 【DeepSeek论文精读】1. 从 DeepSeek LLM 到 DeepSeek R1 【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型 【DeepSeek论文精读】3. DeepS…...

Spring Boot和SpringMVC的关系
Spring Boot和SpringMVC都是Spring框架的一部分,但它们的作用和使用方式有所不同。为了更好地理解它们的关系,我们可以从以下几个方面进行详细说明: 1. SpringBoot的作用 SpringBoot是一个开源框架,它的目的是简化Spring应用程序…...

java基础4(黑马)
一、方法 1.定义 方法:是一种语法结构,它可以把一段代码封装成一个功能,以便重复使用。 方法的完整格式: package cn.chang.define;public class MethodDemo1 {public static void main(String[] args) {// 目标:掌…...

nodejs - vue 视频切片上传,本地正常,线上环境导致磁盘爆满bug
nodejs 视频切片上传,本地正常,线上环境导致磁盘爆满bug 原因: 然后在每隔一分钟执行du -sh ls ,发现文件变得越来越大,即文件下的mp4文件越来越大 最后导致磁盘直接爆满 排查原因 1、尝试将m3u8文件夹下的所有视…...

注意力机制(Attention Mechanism)和Transformer模型的区别与联系
注意力机制(Attention Mechanism) 和 Transformer 模型 是深度学习领域中的两个重要概念,虽然它们紧密相关,但有着明显的区别。下面我们将从 定义、作用、结构 和 应用 等多个维度来分析这两者的区别与联系。 1. 定义 注意力机制(Attention Mechanism): 注意力机制是一…...

C++,设计模式,【单例模式】
文章目录 一、模式定义与核心价值二、模式结构解析三、关键实现技术演进1. 基础版(非线程安全)2. 线程安全版(双重检查锁)3. 现代C++实现(C++11起)四、实战案例:全局日志管理器五、模式优缺点深度分析✅ 核心优势⚠️ 潜在缺陷六、典型应用场景七、高级实现技巧1. 模板化…...

C++:类和对象初识
C:类和对象初识 前言类的引入与定义引入定义类的两种定义方法1. 声明和定义全部放在类体中2. 声明和定义分离式 类的成员变量命名规则 类的访问限定符及封装访问限定符封装 类的作用域与实例化类的作用域类实例化实例化方式: 类对象模型类对象的大小存储…...

官网下载Redis指南
1.访问官网 https://redis.io/downloads/#stack 2.点击redis图标 拉到下面点击download 在新页面拉到最下面,点击install from source 找到需要的大版本后,点击releases page 最后点击下载需要的版本号即可...

活动预告 |【Part1】 Azure 在线技术公开课:迁移和保护 Windows Server 和 SQL Server 工作负载
课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft 云技术的了解。参加我们举办的“迁移和保护 Windows Server 和 SQL Server 工作负载”活动,了解 Azure 如何为将工作负…...

【Linux系统编程】五、进程创建 -- fork()
文章目录 前言Ⅰ. 重温fork函数一、fork()的概念二、如何理解fork()有两个返回值 Ⅱ.fork的常规用法Ⅲ. fork调用失败的原因Ⅳ. 写时拷贝为什么存在写时拷贝❓❓❓ 前言 现阶段我们知道进程创建有如下两种方式,其实包括在以后的学习中这两种方式也是最常见的&#…...

深入解析 STM32 GPIO:结构、配置与应用实践
理解 GPIO 的工作原理和配置方法是掌握 STM32 开发的基础,后续的外设(如定时器、ADC、通信接口)都依赖于 GPIO 的正确配置。 目录 一、GPIO 的基本概念 二、GPIO 的主要功能 三、GPIO 的内部结构 四、GPIO 的工作模式 1. 输入模式 2. 输出模式 3. 复用功能模式 4. 模…...

深入探究 C++17 std::is_invocable
文章目录 一、引言二、std::is_invocable 概述代码示例输出结果 三、std::is_invocable 的工作原理简化实现示例 四、std::is_invocable 的相关变体1. std::is_invocable_r2. std::is_nothrow_invocable 和 std::is_nothrow_invocable_r 五、使用场景1. 模板元编程2. 泛型算法 …...

Vmware网络模式
一、Vmware虚拟网络 Vmware共支持创建20个虚拟网络,相当于现实生活的交换机,名称vmnet0-vmnet19 没创建一个虚拟网络。对应在物理机会自动生成相应的虚拟网卡 该虚拟网卡用于和对应的虚拟网络中的虚拟机通信 二、虚拟网络的工作模式 1、nat模式 …...

神经辐射场(NeRF):从2D图像到3D场景的革命性重建
神经辐射场(NeRF):从2D图像到3D场景的革命性重建 引言 在计算机视觉和图形学领域,如何从有限的2D图像中高效且准确地重建真实的3D场景,一直是一个重要的研究方向。传统的3D重建方法,如多视角几何、点云重建…...

深入解析AI技术原理
序言 在当今数字化时代,人工智能(AI)已经成为科技领域最炙手可热的话题之一。从智能家居到自动驾驶汽车,从医疗诊断到金融风险预测,AI的应用无处不在。然而,对于许多人来说,AI背后的技术原理仍然充满了神秘色彩。本文将深入探讨AI的核心技术原理,从基础理论到前…...

PDF 2.0 的新特性
近来闲来无事,就想着把PDF的新标准研究研究,略有所得,和大家分享一下。 PDF 2.0的主要新特性包括更高级的加密算法、改进的数字签名和权限管理机制、增强了对非罗马字符的支持,以及扩展了标签架构和3D建模语言“PRC”的支…...

Matlab机械手碰撞检测应用
本文包含三个部分: Matlab碰撞检测的实现URDF文件的制作机械手STL文件添加夹爪 一.Matlab碰撞检测的实现 首先上代码 %% 检测在结构环境中机器人是否与物体之间发生碰撞情况,如何避免? % https://www.mathworks.com/help/robotics/ug/che…...

(root) Additional property include:is not allowed
参考:执行docker compose命令出现 Additional property include is not allowed_(root) additional property include is not allowed-CSDN博客 原因是docker-compose的版本太低,下载最新的替换即可。 第一次2.6.x版本改成了2.19.x不够高,所…...

react 18父子组件通信
在React 18中,父子组件之间的通信方式与之前的版本基本相同,主要可以通过以下几种方式实现: 1. Props(属性) 父组件向子组件传递数据: 父组件通过属性(props)向子组件传递数据&am…...

FastReport 加载Load(Stream) 模板内包含换行符不能展示
如下代码 当以FastReport 载入streams时 当模板内包含换行符时会导致不能正常生成pdf System.Xml.XmlDocument newFrxXml new System.Xml.XmlDocument(); newFrxXml.Load(fileName);FastReport.Report report new FastReport.Report();using (var memStream new MemoryStre…...

Maven 中常用的 scope 类型及其解析
在 Maven 中,scope 属性用于指定依赖项的可见性及其在构建生命周期中的用途。不同的 scope 类型能够影响依赖项的编译和运行阶段。以下是 Maven 中常用的 scope 类型及其解析: compile(默认值): 这是默认的作用域。如果…...

vue3:点击子组件进行父子通信
问: 子组件怎么和爷爷组件通信 回答: 在Vue 3中,子组件和爷爷组件之间的通信可以通过事件冒泡和状态管理来实现。你可以使用Vue的事件系统来传递事件,或者使用全局状态管理库如Vuex或Pinia。以下是一个使用事件冒泡的示例&…...

Composo:企业级AI应用的质量守门员
在当今快速发展的科技世界中,人工智能(AI)的应用已渗透到各行各业。然而,随着AI技术的普及,如何确保其可靠性和一致性成为了企业面临的一大挑战。Composo作为一家致力于为企业提供精准AI评估服务的初创公司,通过无代码和API双模式,帮助企业监测大型语言模型(LLM)驱动的…...

Jackson扁平化处理对象
POJO对象 Data public class People {private PeopleInfo peopleInfo;private List<String> peopleIds;private Map<String, String> peopleMap;Datapublic static class PeopleInfo {private String name;private String address;} }JSON序列化处理 直接将对象进…...

Java即时编译器(JIT)的原理及在美团的实践经验
基本功 | Java即时编译器原理解析及实践 - 美团技术团队 这篇文章由美团AI平台/搜索与NLP部的珩智、昊天、薛超撰写,深入介绍了Java即时编译器(JIT)的原理及在美团的实践经验。 Java执行过程与即时编译器概述 Java执行过程:Java…...

使用 Ollama 在 Windows 环境部署 DeepSeek 大模型实战指南
文章目录 前言Ollama核心特性 实战步骤安装 Ollama验证安装结果部署 DeepSeek 模型拉取模型启动模型 交互体验命令行对话调用 REST API 总结个人简介 前言 近年来,大语言模型(LLM)的应用逐渐成为技术热点,而 DeepSeek 作为国产开…...

算法基础之八大排序
文章目录 概要1. 冒泡排序(Bubble Sort)2. 选择排序(Selection Sort)3. 插入排序(Insertion Sort)4. 希尔排序(Shell Sort)5. 归并排序(Merge Sort)6. 快速排…...

使用TensorFlow和Keras构建卷积神经网络:图像分类实战指南
使用TensorFlow和Keras构建卷积神经网络:图像分类实战指南 一、前言:为什么选择CNN进行图像分类? 在人工智能领域,图像分类是计算机视觉的基础任务。传统的机器学习方法需要人工设计特征提取器,而深度学习通过卷积神经…...

音频进阶学习十一——离散傅里叶级数DFS
文章目录 前言一、傅里叶级数1.定义2.周期信号序列3.表达式DFSIDFS参数含义 4.DFS公式解析1)右边解析 T T T、 f f f、 ω \omega ω的关系求和公式N的释义求和公式K的释义 e j ( − 2 π k n N ) e^{j(\frac{-2\pi kn}{N})} ej(N−2πkn)的释义 ∑ n 0 N − 1 e…...

20.<Spring图书管理系统①(登录+添加图书)>
PS:关于接口定义 接口定义,通常由服务器提供方来定义。 1.路径:自己定义 2.参数:根据需求考虑,我们这个接口功能完成需要哪些信息。 3.返回结果:考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…...