Deepseek
简介:发布了其最新的大型语言模型 DeepSeek-V3,这款模型在性能和效率方面都取得了显著的进步,成为当前最强大的开源基础模型之一。DeepSeek-V3 是一款拥有 671B参数的大型混合专家 (MoE) 模型,其中每个 token 会有 37 B参数被激活。
V3
采用混合专家架构(MoE),总参数量为6710亿,每次激活370亿。训练过程包括预训练、监督微调和强化学习阶段,侧重于多任务学习和通用能力的提升。
创新 :为了实现高效的推理和成本效益的训练,DeepSeek-V3 采用了(1)多头潜在注意力 (MLA) 和 (2)DeepSeekMoE 架构,这两个架构在 DeepSeek-V2 中已经得到了充分验证。此外,DeepSeek-V3 还开创了一种(3)无辅助损失策略来平衡负载,并设置了(4)多 token 预测训练目标以进一步提升性能。
DeepSeekMOE
DeepSeekMoE 架构使用更细粒度的专家,并将一些专家隔离为共享专家。每个 token 的 FFN 输出 h'_t 通过以下步骤计算:
共享专家: 使用共享专家 FFN( ) (·) 计算共享专家的输出。
路由专家: 使用路由专家 FFN( ) (·) 计算路由专家的输出,并使用门控值 g_i,t 选择激活的专家。
输出: 将共享专家和路由专家的输出相加,得到最终的 FFN 输出 h'_t。

辅助损失免费负载平衡
DeepSeek-V3 还引入了一种辅助损失免费负载平衡策略,通过引入偏置项 b_i 并将其添加到相应的亲和度分数 s_i,t 中,来确定 top-K 路由。通过动态调整偏置项,DeepSeek-V3 能够在整个训练过程中保持平衡的专家负载,并取得比纯粹使用辅助损失的模型更好的性能。
多头潜在注意力(MLA)

MLA 架构的核心思想是对注意力键和值进行低秩联合压缩,从而减少推理过程中的 Key-Value (KV) 缓存。它通过以下步骤实现:
压缩: 将注意力输入 h_t 映射到一个压缩的潜在向量 c_KV_t。
生成键: 使用 W_UK 和 W_VU 矩阵将 c_KV_t 映射到压缩的键和值。
生成解码器: 使用 RoPE 矩阵生成带有旋转位置嵌入 (RoPE) 的解码器。
计算注意力: 使用 softmax 函数计算注意力权重,并生成最终的注意力输出 u_t。
MLA 架构只需要缓存压缩后的潜在向量和带有 RoPE 的解码器,从而显著减少了 KV 缓存,同时保持了与标准多头注意力 (MHA) 相当的性能。
多 token 预测 (MTP)
DeepSeek-V3 采用了一种名为多 token 预测 (MTP) 的训练目标,该目标扩展了预测范围,以便在每个位置预测多个未来的 token。MTP 目标可以提高数据效率和模型的预测能力,并通过预先规划未来的 token 的表示来提升性能。
MTP 实现了 D 个连续的模块来预测 D 个额外的 token,每个模块都包含一个共享嵌入层、一个共享输出头、一个 Transformer 模块和一个投影矩阵。每个 MTP 模块都使用线性投影将 token 的表示和嵌入相连接,然后通过 Transformer 模块生成输出表示,并计算额外的预测 token 的概率分布。
R1
基于V3-Base模型,通过强化学习(GRPO)进行优化,跳过传统的监督微调阶段,直接提升推理能力,特别是在数学和编程任务上表现突出。

GRPO 是一种在线学习算法(online learning algorithm),这意味着它通过使用训练过程中由训练模型自身生成的数据来迭代改进。GRPO 的目标直觉是最大化生成补全(completions)的优势函数(advantage),同时确保模型保持在参考策略(reference policy)附近。
INT8

