本文经原作者授权转载,版权归原作者所有。原作者:向阳乔木(@vista8)。


X 上老外都特别震惊,说中国的“Doordash”用国产芯片训练了一个万亿参数的大模型,哈哈哈。

这次美团确实有点厉害,让 AI 辅助阅读解读下所有技术细节。

https://longcat.chat/blog/longcat-2.0/

35 万亿 token,大概是全球所有书籍文字总量的几十倍。

5 万片芯片同时工作,意味着你需要让几万台机器像一台机器一样协调运转。

而"全程无回滚",意味着这场马拉松从头跑到尾,没有一次因为出错而被迫退回重来。

这就是 LongCat-2.0,2026 年 6 月 30 日正式发布并开源。

Article image

先搞懂两个基础概念,后面才能读懂

在进入正题之前,有两个概念必须先建立直觉。

什么是 MoE(混合专家模型)?

普通的神经网络,每次处理一个问题,会动用全部的"神经元"。

你问它"今天天气怎么样",和问它"帮我写一段 Python 代码",用的是同一套参数,全部激活,全部计算。

MoE 的思路不一样。

它内部有很多"专家",每次来一个问题,只激活其中几个最合适的专家来处理,其余的专家保持沉默。

打个比方:一家大医院有内科、外科、神经科、皮肤科……你来看病,不是所有科室的医生都来给你会诊,而是根据你的症状,叫来最相关的两三个科室。

这样既节省了资源,又能让每个专家更专注。

LongCat-2.0 的总参数是 1.6 万亿,但每次处理一个 token(可以理解为一个词或一个字),只激活其中约 480 亿参数。

也就是说,每次只动用了约 3% 的参数。

这个"只用 3%"的特性,在后面会反复出现,它是整个模型设计的核心约束。

什么是 token?

语言模型不是一个字一个字读文字的,它把文字切成一小块一小块的"token"。

中文里大概 1 个 token 对应 1.5 到 2 个汉字,英文里大概 1 个 token 对应 0.75 个单词。

35 万亿 token,换算成中文,大概是 50 到 70 万亿个汉字。

好,基础打完了,我们开始拆解 LongCat-2.0 的每一个技术决策。

Article image

架构改进一:LSA,让模型读长文不再"喘不过气"

先理解"注意力机制"是什么

语言模型在理解一句话的时候,需要判断每个词和其他词之间的关联程度。

比如"猫追老鼠,它跑得很快",模型需要判断"它"指的是"猫"还是"老鼠"。

这个判断过程叫"注意力机制",模型在处理每个词的时候,会"注意"到其他所有词,计算它们之间的相关性。

问题来了:如果文章很长,比如有 100 万个 token,那每个 token 都要和其他 99 万 9999 个 token 计算一次相关性。

计算量是 token 数量的平方级增长。

文章长度翻倍,计算量变成原来的 4 倍。

这就是为什么普通模型处理长文本会非常慢,甚至根本处理不了。

稀疏注意力:不是每个词都需要关注所有词

解决思路是"稀疏注意力":不需要每个词都关注所有词,只关注真正重要的那些。

还是那个比喻:你在读一本 500 页的小说,理解某一段情节,不需要把前面 499 页全部重新过一遍,只需要回忆几个关键情节点就够了。

LongCat-2.0 之前用的是 DeepSeek 稀疏注意力(DSA),它已经做到了这一点。

但团队发现,DSA 里有一个"索引器"(可以理解为"负责决定哪些词值得关注"的小模块),成了整个系统的速度瓶颈。

原因有两个:

第一,它选出来的"重要词"在内存里的位置是散的,读取时需要到处跳,效率低;

第二,它的评分计算本身就很贵,是二次方级别的开销。

LongCat 稀疏注意力(LSA)就是专门来解决这个索引器瓶颈的。

LSA 的三个优化,逐个拆解

第一个:流感知索引(SI)

问题的根源是内存访问碎片化。

想象你去图书馆找书,如果要找的书分散在各个书架的随机位置,你就得满图书馆跑。

但如果这些书都集中在同一排书架上,你一趟就能全拿完。

SI 做的事情就是:把一部分原本散乱的内存访问,重新组织成连续的顺序读取。

