在一家名叫“DeepSeek”的餐厅里,有位主厨叫R1。他既能在总店后厨做满汉全席,也能把拿手菜谱交给路边餐车的学徒,让他们用小小灶台也做出八分味道。为什么R1这么厉害?他不是天生的大厨,而是靠一套独特的训练法:对着食谱边做边想,客人打分后不断调整;遇到难题就多试几样做法,选最受欢迎的一种。更难得的是,他不藏着掖着,把毕生功力浓缩成一份份简化菜谱,让手机、学习机这样的“移动餐车”也能运行。本文就用这个厨房故事,带你认识DeepSeek-R1的推理原理、关键算法和端侧部署生态。

岗位关联

理解DeepSeek-R1的推理与蒸馏机制,将帮助你在实际工作中选对模型、做对优化,成为大模型落地团队中的“懂行”工程师。

目录
  1. 可视化演示
  2. 基础定位
  3. 结构内核
  4. 推理机制
  5. 强化学习
  6. 蒸馏压缩
  7. 性能特征
  8. 优化策略
  9. 生态应用
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示GRPO组相对策略优化算法的奖励计算与策略更新、RL训练中推理能力的自发涌现现象、以及从671B到1.5B的蒸馏模型矩阵与性能对比。

本节配有交互动效(进入视口后自动加载,约 3KB)。

GRPO组相对策略优化 组内采样多回答计算相对优势 基于规则奖励驱动推理行为涌现 GRPO 组相对策略优化无需价值网络

基础定位

先看餐厅格局:有老牌酒楼,那是参数量巨大的大模型;有街边小店,那是轻巧的小语言模型(SLM);还有移动餐车,那是手机、耳机上的端侧AI。DeepSeek-R1是那种既能在总店掌勺、又愿意把菜谱简化给餐车的特殊主厨,它和普通“厨师”最大的区别,是会在下结论前先列出步骤,像大厨先写备菜清单。

在AI世界里,R1的特别之处是“推理能力”:它在下结论前会先想“因为……所以……”,而不是直接报答案。DeepSeek-R1系列包含庞大的完整版和多个蒸馏小版本,完整版像一个豪华后厨,蒸馏版则是一份份适合小厨房的简化菜谱。理解“大模型、SLM、端侧AI”这三个坐标,才能知道R1适合放在哪里用。

技术上看,大模型指参数规模大、知识面广的预训练模型;SLM指参数较少、可在本地设备运行的模型。DeepSeek-R1完整版是671B参数的MoE模型,蒸馏版从1.5B到70B不等。部署时可以用下面的公式估算模型权重占用的显存:

端侧要挑“小份菜”,选合适参数量的蒸馏版,移动餐车才跑得动。定位清楚了,才能决定后厨怎么搭建。

SGB=2P10243\displaystyle S_{GB} = \frac{2P}{1024^3}
公式告诉你:模型参数越多,显存需求越高;FP16下每个参数约2字节,除以三次1024得到GB数。
  1. $S_{GB}$ 代表显存占用的估算值单位是GB,方便判断设备是否装得下。
    SGB\displaystyle S_{GB}
  2. $P$ 是模型参数量例如1.5B表示15亿参数。
    P\displaystyle P
  3. 乘以2代表FP16精度每个参数需要2字节存储。
    2P\displaystyle 2P
  4. 除以 $1024^3$ 完成单位换算从字节换算成GB。
    2P10243\displaystyle \frac{2P}{1024^3}

结构内核

R1的厨房不像普通餐厅一口锅炒到底,而是分了好几个“专业灶台”:有人专做鱼,有人专做蔬菜。每次来单,前台只叫醒最需要的几位大厨。这种设计在AI里叫MoE(混合专家),它让模型拥有海量知识,却不必每次都动用全部家当。

MoE架构的核心是“专家路由”,每次推理时只激活少量专家,把计算花在刀刃上。此外,注意力机制让模型能回看上下文中的关键位置,像大厨做菜时随时瞟一眼菜谱。R1还使用了MLA(Multi-head Latent Attention),它把注意力的键值表示压缩后进行缓存,减少重复计算。

这里的关键概念是KV缓存:在生成每个新token时,模型要反复查询历史token的“键值对”,如果不缓存,就要把整段历史重算一遍。KV缓存的大小可以用下面的公式表示:

