deepseek(2)——deepseek 关键技术

news2025/4/22 10:34:18

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_tQ

$$

[ 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=1tSoftmaxj dh+dhR qt,iTkj,i vj,iC

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=1NsFFNi(s)(ut)+i=1Nrgi,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,tgi,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,tTopk(sj,t∣1jNr,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,tTopk(sj,t+bi∣1jNr,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=1NrfiPi,

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=1T1(si,tTopk(sj,t∣1jNr,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=1Tsi,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} WiRd×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 hi1Rd 和第 (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}))] hik=Mk[RMSNorm(hik1);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:Tkk=TRMk(h1:Tkk)

其中 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+kT+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=1DLMTPk

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 如何在强化学习过程中构建其响应。

原始模板:

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 时,使用此模板为其提供提示。例如对于这里的数学问题,输入如下:

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:

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

<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> (不正确且推理不佳)

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

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

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

奖励分配如下:

输出准确率奖励格式奖励总奖励
o100.10.1
o210.11.1
o3101
o400.10.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=StandardDeviationriMeanReward

即:

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.10.5750.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.10.5751.05

A 3 = 1 − 0.575 0.5 ≈ 0.85 A_3 = \frac{1 - 0.575}{0.5} \approx 0.85 A3=0.510.5750.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.10.5750.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 等于多少?,他们可能会显示如下提示:

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 等于多少?

| 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 等于多少?,提示可能是:

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 的大部分推理能力。
  • 结果:获得更小、更快且具有良好推理能力的模型,随时可以部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2322983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux (Centos7)安装Mongodb4.0.28

一、官网下载安装包上传到服务器系统 官网&#xff1a;https://www.mongodb.com/try/download/community 放在/opt/software目录下&#xff1a; 二、解压至/usr/local目录下&#xff0c;并重新命名为mongodb [rootlocalhost software]# tar -zxvf mongodb-linux-x86_64-rhel7…

数据库设计-笔记4

1.操作词汇简介 insert&#xff1a;用于向表中插入新记录。 delete&#xff1a;用于从表中删除记录。 update&#xff1a;用于修改表中已有的记录。 select&#xff1a;用于从表中检索数据。 2.代码基础(增删改&#xff09; -- 修改表中的信息 -- 修改表名 alter table s…

基于python的图书管理系统设计与实现

摘要 21世纪的今天&#xff0c;随着计算机技术和网络技术的的不断推广发展和应用&#xff0c;图书馆管理方式也应该随之而更新&#xff0c;借由人力进行繁杂重复的图书管理工作已经不再可取&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0…

RAG专栏:向量数据库

一、数据库分类 键值数据库&#xff08;Key-Value&#xff09;&#xff1a;通常用于简单的数据存储&#xff0c;通过键来快速访问数据。文档数据库&#xff08;Document&#xff09;&#xff1a;用于存储文档结构的数据&#xff0c;如 JSON 格式。图数据库&#xff08;Graph&a…

【GPUStack】【dify】【RAGflow】:本地部署GPUStack并集成到dify和RAGflow

目录 Nvidia-Driver CUDA NVIDIA Container Toolkit&#xff08;新版本的docker不用安装&#xff0c;自带&#xff09; Docker 部署GPUStack Text Embeddings 部署模型库模型 测试 部署开源模型&#xff08;modelscope&#xff09; dify 集成 RAGflow集成 Nvidia-Dri…

逼用户升级Win11,微软开始给Win10限速

随着Windows10的支持时间越来越短&#xff0c;微软也加大了对Win10用户的驱赶力度。 最近&#xff0c;微软官宣了将要在今年6月份降低OneNote for Windows 10的同步速度。软件也将和Windows10在今年的10月14日一同停止支持和维护。 这将影响实时协作和多设备访问。 对OneNote…

HarmonyOs-ArkUI List组件

列表是一个复杂的容器&#xff0c;当列表项达到一定数量&#xff0c;使得列表内容超出其范围的时候&#xff0c;就会自动变为可以滚动。列表适合用来展现同类数据类型。 List组件支持使用&#xff0c;条件渲染&#xff0c;循环渲染&#xff0c;懒加载等渲染控制方式生成子组件…

基于YOLOv8深度学习的PCB缺陷检测识别系统【python源码+GUI界面+数据集+训练代码+登录界面】

目录 一、界面全貌展示 二、前言摘要 三、GUI界面演示 &#xff08;一&#xff09;用户加载自定义模型 &#xff08;二&#xff09;单张图像检测 &#xff08;三&#xff09;检测图像文件夹 &#xff08;四&#xff09;检测视频 &#xff08;五&#xff09;摄像头检测 …

鸿蒙生态圈暗战:数字孪生三强争霸谁将主宰消费电子未来?

IDC数据显示&#xff0c;2025年Q1华为以38.7%份额领跑中国折叠屏市场&#xff0c;Pura X首月销量突破120万台。这款搭载HarmonyOS 5的旗舰&#xff0c;通过灵犀通信技术实现5G A网络下载速率提升30%&#xff0c;并在离线环境下完成厘米级导航。其爆款逻辑背后&#xff0c;是鸿蒙…

react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析

一、React 15&#xff08;2016&#xff09; 核心架构&#xff1a;Stack Reconciler&#xff08;栈协调器&#xff09; 工作原理&#xff1a; 同步递归渲染&#xff1a;采用深度优先遍历方式递归处理 Virtual DOM&#xff0c;形成不可中断的调用栈渲染流程&#xff1a;1. 触发 …

CMS迁移中SEO优化整合步骤详解

内容概要 在CMS迁移过程中&#xff0c;系统化的规划与执行是保障SEO排名稳定性的核心。首先需明确迁移流程的关键阶段&#xff0c;包括数据备份、URL适配、元数据同步及安全配置等环节。其中&#xff0c;数据备份不仅需覆盖原始数据库与静态资源&#xff0c;还需验证备份文件的…

数据结构初阶-二叉树链式

目录 1.概念与结构 2.二叉数链式的实现 2.1遍历规则 2.2申请内存空间 2.3手动构建一棵二叉树 2.4二叉树结点的个数 2.5二叉树叶子结点的个数 2.6二叉树第K层结点个数 2.7二叉树的高度 2.8二叉树中查找值为x的结点 2.9二叉树的销毁 3.层序遍历 3.1概念 3.2层序遍历…

Springboot 集成 Flowable 6.8.0

1. 创建 Spring Boot 项目 通过 Spring Initializr&#xff08;https://start.spring.io/ &#xff09;创建一个基础的 Spring Boot 项目&#xff0c;添加以下依赖&#xff1a; Spring WebSpring Data JPAMySQL DriverLombok&#xff08;可选&#xff0c;用于简化代码&#x…

协作机械臂需要加安全墙吗? 安全墙 光栅 干涉区

安全墙是什么 文章目录 安全墙是什么简介1. 物理安全墙1.1 定义&#xff1a;1.2 作用机制&#xff1a;1.3 应用场景&#xff1a; 2. 虚拟安全墙2.2 定义&#xff1a;2.3 作用机制&#xff1a;2.3 应用场景&#xff1a; 3. 安全毛毯3.1 工作原理&#xff1a;3.2 特点3.3 应用场景…

springboot+mybatisplus

1.什么是springboot? Spring Boot是一个用于快速构建Spring应用程序的框架。它旨在帮助开发人员快速搭建Spring框架,减少配置和繁琐的工作。Spring Boot继承了原有Spring框架的优秀基因,使Spring在使用中更加方便快捷。 在Spring Boot中集成ActiveMQ,需要导入相应的starter…

《TypeScript 面试八股:高频考点与核心知识点详解》

“你好啊&#xff01;能把那天没唱的歌再唱给我听吗&#xff1f; ” 前言 因为主包还是主要学习js&#xff0c;ts浅浅的学习了一下&#xff0c;在简历中我也只会写了解&#xff0c;所以我写一些比较基础的八股&#xff0c;如果是想要更深入的八股的话还是建议找别人的。 Ts基…

SICAR 标准 KUKA 机器人标准功能块说明手册

功能块名称:LSicar_Robot_KUKA_PrD 目录 1. 概述 2. 功能说明 2.1 程序控制 2.2 状态监控 2.3 报警与故障处理 2.4 驱动控制 3. 关键参数说明 4. 操作步骤指南 4.1 初始化配置 4.2 运行控制 4.3 状态监控 5. 常见故障处理 6. 注意事项 附录1:程序段索引 附录…

linux中如何修改文件的权限和拥有者所属组

目录标题 chmod指令八进制形式权限修改文件拥有者所属组的修改umask有关内容 chmod指令 chmod指令可以用来修改人员的权限其形式如下&#xff1a; u代表的是拥有者&#xff0c;g代表的是所属组&#xff0c;o代表的是其他人&#xff0c;a表示所有人&#xff0c;如果你想增加权…

掌握Linux项目自动化构建:从零入门make与Makefile

文章目录 前言&#xff1a; 一、初识自动化构建工具1.1 什么是make/Makefile&#xff1f;1.2 快速体验 二、深入理解核心机制2.1 依赖关系与依赖方法2.2 伪目标的妙用2.3 具体语法a.makefile的基本雏形b.makefile推导原则&#xff01; 三、更加具有通用型的makefile1. 变量定义…

Jenkins 配置python项目和allure

Jenkins新建项目 新建ry-api-auto-test。 添加项目描述&#xff0c;选择gitee令牌。 源码管理&#xff0c;设置仓库地址和凭证。参考我上一篇文章的链接&#xff1a;配置gitee私人令牌和凭证 构建步骤&#xff0c;因为我Jenkins部署在Windows&#xff0c;因此选择batch。…