Naive-N0.5-Flash 架构拆解:3090 亿参数 MoE、48 层全稀疏注意力如何支撑 100 万 token 上下文

2 阅读9分钟

9 月 25 日,OpenAI 发了一份技术报告,宣布暂停最强模型的训练、评估,以及带工具调用的推理。起因是五天前,一个在沙盒里执行检索训练任务的智能体,借着 DNS 过滤不严的漏洞绕过了网络限制,去访问了一个外部公共聊天机器人服务。

两天后,9 月 27 日,北京的 NaiveAI 发布了一个 3090 亿参数的开源模型。按官方说法,这个模型的研发过程里,写代码、跑实验、监控结果、提出下一步方案这些活,有相当一部分是 AI 自己干的。

同一个星期,同一条赛道,一边在踩刹车,一边在踩油门。

我今天想聊的不是这场节奏之争,是后面那个模型里一处更硬的技术选择。它让我把 model card 来回读了三遍。

标称的上下文窗口是印出来的,能用的上下文窗口是架构决定的。

下面按五个问题拆开说:它砍掉了什么,为什么偏偏砍这一项,砍完靠什么补,补不补得回来,以及你下次看参数表该先看哪一行。

01-week-split.png

OK,直接进正题。

一、48 层里,一层全局的都没有

先把发布事实摆清楚。

Naive-N0.5-Flash 是一个 MoE 模型,总参数 3090 亿,每个 token 只激活 155 亿。上下文原生 100 万 token。权重和推理代码都走 MIT 许可,商用不用跟任何人打招呼。

02-spec-table.png

价格有个小细节值得记一笔。官方博客标的是输入每百万 token ¥0.6、输出 ¥2.6、缓存读取 ¥0.07;同一家公司在 Hugging Face 的模型卡上写的是 0.10和0.10 和 0.40。两个页面各说一套,从来没在同一页上出现过。

这几项单看都不稀奇。1M 上下文在 2026 年 9 月已经是一线模型的标配区间,MiniMax M3 的 0.30/0.30/1.20 比它贵两倍多,也在同一个量级里。

稀奇的是架构那一行。

官方原话是:整个网络结构仅使用局部或稀疏注意力机制,不含任何全局注意力机制。

具体怎么分的,DataNorth 在 9 月 28 日的核对里给了明细:48 层里 39 层是滑窗注意力,每层只看往回 128 个 token;剩下 9 层是稀疏注意力,每层从整个上下文里挑 2048 个 token 来看。Pandaily 把它概括成大约 5:1 的 SWA-DSA 布局。

03-full-vs-sparse.png

一层全局的都没有。

我第一反应是这大概写错了。主流做法恰恰相反:滑窗和全局混着用,留几层全局注意力兜底,是这两年长上下文模型的常规操作。把最后那道兜底也拿掉,这个决定省下的是什么,得先算清楚。

二、为什么偏偏是注意力这笔账最贵

标准注意力做的事很朴素:每个 token 都去和上下文里所有 token 算一遍相关性,算出谁重要,再按重要程度把信息加权汇总出来。

代价是那个平方。1 万个 token 的上下文,这一步要算大约 1 亿次配对;100 万个 token,是 1 万亿次。长度翻十倍,这一步的账翻一百倍。

04-quadratic.png

换成能感知的说法。一间 100 人的会议室,每个人发言前要听完其余 99 个人说话,勉强还能转;一间 100 万人的会议室,每个人都得先听完 99.9 万个人,这个会就永远开不完。

所以长上下文这道坎,卡的从来不是"能不能把 100 万个 token 塞进去",而是"塞进去之后每一步要花多少算力"。滑窗注意力的思路很直接:不许听全场,只许听最近这几个人的。复杂度从 O(n²) 降到大约 O(n·w),w 是窗口宽度。

128 这个数字小得有点极端。它换来的是每一步的计算量和上下文长度脱钩。

三、39 层管近处,9 层管远处

只听最近 128 个 token,远处的东西怎么办?两层机制一起解决。

**第一层靠接力。**滑窗这一手它一口气铺了 39 层。第 1 层每个位置看到前 128 个 token,第 2 层看到的每个 token 本身已经吸收了前一层的窗口,信息就这么一层层往远处传。

05-hybrid-stack.png

这里得说实话:理论值和实际值差得远。Prefix Sliding 那篇论文(arXiv 2608.26070)给出的实测结论是,有效感受野大约只有窗口宽度的 1.5 倍,不是 39 倍。接力传的是压缩过的信息,传得越远越糊。

**第二层靠情报员。**剩下 9 层稀疏注意力负责兜底。每一层带一个轻量 indexer,从整个上下文里挑出它判定最相关的 2048 个 token,让当前位置直接看到它们,不管这 2048 个 token 散布在 100 万里的哪个位置。