结构决定了后厨空间:通过MoE和MLA,R1用有限装下一身本事,同时控制推理时的缓存开销。

Ckv=2×nl×nh×dh×L\displaystyle C_{kv} = 2 \times n_l \times n_h \times d_h \times L
这个公式揭示了“长上下文的代价”:层数、头数、维度、序列长度每增加一点,缓存都会线性增长。
  1. $C_{kv}$ 是KV缓存的总大小单位是元素个数或字节,取决于精度。
    Ckv\displaystyle C_{kv}
  2. $n_l$ 是模型层数,$n_h$ 是每层注意力头数两者相乘等于注意力头总数。
    nl×nh\displaystyle n_l \times n_h
  3. $d_h$ 是每个头的维度单个头中键或值向量的长度。
    dh\displaystyle d_h
  4. 乘以序列长度 $L$ 再乘以2因为每个位置都要存键和值两份向量。
    2×nl×nh×dh×L\displaystyle 2 \times n_l \times n_h \times d_h \times L

推理机制

大厨做复杂菜时,会先写“步骤纸条”:这一步切菜,下一步焯水。遇到拿不准的菜,还会让几个帮厨同时试做,最后投票选最好吃的一版。这套流程在AI里叫推理机制,而DeepSeek-R1把它练成了肌肉记忆。

“步骤纸条”就是思维链(Chain of Thought),模型生成答案前先输出中间推理步骤;“帮厨同时试做”叫推理时扩展,常见做法是多次采样;“投票”叫自一致性,通过多数决策提升准确率。R1在训练中学会了主动生成思维链,而不是等用户提示。

生成过程中,温度(T)控制随机性。T小,模型倾向最确定的词;T大,输出更丰富。温度采样公式如下:

菜谱步骤越多、试做次数越多,出品越稳定;温度则是“要不要大胆创新”的旋钮。推理机制决定了模型是“脱口而出”还是“深思熟虑”。

P(xi)=exp⁡(zi/T)∑jexp⁡(zj/T)\displaystyle P(x_i) = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)}
温度像“创造力的旋钮”:调低更稳,调高更大胆,但推理任务通常需要偏低的温度。
  1. $z_i$ 是模型对词 $x_i$ 的原始得分(logit)得分越高,模型越倾向选它。
    zi\displaystyle z_i
  2. $T$ 是温度参数T大于1时分布更平坦,T小于1时更尖锐。
    T\displaystyle T
  3. $\exp(z_i / T)$ 将得分转为非负权重温度越高,得分差异越被抹平。
    exp⁡(zi/T)\displaystyle \exp(z_i / T)
  4. 除以所有词的权重之和把权重归一化成概率。
    ∑jexp⁡(zj/T)\displaystyle \sum_j \exp(z_j / T)

强化学习

R1这身本事不是看书看来的,而是靠“顾客试吃打分”练出来的。餐厅请来一组客人,每人试吃后给出相对排名,主厨根据名次调整步骤。这就是强化学习:先做一道菜,得到反馈,再改进。

DeepSeek-R1使用了GRPO(组相对策略优化),它针对同一道题生成多个回答,计算每个回答相比同组平均水平的优劣,而不是依赖一个绝对评分员。这样既减少了奖励模型的训练负担,也让反馈信号更稳定。

在GRPO中,规则奖励(答案是否正确、格式是否规范)给出分数;策略优化用这些分数更新模型参数;反思机制让模型在训练中学会判断自己步骤的合理性。优势函数是核心计算之一:

餐厅用“相对口味”而不是“绝对评分”来培训主厨,才能避免一个客人的偏好带偏整个后厨。R1正是靠这种训练,学会了在复杂任务中反复修正思路。

