Qwen3.5-MoE 多模态大模型架构深度解析

Qwen3.5-MoE 多模态大模型架构深度解析

文档版本: v1.0
分析日期: 2026-02-22
分析来源: config.json + quant_model_weights.safetensors.index.json
架构标识: Qwen3_5MoeForConditionalGeneration

1. 模型全局概览

维度
架构类型Qwen3_5MoeForConditionalGeneration
模型类别多模态(Vision-Language)MoE
权重总量~420.7 GB(量化后)
分片文件99 个 safetensors
权重条目279,374 条
上下文窗口262,144 tokens(256K)
词表大小248,320
精度bfloat16(部分组件量化为低精度)
Transformers 版本4.57.0.dev0

1.1 模型四大模块

┌─────────────────────────────────────────────────────────┐ │ Qwen3.5-MoE │ ├──────────────┬──────────────┬──────────┬────────────────┤ │ Vision │ Language │ MTP │ LM Head │ │ Encoder │ Model │ Module │ │ │ (27-layer │ (60-layer │ (1-layer │ (线性投影) │ │ ViT) │ Hybrid-MoE) │ MoE) │ │ ├──────────────┴──────────────┴──────────┴────────────────┤ │ Shard 分布: Vision=1 | LM=96 | MTP=4 | LM Head=1 │ └─────────────────────────────────────────────────────────┘ 

2. 视觉编码器(Vision Encoder)

基于 ViT(Vision Transformer)架构,负责将图像/视频帧编码为视觉 token 序列。

2.1 核心参数

参数说明
depth27Transformer Block 层数
hidden_size1152隐藏层维度
num_heads16注意力头数(head_dim = 72)
intermediate_size4304FFN 中间层维度
patch_size16空间 Patch 大小
temporal_patch_size2时间维度 Patch 大小(视频)
spatial_merge_size2空间合并因子
in_channels3输入通道数(RGB)
num_position_embeddings2304位置编码数量
out_hidden_size4096输出维度(对齐语言模型)
hidden_actgelu_pytorch_tanh激活函数

2.2 结构详解

Input Image/Video │ ▼ ┌──────────────────────┐ │ Patch Embedding │ Conv2d(3, 1152, kernel=16×16) │ + Position Embed │ 可学习位置编码 (2304 positions) └──────────┬───────────┘ │ ▼ ┌──────────────────────┐ │ ViT Block × 27 │ 每个 Block: │ ├─ LayerNorm │ - Pre-Norm (weight + bias) │ ├─ Fused QKV Attn │ - 融合 QKV 多头注意力 (16 heads) │ ├─ LayerNorm │ - Pre-Norm (weight + bias) │ └─ MLP (FC1→FC2) │ - 1152 → 4304 → 1152 └──────────┬───────────┘ │ ▼ ┌──────────────────────┐ │ Merger │ 视觉→语言空间映射 │ ├─ LayerNorm │ 归一化 │ ├─ FC1 │ spatial_merge 后投影 │ └─ FC2 │ → out_hidden_size (4096) └──────────┬───────────┘ │ ▼ Visual Tokens (dim=4096) 

2.3 特殊视觉 Token

TokenID用途
vision_start248053视觉序列起始标记
vision_end248054视觉序列结束标记
image_token248056图像占位 token
video_token248057视频占位 token

3. 语言模型(Language Model)

3.1 全局参数

参数说明
num_hidden_layers60总层数
hidden_size4096隐藏维度
vocab_size248,320词表大小
max_position_embeddings262,144最大位置(256K)
rms_norm_eps1e-6RMSNorm epsilon
hidden_actsiluFFN 激活函数
tie_word_embeddingsfalseEmbedding 与 LM Head 不共享

3.2 混合注意力架构(Hybrid Attention)

Qwen3.5-MoE 采用 Linear Attention + Full Self-Attention 混合架构,每 4 层为一组,前 3 层使用线性注意力(SSM/Mamba 风格),第 4 层使用完整自注意力。