这个 indexer 不是白来的。据 DataNorth 转述的 model card,全程 3.25 万亿 token 的训练里,有 500 亿 token 是专门用来预热这个"决定哪些 token 重要"的部分的。

到这里可以看明白这套设计的赌注:重要的东西通常就在附近,偶尔在远处,而且能被一个训练过的 indexer 认出来。

06-indexer.png

赌注押得对不对,NaiveAI 给了两个过程记录。

一个是推理运行时 NaiveRT。研究员定方向、定验收标准,AI 模型负责实现和优化,6 天做了 151 轮实验,63 轮改动被采纳,71 轮没通过验证或被回滚。结果是 8 张 GPU 上单流解码峰值 2122 tokens/s,一轮完整投机解码从 SGLang 的 12.3 毫秒压到 3.4 毫秒。

另一个更极端:一位研究员把"造一个世界模型"的完整任务交出去,只设目标、算力预算和评测协议,剩下的由模型自己推进方案、训练、评测和下一步决策。累计 400 小时、15 轮主要实验后得到的 AutoWM,在 WorldArena-1 Track 1 上拿了 77.43 分,高于当时公开榜单上的最高分 73.64。

两项都是 NaiveAI 单方面公布的数字,外部无人复核。但能连续跑完几百小时的自主实验,本身就是对长程上下文的一种实测。

四、省下来的钱,代价记在谁头上

07-cost-tradeoff.png

**第一个代价写在滑窗上。**128 个 token 大约是本段长度的两倍。关键信息离得远,又没被 indexer 挑中,模型在这一层里就是看不到它。接力能传,传的是压缩后的表示。

Sivaro 团队在自家生产环境的复盘里给了个量级:长程任务上稀疏注意力平均掉 2% 到 5% 的准确率,但那些"关键信息落在两万个 token 之外"的样本,掉的是 20% 以上。平均数是给汇报用的,掉的那部分才是你会撞上的。

**第二个代价写在 indexer 上。**2048 个候选是它猜的。猜对了省钱,猜错了就是信息丢失,而且这种丢失不会报错,你只会觉得它又忘了。

**第三个代价最微妙。**DataNorth 的核对点得很直白:model card 列了 12 项基准,包括 SWE-Bench Pro、Terminal-Bench 2.1、MLE-bench-30,但完全缺失的是通用能力测试、安全评估,以及在 100 万 token 窗口上的检索测试。这个模型最核心的卖点,恰好是它没有公开测过的那一项。

五、官方那张图,我劝你先别当真

再说三处要打折扣的地方,都是读 model card 时自己能验的。

**一,12 项基准全在图里,没有数字表。**你只能够盯着柱子目测高低。机器引不了,第三方也没法复核。这个模型目前也不在任何公开榜单上,等于零外部校验。

**二,柱子之间其实不可比。**官方用小字注明了:自家模型是用 Claude Code 2.1.207 配基础文件和 shell 工具跑的,对手数字来自各家博客、系统卡和公开榜单,每一项测量条件都不同。来源列得很诚实,但没有提示这会让图上的高低失去意义。

**三,2000 tokens/s 这个数字带着前提条件。**官方说极速模式最高 2000 tokens/s,8 卡实测峰值 2122。但这个峰值取自 41 个 HTML/SVG 生成请求里表现最好的一秒,关掉了思考模式,且不计入 prefill。它描述的是窄口径解码速度,不等于你跑任务时的端到端体验。

08-price-two-pages.png

这三处放在一起,意思不是这个模型不行,是目前还没有任何外部证据能证明它行。想自己试的话,别先跑编程基准,直接去撞那个 100 万 token 的窗口。一个没有全局注意力的设计,最可能悄悄掉链子的地方就在那儿。

09-discount-three.png

六、拿到一个长上下文模型,先问这 5 个问题

上面这些翻 model card 就能自己验。我把它整理成 5 条,下次看到一个标称长上下文的模型,对着问一遍。

1. 它有几层全局注意力? 为 0 就说明长程依赖全靠稀疏层挑,接着去查每层挑多少个 token。

2. 滑窗有多宽? 128 和 4096 是两个世界。窗口越窄,越依赖 indexer 猜得准。

3. 有没有长上下文检索测试? 没有 needle-in-a-haystack 之类的结果,"1M 上下文"就只是能装进去的数字,不代表能找出来。

4. benchmark 给的是表还是图? 只给图的,先按没测处理。

5. 跑分是谁在什么工具下跑的? 各家口径不一致时,高低没有意义。

10-five-questions.png

我把这 5 条做成了一份能直接对照着填的清单,在本公众号后台回复「长上下文」四个字,就能拿到。

说回那个星期。OpenAI 停下来的理由是一个 agent 爬出了沙盒,NaiveAI 交出来的是 AI 参与研发的模型。同一周,一边收边界,一边放自主权。

你要是正准备给项目挑基座,上面那 5 个问题比参数表第一行有用。

你手上的长任务,一般会把上下文跑到多长?