Ai=ri−rˉ1G∑j=1G(rj−rˉ)2+ϵ\displaystyle A_i = \frac{r_i - \bar{r}}{\sqrt{\frac{1}{G}\sum_{j=1}^{G}(r_j - \bar{r})^2 + \epsilon}}
优势值衡量“这道菜比同组平均水平好多少”:高于平均分就强化,低于就抑制。
  1. $r_i$ 是第 $i$ 个回答的奖励分数来自规则或奖励模型。
    ri\displaystyle r_i
  2. $\bar{r}$ 是同一组 $G$ 个回答的平均分作为比较基准。
    rˉ=1G∑j=1Grj\displaystyle \bar{r} = \frac{1}{G}\sum_{j=1}^{G} r_j
  3. 分母是组内分数标准差加小常数 $\epsilon$让优势值归一化,并防止除零。
    1G∑j=1G(rj−rˉ)2+ϵ\displaystyle \sqrt{\frac{1}{G}\sum_{j=1}^{G}(r_j - \bar{r})^2 + \epsilon}
  4. $A_i$ 是归一化后的优势值大于0表示高于平均水平,小于0表示需要调整。
    Ai\displaystyle A_i

蒸馏压缩

总厨不能亲自去每家餐车做菜,于是他把复杂工艺简化成几句口诀,让学徒也能做出八分味道。这个过程叫蒸馏,是把大模型的能力“凝缩”给小模型的手段。

DeepSeek-R1蒸馏版让小模型学习大模型“思考时的输出概率”,而不只是背答案。这样,1.5B的小模型也能保留不少推理能力。蒸馏之外,量化和剪枝进一步给模型“减重”,让手机端侧也能运行。

蒸馏损失通常由硬标签损失和软标签损失组成。软标签来自教师模型带温度的输出分布,带有“哪些错误答案更接近正确答案”的暗知识。公式如下:

口诀不能替代全部功夫,但足以让餐车出品稳定。蒸馏小模型虽小,却继承了推理的“骨架”,这是R1生态能落地的关键。

L=α LCE(y,pS)+(1−α) T2 KL(pT∥pS)\displaystyle L = \alpha\, L_{CE}(y, p_S) + (1-\alpha)\, T^2\, KL(p_T \| p_S)
硬标签教学生“正确答案是什么”,软标签教学生“老师为什么会想到这个答案”。
  1. $L_{CE}(y, p_S)$ 是硬标签交叉熵损失让学生输出贴近真实答案。
    LCE(y,pS)\displaystyle L_{CE}(y, p_S)
  2. $p_T$ 与 $p_S$ 是教师和学生模型带温度的输出分布$p_S$ 是学生要逼近的目标。
    pT,pS\displaystyle p_T, p_S
  3. $KL(p_T \| p_S)$ 是两种分布的KL散度衡量学生和老师的差异,越小越接近。
    KL(pT∥pS)\displaystyle KL(p_T \| p_S)
  4. $T^2$ 与 $\alpha$ 控制软硬目标的比例温度平方用于抵消温度缩放带来的梯度变化。
    α LCE(y,pS)+(1−α) T2 KL(pT∥pS)\displaystyle \alpha\, L_{CE}(y, p_S) + (1-\alpha)\, T^2\, KL(p_T \| p_S)

性能特征

端侧部署就像在移动餐车做菜:地方小、火小,但顾客要快。衡量一辆餐车,看四个指标:上菜时间(延迟)、同时出几份(吞吐)、备菜间大小(显存)和味道还原度(精度)。

DeepSeek-R1的蒸馏小模型在手机、PC上运行时,最大的特点是“重量决定速度”。和云端GPU不同,端侧算力有限,模型权重从内存搬到计算单元往往要花很长时间,内存带宽常成为瓶颈。

推理时,模型生成token是逐字进行的,每一步都要读取一遍全部权重,所以延迟近似等于“读完一遍权重”的时间。INT4量化能把7B模型压到约4GB,显著减少搬运量,但需要校准,否则精度会受损。核心公式是:

餐车想变快,与其升级火炉,不如精简配料。端侧优化第一原则就是“减重”。

latency≈MweightsBWmem\displaystyle latency \approx \frac{M_{weights}}{BW_{mem}}
延迟不是被“计算速度”卡住,而是被“搬数据”的时间主导,减重比加算力更有效。
  1. $M_{weights}$ 是模型权重总量量化、剪枝都可以直接减小它。
    Mweights\displaystyle M_{weights}
  2. $BW_{mem}$ 是内存带宽单位时间内能搬运的数据量。
    BWmem\displaystyle BW_{mem}
  3. 延迟约等于权重总量除以带宽这是理解端侧性能的第一公式。
    MweightsBWmem\displaystyle \frac{M_{weights}}{BW_{mem}}

