DeepSeek LLM: Scaling Open-Source Language Models with Longtermism (2024.01.06)
DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models(2024.01.12)
DeepSeek-Coder: When the Large Language Model Meets Programming – The Rise of Code Intelligence(2024.01.25)
DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models(2024.02.06)
DeepSeek-VL: Towards Real-World Vision-Language Understanding (2024.03.09)
DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model(2024.05.07)
DeepSeek-Prover: Advancing Theorem Proving in LLMs through Large-Scale Synthetic (2024.05.23)
DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence(2024.06.17)
Let the Expert Stick to His Last: Expert-Specialized Fine-Tuning for Sparse Architectural Large Language Models (2024.07.02)
DeepSeek-Prover-V1.5: Harnessing Proof Assistant Feedback for Reinforcement Learning and Monte-Carlo Tree Search(2024.08.15)
Janus: Decoupling Visual Encoding for Unified Multimodal Understanding and Generation(2024.10.18)
JanusFlow: Harmonizing Autoregression and Rectified Flow for Unified Multimodal Understanding and Generation (2024.11.13)
DeepSeek-VL2: Mixture-of-Experts Vision-Language Models for Advanced Multimodal Understanding(2024.12.14)
DeepSeek-V3 Technical Report (2024.12.27)
DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning(2025.01.22)
一 [deepseek-V1, LLAMA 2模型]DeepSeek LLM: Scaling Open-Source Language Models with Longtermism (2024.01.06)
1.1 预训练
- 基座模型:llama系列模型:7B, 67B
- 训练数据量:2 万亿个标记的数据集,主要以中文和英文为主
- 训练数据来源:
Computer. Redpajama: an open dataset for training large language models, 2023. URL
https://github.com/togethercomputer/RedPajama-Data.
Gao, S. Biderman, S. Black, L. Golding, T. Hoppe, C. Foster, J. Phang, H. He, A. Thite,
N. Nabeshima, et al. The Pile: An 800GB dataset of diverse text for language modeling. arXiv
preprint arXiv:2101.00027, 2020.
. Penedo, Q. Malartic, D. Hesslow, R. Cojocaru, A. Cappelli, H. Alobeidli, B. Pannier, E. Almazrouei, and J. Launay. The refinedweb dataset for falcon llm: outperforming curated
corpora with web data, and web data only. arXiv preprint arXiv:2306.01116, 2023.
Touvron, T. Lavril, G. Izacard, X. Martinet, M.-A. Lachaux, T. Lacroix, B. Rozière, N. Goyal,
E. Hambro, F. Azhar, et al. LLaMA: Open and efficient foundation language models. arXiv
preprint arXiv:2302.13971, 2023a.- 训练数据方法:去重,过滤,混搭
- 分词器:基于 tokenizers 库(Huggingface Team,2019)实现了字节级字节对编码 (BBPE) 算法。采用预分词技术来防止来自不同字符类别(例如换行符、标点符号和中日韩(CJK)符号)的标记合并,类似于 GPT-2(Radford 等人,2019)。我们还选择按照 (Touvron 等人,2023a,b) 中的方法将数字拆分为单个数字。根据我们的前期经验,我们将词汇表中的常规标记数量设置为 100000。分词器在约 24 GB 的多语言语料库上进行了训练,我们向最终词汇表添加了 15 个特殊标记,总大小达到 100015。为了确保训练期间的计算效率并为将来可能需要的任何其他特殊标记保留空间,我们将模型的词汇表大小配置为 102400 进行训练。
- 训练方法:从头开始构建开源大型语言模型,但用多步学习率调度器替换了余弦学习率调度器,在保持性能的同时促进了持续训练
- 模型结构:采用 Pre-Norm 结构、RMSNorm函数以及 SwiGLU作为前馈网络(FFN)的激活函数,中间层维度为 。它还结合了 Rotary Embedding进行位置编码。为了优化推理成本,67B 模型使用 GroupedQuery Attention(GQA)代替传统的 Multi-Head Attention(MHA)。
- 学习率:模型的学习率在经过2000个warmup步骤后达到最大值,然后在处理80%的训练标记后降至最大值的31.6%。在处理90%的标记后,它进一步降低到最大值的10%。训练阶段的梯度裁剪设置为1.0。
- 训练框架: HAI-LLM来训练和评估大型语言模型。
还利用 flash attention技术来提高硬件利用率。ZeRO-1被用于在数据并行秩上划分优化器状态。也做出了重叠计算和通信的努力,以最大程度地减少额外的等待开销,包括最后一个微批次的 backward 过程以及 ZeRO-1 中的 reduce-scatter 操作,以及序列并行中的 GEMM 计算和 all-gather/reduce-scatter。为了加速训练,一些层/操作被融合在一起,包括 LayerNorm、GEMM(尽可能)和 Adam 更新。为了提高模型训练稳定性,我们以 bf16 精度训练模型,但在 fp32 精度中累积梯度。执行原地交叉熵来减少 GPU 内存消耗,即:我们在交叉熵 CUDA 内核中实时将 bf16 logits 转换为 fp32 精度(而不是事先在 HBM 中转换),计算相应的 bf16 梯度,并将 logits 用其梯度覆盖。- 训练结果:DeepSeek llm模型
- 评估:
DeepSeek LLM 在各种基准测试中都优于 LLaMA-2 70B,尤其是在代码、数学和推理领域表现出色。
1.1.1 解决问题
通过这篇论文的标题可看出,Deepseek旨在通过长期主义视角推进开源大模型的发展。文章主要解决了以下两个关键问题:
- 特定领域能力不足:当时模型在代码、数学和推理能力方面表现不佳,特别是在中文数据上的表现欠佳(当时主流大模型里面中文数据占比很少,LLaMa2预训练数据里面中文占比0.13%,GPT3预训练数据中文占比0.1%)。
- 缩放定律研究结论不一:现有关于Scaling laws研究有不同的结论,同时未能充分探讨超参数的设置,Deepseek填补了这方面的空白,还发现数据集的差异对scaling laws有很大影响。
1.1.2 数据pipeline
- 去重阶段
采用跨数据包去重策略,消除 89.8% 的重复文档(相比单数据包去重效率提升 4倍)- 过滤阶段
制定文档质量评估标准,过滤低质量内容保留数学、代码等低资源领域知识- 混洗阶段
平衡数据分布,增加代表性不足领域的数据量
1.1.3 网络结构
稳定性优先:Pre-Norm 结构(先做标准化,再做计算)让深层网络训练更稳定。
效率优化:GQA 和 RMSNorm 降低大模型计算成本。
长文本友好:Rotary Embedding(旋转位置编码) 增强位置感知能力。
参数高效:SwiGLU 激活函数提升前馈网络表达能力。
前馈网络设计:中间层维度=(8/3) * d_input_model(中间层扩展到更高维度来增强特征提取关系)。
7B模型30层的网络,而67B模型是95层网络,因为67B模型使用的GQA会导致模型能力下降,DS选择增加网络深度,维持模型性能效果的同时实现成本下降。
1.1.4 结果评测
下图是Deepseek 预训练Base Model的结果,Deepseek 67B 相比 LLaMa 70B 在中英评测上都有显著的优势,但Deepseek 7B 相比 LLaMa 7B 只在中文数据上有优势。Deepseek的数据有比LLaMa更多的中文数据,因此这种现象表明小型模型对语言数据量比例更加敏感。
1.2 对齐
- 基座模型:deepseek llm模型
- 训练数据量:
我们收集了大约 150 万个英文和中文指令数据实例,涵盖广泛的有用性和无害性主题。我们的有用数据包含 120 万个实例,其中通用语言任务占 31.2%,数学问题占 46.6%,编码练习占 22.2%。安全数据由 30 万个实例(可以理解为危险问题+多样化拒绝话术)组成,涵盖各种敏感主题。
利用直接偏好优化 (DPO) (Rafailov 等人,2023) 来提高模型的对话性能。- 训练结果:DeepSeek Chat 模型
- 评估:
DeepSeek 67B 聊天模型在中文和英文开放式评估中都优于 GPT-3.5。这表明 DeepSeek 67B 在生成高质量的回复并以两种语言进行有意义的对话方面表现优异。此外,安全评估表明 DeepSeek 67B Chat 在实践中可以提供无害的回复。
1.2.1 对齐
SFT[2203.02155] Training language models to follow instructions with human feedback:
7B小模型需要在数学和代码数据集上进行更长时间的微调以提高性能,但在他们实验中观察到SFT的时候随着数学数据量的增加,输出的重复率有上升趋势,可能原因是模型学到了数学里面许多的解题套路。
为了解决重复问题,他们用了两阶段微调,第一阶段是"全科补习"(使用所有微调数据,数学代码都学),然后第二阶段改为"主攻对话"(剔除数学和代码,专练聊天)和DPO方法,这两种方法都能几乎保持基准分数并显著减少重复。
DPODirect Preference Optimization: Your Language Model is Secretly a Reward Model
他们构建了用于DPO训练的偏好学习数据,包括无害性(不仅教拒绝危险问题,还要对比"好回答vs坏回答")和有益性(不仅教回答问题,还要对比"优质回答vs普通回答")。DPO训练了一个epoch,学习率为5e-6,批量大小为512。他们发现DPO不仅增强了模型开放式问答能力,还在所有领域都带来了改进。
1.3 模型结构
1.3.1 GQA取代MHA
通过Grouped-Query Attention(GQA)取代Multi-Head Attention(MHA),GQA可以将KVcache的size减小,那么KVcache占用的显存就变小,大模型可以处理的请求数量就更多,吞吐量更大(减少显存的使用,同时加快推理速度)。与此同时增加了模型深度,以缓解模型效果的下降,但效果还是不如MHA。
举个例子:假设每个头的Q、K、V参数量固定且独立,用MHA算法情况下,模型32个头,每个头需要独立的Q、K、V矩阵,总参数量为 32×(Q+K+V)。用GQA的情况,若分成4组(每组8个头),每组共享K和V,参数量降为 4×(K+V) + 32×Q。
1.3.2 多步学习率调度器
通过多步学习率调度器取代余弦学习率调度器,从而实现80%的训练一阶段可复用。
- 余弦调度器:学习率按余弦曲线从初始值衰减到零,每个训练步都需动态计算学习率,与训练步数强相关。
- 多步学习率调度器:在预设的绝对步数节点(如第1000、2000步)进行阶梯式衰减,学习率调整仅由当前步是否达到节点决定,无需依赖总步数比例。
DS论文中操作分三步:
- 预热阶段:学习率在前2000个warmup steps后线性增加到最大值。
- 第一阶段:处理完80%的训练词元后,学习率降低到最大值的31.6%。
- 第二阶段:处理完90%的训练词元后,学习率进一步降低到最大值的10%。
这样做的好处是如果想搞N个模型做实验,那么前80%模型权重是可以复用的,只需要针对后20%进行实验,从而把每次实验成本从100%压低到20%。
1.3.3 超参数的Scaling laws公式
通过多步学习率重用第一阶段的模型权重,在此基础上再训练了多个具有不同批大小、学习率和计算范围的模型,推导出超参数的Scaling laws公式,这个公式在模型大小确定时,可以推导出对应Batch Size和学习率。
他们还做了一堆实验,推导出最佳的模型和数据分配策略,重新定义了过去流传甚广的计算资源计算公式C=6ND。其中,N是参数规模,D是数据规模,C是计算资源。但他们发现这个公式是不精确的,在小参数模型的情况下,偏差率最高能达到50%。于是他们用M (non-embedding FLOPs/token) 来取代6N,推出C=MD,以实现更精确的计算资源估算。
还发现,在相同数据规模(D)下,高质量的数据可以推动更大的参数规模。D的质量越高,能支持的M越高,得到更大的C。
文章中还提到,当引入系统提示时,7B 模型的表现略有下降。然而,当使用 67B 大型语言模型时,加入提示会显著改善结果。文章对这种差异的解释是,高参数模型能够更好地理解系统提示背后的意图,使它们能够更有效地遵循指令并生成更优的回应。另一方面,较小的模型难以充分理解系统提示,训练和测试之间的不一致性可能会对它们的表现产生负面影响。
二 DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models(2024.01.12)
在验证实验中,作者将Transformer层数设置为9,隐藏维度设置为1280。采用多头注意力机制,总共有10个注意力头,每个头的维度为128。为初始化,所有可学习参数都随机初始化,标准差为0.006。作者用MoE层替换所有FFN,并确保专家参数的总数等于标准FFN的16倍。此外,激活的专家参数(包括共享专家参数和激活的路由专家参数)的数量为标准FFN的2倍。在这个配置下,每个MoE模型有大约2B的总参数,激活参数约为0.3B。
所有实验在配备NVIDIA A100或H800 GPU的集群上进行。A100集群中的每个节点包含8个GPU,通过NVLink桥成对连接。H800集群还具有每个节点8个GPU,节点内部使用NVLink和NVSwitch相互连接。对于A100和H800集群,InfiniBand互连用于节点间的通信。
<实验及结果>作者从2B参数的规模开始验证了DeepSeekMoE架构的优势,通过在12个零样本或少样本任务上进行评估,实验证明DeepSeekMoE 2B在性能上大幅度超越了GShard 2B,并且甚至与具有1.5倍专家参数和计算的GShard 2.9B相媲美。
作者还通过详细的消融研究和对DeepSeekMoE专家专业化的分析,证明了细粒度的专家分割和共享专家隔离的有效性。
随后,作者将模型参数扩展到16B,并展示DeepSeekMoE 16B仅使用大约40%的计算资源就能达到与DeepSeek 7B和LLaMA2 7B相媲美的性能。
作者还进行了对齐实验,成功在DeepSeekMoE 16B上进行了监督微调,创建了一个对齐的聊天模型,展示了DeepSeekMoE 16B的适应性和多功能性。
最后,作者尝试将DeepSeekMoE扩展到145B,实验结果持续验证其相对于GShard架构的巨大优势,并显示其与DeepSeek 67B相媲美的性能,仅使用28.5%(可能甚至是18.2%)的计算资源。
三 DeepSeek-Coder: When the Large Language Model Meets Programming – The Rise of Code Intelligence(2024.01.25)
该系列包括一系列开源代码模型,大小从1.3B到33B不等,包括每个大小的基础版本和指导版本。
该系列中的每个模型都是从87种编程语言的2万亿标记的数据中从头训练的,以确保对编程语言和语法有全面的理解。此外,论文尝试在仓库级别组织预训练数据,以增强预训练模型在仓库中的跨文件上下文内的理解能力。除了在预训练期间使用下一个标记的预测损失外,论文还引入了Fill-In-Middle(FIM)方法。这种方法旨在进一步增强模型的代码完成能力。为了满足处理更长代码输入的需求,论文已将上下文长度扩展到16K。这个调整使我们的模型能够处理更复杂和更广泛的编码任务,从而增加了它们在各种编码场景中的适用性和灵活性。
DeepSeek-Coder的训练数据集由87%的源代码,10%的与英语相关的自然语言语料库和3%的与代码无关的中文自然语言语料库组成。英语语料库包括来自GitHub的Markdown和StackExchange的材料,这些材料用于增强模型对与代码相关的概念的理解,并提高其处理库使用和错误修复等任务的能力。与此同时,中文语料库包括旨在提高模型对中文语言的理解能力的高质量文章
四 DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models(2024.02.06)
本文引入 DeepSeekMath 7B,它继续使用来自 Common Crawl 的 120B 个数学相关tokens以及自然语言和代码数据,对 DeepSeek-Coder-Base-v1.5 7B 进行预训练。
DeepSeekMath 7B 在不依赖外部工具包和投票技术的情况下,在竞赛级 MATH 基准上取得了 51.7% 的成绩,接近 Gemini-Ultra 和 GPT-4 的性能水平。DeepSeekMath 7B 在 64 个样本上的自洽性在 MATH 上达到 60.9%。DeepSeekMath 的数学推理能力归功于两个关键因素:首先,通过精心设计的数据选择流水线充分利用了公开可用的网络数据的巨大潜力。其次,引入近端策略优化(PPO)的一种变型——组相对策略优化(GRPO),它可以增强数学推理能力,同时优化 PPO 的内存使用情况。
该数据集是使用基于 fastText 的分类器 (Joulin,2016) 从 Common Crawl (CC) 中提取的。在初始迭代中,使用来自 OpenWebMath (Paster,2023) 的实例作为正例对分类器进行训练,同时结合各种其他网页作为负例。随后,使用分类器从 CC 中挖掘更多正例,并通过人工注释进一步细化这些正例。然后使用这个增强的数据集更新分类器以提高其性能。
五 DeepSeek-VL: Towards Real-World Vision-Language Understanding (2024.03.09)
论文数据详细
六 DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model(2024.05.07)
模型参数比V1模型翻了3.5倍,训练数据量比V1多了4倍,基于论文H800用时推测预训练算力成本只增加一倍
论文地址:[2405.04434] DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language
Model模型地址:GitHub - deepseek-ai/DeepSeek-V2: DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model
我们提出了 DeepSeek-V2,一种强大的混合专家 (MoE) 语言模型,具有训练经济、推理高效的特点。
它包含 236B 总参数,其中每个 token 激活 21B,支持 128K token 的上下文长度。
DeepSeek-V2 采用了包括 Multi-head Latent Attention (MLA) 和 DeepSeekMoE 在内的创新架构。MLA 通过将key-value (KV) 缓存显著压缩为潜在向量来保证高效推理,而 DeepSeekMoE 通过稀疏计算以经济的成本训练强大的模型。
与 DeepSeek 67B 相比,DeepSeek-V2 实现了显著增强的性能,同时节省了 42.5% 的训练成本、减少了 93.3% 的 KV 缓存、并将最大生成吞吐量提升至 5.76 倍。我们在由 8.1T token组成的高质量多源语料库上对 DeepSeek-V2 进行了预训练,并进一步执行有监督微调 (SFT) 和强化学习 (RL) 以充分发挥其潜力。评估结果表明,即使只有 21B 激活参数,DeepSeek-V2 及其chat版本仍然在开源模型中实现了顶级性能。模型checkpoint可在 https://github.com/deepseek-ai/DeepSeek-V2 上找到。
我们构建了一个由 8.1T token组成的高质量、多源预训练语料库。与 DeepSeek 67B(我们之前的版本)中使用的语料库相比,这个语料库的数据量更大,尤其是中文数据,数据质量更高。其中中文token比英语token多了大约12%。而推理所使用的词汇表有10万个不同的token。
我们首先在完整的预训练语料库上对 DeepSeek-V2 进行预训练。
然后,我们收集了 1.5M 个对话会话,涵盖数学、代码、写作、推理、安全等各个领域,对 DeepSeek-V2 Chat(SFT)进行有监督微调(SFT)。
最后,我们遵循 DeepSeekMath 使用 Group Relative Policy Optimization (GRPO) 使模型进一步与人类偏好保持一致并生成 DeepSeek-V2 Chat(RL)。
1.3 细节
1.3.1 辅助损失负载平衡
在训练时,每个机器的负载会不同,某些专家会被多次选上,从而导致剩余的专家没被充分训练,论文提出三个辅助损失负载平衡方法:
- Expert-Level Balance Loss(专家层面平衡损失)某些专家可能会在训练过程中得到过多的激活,而其他专家的作用则减弱,导致模型整体无法充分利用各个专家的优势。这个设计目的就是约束各个专家的“使用率”或贡献,使得模型在面对不同样本时,各专家能够均衡地参与决策。
- Device-Level Balance Loss(设备层面平衡损失)重点在关注各个设备在参与训练时的贡献平衡。我们肯定希望不同设备的数据、计算和更新尽可能均衡,避免出现某些设备贡献过多而其它设备被边缘化的情况。比如,有的设备可能承担了大部分的计算任务,而其他设备反而空闲,这样就会浪费资源或导致训练瓶颈。设备层面的平衡损失就是用来约束每个设备专家调用大体相同。
- Communication Balance Loss(通信层面平衡损失)分布式训练中,各个部分(比如不同设备之间)需要互相通信来交换信息。如果某时刻某些设备收到的token比其他设备多,一直承担大部分信息传递,而其他通路几乎没用到,就可能出现通信瓶颈。它旨在保证在进行参数传输或者同步时,各通信通道或阶段负载相对均衡,避免因通信瓶颈导致整体训练效率下降。
1.3.2 Token丢弃策略
在训练时,首先计算每台机器的平均计算预算,然后丢弃每台机器上亲和力最低的几个token,直到利用完每台机器的计算预算。为了保证训练和推理时的表现一样,还会保证10%的tokens不会被丢弃。
1.3.3 长文本扩展
在预训练好的DeepSeek-V2上,通过使用YaRN算法,将默认的上下文窗口长度从4K扩展到128K。通过在32K长度的文本上额外训练1000步,模型在大海捞针 (NIAH) 测试的表现如下图:
1.3.4 对齐优化
为了更进一步开发DeepSeek-V2潜力并与人类偏好对齐,在对DeepSeek-V2精调,产生DeepSeek-V2 Chat (SFT)后,论文作者还执行了两个阶段的强化学习的步骤:
- 第一阶段:基于一个用于代码和数学任务的奖励模型 Reasoning Model,提升模型的编码和数学能力。
- 第二阶段:训练三个奖励模型,从而提升回答有用性、回答安全性和使回答基于规则。
七 DeepSeek-Prover: Advancing Theorem Proving in LLMs through Large-Scale Synthetic (2024.05.23)
通过生成的定理数据提高LLM的数学推理能力。
1、我们引入了一种迭代方法,从非正式的数学问题中合成800万个正式陈述,每个陈述都附有正式证明。实验结果表明,该方法显著提高了合成数据的可扩展性和质量。
2、在此合成数据集上进行训练的模型,在基准测试中达到了最先进的性能。
方法
1、从广泛的非正式数学问题集合中生成正式的数学陈述,需要进一步的证明.
与需要复杂定义和构造的高级数学主题相比,具有明确条件和明确目标的问题通常更容易形式化。因此,本文主要探讨高中和本科水平的竞争问题。采用了网络抓取和仔细的数据清理技术,从高中和本科练习,考试和比赛的在线资源中提取问题,从而产生了869,659个高质量自然语言数学问题的数据集。
2、通过模型评分和假设拒绝方法过滤自形式化语句,以选择高质量的语句。
该模型被指示将每个正式陈述的质量分为几类:“优秀”、“良好”、“高于平均水平”、“一般”或“差”。“被评为“一般”或“差”的发言随后被排除在外。
3、这些语句由一个名为DeepSeek-Prover的模型证明,其正确性由名为Lean 42的正式验证器验证,产生经过验证的正式语句和证明。
即使经过质量过滤,我们的模型生成的正式语句中至少有20%是不正确的,如果使用蛮力解决,会导致大量的计算浪费。为了最大限度地减少对不可证明语句的资源浪费,提高证明搜索过程的效率,我们利用语句及其否定之间的逻辑对称性来加速证明合成。
4、这些数据作为合成数据用于微调DeepSeek-Prover。
不断地用新生成的数据对模型进行微调。更新后的模型然后用于后续的自动形式化迭代。 在增强DeepSeek-Prover之后,重复前面描述的整个过程。这个循环一直持续到DeepSeek-Prover的改进变得微不足道。
值得注意的是,为了提高证明效率,我们同时证明了原始陈述及其否定。这种方法的优点是,当原始陈述通过证明其否定而无效时,可以迅速丢弃原始陈述。
基于 DeepSeekMath-Base 7B model
八 DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence(2024.06.17)
DeepSeek-Coder-V2是从DeepSeek-V2的中间检查点进一步预训练而来,额外使用了6万亿个token
与DeepSeekCoder-33B相比,DeepSeek-Coder-V2在代码相关任务的各个方面以及推理和通用能力上都显示出了显著的进步。此外,DeepSeek-Coder-V2将其对编程语言的支持从86种扩展到338种,并将上下文长度从16K扩展到128K。在标准基准测试中,DeepSeek-Coder-V2在编码和数学基准测试中的性能优于GPT4-Turbo、Claude 3 Opus和Gemini 1.5 Pro等闭源模型。
60% 的源代码+10% 的数学语料库+ 30% 的自然语言语料库
数据采集
(1)30% 的自然语言语料库
从 DeepSeek-V2 的训练数据集中采样
(2)60% 的源代码
从 GitHub上采集2023 年 11 月之前创建的公共存储库
应用与 DeepSeek-Coder中使用的相同的过滤规则和接近重复规则来过滤低质量代码和重复的源代码
从Common Crawl(一个开放的数据共享平台)收集与代码相关的和与数学相关的网络文本
步骤:
① 选择代码论坛比如StackOverflow,库网站比如PyTorch,数学网站比如StackExchange作为我们初始的初始种子语料
② 用这些初始种子语料训练一个fastText模型,来召回更多与编码相关的和与数学相关的网页
③ 由于中文等语言的标记化不能通过空格完成,作者使用来自 DeepSeek-V2 的字节对编码 (BPE) 分词器,显着提高了 fastText 的召回率
④ 计算第一次迭代相应领域在收集的网页中所占百分比,占比超过 10% 网页被归类为与代码相关或与数学相关
⑤ 为这些已识别的与代码相关或数学内容相关的 URL添加注释,再将与这些 URL 相关联的未收集的网页添加到种子语料库中
⑥ 经过三次数据收集迭代后,作者从网页中收集 70 亿个与代码相关的标记和 221Billion 个与数学相关的标记
⑦ 为了进一步从 GitHub 中收集高质量的源代码,作者在 GitHub 上应用了相同的方法,并进行了两次数据收集迭代,收集 94Billion 源代码
⑧最后,新的代码语料库由来自 GitHub 和 CommonCrawl 的 1,170B 个代码相关标记组成
九 Let the Expert Stick to His Last: Expert-Specialized Fine-Tuning for Sparse Architectural Large Language Models (2024.07.02)
《Let the Expert Stick to His Last: Expert-Specialized Fine-Tuning for Sparse Architectural Large Language Models》 是一篇关于参数高效微调(PEFT)方法的研究论文,主要针对具有混合专家(MoE)架构的大语言模型(LLMs)。该研究的主要内容和发现如下:
研究动机和背景:尽管已有多种PEFT方法适用于密集架构的LLMs,但针对稀疏架构LLMs的PEFT方法研究较少。本研究旨在探索适用于MoE架构LLMs的PEFT方法
>研究方法和发现:
专家分散度调查:研究发现,在特定任务中激活的专家分布高度集中,而不同任务间激活专家的分布差异显著。这表明在定制任务时,某些专家比其他专家更频繁地被激活
专家专业化微调(ESFT)方法:提出了一种新的微调方法——专家专业化微调(ESFT)。该方法通过冻结大部分专家和模块,只对与下游任务最相关的专家进行微调。实验结果表明,这种方法不仅提高了模型的性能,还显著减少了计算资源和时间的消耗
实验结果:实验结果显示,ESFT方法在多个基准测试中表现出色,证明了其在提高模型性能和资源效率方面的有效性
代码和资源:该研究的代码可以在GitHub上找到,地址为[https://github.com/deepseek-ai/ESFT]
十 DeepSeek-Prover-V1.5: Harnessing Proof Assistant Feedback for Reinforcement Learning and Monte-Carlo Tree Search(2024.08.15)
base model :DeepSeekMath的模型
基于DeepSeekMath-Base进行预训练,模型特别针对形式化的数学表达:Lean, Isabelle, and Metamath。得到DeepSeek-ProverV1.5-Base.
通过使用从DeepSeek-Prover-V1提取的增强的正式定理证明数据集进行监督微调,实现了更进一步的优化。
不同于DeepSeek-Prover-V1的一次通过生成整个证明的方法,我们提出了RMaxTS,这是蒙特卡洛树搜索的一种变体,采用内在奖励驱动的探索策略生成多样的证明路径。
十一 Janus: Decoupling Visual Encoding for Unified Multimodal Understanding and Generation(2024.10.18)
十二 JanusFlow: Harmonizing Autoregression and Rectified Flow for Unified Multimodal Understanding and Generation (2024.11.13)
十三 DeepSeek-VL2: Mixture-of-Experts Vision-Language Models for Advanced Multimodal Understanding(2024.12.14)
十四 DeepSeek-V3 Technical Report (2024.12.27)
V3模型参数量相较于V2模型多了三倍,训练数据量比V2模型增加接近一倍,但是V3模型训练成本控制在557.6万美元,重点是MoE、MLA、FP8混合精度训练在起作用。
与 DeepSeek-V2 相比,主要增强数学和编程样本的比例来优化预训练语料库,同时将多语言覆盖范围扩展到英语和中文之外。此外,数据处理的pipeline经过细化,以最大限度地减少冗余,同时保持语料库多样性。
将 Transformer的层数设置为 61,hidden_size设置为 7168。在 MLA 中,将num heads设置为 128,每头维度为 128。KV 压缩维度设置为 512,查询压缩维度设置为 1536。对于解耦的查询和键,将每头维度设置为 64。
每个 MoE 层由 1 个共享专家和 256 个路由专家组成,其中每个专家的中间隐藏维度为 2048。
在路由专家中,每个令牌将激活 8 个专家,每个令牌将确保最多发送到 4 个节点。多令牌预测深度 D 设置为 1,即除了精确的下一个令牌之外,每个令牌将预测一个额外的令牌。
DeepSeek-V3 包含 671B 总参数,其中 37B 为每个令牌激活。
预训练:
数据: 使用 14.8T 高质量和多样化的 token 进行预训练,数据中数学和编程样本的比例更高,并扩大了多语言覆盖范围。
稳定性: 预训练过程非常稳定,没有出现不可恢复的损失峰值或回滚。
Context Length Extension: 使用两阶段上下文长度扩展,先扩展到 32K,再扩展到 128K。
后训练:
有监督微调(SFT): 使用 150 万个跨多个领域的指令微调数据集进行微调。
强化学习(RL): 使用基于规则的奖励模型和基于模型的奖励模型,结合 GRPO 算法进行强化学习,并从 DeepSeek-R1 中提炼推理能力。
DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning(2025.01.22)