通义千问发布最新模型结构Qwen3-Next。它在架构上采用“Gated DeltaNet + Gated Attention”的混合注意力,并把 MoE 稀疏度拉高到只激活约 3.7% 的参数,同时做了多项训练稳定性优化,还在主干中原生引入 MTP(Multi-Token Prediction)。
基于这套设计,80B 总参数、仅激活约 3B 的 Qwen3-Next-80B-A3B 系列在长上下文推理吞吐和整体性价比上有明显优势,并在 Instruct 和 Thinking 两条产品线上,拿到接近甚至对齐 235B 旗舰的效果。
Qwen3-Next
为什么要做 Qwen3-Next
从趋势看,两个方向很关键:
- Context Length Scaling - 让模型处理更长的上下文
- Total Parameter Scaling - 提升总参数规模但保持激活稀疏
Qwen3-Next 就是围绕这两点做系统性优化:混合注意力提升长序列效率和能力,高稀疏 MoE 控制激活开销,再加上稳定性改造和 MTP,加速训练和推理同时兼顾效果。
核心架构设计
混合注意力:Gated DeltaNet + Gated Attention
我的理解是,单一注意力形态都有短板:
Qwen 团队最后选了混合方案:75% 的层用 Gated DeltaNet,25% 的层保留标准注意力。实验显示,这个 3:1 的比例在效率与效果上更稳。
在保留的标准注意力里,他们还做了几处增强:
- 输出门控(output gating)缓解注意力的低秩与“attention sink”等现象
- RoPE 只加在注意力头前 25% 的位置维度,改善长度外推
换个角度思考,这套组合是在不同长度区间里让两类机制各展所长,再用门控把数值行为压稳。
极致稀疏 MoE:80B 总参,约 3B 激活
Qwen3-Next 的 MoE 更“稀”:
- 总参数约 80B,每次只激活约 3B,激活占比约 3.7%
- 采用全局负载均衡,固定激活专家数时,增加专家总参数能持续降低训练 loss
- 架构从 Qwen3 的 128 总专家 + 8 路由专家,扩到 512 总专家 + 10 路由专家 + 1 共享专家
从实际训练来看,这样的配置在效果不掉的前提下,把资源利用率拉满。
训练稳定性的几处关键改动
为了解决注意力池化异常、极大激活等问题,他们做了三点:
- 把 QK-Norm 换成 Zero-Centered RMSNorm,并对 norm weight 加 weight decay,避免权重无界
- 初始化时对 MoE router 做归一化,让每个 expert 在早期都有公平的被选机会
这些细节看着琐碎,但对大规模、长上下文训练是否稳定,影响很大。
Multi-Token Prediction(MTP)
Qwen3-Next 把 MTP 原生集成进主干:
- 既能作为高接受率的草稿生成模块,提升 speculative decoding 的效率
- 训练阶段做了多步一致性,让推理时的多步 MTP 更稳、更实用
简单说,就是在一个模型里同时兼顾了“快”和“好”。
预训练与效率表现
训练数据与成本
他们从 Qwen3 的 36T 语料里做了 15T 均匀采样来训 Qwen3-Next。整体消耗上:
- 相比 Qwen3-30A-3B,GPU Hours 降到其 80% 以内
- 相比 Qwen3-32B,只用约 9.3% 的 GPU 资源,却拿到更优效果
这个对想要低成本拿高性能的团队很有吸引力。
推理吞吐:长上下文优势明显
得益于混合注意力,Qwen3-Next-80B-A3B 在长上下文推理的吞吐提升很大:
- 当上下文超过 32k,预填充和解码都能达到 10 倍以上的吞吐优势
如果你的任务经常需要读很长的文档或日志,这个改动的价值非常直观。
Base 模型表现
Qwen3-Next-80B-A3B-Base 激活的非嵌入参数只有同规模 dense 的十分之一上下,就在多数基准上超过了 Qwen3-32B-Base,同时显著优于 Qwen3-30B-A3B。这个性价比已经很能打了。
后训练与评测结果
Instruct
- 明显优于 Qwen3-30B-A3B-Instruct-2507 和 Qwen3-32B-Non-thinking
- 接近 Qwen3-235B-A22B-Instruct-2507
- 在 RULER 的各长度区间表现都更稳,256k 范围内甚至超越了层数更多的 235B Instruct
这基本说明混合注意力在长文本任务上站住了脚。
Thinking
- 优于 Qwen3-30B-A3B-Thinking-2507 和 Qwen3-32B-Thinking
- 超过闭源的 Gemini-2.5-Flash-Thinking
- 在部分指标上逼近 Qwen3-235B-A22B-Thinking-2507
如果你关心复杂推理,这条线的进步值得关注。
上手使用 Qwen3-Next
下面的示例基于 Qwen3-Next-80B-A3B-Instruct。Thinking 版本可参考 Hugging Face 模型页: https://huggingface.co/Qwen/Qwen3-Next-80B-A3B-Thinking
使用 Hugging Face Transformers
Transformers 主分支已支持 Qwen3-Next。建议安装主分支版本。
- 如果用旧版本,可能遇到 KeyError: 'qwen3_next'
- MTP 目前在 Transformers 里还未普遍支持
- 根据环境安装 flash-linear-attention 和 causal-conv1d,有机会进一步提速
示例代码(对话生成):
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name ="Qwen/Qwen3-Next-80B-A3B-Instruct"tokenizer = AutoTokenizer.from_pretrained(model_name)model = AutoModelForCausalLM.from_pretrained( model_name, dtype="auto", device_map="auto",)
messages = [{"role":"user","content":"Give me a short introduction to large language model."}]text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)inputs = tokenizer([text], return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=16384)new_tokens = outputs[0][len(inputs.input_ids[0]):]print(tokenizer.decode(new_tokens, skip_special_tokens=True))
用 SGLang 部署
SGLang 主分支已支持。示例命令:
- 启动 4 卡张量并行,默认 256k 上下文,OpenAI 兼容 API 位于 http://localhost:30000/v1
- 需要设置环境变量 SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1
# 基础SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1\python-m sglang.launch_server \--model-path Qwen/Qwen3-Next-80B-A3B-Instruct \--port 30000 --tp-size 4 \--context-length 262144 \--mem-fraction-static 0.8
# 启用 MTPSGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1\python-m sglang.launch_server \--model-path Qwen/Qwen3-Next-80B-A3B-Instruct \--port 30000 --tp-size 4 \--context-length 262144 \--mem-fraction-static 0.8 \--speculative-algo NEXTN \--speculative-num-steps 3 \--speculative-eagle-topk 1 \--speculative-num-draft-tokens 4
小贴士:
- 默认上下文长度为 256k。如果启动失败,可先把 context-length 降到 32768 试试
用 vLLM 部署
vLLM 主分支已支持。示例命令:
- 需要设置环境变量 VLLM_ALLOW_LONG_MAX_MODEL_LEN=1
- OpenAI 兼容 API 位于 http://localhost:8000/v1
# 基础VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 \vllm serve Qwen/Qwen3-Next-80B-A3B-Instruct \ --port 8000 \ --tensor-parallel-size 4 \ --max-model-len 262144
# 启用 MTPVLLM_ALLOW_LONG_MAX_MODEL_LEN=1 \vllm serve Qwen/Qwen3-Next-80B-A3B-Instruct \ --port 8000 \ --tensor-parallel-size 4 \ --max-model-len 262144 \ --speculative-config '{"method":"qwen3_next_mtp","num_speculative_tokens":2}'
同样地,如果服务起不来,可以把 max-model-len 先降到 32768 观察资源占用。
Agent 场景
Qwen3 在工具调用上表现不错。结合 Qwen-Agent,可以更轻松地挂接 MCP 工具或内置工具,降低集成成本。大致流程:
- 配置一个 OpenAI 兼容的 API 端点,比如前面用 vLLM 启动的服务
- 在 Qwen-Agent 里指定模型名、api_base 和 api_key
- 通过 MCP 配置或内置工具,挂接如时间、网络抓取、代码解释器等能力
这部分的官方示例代码已经把关键参数写全,直接替换成你的服务地址就能跑。
处理超长上下文
Qwen3-Next 原生支持 262,144 token 的上下文。如果输入加输出要远超这个长度,我更推荐用 YaRN 做 RoPE 缩放:
- 你可以直接在模型 config.json 加 rope_scaling
- 或者在 vLLM、SGLang 的命令行参数里传 rope_scaling 配置
- 目前主流框架实现的是“静态 YaRN”,缩放因子不随输入变化,可能会影响短文本性能
- 因此只在确有长上下文需求时再开启,并把 factor 调整到合适值
- 比如典型上下文在 524,288 token 左右,就用 factor=2.0
示例配置(以 vLLM 为例):
VLLM_ALLOW_LONG_MAX_MODEL_LEN=1\vllmserve...\--rope-scaling'{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144}'\--max-model-len1010000