优化策略

好厨房会优化动线:常用的刀和调料放在手边,多张订单一起备菜,用不到的锅不拿出来。R1的部署优化也是这套思路,在有限的硬件里把效率榨出来。

云端和端侧有各自的关键手段:服务端常用KV缓存复用和连续批处理;端侧则依赖稀疏计算和算子适配。这些优化不是魔法,而是减少重复劳动、让设备只做必要计算。

KV缓存复用让多轮对话不必重算历史;连续批处理让不同请求交错执行,提高GPU利用率;MoE的稀疏性意味着同一时刻只算少数专家;在端侧,INT4量化和算子融合能明显减少访存开销。量化后的体积变化如下:

把厨房动线理顺,移动餐车也能出大菜。优化策略让R1从云端走向碎片化设备,也决定了它能跑多快、跑多久。

Sq=S0×BqB0\displaystyle S_q = S_0 \times \frac{B_q}{B_0}
位宽从16位降到4位,模型体积直接缩到四分之一;体积越小,读取越快。
  1. $S_0$ 是原始模型体积例如FP16的7B模型约有14GB。
    S0\displaystyle S_0
  2. $B_q$ 是量化后的位宽,$B_0$ 是原始位宽比如从16位到4位。
    BqB0\displaystyle \frac{B_q}{B_0}
  3. $S_q$ 是量化后的模型体积比例乘上去即可估算。
    S0×BqB0\displaystyle S_0 \times \frac{B_q}{B_0}

生态应用

R1的菜谱不仅留在总店,还被外卖平台(API)、餐车加盟(端侧部署)和社区菜谱(开源模型)传播开。一个以推理能力为核心的小模型生态正在形成。

应用时,既可以直接调用DeepSeek-R1服务,也可以下载蒸馏版在本地跑。不同方案对应不同成本和隐私需求:云端方便但依赖网络,端侧隐私好但性能受限。工具链如Ollama、llama.cpp、ONNX Runtime大大降低了部署门槛。

常见挑战包括硬件碎片化、内存带宽瓶颈、能耗和模型更新维护。未来趋势是更小的推理模型配合专用芯片,把“米其林大厨”请进更多轻量设备。在商业评估中,调用成本是一个重要指标:

从米其林总店到路边餐车,R1的菜谱正在让“人人吃得起推理”成为现实。理解整个生态,才能把这张菜谱用在正确的地方。

C=nin×cin+nout×cout\displaystyle C = n_{in} \times c_{in} + n_{out} \times c_{out}
输入和输出token分别计价,输出往往更贵,所以控制思维链长度能直接影响成本。
  1. $n_{in}$ 和 $n_{out}$ 是输入与输出的token数量思维链越长,输出token越多。
    nin,nout\displaystyle n_{in}, n_{out}
  2. $c_{in}$ 和 $c_{out}$ 是每token单价不同模型单价不同。
    cin,cout\displaystyle c_{in}, c_{out}
  3. 总成本等于两者相加选用R1前,先估算调用量和上下文长度。
    nin×cin+nout×cout\displaystyle n_{in} \times c_{in} + n_{out} \times c_{out}

AI 应用场景

端侧学习机数学辅导

阶段:模型部署与推理

解决的问题:学生提问时常常没有网络,且家长担心数据上传云端。传统搜索引擎式问答无法启发思路,更无法在本地离线运行。

具体案例:某学习机搭载DeepSeek-R1蒸馏7B版本,学生拍照上传题目后,模型在本地输出思维链,先写“题干拆解”,再写“关键条件”,最后给出答案。遇到易错题,系统还用自一致性多次采样,取多数答案作为最终结果。

笔记本上的离线代码补全

阶段:模型微调与推理

解决的问题:IDE插件如果每次补全都请求云端,延迟高、还容易泄露代码。传统基于规则的补全无法理解上下文语义。

具体案例:某编程工具在用户笔记本上运行1.5B蒸馏版,用温度0.1的采样模式生成补全建议,并通过规则过滤掉危险API;代码上下文通过KV缓存复用,让连续编辑的延迟保持平稳。

企业文档逻辑质检