硬件在做顺序读取时效率远高于随机跳跃,这叫"合并的 HBM 访问"(HBM 是显卡里的高速内存)。

第二个:跨层索引(CLI)

这个优化基于一个观察:在神经网络的相邻两层里,"重要的 token"的分布高度相似。

打个比方:你在第 10 层楼看到某个人很重要,到第 11 层楼,这个人大概率还是重要的。

既然如此,第 11 层就不需要重新做一次"谁重要"的判断,直接复用第 10 层的结果就行。

CLI 让单次索引计算可以被多个连续的注意力层复用,相当于把这笔开销"摊薄"了。

为了让模型在训练时就学会"相邻层的重要 token 分布是一致的",团队在训练阶段引入了"跨层蒸馏"。

让相邻层互相学习,保证这个特性在推理时真实成立。

第三个:层级化索引(HI)

这是一个"先粗筛再精选"的两阶段策略。

还是图书馆的比方:你要找关于"量子计算"的书,不会一本一本翻遍所有书,而是先找到"计算机科学"这个大区域(粗筛),再在这个区域里找具体的书(精选)。

HI 先用"block 级近似打分"做粗召回,缩小候选范围,再在候选里做精细的 token 级选择。

这样每次检索需要处理的候选空间大幅缩小。

HI 是可插拔的,只在超长上下文任务上按需启用,不影响普通任务。

这三个优化设计上互不干扰,可以独立开关,也可以组合使用。

投机解码:一个额外的加速技巧

文章里还提到 LSA 被扩展到了"投机解码"(Speculative Decoding)。

这个概念值得解释一下。

语言模型生成文字是一个字一个字输出的,每次输出都要等上一次完成。

投机解码的思路是:用一个小模型(Draft 模型)先快速猜测接下来几个词,再用大模型(Target 模型)一次性验证。如果猜对了,就省下了大模型多次生成的时间。

LongCat-2.0 用的是 3-step MTP,即小模型一次猜 3 步。

CLI 在这里的应用更激进:3 个 Draft 步骤共用一次索引结果,Step 2 和 Step 3 完全复用 Step 1 的索引,进一步压缩开销。

架构改进二:N-gram Embedding,用更聪明的方式扩大参数

先理解"Embedding"是什么

模型在处理文字之前,需要把每个 token 转换成一串数字(向量),这个转换过程叫 Embedding。

你可以把它理解为"把词语翻译成模型能理解的坐标"。

"猫"和"狗"的坐标很近,"猫"和"飞机"的坐标很远。

模型通过这些坐标来理解词语之间的关系。

N-gram 的思路:不只看单个词,看词的组合

N-gram 的意思是"N 个连续 token 的组合"。

LongCat-2.0 用的是 5-gram,即每次看 5 个连续 token 的组合。

Article image

为什么要这样做?因为很多语义是由词的组合决定的,而不是单个词。

"人工"和"智能"单独看都是普通词,但"人工智能"作为一个组合,有完全不同的含义。

如果模型只看单个词,就需要通过多层计算才能"悟"出这个组合的含义。

N-gram Embedding 直接把常见组合的含义编码进去,相当于给模型提前建好了"词组词典"。

这样做的效果是:embedding 空间扩展超过 100 倍,模型对局部上下文的理解能力显著增强。

为什么要加 135B 参数的 N-gram Embedding,而不是直接加更多专家?

这是整个设计里最有意思的一个决策,值得细说。

LongCat-2.0 的 MoE 稀疏度接近 97%,意思是每次只用 3% 的参数。

在这个稀疏度下,如果再加更多专家(比如再加 135B 的专家参数),收益会很小。

为什么?因为专家越多,每个专家被调用的频率越低,训练时每个专家获得的"练习机会"越少,学得越不充分。

这就像一家有 1000 个医生的医院,每个医生每天只看一两个病人,技术很难精进。

但 N-gram Embedding 不一样。它在 MoE 的"稀疏维度"之外,开辟了一个新的维度来扩展参数。

这 135B 参数不参与 MoE 的路由竞争,而是直接作用于 token 的表示层,每次处理都会用到。

团队同时发现,N-gram Embedding 的占比有一个甜点区间:占总参数的 10% 以内效果最好,超过 50% 优势就消失了。LongCat-2.0 把这个比例控制在 10% 以内。

