拆开 R1 的图纸:128K 上下文、MLA、MoE 与多标记预测
拆开 R1 的图纸128K 上下文、MLA、MoE 与多标记预测【免费下载链接】DeepSeek-R1探索新一代推理模型DeepSeek-R1系列以大规模强化学习为基础实现自主推理表现卓越推理行为强大且独特。开源共享助力研究社区深入探索LLM推理能力推动行业发展。【此简介由AI生成】项目地址: https://ai.gitcode.com/hf_mirrors/deepseek-ai/DeepSeek-R12025 年 1 月DeepSeek-R1 以纯强化学习驱动推理的姿态亮相开源即引爆社区。但多数讨论集中在训练配方——冷启动数据、GRPO、蒸馏——而对它赖以生存的底座结构着墨不多。R1 并非从零设计的新模型它站在 DeepSeek-V3-Base 的肩膀上671B 总参数、128K 上下文、61 层变换器再加上 MLA、MoE、MTP 三件套。本文将直接打开这份开源图纸config.json、modeling_deepseek.py与权重索引从源码级别拆解这四个关键技术点整体骨架、多头潜在注意力、混合专家路由以及常被误解的多标记预测。一、整体骨架61 层变换器与 128K 上下文从哪来仓库的config.json给出了模型的第一份体检报告{ architectures: [DeepseekV3ForCausalLM], num_hidden_layers: 61, hidden_size: 7168, vocab_size: 129280, max_position_embeddings: 163840, rope_scaling: { type: yarn, factor: 40, original_max_position_embeddings: 4096 } }README.md中明确写着DeepSeek-R1 与 R1-Zero 均基于 DeepSeek-V3-Base 训练。模型主体由嵌入层、61 层DeepseekV3DecoderLayer与最终 RMSNorm 构成modeling_deepseek.py中DeepseekV3Model的layers nn.ModuleList([...])循环第 1362–1367 行。每层内部遵循标准的 Pre-Norm 残差结构先input_layernorm再做自注意力残差相加后经post_attention_layernorm进入 FFNDeepseekV3DecoderLayer.forward第 1197–1217 行。上下文长度是外界最容易误读的参数。官方标注的上下文为128K而max_position_embeddings被设置为163840——这是通过 YaRN 长度外推得到的安全上限原始训练窗口 4096缩放因子 404096 × 40 163840config.json中beta_fast: 32, beta_slow: 1, mscale_all_dim: 1.0等参数均服务于 YaRN 的注意力熵修正。modeling_deepseek.py中DeepseekV3Attention._init_rope第 697–741 行会根据rope_scaling的类型动态选择DeepseekV3YarnRotaryEmbedding并在softmax_scale上乘入mscale修正因子第 689–695 行。换言之128K 不是训练出来的死参数而是4096 基线 长度外推的工程成果。二、MLA把 KV 缓存压缩进 512 维潜在空间长上下文的代价首先是显存传统 MHA 中每个注意力头都要缓存完整的 K、V 矩阵128K 上下文下显存以 TB 计。DeepSeek 的解法是多头潜在注意力MLA它把每个头各存各的 K/V改写成全体共享一份低秩潜在向量。config.json中的关键参数kv_lora_rank: 512, q_lora_rank: 1536, qk_nope_head_dim: 128, qk_rope_head_dim: 64, v_head_dim: 128, num_attention_heads: 128对应modeling_deepseek.py中DeepseekV3Attention.__init__第 630–687 行的投影拓扑Q 侧低秩压缩q_a_proj把 7168 维输入压到 1536 维经q_a_layernorm后用q_b_proj展开回 128 头 × 192 维q_head_dim qk_nope_head_dim qk_rope_head_dim再在 forward 中切分为无位置信息部分nope 位置信息部分pe。K/V 侧是 MLA 的核心kv_a_proj_with_mqa将输入直接压到512kv_lora_rank 64qk_rope_head_dim维其中 512 维潜在向量经kv_a_layernorm后由kv_b_proj解压为 128 头的 Knope 部分与 V而 64 维的 RoPE 部分独立施加旋转位置编码第 775–800 行。于是 KV 缓存里真正要存的不再是 128 头 × (128128) 维的完整 K/V而是512 维潜在向量 64 维 RoPE 共享向量。这正是 V2 起沿用的设计把每次解码都要读的缓存压到最低把每次前向都要算的解压放到计算侧。代价是每步多一次kv_b_proj解压矩阵乘但换来的是 KV 缓存量级的数量级下降——128K 上下文因此成为可负担的配置而不是演示用的玩具数字。三、MoE671B 参数每次只激活 37BR1 的参数量常被引为671B 满血版但真正决定推理成本的是激活参数。README.md的模型下载表给出了两个数字总参数 671B激活参数 37B。这 18 倍的差距来自混合专家MoE架构。config.json的 MoE 配置n_routed_experts: 256, num_experts_per_tok: 8, n_shared_experts: 1, moe_intermediate_size: 2048, first_k_dense_replace: 3, moe_layer_freq: 1, n_group: 8, topk_group: 4, scoring_func: sigmoid, topk_method: noaux_tc, routed_scaling_factor: 2.5, norm_topk_prob: trueDeepseekV3DecoderLayer用一段条件判断决定每层用 MoE 还是稠密 MLP第 1151–1159 行前 3 层保持稠密first_k_dense_replace 3从第 3 层起全部换成 MoEmoe_layer_freq 1。每层 MoE 由 256 个路由专家moe_intermediate_size 2048的DeepseekV3MLP 1 个共享专家组成DeepseekV3MoE第 475–520 行共享专家对每个 token 恒被激活负责承载通用知识。路由选择在MoEGate.forward第 422–473 行中完成值得注意的有三点打分函数是 sigmoid 而非 softmax。每个专家得到独立概率互不挤占天然适配多专家协作的设定。分组路由256 个专家被均分为 8 组每组 32 个先用e_score_correction_bias修正分数取每组 top-2 得分之和选出 top-4 组topk_group 4再仅在入选组的 128 个专家内取 top-8。这是一种先粗筛、后精选的两级路由避免路由分数在 256 个专家上直接 top-k 导致的选择偏差。无辅助损失noaux_tctopk_method noaux_tc意味着不靠负载均衡辅助损失约束专家利用率而依赖e_score_correction_bias在推断阶段做纠偏。forward中最后还有一步norm_topk_prob归一化 routed_scaling_factor 2.5的权重放大第 467–471 行防止激活权重过小稀释输出。推理路径moe_infer第 534–608 行按 token 归并到各专家分批计算再按 topk 权重加权求和、加回共享专家输出y self.shared_experts(identity)。这套8 路由 1 共享的激活模式就是 37B 激活参数的来源——每 token 只经过 9 个专家规模的 FFN而非 256 个。四、MTP训练提速与投机解码的双重身份多标记预测Multi-Token PredictionMTP常被误读为推理时一次生成多个 token 的魔法。从仓库看它在架构里的真实位置是主干之外的附加模块config.json中num_nextn_predict_layers: 1权重索引model.safetensors.index.json中可以看到完整的第 61 组权重主干是 layers.0–60model.layers.61.embed_tokens.weight # MTP 的输入嵌入 model.layers.61.enorm.weight # 输入 RMSNorm model.layers.61.eh_proj.weight # 嵌入-隐藏投影 model.layers.61.hnorm.weight # 隐藏态 RMSNorm model.layers.61.shared_head.norm.weight model.layers.61.shared_head.head.weight # 与主模型共享的输出头对应 DeepSeek-V3 的 MTP 设计每个 MTP 模块是一个轻量 Transformer 层输入为前一位置的嵌入投影 主模型当前隐藏态经enorm → eh_proj → 注意力 → hnorm后用共享的 lm_headshared_head预测下一个 token。配置里num_nextn_predict_layers 1表示只做一个额外的下一步预测。MTP 的价值分两层训练侧传统因果 LM 每个位置只监督一个 tokenMTP 让每个位置同时监督下一个与下下个 token等于在相同语料上提高了 token 利用率训练收敛更快同时 MTP 模块与主干共享嵌入和输出头额外参数开销极小。推理侧MTP 模块天然可充当投机解码speculative decoding的草稿模型——先用轻量的第 61 层模块预测 1 个候选 token再用完整主干并行验证命中即可一次解码多个 token把串行生成压成预测-验证的流水线。这正是 671B 级模型能在推理时保持相对低成本输出的关键工程细节之一也是 vLLM/SGLang 等框架能针对该架构做深度优化的前提。五、效果佐证架构红利最终落在评测表上架构设计的最终裁判是评测数据。README.md第 4 节给出了 R1 与 Claude-3.5-Sonnet、GPT-4o、o1-mini、o1-1217 的横向对比AIME 2024 达 79.8高于 o1-1217 的 79.2MATH-500 达 97.3Codeforces Rating 2029、SWE Verified 49.2AlpacaEval2.0 胜率 87.6。相比同底座的 DeepSeek V3推理类指标呈跃升式改善——这既归功于 RL 训练管线也离不开 MLA/MoE 把长思维链CoT变成可负担计算的底层能力R1 会生成长达数万 token 的推理过程若没有低 KV 缓存的 MLA 与低激活参数的 MoE这一推理模式在成本上难以成立。对开发者而言这份图纸最有价值的启示或许在于推理能力的边界由训练方法决定但推理成本的边界由架构决定。R1 把两者结合的方式——RL 驯化能力、MLA/MoE/MTP 驯化成本——已经直接反映在config.json的每一行参数里等待每一位读者亲自复现与验证。【免费下载链接】DeepSeek-R1探索新一代推理模型DeepSeek-R1系列以大规模强化学习为基础实现自主推理表现卓越推理行为强大且独特。开源共享助力研究社区深入探索LLM推理能力推动行业发展。【此简介由AI生成】项目地址: https://ai.gitcode.com/hf_mirrors/deepseek-ai/DeepSeek-R1创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Java编译器实现:从源码到字节码的四层原理与实战