full_attention_interval = 4 Layer: 0 1 2 [3] 4 5 6 [7] 8 9 10 [11] ... 56 57 58 [59] Type: L L L F L L L F L L L F ... L L L F L = Linear Attention (45 层, 75%) F = Full Self-Attention (15 层, 25%) 
3.2.1 Linear Attention(线性注意力 / SSM)— 45 层

基于 Mamba-2 / 状态空间模型(State Space Model)的线性注意力,时间复杂度 O(n) 。

参数说明
linear_key_head_dim128Key 头维度
linear_num_key_heads16Key 头数(KV 共享结构)
linear_value_head_dim128Value 头维度
linear_num_value_heads64Value 头数
linear_conv_kernel_dim41D 卷积核大小

权重组成:

权重名说明
in_proj_qkv.weight融合 QKV 输入投影
in_proj_z.weight门控投影 Z
in_proj_a.weightSSM 参数 A 投影
in_proj_b.weightSSM 参数 B 投影
A_log状态转移矩阵(log 空间)
dt_bias时间步长偏置 Δ
conv1d.weight局部卷积(kernel=4)
norm.weight归一化
out_proj.weight输出投影
3.2.2 Full Self-Attention(完整自注意力)— 15 层

采用 GQA(Grouped-Query Attention) + QK-Norm + Partial Rotary Position Embedding

参数说明
num_attention_heads32Q 头数
num_key_value_heads2KV 头数(GQA 比率 16:1)
head_dim256每头维度
Q 总维度32 × 256 = 8192
KV 总维度2 × 256 = 512
attn_output_gatetrue输出门控
attention_biasfalse无注意力偏置

权重组成: q_proj, k_proj, v_proj, o_proj, q_norm, k_norm

其中 q_proj, k_proj, v_proj 含量化参数 (weight_scale, weight_offset)。
3.2.3 位置编码(RoPE)
参数说明
rope_typedefault标准 RoPE
rope_theta10,000,000频率基数(10M,支持超长上下文)
partial_rotary_factor0.25仅 25% 维度应用旋转
旋转维度256 × 0.25 = 64实际参与 RoPE 的维度
mrope_interleavedtrue交错式多模态 RoPE
mrope_section[11, 11, 10]高度/宽度/时间 维度分配
M-RoPE(Multimodal RoPE)将 64 维旋转编码拆分为 3 段(11+11+10=32 组,每组 2 维),分别编码空间高度、空间宽度和时间位置,使模型对图像/视频具备原生的位置感知能力。

3.3 MoE FFN(混合专家前馈网络)

每一层(全部 60 层) 均采用 MoE 架构。

参数说明
num_experts512专家总数
num_experts_per_tok10每 token 激活专家数
moe_intermediate_size1024专家中间维度
shared_expert_intermediate_size1024共享专家中间维度
router_aux_loss_coef0.001路由辅助损失系数

单层 MoE 结构

hidden_states (4096) │ ├───────────────────────────────────────────┐ │ │ ▼ ▼ ┌──────────────┐ ┌──────────────────┐ │ Router Gate │ │ Shared Expert │ │ (4096 → 512) │ │ gate_proj (4096→1024) │ Top-10 选择 │ │ up_proj (4096→1024) └──────┬───────┘ │ down_proj (1024→4096) │ └────────┬─────────┘ ▼ │ ┌─────────────────────┐ │ │ Expert_i × 10 │ │ │ (从 512 中选 10 个) │ │ │ gate_proj (4096→1024)│ │ │ up_proj (4096→1024)│ ┌────────────────┐│ │ down_proj (1024→4096)│ │shared_expert ││ └──────────┬──────────┘ │_gate (标量门控) ││ │ └───────┬────────┘│ │ │ │ ▼ ▼ │ expert_output ──────────────── + ◄────────────┘ │ ▼ output (4096) 

参数量估算(每层 MoE FFN)

组件参数量
512 Expert512 × 3 × 4096 × 1024 = 6.44B
Shared Expert3 × 4096 × 1024 = 12.6M
Router Gate4096 × 512 = 2.1M
每层 MoE 小计~6.45B