还有一个推理阶段的额外好处:把参数从专家转移到 N-gram Embedding,可以降低大 batch 解码时的显存 I/O 压力,加速解码。

原因是 N-gram Embedding 的访问模式更规律,对显存带宽更友好。

国产算力上跑通万亿参数训练,工程上有多难

这一部分是整篇发布文章里信息密度最高的,也是最容易被忽视的。

显存不够,怎么办

国产芯片的单卡显存显著小于 H800 的 80GB。

训练 1.6 万亿参数的模型,显存是第一道墙。

团队的解法是 6D 并行。"并行"的意思是把模型和数据切开,分散到多张卡上同时计算。

常规的并行方式有 5 个维度:

  • TP(张量并行):把单个矩阵运算切开,分到多张卡上算
  • CP(上下文并行):把长序列切开,分到多张卡上处理
  • EP(专家并行):把不同的专家放在不同的卡上
  • DP(数据并行):多张卡同时处理不同的数据
  • PP(流水线并行):把模型的不同层放在不同的卡上,像流水线一样运转

LongCat-2.0 在这 5 个维度之外,额外加了第 6 个:EMBP(Embedding 并行),专门处理 135B N-gram Embedding 参数的并行加速。

除了并行,还有几个显存优化手段:

ZeRO-1:优化器(负责更新参数的模块)的状态数据,往往比模型本身还大。ZeRO-1 把这些状态数据切分到多张卡上,每张卡只存一部分。

选择性重计算:正向计算时,有些中间结果可以不存下来,反向传播时重新算一遍。这样牺牲一点计算时间,换来大量显存节省。

OOM 自动卸载:当显存快满了(Out of Memory),自动把部分数据卸载到内存或硬盘,用时再取回来。

零计算专家:填充 token(用来凑齐序列长度的无意义 token)被路由到一个"零计算专家",不做任何实际计算,节省算力。

超节点:把几百张卡变成一个高速通信域

训练大模型时,卡和卡之间需要频繁通信(传递梯度、同步参数)。

通信速度往往是训练速度的瓶颈。

LongCat-2.0 的解法是"超节点":把最多 48 台机器组成一个超节点,节点内部用高带宽全互联,节点之间走 RoCE 网络(一种高性能网络协议)。

这样做的效果是:高带宽通信域从单台机器(通常 8 张卡)扩展到数百张卡。

带宽敏感的并行策略(TP/CP/EP)可以在这个大域内运行,不再受限于单机带宽。

相比同规模的普通配置,超节点额外带来约 30% 的预训练吞吐提升。

超节点同时是"亲和调度"的基本单元。

调度时优先把通信密集的任务分配在同一个超节点内,减少跨节点通信,在通信局部性和可调度性之间取得平衡。

Muon 优化器:一个来自学术界的新选择

优化器是训练时负责"根据错误信号更新参数"的模块。

最常用的是 Adam 系列优化器。

Muon 是一个相对较新的优化器,在某些场景下比 Adam 收敛更快、效果更好。

LongCat-2.0 在国产算力芯片上大规模部署了 Muon,并针对 TP 并行、DP 状态去冗余和高效矩阵乘核函数做了专项优化。

这是一个值得关注的信号:Muon 优化器正在从学术实验走向大规模生产部署。

确定性:让训练结果可复现

这个细节很少被提到,但在工程上极其重要。

"确定性"的意思是:给定相同的输入,每次计算的结果完全一致,不会因为浮点运算的舍入误差或并行计算的顺序差异而产生微小偏差。

为什么重要?因为在大规模训练中,微小的数值偏差会随着层数和步数累积,最终导致训练结果不可复现,甚至出现 loss 突刺(损失函数突然异常升高)。

团队自研了覆盖 Embedding、FA(Flash Attention)、LSA、MoE 等多个模块的确定性算子。

所有规约类算子(比如求和、求均值)都采用二叉树分段累加,减少浮点误差累积。

还有一个细节:在部分计算密集型算子上加入了"比特翻转检测"。

硬件偶尔会出现单个比特从 0 变成 1 或从 1 变成 0 的错误(宇宙射线、电磁干扰等都可能导致),这种错误会造成数值异常。

加入检测后,可以及时发现并处理,不让它悄悄污染训练结果。

故障恢复:5 万张卡,总有卡会出问题

