在一家名叫“DeepSeek”的餐厅里,有位主厨叫R1。他既能在总店后厨做满汉全席,也能把拿手菜谱交给路边餐车的学徒,让他们用小小灶台也做出八分味道。为什么R1这么厉害?他不是天生的大厨,而是靠一套独特的训练法:对着食谱边做边想,客人打分后不断调整;遇到难题就多试几样做法,选最受欢迎的一种。更难得的是,他不藏着掖着,把毕生功力浓缩成一份份简化菜谱,让手机、学习机这样的“移动餐车”也能运行。本文就用这个厨房故事,带你认识DeepSeek-R1的推理原理、关键算法和端侧部署生态。
理解DeepSeek-R1的推理与蒸馏机制,将帮助你在实际工作中选对模型、做对优化,成为大模型落地团队中的“懂行”工程师。
可视化演示
展示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不等。部署时可以用下面的公式估算模型权重占用的显存:
端侧要挑“小份菜”,选合适参数量的蒸馏版,移动餐车才跑得动。定位清楚了,才能决定后厨怎么搭建。
- $S_{GB}$ 代表显存占用的估算值单位是GB,方便判断设备是否装得下。
- $P$ 是模型参数量例如1.5B表示15亿参数。
- 乘以2代表FP16精度每个参数需要2字节存储。
- 除以 $1024^3$ 完成单位换算从字节换算成GB。
结构内核
R1的厨房不像普通餐厅一口锅炒到底,而是分了好几个“专业灶台”:有人专做鱼,有人专做蔬菜。每次来单,前台只叫醒最需要的几位大厨。这种设计在AI里叫MoE(混合专家),它让模型拥有海量知识,却不必每次都动用全部家当。
MoE架构的核心是“专家路由”,每次推理时只激活少量专家,把计算花在刀刃上。此外,注意力机制让模型能回看上下文中的关键位置,像大厨做菜时随时瞟一眼菜谱。R1还使用了MLA(Multi-head Latent Attention),它把注意力的键值表示压缩后进行缓存,减少重复计算。
这里的关键概念是KV缓存:在生成每个新token时,模型要反复查询历史token的“键值对”,如果不缓存,就要把整段历史重算一遍。KV缓存的大小可以用下面的公式表示:
结构决定了后厨空间:通过MoE和MLA,R1用有限装下一身本事,同时控制推理时的缓存开销。
- $C_{kv}$ 是KV缓存的总大小单位是元素个数或字节,取决于精度。
- $n_l$ 是模型层数,$n_h$ 是每层注意力头数两者相乘等于注意力头总数。
- $d_h$ 是每个头的维度单个头中键或值向量的长度。
- 乘以序列长度 $L$ 再乘以2因为每个位置都要存键和值两份向量。
推理机制
大厨做复杂菜时,会先写“步骤纸条”:这一步切菜,下一步焯水。遇到拿不准的菜,还会让几个帮厨同时试做,最后投票选最好吃的一版。这套流程在AI里叫推理机制,而DeepSeek-R1把它练成了肌肉记忆。
“步骤纸条”就是思维链(Chain of Thought),模型生成答案前先输出中间推理步骤;“帮厨同时试做”叫推理时扩展,常见做法是多次采样;“投票”叫自一致性,通过多数决策提升准确率。R1在训练中学会了主动生成思维链,而不是等用户提示。
生成过程中,温度(T)控制随机性。T小,模型倾向最确定的词;T大,输出更丰富。温度采样公式如下:
菜谱步骤越多、试做次数越多,出品越稳定;温度则是“要不要大胆创新”的旋钮。推理机制决定了模型是“脱口而出”还是“深思熟虑”。
- $z_i$ 是模型对词 $x_i$ 的原始得分(logit)得分越高,模型越倾向选它。
- $T$ 是温度参数T大于1时分布更平坦,T小于1时更尖锐。
- $\exp(z_i / T)$ 将得分转为非负权重温度越高,得分差异越被抹平。
- 除以所有词的权重之和把权重归一化成概率。
强化学习
R1这身本事不是看书看来的,而是靠“顾客试吃打分”练出来的。餐厅请来一组客人,每人试吃后给出相对排名,主厨根据名次调整步骤。这就是强化学习:先做一道菜,得到反馈,再改进。
DeepSeek-R1使用了GRPO(组相对策略优化),它针对同一道题生成多个回答,计算每个回答相比同组平均水平的优劣,而不是依赖一个绝对评分员。这样既减少了奖励模型的训练负担,也让反馈信号更稳定。
在GRPO中,规则奖励(答案是否正确、格式是否规范)给出分数;策略优化用这些分数更新模型参数;反思机制让模型在训练中学会判断自己步骤的合理性。优势函数是核心计算之一:
餐厅用“相对口味”而不是“绝对评分”来培训主厨,才能避免一个客人的偏好带偏整个后厨。R1正是靠这种训练,学会了在复杂任务中反复修正思路。
- $r_i$ 是第 $i$ 个回答的奖励分数来自规则或奖励模型。
- $\bar{r}$ 是同一组 $G$ 个回答的平均分作为比较基准。
- 分母是组内分数标准差加小常数 $\epsilon$让优势值归一化,并防止除零。
- $A_i$ 是归一化后的优势值大于0表示高于平均水平,小于0表示需要调整。
蒸馏压缩
总厨不能亲自去每家餐车做菜,于是他把复杂工艺简化成几句口诀,让学徒也能做出八分味道。这个过程叫蒸馏,是把大模型的能力“凝缩”给小模型的手段。
DeepSeek-R1蒸馏版让小模型学习大模型“思考时的输出概率”,而不只是背答案。这样,1.5B的小模型也能保留不少推理能力。蒸馏之外,量化和剪枝进一步给模型“减重”,让手机端侧也能运行。
蒸馏损失通常由硬标签损失和软标签损失组成。软标签来自教师模型带温度的输出分布,带有“哪些错误答案更接近正确答案”的暗知识。公式如下:
口诀不能替代全部功夫,但足以让餐车出品稳定。蒸馏小模型虽小,却继承了推理的“骨架”,这是R1生态能落地的关键。
- $L_{CE}(y, p_S)$ 是硬标签交叉熵损失让学生输出贴近真实答案。
- $p_T$ 与 $p_S$ 是教师和学生模型带温度的输出分布$p_S$ 是学生要逼近的目标。
- $KL(p_T \| p_S)$ 是两种分布的KL散度衡量学生和老师的差异,越小越接近。
- $T^2$ 与 $\alpha$ 控制软硬目标的比例温度平方用于抵消温度缩放带来的梯度变化。
性能特征
端侧部署就像在移动餐车做菜:地方小、火小,但顾客要快。衡量一辆餐车,看四个指标:上菜时间(延迟)、同时出几份(吞吐)、备菜间大小(显存)和味道还原度(精度)。
DeepSeek-R1的蒸馏小模型在手机、PC上运行时,最大的特点是“重量决定速度”。和云端GPU不同,端侧算力有限,模型权重从内存搬到计算单元往往要花很长时间,内存带宽常成为瓶颈。
推理时,模型生成token是逐字进行的,每一步都要读取一遍全部权重,所以延迟近似等于“读完一遍权重”的时间。INT4量化能把7B模型压到约4GB,显著减少搬运量,但需要校准,否则精度会受损。核心公式是:
餐车想变快,与其升级火炉,不如精简配料。端侧优化第一原则就是“减重”。
- $M_{weights}$ 是模型权重总量量化、剪枝都可以直接减小它。
- $BW_{mem}$ 是内存带宽单位时间内能搬运的数据量。
- 延迟约等于权重总量除以带宽这是理解端侧性能的第一公式。
优化策略
好厨房会优化动线:常用的刀和调料放在手边,多张订单一起备菜,用不到的锅不拿出来。R1的部署优化也是这套思路,在有限的硬件里把效率榨出来。
云端和端侧有各自的关键手段:服务端常用KV缓存复用和连续批处理;端侧则依赖稀疏计算和算子适配。这些优化不是魔法,而是减少重复劳动、让设备只做必要计算。
KV缓存复用让多轮对话不必重算历史;连续批处理让不同请求交错执行,提高GPU利用率;MoE的稀疏性意味着同一时刻只算少数专家;在端侧,INT4量化和算子融合能明显减少访存开销。量化后的体积变化如下:
把厨房动线理顺,移动餐车也能出大菜。优化策略让R1从云端走向碎片化设备,也决定了它能跑多快、跑多久。
- $S_0$ 是原始模型体积例如FP16的7B模型约有14GB。
- $B_q$ 是量化后的位宽,$B_0$ 是原始位宽比如从16位到4位。
- $S_q$ 是量化后的模型体积比例乘上去即可估算。
生态应用
R1的菜谱不仅留在总店,还被外卖平台(API)、餐车加盟(端侧部署)和社区菜谱(开源模型)传播开。一个以推理能力为核心的小模型生态正在形成。
应用时,既可以直接调用DeepSeek-R1服务,也可以下载蒸馏版在本地跑。不同方案对应不同成本和隐私需求:云端方便但依赖网络,端侧隐私好但性能受限。工具链如Ollama、llama.cpp、ONNX Runtime大大降低了部署门槛。
常见挑战包括硬件碎片化、内存带宽瓶颈、能耗和模型更新维护。未来趋势是更小的推理模型配合专用芯片,把“米其林大厨”请进更多轻量设备。在商业评估中,调用成本是一个重要指标:
从米其林总店到路边餐车,R1的菜谱正在让“人人吃得起推理”成为现实。理解整个生态,才能把这张菜谱用在正确的地方。
- $n_{in}$ 和 $n_{out}$ 是输入与输出的token数量思维链越长,输出token越多。
- $c_{in}$ 和 $c_{out}$ 是每token单价不同模型单价不同。
- 总成本等于两者相加选用R1前,先估算调用量和上下文长度。
AI 应用场景
端侧学习机数学辅导
阶段:模型部署与推理
解决的问题:学生提问时常常没有网络,且家长担心数据上传云端。传统搜索引擎式问答无法启发思路,更无法在本地离线运行。
具体案例:某学习机搭载DeepSeek-R1蒸馏7B版本,学生拍照上传题目后,模型在本地输出思维链,先写“题干拆解”,再写“关键条件”,最后给出答案。遇到易错题,系统还用自一致性多次采样,取多数答案作为最终结果。
笔记本上的离线代码补全
阶段:模型微调与推理
解决的问题:IDE插件如果每次补全都请求云端,延迟高、还容易泄露代码。传统基于规则的补全无法理解上下文语义。
具体案例:某编程工具在用户笔记本上运行1.5B蒸馏版,用温度0.1的采样模式生成补全建议,并通过规则过滤掉危险API;代码上下文通过KV缓存复用,让连续编辑的延迟保持平稳。
企业文档逻辑质检
阶段:推理 + 规则奖励
解决的问题:合同和公告中的逻辑漏洞,纯文本规则检测不到,人工审查又太慢。通用大模型不保证严谨推理,容易“拍脑袋”给结论。
具体案例:一家法务科技公司调用DeepSeek-R1 API,让模型先输出“分步检查清单”,再输出“潜在逻辑冲突点”,并将超长思维链截断控制成本。系统持续收集badcase,用GRPO风格奖励微调一个专属蒸馏小模型,逐步降低API调用量。
Python 演示
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}")
exps = [math.exp(v / tau) for v in logits]给logits除以温度再取指数,把原始得分变成非负权重。return [v / total for v in exps]归一化得到概率分布,这就是带蒸馏温度的“软标签”。kl_divergence(p, q)计算教师分布和学生分布的信息差异,越小代表学生越像老师。soft_loss = tau * tau * kl_divergence(p_teacher, p_student)温度平方缩放KL散度,让不同温度下梯度规模稳定。hard_loss = -math.log(p_student[hard_label])学生给真实标签的概率越大,这个损失越小。loss = distillation_loss(...)把硬标签和软标签按alpha比例组合成最终蒸馏损失。
常见误区
误区R1在各排行榜上那么强,所有自然语言任务都应该用它,效果一定最好。
正解R1是“推理厨师”,擅长数学、代码、逻辑等需要步骤的“硬菜”;闲聊、文案创作等自由度高的任务,它的长思维链反而显得啰嗦且成本更高。通用模型才是更合适的选择。
为何常见:推理榜单容易让人以偏概全,误以为推理强等于全能。
误区既然宣传说小模型也能跑,那就选最小的1.5B版本,又省内存又快。
正解模型越小,知识容量越低。1.5B适合简单问答,复杂推理需要7B、14B甚至更大。选型要看任务难度和硬件预算,不能一味求小。
为何常见:端侧演示总用最小模型,容易让人忽略不同规模之间的能力差距。
误区要让模型有推理效果,用户必须在提示词里写“请逐步思考”或类似话术。
正解DeepSeek-R1已经把思维链通过强化学习内化,不需要外部提示。强行加入反而可能触发冗长的格式化输出,甚至影响结果。
为何常见:早期大模型依赖提示触发思维链,很多人沿着老习惯照搬到新模型上。
误区只要最终答案对了就奖励,中间步骤不重要,模型自然会学到推理。
正解中间步骤是模型学会推理的“脚手架”。R1训练时虽然最终答案决定奖励,但结构化的步骤输出为奖励提供了稳定信号,也让模型更容易反思哪里出错。
为何常见:从外部看,答案正确才是唯一目标,忽略了模型需要过程信号才能稳定学习。
误区把16位精度降到4位,等于扔掉四分之三的信息,模型精度一定会暴跌。
正解量化确实有精度损失,但配合校准数据和知识蒸馏,绝大多数推理任务几乎无感。真正危险的“裸量化”是直接转而不校准,才会导致明显劣化。
为何常见:从“16位变4位”的字面直觉判断,忽略了现代量化算法对分布的补偿。
面试题
Q1. DeepSeek-R1最核心的训练方法是?
- A.纯监督学习
- B.强化学习方法← 正确答案
- C.无监督预训练
- D.人工标注数据
答案:B。R1通过强化学习(尤其是GRPO)把推理能力练出来,而不是靠纯监督或人工标注。监督学习更多用于微调阶段,不是让它“学会推理”的核心。
Q2. 在端侧部署R1时,优先选择哪种版本?
- A.671B完整版
- B.70B蒸馏版
- C.1.5B蒸馏版← 正确答案
- D.MoE原版部署
答案:C。端侧设备显存和算力有限,优先选用1.5B等小尺寸蒸馏版。完整版参数太多,无法在手机、学习机等场景实时运行。
Q3. MoE架构中“专家路由”的主要作用是?
- A.增大模型体积
- B.只激活部分专家← 正确答案
- C.所有专家同时计算
- D.替代注意力机制
答案:B。专家路由像餐厅前台,根据任务叫醒少数相关专家,既保留大模型知识容量,又控制计算量。不是增大体积,也不是替代注意力。
Q4. 温度采样中T越高,生成结果会?
- A.结果更加确定
- B.结果更加随机← 正确答案
- C.输出完全不变
- D.一定产生错误
答案:B。温度T高会让softmax分布更平坦,低概率词也有机会被选中,所以输出更随机。T低则集中在高概率词,更确定。
Q5. 知识蒸馏中学生模型的训练目标是?
- A.只学习硬标签
- B.模仿教师概率分布← 正确答案
- C.纯粹记忆训练数据
- D.不断增大参数量
答案:B。蒸馏除了硬标签,还要模仿教师模型带温度的输出分布,因为软标签里藏着“哪些错项更接近正确项”的暗知识。这不是记忆数据,也不增加参数量。
Q6. GRPO中使用组内相对分数作为优势函数,主要目的是?
- A.减少奖励模型依赖← 正确答案
- B.让模型随机选择
- C.增加监督数据
- D.提高训练速度
答案:A。GRPO不需要一个绝对可靠的奖励模型,而是通过同组多个回答的相对好坏给出信号,像让一桌客人互相比较口味。它不是随机化,也不增加数据。
Q7. KV缓存的主要作用是?
- A.加快历史Token重算
- B.缓存键值避免重复计算← 正确答案
- C.直接增加上下文长度
- D.替代全部注意力机制
答案:B。KV缓存把历史token的键和值存下来,生成新token时无需重算整个历史,像把半成品放进冰箱。它不增加上下文长度,也没替代注意力。
Q8. 以下属于R1蒸馏生态中端侧优化手段的有?
- A.INT4量化← 正确答案
- B.剪枝加速← 正确答案
- C.增加参数量
- D.算子融合← 正确答案
答案:ABD。端侧优化要“减重提速”,INT4量化、剪枝、算子融合都减少存储或访存开销。增加参数量与目标相反,会拖慢速度。
Q9. 关于思维链与推理时扩展,下列说法正确的有?
- A.多次采样可提升正确率← 正确答案
- B.思维链越长一定越好
- C.自一致性采用多数投票← 正确答案
- D.温度越高推理越稳定
答案:AC。多次采样配合多数投票能提升鲁棒性,这是自一致性的核心。思维链并非越长越好,过长会消耗预算甚至引入噪音;温度高反而更随机,不稳。
Q10. 部署R1蒸馏小模型到端侧时,面临的挑战包括?
- A.硬件碎片化← 正确答案
- B.显存空间限制← 正确答案
- C.无需考虑能耗
- D.内存带宽瓶颈← 正确答案
答案:ABD。端侧设备型号多、内存小、带宽有限,都会限制大模型运行。能耗同样是真实约束,“无需考虑能耗”显然是错误选项。