阶段:推理 + 规则奖励

解决的问题:合同和公告中的逻辑漏洞,纯文本规则检测不到,人工审查又太慢。通用大模型不保证严谨推理,容易“拍脑袋”给结论。

具体案例:一家法务科技公司调用DeepSeek-R1 API,让模型先输出“分步检查清单”,再输出“潜在逻辑冲突点”,并将超长思维链截断控制成本。系统持续收集badcase,用GRPO风格奖励微调一个专属蒸馏小模型,逐步降低API调用量。

Python 演示

python24 行
import math def softmax_with_temperature(logits, tau):    exps = [math.exp(v / tau) for v in logits]    total = sum(exps)    return [v / total for v in exps] def kl_divergence(p, q):    return sum(pi * math.log(pi / qi) for pi, qi in zip(p, q) if pi > 0 and qi > 0) def distillation_loss(teacher_logits, student_logits, alpha=0.7, tau=3.0, hard_label=None):    p_teacher = softmax_with_temperature(teacher_logits, tau)    p_student = softmax_with_temperature(student_logits, tau)    soft_loss = tau * tau * kl_divergence(p_teacher, p_student)    hard_loss = 0.0    if hard_label is not None:        hard_loss = -math.log(p_student[hard_label])    return alpha * hard_loss + (1 - alpha) * soft_loss if __name__ == "__main__":    teacher_logits = [2.0, 1.0, 0.1]    student_logits = [0.5, 1.5, 0.2]    loss = distillation_loss(teacher_logits, student_logits, alpha=0.7, tau=3.0, hard_label=0)    print(f"蒸馏损失: {loss:.4f}")
目的:用纯Python实现知识蒸馏损失,演示教师模型如何通过带温度的分布“带”学生模型。
  1. exps = [math.exp(v / tau) for v in logits]给logits除以温度再取指数,把原始得分变成非负权重。
  2. return [v / total for v in exps]归一化得到概率分布,这就是带蒸馏温度的“软标签”。
  3. kl_divergence(p, q)计算教师分布和学生分布的信息差异,越小代表学生越像老师。
  4. soft_loss = tau * tau * kl_divergence(p_teacher, p_student)温度平方缩放KL散度,让不同温度下梯度规模稳定。
  5. hard_loss = -math.log(p_student[hard_label])学生给真实标签的概率越大,这个损失越小。
  6. loss = distillation_loss(...)把硬标签和软标签按alpha比例组合成最终蒸馏损失。

常见误区

误区R1在各排行榜上那么强,所有自然语言任务都应该用它,效果一定最好。

正解R1是“推理厨师”,擅长数学、代码、逻辑等需要步骤的“硬菜”;闲聊、文案创作等自由度高的任务,它的长思维链反而显得啰嗦且成本更高。通用模型才是更合适的选择。

为何常见:推理榜单容易让人以偏概全,误以为推理强等于全能。

误区既然宣传说小模型也能跑,那就选最小的1.5B版本,又省内存又快。

正解模型越小,知识容量越低。1.5B适合简单问答,复杂推理需要7B、14B甚至更大。选型要看任务难度和硬件预算,不能一味求小。

为何常见:端侧演示总用最小模型,容易让人忽略不同规模之间的能力差距。

误区要让模型有推理效果,用户必须在提示词里写“请逐步思考”或类似话术。

正解DeepSeek-R1已经把思维链通过强化学习内化,不需要外部提示。强行加入反而可能触发冗长的格式化输出,甚至影响结果。

为何常见:早期大模型依赖提示触发思维链,很多人沿着老习惯照搬到新模型上。

误区只要最终答案对了就奖励,中间步骤不重要,模型自然会学到推理。

正解中间步骤是模型学会推理的“脚手架”。R1训练时虽然最终答案决定奖励,但结构化的步骤输出为奖励提供了稳定信号,也让模型更容易反思哪里出错。

为何常见:从外部看,答案正确才是唯一目标,忽略了模型需要过程信号才能稳定学习。

误区把16位精度降到4位,等于扔掉四分之三的信息,模型精度一定会暴跌。

正解量化确实有精度损失,但配合校准数据和知识蒸馏,绝大多数推理任务几乎无感。真正危险的“裸量化”是直接转而不校准,才会导致明显劣化。