5 万张卡同时运行,每天都会有硬件故障。

如果每次故障都需要人工介入,训练根本无法持续。

团队的解法是端到端监控驱动的自动故障恢复:监控系统持续检测链路状态,发现故障后自动识别、切流、恢复,全程无需人工介入。

故障链路的隔离对训练没有可感知的影响。

修复后的链路还需通过压测才能重新上线,防止带病工作的硬件再次引发问题。

这套机制是"全程无回滚"这个结果的工程保障。

百万上下文推理:在受限硬件上的极限工程

训练完成后,还需要把模型部署起来,让用户能实际使用。

在显存、带宽都受限的国产芯片上,跑百万上下文的推理是另一道难题。

Prefill 和 Decode:推理的两个阶段

理解后面的优化,需要先知道推理分两个阶段:

Prefill(预填充):模型读取你的输入(比如一篇 10 万字的文档),一次性处理所有输入 token,生成初始的 KV-cache(可以理解为"模型对输入的理解摘要")。这个阶段计算量大,但可以并行处理。

Decode(解码):模型一个 token 一个字地生成输出,每次生成都要读取之前的 KV-cache。这个阶段是串行的,受限于显存带宽。

LongCat-2.0 采用 Prefill-Decode 分离部署:两个阶段用不同的硬件节点处理,各自针对自己的瓶颈做优化。

KV-cache:长上下文的显存杀手

KV-cache 是长上下文推理的核心挑战。

每处理一个 token,模型都需要存储一个 KV(Key-Value)对,供后续 token 参考。

100 万个 token 的上下文,就需要存储 100 万个 KV 对。这个数据量非常大,很容易撑爆显存。

LongCat-2.0 的解法是 KVP(KV-cache 并行):把 KV-cache 切分到多张卡上,每张卡只存一部分,降低单卡显存压力。

Prefill 节点的优化

Prefill 节点的主要瓶颈是节点间通信带宽。

MoE 模型在处理 token 时,需要把 token 发送给对应的专家(dispatch),再把专家的计算结果收回来(combine)。

当专家分布在很多节点上时,这个通信开销很大。

解法是 Chunked Pipeline Parallel(CPP):把长序列切成小块,用流水线方式处理,缩小每次通信涉及的专家并行域(EP 域),减少跨节点通信量。

在每个流水线阶段内,再用 Attention Sequence Parallelism(SP) 把长序列的注意力计算分散到多张卡上,进一步分担计算压力。

Decode 节点的优化

Decode 节点的主要瓶颈是显存和 KV-cache 的 I/O 带宽。

除了 KVP 切分 KV-cache,还用了较大的专家并行度(EP128,即 128 张卡分担专家),压低每张卡上的权重显存和专家 I/O 压力。

大 EP 并行度带来一个新问题:专家负载不均。

如果某些专家特别受欢迎,对应的卡就会成为瓶颈,其他卡在等待。

EPLB(Expert-Parallel Load Balancing) 负责动态均衡专家负载,统计采集和分布计算全部异步化,不阻塞主计算流程。

面向国产芯片的两个底层优化

Super Kernel:GPU 上的每个算子(计算操作)在启动时都有固定的开销,就像每次开车都要先发动引擎。

如果算子数量很多,启动开销累积起来很可观。

Super Kernel 把多个算子合并成一个大算子,减少总启动次数,降低累积开销。

Weight Prefetch(权重预取):国产芯片的显存带宽有限,但 L2 缓存(比显存快得多的片上存储)相对较大。

Weight Prefetch 利用这块大 L2 缓存,在前一个算子还在计算时,提前把下一个算子需要的权重数据加载进来。

等前一个算子算完,权重已经在缓存里了,不需要再等显存读取。

这叫"把 I/O 延迟隐藏在计算之中"。

后训练:三组专家,一套融合架构

Article image

模型训练完成后,还需要"后训练"来让它真正好用。

LongCat-2.0 的后训练引入了三大专家组,分工明确。

Agent 能力专家组

这组专家负责让模型能在真实场景中自主完成任务。

重点不只是"能完成任务",而是优化几个关键的"原子能力":复杂工具调用的精准度(调用 API 时参数不出错)、多轮交互中的参数解析能力(记住上下文,不重复问同样的问题),以及自我纠错机制(发现自己陷入死循环时能主动跳出来)。