由于DeepSeek R1采用FP8精度训练,所以开源的原生权重就是FP8精度。在推理时,为了尽可能地降低模型精度损失,同时保持和FP8类似的推理吞吐,我们自然想到使用和FP8精度等位宽的INT8精度进行平替。同时,INT8精度被广泛硬件原生支持,基于INT8精度可以极大拓展DeepSeek模型的硬件部署范围。因此,我们开始探索INT8量化在DeepSeek R1上的可行性。
gpt
GPT-1引入了预训练-微调范式;
GPT-2通过大规模的预训练和生成能力展示了Transformer模型的潜力;
GPT-3以其庞大的规模和强大的零-shot能力成为标志性模型;
GPT-4在多个领域实现了更高的性能,并扩展了对多模态任务的支持。
训练vs 推理
| 项目 | 🧠 训练(Training) | 💬 推理(Inference) |
|---|---|---|
| 1. 目标 | 优化模型参数,学习语言规律 | 基于已有模型生成文本,不更新参数 |
| 2. 输入数据 | 使用大量无标注文本(如网页、书籍等) | 用户提供的输入文本(Prompt) |
| 3. 计算与优化 | 前向传播 + 反向传播,计算梯度并更新参数,计算密集型 | 仅前向传播生成结果,不涉及参数更新,计算相对轻量 |
| 4. 输出 | 输出下一个词的概率分布,用于计算损失并反馈优化 | 输出生成的连续文本,作为用户看到的回答 |
| 5. 批处理与延迟 | 批量处理多个样本(高吞吐训练),适合并行处理 | 通常逐词或逐步生成,关注实时响应,延迟要求较低 |
llama
3
-
性能⼤幅提升:超越同规模模型,部分任务媲美 GPT-4。
-
三阶段预训练:初始预训练、⻓⽂本预训练、退⽕训练。
-
⾏级别去重:提⾼数据质量,提升模型性能。
-
拒绝采样、SFT、DPO 训练策略:有效利⽤合成数据和⽤户数据,提升模型能⼒。
-
负熵原则:引⼊外部⾼质量数据,持续优化模型。
-
数据质量处理:多层次的数据过滤和清理。
-
ScalingLaw应⽤:合理配置模型规模和数据量。
-
4D 并⾏训练:⾼效利⽤计算资源,训练超⼤规模模型。
-
特定能⼒优化:针对代码、多语⾔等领域进⾏专项优化
1
RMS Pre-Norm
RMSNorm则不涉及均值和⽅差的计算,⽽是通过均⽅根(RootMeanSquare, RMS)来进⾏规范化。其核⼼思想是基于输⼊的幅值(magnitude),⽽不依赖于其均值。
LayerNorm更适合处理均值与⽅差对特征影响较⼤的任务 ,特别是⼩批量数据和 NLP任务中。
• RMSNorm 则适⽤于幅度归⼀化为主、特征幅度较⼤的场景,如深层神经⽹络或⾼维数据中,同时它的计算效率也更⾼。
激活函数SwiGLU
SwiGLU激活函数作为LLaMA模型的改进之⼀,通过将GLU中的Sigmoid替换为Swish,SwiGLU(x)=Swish(x1)⋅x2
RoPE旋转位置编码
RoPE的核⼼思想是将输⼊向量的每⼀维都与其位置进⾏频率旋转,这样做有以下⼏步:
Query和Key的旋转: 对于给定的位置m ,RoPE会根据m 和频率参数θ 对 Query 向量进⾏旋转,即乘以e imθ; Key 向量同样进⾏旋转;
相对位置信息的捕捉: RoPE通过将旋转操作应⽤于Query和Key,能够有效捕捉它们之间的相对位置差异。当计算注意⼒权重时,RoPE允许模型对相邻token之间的相对距离更加敏感,使得模型更适合⻓序列的建模。
如何处理梯度消失和梯度爆炸问题?
使用残差链接,层归一化,优化的激活函数SwiGLU,优化器
qwen
1
创新点
•多语⾔⽀持:优化的词汇表和编码⽅法 ,提升了模型在多种语⾔上的表现。
• 改进的架构设计:采⽤了SwiGLU激活函数、RoPE位置嵌⼊、⾮绑定的嵌⼊⽅法等,提升了模型性能。移除了⼤多数层的偏置,但在注意⼒的QKV层中添加了偏置,增强了模型的外推能⼒。
• 上下⽂⻓度扩展:通过多种技术⼿段 ,扩展了模型的上下⽂⻓度 ,增强了对⻓⽂本的处理能⼒。
• 专⽤模型:针对代码和数学任务,开发了专⻔的模型(Code-Qwen、Math-Qwen),在相应领域 取得了优异的性能。
架构
输入层
• 分词与编码:采⽤字节对编码(Byte Pair Encoding,BPE)⽅法,将输⼊⽂本进⾏分词和编码。为了增强多语⾔能⼒,Qwen的词汇表增加了常⽤的中⽂字符和其他语⾔的词汇,词汇表⼤⼩约为152K。
位置嵌入
• 词嵌⼊(WordEmbedding):将每个词或⼦词的索引映射为稠密的向量表⽰,捕捉词语的语义信息。
• 位置嵌⼊(PositionalEmbedding):采⽤旋转位置嵌⼊(RoPE),将位置信息融⼊模型中。RoPE通过在输⼊中加⼊位置信息,使模型能够识别序列中词语的位置。
多层transformer
Qwen的核⼼由多层Transformer解码器块组成,每个块包含以下组件:
a. 多头⾃注意⼒机制(Multi-HeadSelf-Attention)
• ⽬的:捕捉序列中不同位置之间的依赖关系。
• 机制:通过计算查询(Q)、键(K)、值(V)之间的相关性,⽣成加权的输出表⽰。
b. 前馈神经⽹络(Feed-ForwardNetwork, FFN)
• 结构: 由两个线性变换和⼀个⾮线性激活函数组成。
• 激活函数:采⽤SwiGLU激活函数,这是Swish和⻔控线性单元 (GLU)的组合,增强了模型的表达能⼒。
c. 残差连接和层归⼀化
• 残差连接(ResidualConnection):缓解深层⽹络的梯度消失问题,促进信息的直接传递。
• 层归⼀化(LayerNormalization):采⽤RMSNorm,提升训练的稳定性和效率。
输出层
线性变换和Softmax层:将Transformer块的输出转换为词汇表中每个词的概率分布,⽤于预测下⼀个词。
2
32k token
• YARN(YetAnotherRopeExtension) :⼀种扩展上下⽂⻓度的⽅法 ,通过调整位置编码实现。
• DualChunkAttention:将⻓序列分块处理 ,降低计算复杂度。
2.5
Scaling Law
'Scaling Law 是指模型性能随着模型规模和数据量的增加而提高的规律。
QWen2.5 的结构与 QWen2 保持一致,但在预训练阶段使用了高达 18T Token 的训练数据。这使得 Qwen2.5 能够在知识获取、编程能力和数学能力方面均有显著提升。
LLM存在的问题与解法
偏见
种族骑士,历史偏见之类的
原因 :训练数据偏见, 模型架构和优化,评价标准
解法:多样化训练数据, 偏见检测和评估, 算法调整和正则化,透明性和可解释性找到偏见来源,持续监测和反馈机制
幻觉
模型瞎编内容
原因 :训练数据的局限性,模型的生成机制,缺乏外部知识,上下文理解的局限性
解法:改进训练数据,增强模型的推理能力(深度学习,知识图谱),引入实时数据,用户提示与反馈机制
复读
原因: 训练数据的偏倚,极大化似然估计,缺乏探索机制
解法:调整损失函数,数据增强,后处理步骤(手动移除),引入惩罚机制
灾难性遗忘
知识蒸馏 :保留教师模型的知识,指导学生模型的学习。
参数冻结: 在某些层冻结参数,防止遗忘。
渐进式学习 :逐步引入新任务,保持知识的连续性。
软参数调整:结合软参数调整和知识蒸馏,平衡新旧知识的学习