3.4 单层完整结构

 input │ ▼ ┌─────────────┐ │ RMSNorm │ input_layernorm └──────┬──────┘ │ ┌────────┴────────┐ │ │ (layer % 4 != 3) (layer % 4 == 3) │ │ ▼ ▼ ┌─────────────┐ ┌──────────────┐ │ Linear Attn │ │ Full Self- │ │ (Mamba SSM) │ │ Attention │ │ │ │ (GQA+RoPE) │ └──────┬──────┘ └──────┬───────┘ │ │ └────────┬───────┘ │ + ← residual │ ▼ ┌─────────────┐ │ RMSNorm │ post_attention_layernorm └──────┬──────┘ │ ▼ ┌────────────────┐ │ MoE FFN │ │ 512 Experts │ │ + Shared Expert│ │ Top-10 Routing │ └────────┬───────┘ │ + ← residual │ ▼ output 

3.5 量化策略

量化仅应用于计算密集型组件,保留关键组件的全精度:

组件是否量化说明
MoE Expert FFN (gate/up/down_proj)weight_scale + weight_offset
Self-Attention QKV (q/k/v_proj)weight_scale + weight_offset
Self-Attention Output (o_proj)保持全精度
Linear Attention 全部权重SSM 对精度敏感
Shared Expert始终激活,保持精度
Router Gate路由精度直接影响专家选择
RMSNorm保持全精度
Embedding / LM Head保持全精度
量化参数条目共 184,410 个,约占总权重条目的 66%。

4. MTP 模块(Multi-Token Prediction)

MTP 模块确认存在,共 1,553 个权重条目,分布在 4 个 shard 文件中。

4.1 MTP 配置

参数说明
mtp_num_hidden_layers1MTP Transformer 层数
mtp_use_dedicated_embeddingsfalse复用主模型 Embedding

4.2 MTP 完整结构

 ┌─────────────────┐ ┌──────────────────┐ │ Embedding of │ │ Hidden state from│ │ current token │ │ last LM layer │ └────────┬────────┘ └────────┬─────────┘ │ │ ▼ ▼ ┌─────────────────┐ ┌──────────────────┐ │pre_fc_norm_ │ │pre_fc_norm_ │ │embedding │ │hidden │ │(RMSNorm) │ │(RMSNorm) │ └────────┬────────┘ └────────┬─────────┘ │ │ └──────────┬───────────┘ │ concat / combine ▼ ┌─────────────────┐ │ fc.weight │ │ (融合投影层) │ └────────┬────────┘ │ ▼ ┌───────────────────────┐ │ MTP Transformer │ │ Layer 0 │ │ ┌───────────────────┐ │ │ │ input_layernorm │ │ │ ├───────────────────┤ │ │ │ Self-Attention │ │ │ │ (q/k/v/o_proj + │ │ │ │ q_norm, k_norm) │ │ │ ├───────────────────┤ │ │ │post_attn_layernorm│ │ │ ├───────────────────┤ │ │ │ MoE FFN │ │ │ │ ├ Gate (→512) │ │ │ │ ├ Expert ×512 │ │ │ │ ├ Shared Expert │ │ │ │ └ Shared Gate │ │ │ └───────────────────┘ │ └───────────┬───────────┘ │ ▼ ┌─────────────────┐ │ mtp.norm │ │ (RMSNorm) │ └────────┬────────┘ │ ▼ ┌─────────────────┐ │ lm_head (复用) │ │ 预测 next-next │ │ token │ └─────────────────┘ 

4.3 MTP 关键设计特征