这些"原子能力"决定了 Agent 系统的鲁棒性。

一个 Agent 能完成 90% 的任务,但剩下 10% 会卡死或出错,在生产环境里是不可接受的。

推理能力专家组

这组专家负责数学、STEM 复杂问题求解和多跳知识推理。

"多跳知识推理"是指需要串联多个知识点才能得出答案的问题。

比如"爱因斯坦出生那年,美国总统是谁?"需要先知道爱因斯坦的出生年份,再查那一年的美国总统,这就是两跳推理。

这组专家还实现了"基于问题难度的自适应推理计算",简单问题快速回答,复杂问题深度思考,不浪费计算资源。

交互体验专家组

这组专家负责让模型更"好用":细粒度指令遵循(你说"用列表格式回答",它就真的用列表)、抑制幻觉(减少一本正经地编造事实)、以及在不牺牲有用性的前提下建立安全边界。

最后,用 MOPD 架构在数万卡的国产算力集群上,把三组专家的能力融合进一个模型。

这是整个后训练流程的核心工程挑战:怎么让一个模型同时具备 Agent 执行力、深度推理能力和良好的交互体验,而不是顾此失彼。

评测数据怎么看

评测数据里有几个基准值得解释一下,不然很难判断数字的含义。

Terminal-Bench 2.1:测试模型在终端环境里完成真实任务的能力,比如写脚本、调试程序、管理文件。

这是最接近"程序员日常工作"的评测之一。

LongCat-2.0 得 70.8 分,与 Gemini 3.1 Pro(70.7)基本持平,低于 Claude Opus 4.8(78.9)。

SWE-bench Pro:给模型一个真实的 GitHub 代码仓库和一个 bug 报告,让它自己找到问题并修复。

这是目前最接近"真实软件工程"的评测。

LongCat-2.0 得 59.5 分,超过 Gemini 3.1 Pro(54.2)和 GPT-5.5(58.6)。

SWE-bench Multilingual:同上,但涉及多种编程语言。

LongCat-2.0 得 77.3 分,与 Gemini 3.1 Pro(76.9)接近。

FORTE:面向 15 类企业职业的办公 Agent 评测,模拟真实的职场任务,比如整理数据、撰写报告、处理邮件。LongCat-2.0 得 73.2 分,低于 GPT-5.5(77.8)和 Claude Opus 4.7(77.6)。

GPQA-diamond:由博士级专家设计的科学问题,涵盖物理、化学、生物等领域,专门测试模型的深度知识理解能力。

LongCat-2.0 得 88.9 分,低于 Gemini 3.1 Pro(94.3)和 GPT-5.5(93.6)。

Article image

怎么理解这张表?

LongCat-2.0 的优势集中在代码和搜索:SWE-bench Pro 超过了 Gemini 3.1 Pro 和 GPT-5.5,RWSearch 超过了所有对比模型。

这和它在长上下文处理和 Agent 能力上的投入是一致的。

在基础科学推理(GPQA-diamond)和指令遵循(IFEval)上,与 Gemini 3.1 Pro 和 GPT-5.5 还有差距。

这不是意外,而是取舍的结果:资源有限,优先把长上下文和 Agent 能力做到最好。

还需要注意的是,标注 * 的数字来自各家公司自己的公开报告,评测条件未必完全一致,比较时需要保留一定的判断余地。

这件事真正重要的地方

读完所有技术细节,有一件事值得单独说清楚。

LongCat-2.0 在技术上的每一个选择,都是在国产芯片的硬件约束下做出的。

显存小,所以要做更精细的并行和显存优化。

软件生态不成熟,所以要自研大量算子和工具。

带宽受限,所以要把计算和通信的重叠做到极致。

这不是在已有成熟方案上做微调,而是在一个约束更多的环境里,重新设计了整套训练和推理的工程体系。

5 万片国产芯片、35 万亿 token、全程无回滚,这组数字的含义不只是"模型训练成功了",而是"这套工程体系在生产环境里被验证可行了"。

对于关注国产算力生态的从业者来说,这是一个值得认真对待的数据点。

模型已开源,API 接入和在线体验均已开放,有条件的话直接上手测试,比看评测数字更直接。