为何常见:从“16位变4位”的字面直觉判断,忽略了现代量化算法对分布的补偿。

面试题

Q1. DeepSeek-R1最核心的训练方法是?

单选题 · easy

  • A.纯监督学习
  • B.强化学习方法← 正确答案
  • C.无监督预训练
  • D.人工标注数据

答案:B。R1通过强化学习(尤其是GRPO)把推理能力练出来,而不是靠纯监督或人工标注。监督学习更多用于微调阶段,不是让它“学会推理”的核心。

Q2. 在端侧部署R1时,优先选择哪种版本?

单选题 · easy

  • A.671B完整版
  • B.70B蒸馏版
  • C.1.5B蒸馏版← 正确答案
  • D.MoE原版部署

答案:C。端侧设备显存和算力有限,优先选用1.5B等小尺寸蒸馏版。完整版参数太多,无法在手机、学习机等场景实时运行。

Q3. MoE架构中“专家路由”的主要作用是?

单选题 · mid

  • A.增大模型体积
  • B.只激活部分专家← 正确答案
  • C.所有专家同时计算
  • D.替代注意力机制

答案:B。专家路由像餐厅前台,根据任务叫醒少数相关专家,既保留大模型知识容量,又控制计算量。不是增大体积,也不是替代注意力。

Q4. 温度采样中T越高,生成结果会?

单选题 · easy

  • A.结果更加确定
  • B.结果更加随机← 正确答案
  • C.输出完全不变
  • D.一定产生错误

答案:B。温度T高会让softmax分布更平坦,低概率词也有机会被选中,所以输出更随机。T低则集中在高概率词,更确定。

Q5. 知识蒸馏中学生模型的训练目标是?

单选题 · mid

  • A.只学习硬标签
  • B.模仿教师概率分布← 正确答案
  • C.纯粹记忆训练数据
  • D.不断增大参数量

答案:B。蒸馏除了硬标签,还要模仿教师模型带温度的输出分布,因为软标签里藏着“哪些错项更接近正确项”的暗知识。这不是记忆数据,也不增加参数量。

Q6. GRPO中使用组内相对分数作为优势函数,主要目的是?

单选题 · hard

  • A.减少奖励模型依赖← 正确答案
  • B.让模型随机选择
  • C.增加监督数据
  • D.提高训练速度

答案:A。GRPO不需要一个绝对可靠的奖励模型,而是通过同组多个回答的相对好坏给出信号,像让一桌客人互相比较口味。它不是随机化,也不增加数据。

Q7. KV缓存的主要作用是?

单选题 · extreme

  • A.加快历史Token重算
  • B.缓存键值避免重复计算← 正确答案
  • C.直接增加上下文长度
  • D.替代全部注意力机制

答案:B。KV缓存把历史token的键和值存下来,生成新token时无需重算整个历史,像把半成品放进冰箱。它不增加上下文长度,也没替代注意力。

Q8. 以下属于R1蒸馏生态中端侧优化手段的有?

多选题 · mid

  • A.INT4量化← 正确答案
  • B.剪枝加速← 正确答案
  • C.增加参数量
  • D.算子融合← 正确答案

答案:ABD。端侧优化要“减重提速”,INT4量化、剪枝、算子融合都减少存储或访存开销。增加参数量与目标相反,会拖慢速度。

Q9. 关于思维链与推理时扩展,下列说法正确的有?

多选题 · hard

  • A.多次采样可提升正确率← 正确答案
  • B.思维链越长一定越好
  • C.自一致性采用多数投票← 正确答案
  • D.温度越高推理越稳定

答案:AC。多次采样配合多数投票能提升鲁棒性,这是自一致性的核心。思维链并非越长越好,过长会消耗预算甚至引入噪音;温度高反而更随机,不稳。

Q10. 部署R1蒸馏小模型到端侧时,面临的挑战包括?

多选题 · mid

  • A.硬件碎片化← 正确答案
  • B.显存空间限制← 正确答案
  • C.无需考虑能耗
  • D.内存带宽瓶颈← 正确答案

答案:ABD。端侧设备型号多、内存小、带宽有限,都会限制大模型运行。能耗同样是真实约束,“无需考虑能耗”显然是错误选项。