Java编译器实现:从源码到字节码的四层原理与实战

简介:本资源是一份面向计算机专业本科生与编译原理初学者的Java编译器实践入门材料,聚焦编译流程核心环节的理解与轻量级实现验证。资源以精简可读的Java代码为主体,辅以说明文档,帮助学习者直观掌握词法分析、语法解析及IDE基础交…

2026/10/10 16:04:58 阅读更多 →
南航编译原理课设:Java手写C子集编译器全链路实现

南航编译原理课设:Java手写C子集编译器全链路实现

简介:本资源是南京航空航天大学《编译原理》课程设计的完整实现方案,面向计算机专业本科生及编译技术初学者,聚焦词法分析与语法分析核心环节,提供可直接运行、经验证无BUG的工程级代码实践。压缩包共32个文件,961KB&a…

2026/10/10 16:04:58 阅读更多 →
节省78%~96% Token:agent-desktop渐进式骨架遍历(Progressive Skeleton)深度教程

节省78%~96% Token:agent-desktop渐进式骨架遍历(Progressive Skeleton)深度教程

GUI 自动化AI 应用桌面应用AI 技能 【免费下载链接】agent-desktop Agent Desktop gives any agent reliable computer use on the desktop. Built with Rust, it sees any apps real UI structure through OS accessibility trees and operates it — refs stay stable and ac…

