deepseek(2)——deepseek 关键技术

1 Multi-Head Latent Attention (MLA)

MLA的核心在于通过低秩联合压缩来减少注意力键(keys)和值(values)在推理过程中的缓存,从而提高推理效率:

c t K V = W D K V h t c_t^{KV} = W^{DKV}h_t ctKV=WDKVht

k t , 1 C ; k t , 2 C ; ⋯   ; k t , n h C \] = k t C = W U K c t K V \[k_{t, 1} \^{C}; k_{t, 2} \^{C}; \\cdots; k_{t, n_h} \^{C}\] = k_t\^C = W\^{UK}c\^{KV}_t \[kt,1C;kt,2C;⋯;kt,nhC\]=ktC=WUKctKV k t R = R o P E ( W K R h t ) k_t\^R = RoPE(W\^{KR}h_t) ktR=RoPE(WKRht) h t , i = \[ k t , i C ; k t R \] h_{t, i} = \[k_{t, i} \^C; k_t\^R\] ht,i=\[kt,iC;ktR

v t , 1 C ; v t , 2 C ; ⋯   ; v t , n h C \] = v t c = W U V c t K V \[v_{t, 1} \^{C}; v_{t, 2} \^{C}; \\cdots; v_{t, n_h} \^{C}\] = v_t\^c = W\^{UV}c_t\^{KV} \[vt,1C;vt,2C;⋯;vt,nhC\]=vtc=WUVctKV 对于 query,也会做类似的处理: c t Q = W D Q h t c_t\^Q = W\^{DQ}h_t ctQ=WDQht $$ \[q_{t, 1} \^C; q_{t, 2} \^C; \\cdots; q_{t, n_h} \^C\] = q_t\^C = W^{UQ}c_t^Q $$ \[ q t , 1 R ; q t , 2 R ; ⋯   ; q t , n h R \] = q t R = R o P E ( W Q R c t Q ) \[q_{t, 1} \^R; q_{t, 2} \^R; \\cdots; q_{t, n_h} \^R\] = q_t\^R = RoPE(W\^{QRc_t\^Q}) \[qt,1R;qt,2R;⋯;qt,nhR\]=qtR=RoPE(WQRctQ) q t , i = \[ q t , i C ; q t , i R \] q_{t, i} = \[q_{t, i}\^C; q_{t, i}\^R\] qt,i=\[qt,iC;qt,iR

最终的注意力输出 u t u_t ut 是通过将 Query q t q_t qt 和 Key k t k_t kt 进行 softmax 归一化之后的点积,在乘以 Value v t v_t vt 得到:

O t i = ∑ j = 1 t S o f t m a x j ( q t , i T k j , i d h + d h R ) v j , i ′ C O_t^i = \sum {j=1} ^{t} Softmax j\left( \frac{q{t, i}^T k{j, i}}{\sqrt{d_h + d_h^R}} \right) v_{j, i^{'}} ^{C} Oti=j=1∑tSoftmaxj dh+dhR qt,iTkj,i vj,i′C

u t = W O [ O t , 1 ; O t , 2 ; ⋯   ; O t , n h ] u_t = W^O [O_{t, 1}; O_{t, 2}; \cdots; O_{t, n_h}] ut=WO[Ot,1;Ot,2;⋯;Ot,nh]

1.1 无辅助损失负载平衡的 DeepSeekMoE

在混合专家(MoE)模型中,专家负载的不平衡会导致路由崩溃或增加计算开销。传统的方法通常采用辅助损失来鼓励负载平衡,但过大的辅助损失会引入不可忽视的干扰梯度,从而损害模型性能。

为了避免在训练过程中产生不良梯度,DeepSeek 提出了一种无辅助损失的负载平衡策略(Loss-Free Balancing),通过动态调整每个专家的偏差来控制负载平衡,而不引入干扰梯度。

DeepSeekMoE 的基本流程:

h t ′ = u t + ∑ i = 1 N s F F N i ( s ) ( u t ) + ∑ i = 1 N r g i , t F F N i ( r ) ( u t ) h_t^{'} = u_t + \sum _{i=1} ^{N_s} {FFN _i ^{(s)}} (u_t) + \sum {i=1} ^{N_r}g{i, t} FFN _i ^{(r)} (u_t) ht′=ut+i=1∑NsFFNi(s)(ut)+i=1∑Nrgi,tFFNi(r)(ut)

g i , t = g i , t ′ ∑ j = 1 N r g j , t ′ g_{i, t} = \frac{g_{i, t}^{'}}{\sum {j=1} ^{N_r} g{j, t} ^{'}} gi,t=∑j=1Nrgj,t′gi,t′

g j , t ′ = { s i , t , s i , t ∈ T o p k ( s j , t ∣ 1 ≤ j ≤ N r , K r ) , 0 , o t h e r w i s e , g_{j, t} ^{'} = \begin{cases} s_{i, t}, & s_{i, t} \in Topk({s_{j, t} | 1 \leq j \leq N_r}, K_r), \\ 0, & otherwise, \end{cases} gj,t′={si,t,0,si,t∈Topk(sj,t∣1≤j≤Nr,Kr),otherwise,

s i , t = S i g m o i d ( u t T e i ) s_{i, t} = Sigmoid(u_t^T e_i) si,t=Sigmoid(utTei)

针对专家负载不均衡的问题,为每个专家引入了一个偏置项 b i b_i bi,并将其加到亲和力得分 s i , t s_{i,t} si,t​ 上:

g j , t ′ = { s i , t + b i , s i , t ∈ T o p k ( s j , t + b i ∣ 1 ≤ j ≤ N r , K r ) , 0 , o t h e r w i s e , g_{j, t} ^{'} = \begin{cases} s_{i, t} + b_i, & s_{i, t} \in Topk({s_{j, t} + b_i | 1 \leq j \leq N_r}, K_r), \\ 0, & otherwise, \end{cases} gj,t′={si,t+bi,0,si,t∈Topk(sj,t+bi∣1≤j≤Nr,Kr),otherwise,

偏置项仅用于路由。与FFN输出相乘的门控值仍然来源于原始得分 s i , t s_{i,t} si,t 。

在训练过程中,持续监控每个训练步骤中整个 batch 的专家负载。在每个步骤的末尾,如果相应的专家过载,将减少偏置项 b i b_i bi;如果相应的专家欠载,将增加偏置项 b i b_i bi。通过动态调整,DeepSeek-V3 在训练期间保持专家负载平衡,并比通过纯辅助损失鼓励负载平衡的模型实现了更好的性能。

1.2 互补序列级辅助损失

为了防止任何单个序列内的极端不平衡,还采用了互补序列级辅助损失。这种损失鼓励每个序列中的专家负载保持平衡。

L B a l = α ∑ i = 1 N r f i P i , \mathcal{L} _{Bal} = \alpha \sum _{i=1} ^{N_r}f_i P_i, LBal=αi=1∑NrfiPi,

f i = N r K r T ∑ t = 1 T 1 ( s i , t ∈ T o p k ( s j , t ∣ 1 ≤ j ≤ N r , K r ) ) , f_i = \frac{N_r}{K_r T} \sum {t=1} ^T \mathcal{1} (s{i, t} \in Topk({s_{j, t} | 1 \leq j \leq N_r}, K_r)), fi=KrTNrt=1∑T1(si,t∈Topk(sj,t∣1≤j≤Nr,Kr)),

s i , t ′ = s i , t ∑ j = 1 N r s j , t , s_{i, t} ^{'} = \frac{s_{i, t}}{\sum {j=1} ^{N_r} s{j, t}}, si,t′=∑j=1Nrsj,tsi,t,

P i = 1 T ∑ t = 1 T s i , t ′ P_i = \frac{1}{T} \sum {t=1} ^T s{i, t} ^{'} Pi=T1t=1∑Tsi,t′

其中 1 ( ⋅ ) \mathcal{1}(\cdot) 1(⋅) 标识指标函数。

1.3 节点限制路由

DeepSeek-V3 采用了一种受限的路由机制来限制训练过程中的通信成本。确保每个 token 最多被发送到 M 个节点,这些节点是根据每个节点上分布的专家的最高 T r T_r Tr 个亲和分数之和来选择的。

1.4 无 Token 丢弃

由于有效的负载平衡策略,DeepSeek-V3 在完整的训练过程中保持了良好的负载平衡。因此,在训练期间,DeepSeek-V3 不会丢弃任何 token。此外,还实施了特定的部署策略以确保推理时的负载平衡,所以 DeepSeek-V3 在推理期间也不会丢弃 token。

2 多 Token 预测(Multi-Token Prediction/MTP)

Multi-Token Prediction / MTP 实现使用 K 个顺序模块来预测 K 个额外的 Token。

第 i个 MTP 模块包括一个共享的特征层 E m b ( ⋅ ) Emb(·) Emb(⋅),一个共享的输出头 O u t H e a d ( ⋅ ) OutHead(·) OutHead(⋅),一个 Transformer 块 T R M i ( ⋅ ) TRM_i(·) TRMi(⋅),以及一个投影矩阵 W i ∈ R d × 2 d W_i \in R^{d×2d} Wi∈Rd×2d。对于第 i 个输入 T o k e n t i Tokent_i Tokenti,在第 i 个预测深度,首先结合第 (i-1) 深度的第 i 个 Token 的表示 h i − 1 ∈ R d h_{i-1} \in R^d hi−1∈Rd 和第 (i+1) 个 Token 的嵌入 d ( t i + 1 ) ∈ R d d(t_{i+1}) \in R^d d(ti+1)∈Rd,通过线性投影:

h i ′ k = M k [ R M S N o r m ( h i k − 1 ) ; R M S N o r m ( E m b ( t i + k ) ) ] h_i ^{'k} = M_k [RMSNorm(h_i ^{k-1}); RMSNorm(Emb(t_{i+k}))] hi′k=Mk[RMSNorm(hik−1);RMSNorm(Emb(ti+k))]

对于每个 MTP 模块,其嵌入层与主模型共享。结合后的 h i ′ h_{i} ^{'} hi′ 作为第 i 深度的 Transformer 块的输入,产生当前深度的输出表示 h i h_i hi:

h 1 : T − k k = T R M k ( h 1 : T − k ′ k ) h_{1 : T-k} ^ {k} = TRM k (h{1 : T-k} ^ {'k}) h1:T−kk=TRMk(h1:T−k′k)

其中 T 标识输入序列的长度,:表示切片操作(包括左右边界)。

最后,以 h i h_i hi 为输入,共享的输出头将计算第 i 个额外预测 Token 的概率分布:

p i + k + 1 k = O u t H e a d ( h i k ) p _{i+k+1} ^k = OutHead(h_i ^k) pi+k+1k=OutHead(hik)

输出头 O u t H e a d ( ⋅ ) OutHead(·) OutHead(⋅) 将表示线性映射到logits,然后应用 S o f t m a x ( ⋅ ) Softmax(·) Softmax(⋅)函数计算第 i 个额外 Token 的预测概率。同时,对于每个 MTP 模块,其输出头与主模型共享。

2.1 MTP 训练目标

计算一个交叉熵损失 L M T P k \mathcal{L}^k _{MTP} LMTPk:

L M T P k = C r o s s E n t r o p y ( p 2 + k : T + 1 k , t 2 + k : T + 1 ) = − 1 T ∑ i = 2 + k T + 1 log ⁡ P i k [ t i ] \mathcal{L}^k {MTP} = CrossEntropy(p{2+k:T+1}^{k}, t_{2+k:T+1}) = -\frac{1}{T} \sum {i=2+k} ^{T+1} \log P{i} ^{k}[t_i] LMTPk=CrossEntropy(p2+k:T+1k,t2+k:T+1)=−T1i=2+k∑T+1logPik[ti]

其中 T 表示输入序列长度, t i t_i ti 表示第 i 个位置的 ground-truth Token, P i k [ t i ] P_{i} ^{k}[t_i] Pik[ti] 表示第 i 个 MTP 模块给出的 t i t_i ti 的相应预测概率。

最后,计算所有深度的 MTP 损失的平均值,并乘以一个权重因子 λ \lambda λ,得到整体 MTP 损失 L M T P \mathcal{L} _{MTP} LMTP,它作为 DeepSeek-V3 的训练目标:

L M T P = λ D ∑ k = 1 D L M T P k \mathcal{L} _{MTP} = \frac{\lambda}{D} \sum _{k=1} ^{D} \mathcal{L}^k _{MTP} LMTP=Dλk=1∑DLMTPk

2.2 推理中的 MTP

MTP 策略主要旨在提高主模型的性能,在推理过程中,可以直接丢弃 MTP 模块,主模型可以独立且正常地工作。

此外,还可以将这些 MTP 模块用于推理的 decoding,以进一步改善生成延迟。

3 deepseek 是如何生成思考过程的

3.1 基于规则的检查

对于数学问题:"2 + 3 * 4 等于多少?"

系统知道正确答案是 14。它将查看 DeepSeek V3(RL 代理)生成的输出,并专门检查 <answer>标签内的内容。如果 <answer>标签包含14(或数字相同的内容),它会得到正奖励,比如说 +1。如果它错了,它会得到 0 奖励,甚至可能是负奖励。 --> (正确性检查)

3.2 格式化奖励

DeepSeek R1 Zero 还需要学习正确构建其推理,并且可以使用 <think><answer> 标签,正确设置格式的奖励较少。

检查模型输出是否正确地将推理过程包含在 <think> ...</think> 中,并将最终答案包含在 <answer>... </answer>中。

3.3 奖励训练模板

为了使奖励模型有效,研究人员设计了一个特定的训练模板。该模板充当蓝图,指导 DeepSeek-V3-Base 如何在强化学习过程中构建其响应。

原始模板:

bash 复制代码
A conversation between User and Assistant. The user asks a question, and 
the Assistant solves it. The assistant first thinks about the reasoning 
process in the mind and then provides the user with the answer. The reasoning 
process and answer are enclosed within <think> </think> and <answer> </answer>
tags respectively, i.e., <think> reasoning process here </think>
<answer> answer here </answer>. User: {prompt}. Assistant:

这种结构化输出对于研究人员以后窥视模型的推理步骤非常重要。

训练 DeepSeek-R1-Zero 时,使用此模板为其提供提示。例如对于这里的数学问题,输入如下:

bash 复制代码
A conversation between User and Assistant. The user asks a question, and 
the Assistant solves it. The assistant first thinks about the reasoning 
process in the mind and then provides the user with the answer. The reasoning 
process and answer are enclosed within <think> </think> and <answer> </answer>
tags respectively, i.e., <think> reasoning process here </think>
<answer> answer here </answer>. User: What is 2 + 3 * 4?. Assistant:

期望模型生成符合模板的输出:

bash 复制代码
<think>
Order of operations:
multiply before add. 3 * 4 = 12. 2 + 12 = 14
</think>
<answer>
14
</answer>

DeepSeek 团队有意保持这个模板简单并专注于结构,而不是告诉模型如何推理。

3.4 DeepSeek R1 Zero 的强化学习训练过程

第一步是使用旧策略(即强化学习更新之前的 DeepSeek-V3-Base 模型)生成多个可能的输出。在一次训练迭代中,假设 GRPO 采样一组 G = 4 个输出:

  • o1: <think>2 + 3 = 5, 5 * 4 = 20</think> <answer> 20</answer> (运算顺序不正确
  • o2: <think>3 * 4 = 12, 2 + 12 = 14</think> <answer>14</answer> (正确)
  • o3: <answer>14</answer> (正确,但缺少 标签)
  • o4: <think>...一些胡言乱语的推理...</think> <answer> 7<answer> (不正确且推理不佳)

每个输出将根据正确性和推理质量进行评估并分配奖励。

为了引导模型进行更好的推理,基于规则的奖励系统应运而生。每个输出都根据以下条件分配奖励:

  • 准确度奖励:答案是否正确。
  • 格式奖励:推理步骤是否使用 标签正确格式化。

奖励分配如下:

输出 准确率奖励 格式奖励 总奖励
o1 0 0.1 0.1
o2 1 0.1 1.1
o3 1 0 1
o4 0 0.1 0.1

模型应该学会偏爱奖励更高的输出,同时降低生成不正确或不完整输出的概率。

为了确定每个输出对模型性能的改善或恶化程度,使用奖励值计算优势。优势有助于通过强化更好的输出来优化策略。计算平均第一个奖励:

M e a n R e w a r d = 0.1 + 1.1 + 1 + 0.1 4 = 0.575 Mean Reward = \frac{0.1 + 1.1 + 1 + 0.1}{4} = 0.575 MeanReward=40.1+1.1+1+0.1=0.575

标准差(近似值)= 0.5,现在计算每个输出的优势:

A i = r i − M e a n R e w a r d S t a n d a r d D e v i a t i o n A_i = \frac{r_i - Mean Reward}{Standard Deviation} Ai=StandardDeviationri−MeanReward

即:

A 1 = 0.1 − 0.575 0.5 ≈ − 0.95 A_1 = \frac{0.1 - 0.575}{0.5} \approx -0. 95 A1=0.50.1−0.575≈−0.95

A 2 = 1.1 − 0.575 0.5 ≈ 1.05 A_2 = \frac{1.1 - 0.575}{0.5} \approx 1.05 A2=0.51.1−0.575≈1.05

A 3 = 1 − 0.575 0.5 ≈ 0.85 A_3 = \frac{1 - 0.575}{0.5} \approx 0.85 A3=0.51−0.575≈0.85

A 4 = 0.1 − 0.575 0.5 ≈ − 0.95 A_4 = \frac{0.1 - 0.575}{0.5} \approx -0. 95 A4=0.50.1−0.575≈−0.95

输出 o2 和 o3 获得正优势,这意味着应该鼓励它们。输出 o1 和 o4 获得负优势,这意味着应该阻止它们。

然后,GRPO 使用计算出的优势来更新策略模型 (DeepSeek-V3-Base),以增加生成具有高优势的输出(如 o2 和 o3)的概率,并降低具有低优势或负优势的输出(如 o1 和 o4)的概率。

更新根据以下内容调整模型权重:

  • 策略比率:在新策略与旧策略下生成输出的概率。
  • 裁剪机制:防止过大的更新,这可能会破坏训练的稳定性。
  • KL 发散惩罚:确保更新不会偏离原始模型太远。

这确保在下一次迭代中,模型更有可能生成正确的推理步骤,同时减少不正确或不完整的响应。

因此,RL 是一个迭代过程。使用不同的推理问题重复上述步骤数千次。每次迭代都会逐渐提高模型的能力:

  • 执行正确的操作顺序
  • 提供逻辑推理步骤
  • 始终使用正确的格式

随着训练的深入,模​​型会从错误中吸取教训,在解决推理问题方面变得更加准确和有效。

4 由 deepseek R1 ZERO 到 deepseek R1

4.1 R1 Zero 的两个主要问题
  • 标签内的推理过程难以阅读,使人类难以理解和分析
  • 语言混合,当被问到多语言问题时,模型有时会在同一个回答中混合使用多种语言,导致输出不一致和混乱。

为了修复 R1 Zero 问题并真正让 DeepSeek 推理正确,研究人员进行了冷启动数据收集监督微调

4.1 冷启动数据
4.1.2 使用长 CoT 进行少量提示

他们为 DeepSeek-V3 Base 提供了一些问题示例以及非常详细的分步解决方案,称为思维链 (CoT)。这个想法是让模型通过示例学习并开始模仿这种分步推理风格。

对于示例问题 2 + 3 * 4 等于多少?,他们可能会显示如下提示:

bash 复制代码
Problem Examples with Solutions:

Problem: What's the square root of 9 plus 5?
Solution: | special_token | First, find the square root of 9, which is 3. 
Then, add 5 to 3.  3 + 5 equals 8. | special_token | Summary: The answer is 8.

Problem: Train travels at 60 mph for 2 hours, how far?
Solution: | special_token | Use the formula: Distance = Speed times Time. 
Speed is 60 mph, Time is 2 hours. Distance = 60 * 2 = 120 miles. 
| special_token | Summary: Train travels 120 miles.

Problem: What is 2 + 3 * 4?
Solution:

那些 | special_token | 东西只是将推理步骤与摘要分开的标记,使模型可以清楚地学习结构。

看到这些示例后,模型应该学会以类似的格式给出答案,例如 2 + 3 * 4 等于多少?

bash 复制代码
| special_token |  Following order of operations (PEMDAS/BODMAS), 
do multiplication before addition.  So, first calculate 3 * 4 = 12. 
Then, add 2 to 12. 2 + 12 = 14. | special_token | Summary: The answer is 14.
4.1.2 直接提示

他们收集数据的另一种方法是直接提示模型不仅解决问题,而且还要逐步明确地展示其推理,然后仔细检查其答案。这是为了促进更仔细和周到的问题解决。

对于 12 + 3 * 4 等于多少?,提示可能是:

bash 复制代码
Problem: Solve this, show reasoning step-by-step, and verify:
What is 2 + 3 * 4?
4.1.3 后处理细化

他们甚至使用了已经训练过的 R1 Zero 模型的输出。尽管 R1 Zero 存在问题,但它可以进行一些推理。因此,他们采用了 R1 Zero 的输出,并让人类标注者使其更清晰、更结构化,并纠正其中存在的错误。

例如,混乱的 R1 Zero 输出可能是:

复制代码
<think>  ummm... multiply 3 and 4... get 12... then add 2...</think>
<answer> 14 </answer>

然后人类会对其进行改进,使其更清晰、格式更好:

复制代码
| special_token | Reasoning: To solve this, we use order of operations,
doing multiplication before addition.
Step 1: Multiply 3 by 4, which is 12.
Step 2: Add 2 to the result: 2 + 12 = 14.
| special_token | Summary: The answer is 14.

最终获得了非常好的冷启动数据:

  • 高质量推理示例:每个示例都展示了良好的逐步推理。
  • 一致、可读的格式: | special_token | 格式使所有内容统一且易于处理。
  • 人工检查:他们确保过滤掉任何不好的例子,因此数据干净可靠。

获得此冷启动数据后,他们进行了监督微调 (SFT)。

4.2 监督微调

SFT 第 1 阶段的核心思想是使用监督学习来教 DeepSeek-V3-Base 如何产生高质量、结构化的推理输出。向模型展示了许多良好推理的例子,并要求它学习模仿这种风格。

对于 SFT,需要将冷启动数据格式化为输入-目标对。对于数据集中的每个推理问题,都会创建一个这样的对:

输入 = 提示或问题描述本身

复制代码
User: What is 2 + 3 * 4? Assistant:

目标是希望模型学习生成的理想输出:

复制代码
| special_token | According to the order of operations (PEMDAS/BODMAS) ... 
Summary: The answer is 14.

微调过程从输入开始:

  • 提示 + 目标推理,在此提供一个问题和一个结构化的推理示例。这会训练模型(DeepSeek-V3-Base 模型)以生成结构良好的响应。
  • 在预测下一个标记中,模型会生成推理序列中的下一个单词。使用损失函数将其与比较目标标记(计算损失)中的实际下一个标记进行比较。损失越大,意味着预测距离正确标记越远。
  • 在更新模型参数中,反向传播和优化器会调整模型的权重以改进其预测。这个过程循环往复,重复许多输入目标对,每次迭代逐渐提高模型结构化推理能力。
4.3 推理导向强化学习

前面说明了基于 deepseek V3 base 的 STF 训练,为了真正提高其推理能力,研究人员引入了推理导向强化学习。

这一阶段,依然使用相同的 GRPO 算法,但是奖励系统有所改变,添加了语言一致性奖励,来解决 R1 Zero 的语言混淆的问题。简单说就是使用英语问问题,期望得到的回答是英语的。

在计算 RL 阶段的总奖励时,会将语言一致性的奖励得分考虑在内,为语言一致性奖励分配的权重较小。

4.4 拒绝抽样

对于推理数据,DeepSeek 团队希望获得绝对最佳示例以进一步训练模型。为此,他们使用了一种称为拒绝抽样的技术。

为了改进推理数据,DeepSeek 使用了拒绝抽样。对于"2 + 3 * 4 等于多少?",他们会从上一阶段模型生成许多输出。然后他们会评估每个输出的正确性(答案"14")和推理的可读性。只有正确且推理充分的最佳输出才会被保留,而其他输出则被拒绝。对于复杂的推理,生成奖励模型用于判断推理质量。严格的过滤器会删除混合语言、漫无边际的推理或不相关的代码。此过程会产生约 600k 个高质量推理样本。

除了精炼推理数据外,他们还添加了非推理数据(约 20 万个样本),用于一般技能:写作、问答、翻译等,有时还会使用思维链来完成复杂任务。

最后,SFT 第 2 阶段使用下一个标记预测在组合数据集(精炼推理 + 非推理)上训练前一个模型检查点。此阶段使用来自拒绝采样的顶级示例进一步改进推理,并将模型推广到更广泛的任务,同时保持用户友好性。

4.5 适用于所有场景的 RL

奖励系统现在还考虑:

  • 有用性,评估摘要(如果生成)是否提供了除答案之外的有用背景。
  • 无害性,检查整个输出是否安全且无偏见。这些通常由根据人类偏好训练的单独奖励模型进行评估。

最终的奖励信号是准确度有用性无害性分数的加权组合。

现在,训练数据包括:

  • 多样化组合,包括推理问题
  • 一般 QA 提示
  • 写作任务
  • 偏好对,其中人类指出两个模型输出中的哪一个在有用性和无害性方面更好

5 模型蒸馏

在 DeepSeek 团队能够创建性能良好的 DeepSeek R1 后,他们进一步将更大的模型提炼为性能更高的小型模型,供社区使用,蒸馏过程的工作原理如下:

  • 数据准备:收集 800k 个推理样本。
  • DeepSeek-R1 输出:对于每个样本,教师模型(DeepSeek-R1)的输出用作学生模型的目标。
  • 监督式微调 (SFT):学生模型(例如 Qwen-1.5B、Llama-14B)基于这 800k 个样本进行微调,以匹配 DeepSeek-R1 输出。
  • 蒸馏模型:学生模型现在被精炼成更小的版本,但保留了 DeepSeek-R1 的大部分推理能力。
  • 结果:获得更小、更快且具有良好推理能力的模型,随时可以部署。
相关推荐
Golinie20 分钟前
使用Ollama+Langchaingo+Gin通过定义prompt模版实现翻译功能
llm·prompt·gin·langchaingo
movee9 小时前
十分钟从零开始开发一个自己的MCP server(二)
后端·llm·mcp
movee9 小时前
十分钟从零开始开发一个自己的MCP server(一)
后端·llm·mcp
小溪彼岸11 小时前
【DeepSeek】DeepSeek-V3-0324发布,代码能力比肩Claude 3.5?
deepseek
白雪讲堂11 小时前
GEO(生成引擎优化)实施策略全解析:从用户意图到效果追踪
大数据·人工智能·搜索引擎·ai·deepseek
后端小肥肠12 小时前
Coze+TreeMind实测:秒出ISO标准流程图/脑图(附完整提示词)
人工智能·coze·deepseek
前行的小黑炭13 小时前
Android:如何看Github、Gitee上的项目提升自己的能力?一条龙服务,尤其是有了DeepSeek以后。
android·kotlin·deepseek
laopeng30113 小时前
Spring AI ToolCalling 扩展模型能力边界
java·人工智能·大模型·spring ai
大模型真好玩15 小时前
新王登基!DeepSeek-V3-0324横空出世,国产大模型还得看DeepSeek(详细DeepSeek-V3-0324模型评测)
人工智能·深度学习·deepseek
Martian小小15 小时前
MCP探索
llm·mcp