特征说明
深度仅 1 层 Transformer,轻量化设计
注意力类型Full Self-Attention(非 Linear Attention)
FFN 类型与主模型完全同构的 MoE(512 Expert + Shared Expert)
Embedding复用主模型 Embedding(mtp_use_dedicated_embeddings=false
LM Head复用主模型 lm_head.weight
融合方式对 embedding 和 hidden state 分别 RMSNorm 后通过 FC 融合

4.4 MTP 用途

  • 训练阶段: 提供 next-next-token 预测的辅助监督信号,增强模型表征学习
  • 推理阶段: 可用于 Speculative Decoding(投机解码),MTP 头预测下一个候选 token,主模型并行验证,从而提升推理吞吐量

5. 参数规模估算

5.1 总参数量

模块估算参数量说明
Embedding~1.02B248,320 × 4,096
LM Head~1.02B248,320 × 4,096(不共享)
LM Layers — MoE FFN~387.1B60 × 512 × 3 × 4096 × 1024 + shared
LM Layers — Self-Attn (×15)~1.07B15 × (Q+K+V+O+norms)
LM Layers — Linear-Attn (×45)~数 B45 × SSM 参数
LM Layers — Norms/Router~0.25B60 × (2×layernorm + gate)
Vision Encoder~0.3B27 层 ViT + Merger
MTP~6.5B1 层 MoE Transformer
总参数量(估算)~400B+

5.2 每 Token 激活参数量

模块激活参数量
MoE FFN(10/512 Experts)60 × 10 × 3 × 4096 × 1024 ≈ 7.55B
Shared Expert60 × 3 × 4096 × 1024 ≈ 0.76B
Attention(平均)~数 B
Embedding + LM Head~2.04B
每 Token 激活量(估算)~15-20B

6. 架构创新总结

6.1 核心创新点

创新说明
Hybrid Attention3:1 比例混合 Linear Attention (Mamba SSM) 与 Full Self-Attention,兼顾 O(n) 效率与全局建模
超大规模 MoE512 Expert + Shared Expert,每层 Top-10 路由,总参数 ~400B 但激活量仅 ~15-20B
M-RoPE多模态旋转位置编码,三段式编码(高/宽/时间),原生支持图像与视频的空间-时序位置
MTPDeepSeek-V3 风格的单层多 Token 预测头,训练增强 + 推理投机解码加速
Partial Rotary仅 25% 维度应用旋转编码(64/256),其余维度自由学习,平衡位置感知与语义表达
选择性量化仅量化 Expert FFN 和 Self-Attn QKV,保留 SSM、Shared Expert、Router 等关键组件的全精度

6.2 对标分析

维度Qwen3.5-MoE(本模型)DeepSeek-V3Qwen3-235B
总参数~400B+671B235B
激活参数~15-20B37B22B
专家数512256128
激活专家1088
注意力Hybrid (SSM+Attn)Full AttentionFull Attention
MTP1 层1 层
多模态原生(ViT + M-RoPE)无(纯文本)无(纯文本)

7. 权重文件分布

quant_model_weights-00001-of-00099.safetensors ← Vision Encoder (全部) quant_model_weights-00002~00094.safetensors ← Language Model Layers (共 93 个) quant_model_weights-00095~00098.safetensors ← MTP Module (共 4 个) quant_model_weights-00098.safetensors ← Embedding + LM Norm quant_model_weights-00099.safetensors ← LM Head 

附录 A: 关键 Config 字段速查

{"text_config":{"hidden_size":4096,"num_hidden_layers":60,"num_attention_heads":32,"num_key_value_heads":2,"head_dim":256,"num_experts":512,"num_experts_per_tok":10,"moe_intermediate_size":1024,"shared_expert_intermediate_size":1024,"full_attention_interval":4,"max_position_embeddings":262144,"mtp_num_hidden_layers":1,"rope_theta":10000000,"partial_rotary_factor":0.25,"mrope_section":[11,11,10]},"vision_config":{"depth":27,"hidden_size":1152,"num_heads":16,"patch_size":16,"temporal_patch_size":2,"out_hidden_size":4096}}

附录 B: layer_types 完整映射

Layer类型Layer类型Layer类型Layer类型
0Linear15Full30Linear45Linear
1Linear16Linear31Full46Linear
2Linear17Linear32Linear47Full
3Full18Linear33Linear48Linear
4Linear19Full34Linear49Linear
5Linear20Linear35Full50Linear
6Linear21Linear36Linear51Full
7Full22Linear37Linear52Linear
8Linear23Full38Linear53Linear
9Linear24Linear39Full54Linear
10Linear25Linear40Linear55Full
11Full26Linear41Linear56Linear
12Linear27Full42Linear57Linear
13Linear28Linear43Full58Linear
14Linear29Linear44Linear59Full

本文档基于模型权重索引文件和配置文件的静态分析生成,参数量为估算值,实际值以官方技术报告为准。

Read more

Ubuntu 安装 Node.js 指定版本指南

Ubuntu 安装 Node.js 指定版本指南

Ubuntu 安装 Node.js 指定版本指南(适用于生产与开发环境) 在没有安装 NVM 的服务器环境中(如 Docker、CI/CD、虚拟机等),建议使用 Node.js 官方的二进制包源(PPA)来快速安装特定版本的 Node.js。本指南将展示如何在 Ubuntu/Debian 系统中通过 NodeSource 官方 PPA 安装 Node.js 的 LTS 与最新版本。 一、安装 Node.js 20(当前活跃 LTS) 适合最新项目开发和维护: # 1. 添加 NodeSource 源curl -fsSL https://deb.

By Ne0inhk
Spring IoC 与 DI 核心知识点综合测试题

Spring IoC 与 DI 核心知识点综合测试题

3.3.1 方法注解要配合类注解使用 在 Spring 框架的设计中,方法注解 @Bean 要配合类注解才能将对象正常的存储到 Spring 容器中,如下代码所示: @Component public class BeanConfig { @Bean public User user(){ User user = new User(); user.setName("zhangsan"); user.setAge(18); return user; } } 再次执行以上代码,运行结果如下: 3.3.2 定义多个对象 对于同一个类,如何定义多个对象呢?比如多数据源的场景,类是同一个,但是配置不同,指向不同的数据源。 我们看下@Bean的使用: @Component

By Ne0inhk
【Kafka基础篇】搞懂Kafka架构不用死记硬背:Topic与Partition映射逻辑一文讲透

【Kafka基础篇】搞懂Kafka架构不用死记硬背:Topic与Partition映射逻辑一文讲透

🍃 予枫:个人主页 📚 个人专栏: 《Java 从入门到起飞》《读研码农的干货日常》 💻 Debug 这个世界,Return 更好的自己! 引言 在分布式消息队列领域,Kafka凭借高吞吐、高可用、可扩展的优势,成为微服务架构、大数据场景的核心组件。但很多开发者只用过Kafka的基础功能,对其核心架构、组件协作逻辑一知半解,遇到消息丢失、集群异常等问题时无从下手。本文将以拓扑图为辅助,深入拆解Producer、Broker、Consumer三大核心组件的协作关系,详解Topic与Partition的映射逻辑、Replica副本容错机制,以及Zookeeper与KRaft模式的演进,帮你吃透Kafka架构本质。 文章目录 * 引言 * 一、KAFKA核心架构整体认知 * 二、核心组件深度拆解(PRODUCER/BROKER/CONSUMER) * 2.1 Producer(生产者):消息的发送者 * 核心功能与特性: * 核心代码示例(Java): * 2.2 Broker:

By Ne0inhk
【JAVA 进阶】Spring Boot 注解体系与工程实践

【JAVA 进阶】Spring Boot 注解体系与工程实践

1. 导读与目标 1.1 背景与主题 1.1.1 为什么注解是 Spring Boot 的核心 注解是 Spring 与 Spring Boot 的“语言”。它将配置、语义与框架行为融合到代码声明上,使得框架在运行时能基于元数据完成扫描、装配与代理。掌握注解不仅能写清晰的业务代码,更能理解自动配置、条件化注入、AOP 与事务的底层机制,为工程治理与扩展打下根基。 1.1.2 本文目标 * 梳理常见注解的语义、适用场景与组合方式。 * 理解自动配置与条件注解的协作原理。 * 覆盖 Web、数据、AOP、校验与测试中的关键注解。 * 实战自定义注解与组合注解,形成工程化套路。 1.2 读者与预备 1.2.1 预备知识

By Ne0inhk