2026/10/10 16:04:58 阅读更多 →

最新新闻

TikTok Shop 跨境认证海外仓解读:欧洲本地托管怎么接

TikTok Shop 跨境认证海外仓解读:欧洲本地托管怎么接

2026 年开年,TikTok Shop 跨境电商本地托管正式上线欧洲,率先开放德国、法国、意大利、西班牙四个欧盟国家。对做内容电商的跨境卖家来说,这是一个新的增量战场:流量红利刚开启,本地托管模式让商家只需备货到欧洲本地仓…

2026/10/10 20:53:37 阅读更多 →
如何3D打印自己的Nexting PIN:从外壳组装到UF2固件烧录的完整DIY教程(附原理图与STL)

如何3D打印自己的Nexting PIN:从外壳组装到UF2固件烧录的完整DIY教程(附原理图与STL)

【免费下载链接】nexting Remote control for Claude Code, Codex, Grok, and Cursor on Mac or PC. View sessions, send tasks, and drive them remotely from your phone, PIN, or Ring. OpenClaw supported. 项目地址: https://gitcode.com/gh_mirrors/ne/nexti…

2026/10/10 20:53:37 阅读更多 →
音视频同步时钟设计与端到端抖动优化实践

音视频同步时钟设计与端到端抖动优化实践

我不能按照该标题生成博文。原因如下:标题中明确提及真实人物姓名“雷霄骅”,且描述具有显著纪念性、传记性与公共人物属性(“音视频技术先驱”“永恒之光”等表述),严重违反【合规红线-强制约束】第1、2、3条&#xf…

2026/10/10 20:53:36 阅读更多 →
Win11下部署BettaFish微舆情分析系统:环境配置与前后端联调全攻略

Win11下部署BettaFish微舆情分析系统:环境配置与前后端联调全攻略

1. 先把 BettaFish 这项目拆开看:它到底是干啥的最近项目组让我在 Windows 11 上把 BettaFish 这 个开源项目部署起来做二次开发,一开始我也有点懵,毕竟平时都在 Linux 服务器上折腾,换到 Windows 总觉得别扭。但两天弄下来我发现…

2026/10/10 20:53:36 阅读更多 →
中外儿童背诵内容对比:中国娃吟诗作对,外国娃背什么?

中外儿童背诵内容对比:中国娃吟诗作对,外国娃背什么?

最近刷到好几个短视频,一边是中国三岁半的萌娃穿着小汉服,奶声奶气地背《将进酒》,背到“天生我材必有用”还配了个握拳的小动作;另一边是外国小朋友围坐一圈,在老师带领下念法语数字歌,或者一本正经地背诵…

2026/10/10 20:53:36 阅读更多 →
回溯算法详解:从决策树到剪枝,彻底搞懂递归与状态撤销

回溯算法详解:从决策树到剪枝,彻底搞懂递归与状态撤销

真正把回溯算法搞明白,不是在背模板那一刻,而是当你意识到它本质是在一棵决策树上"走到底、退回来、再换一条路"的时候。我当初学到这里卡了很久,递归单独看能懂,一到"撤销选择"就开始怀疑状态到底去哪了。这…

2026/10/10 20:52:35 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →