
互联网上关于多模态模型的文章不少可多数都停留在“它能识别图片、能聊天”这个层面很少有人把 Qwen3-VL、Qwen3-Next、Qwen3.5 这一串名字背后的架构主线讲清楚。我之前在公司内部做过一次技术分享主题就叫“Qwen3 系列多模态架构推演”当时把视觉编码器、连接器、LLM 主干、动态分辨率这些模块从头到尾拆了一遍。这几天把思路重新整理成文顺便把 Qwen3-Next、Qwen3.5 的演进方向也一并写了进来。如果你正在做多模态物体检测、想给模型做轻量级微调或者被多模态 RAG、多模态 Agent 绕晕了这篇内容至少能帮你把“输入一张图到输出一段文本”中间发生了什么理清楚。就算你不做底层训练只是用 API 调用理解这套架构也能让你在面对“为什么模型把这个框画偏了”“为什么图片 token 这么多”这类问题时不至于一头雾水。下面的内容按模块展开尽量给结论也尽量把为什么这样设计的原因讲透。1. 整体架构坐标从外挂管线到统一多模态基座1.1 为什么纯“外挂式”方案越来越不被接受早期做多模态最常见的方法是“ER 管道式拼接”先用一个目标检测模型或者图像描述模型把图片转成一份结构化标签或一段文字再把这段文字拼接进 prompt 给纯文本大模型。逻辑上看好像没问题实际上有两个硬伤。第一是信息损耗图片里大量的空间关系、纹理细节、元素间的引用关系在第一步转译时就已经丢了后续大模型再聪明也无从补起。第二是“非原生”的交互限制模型只能被动接受一段二手的文本没法直接做“看图中左上角那块区域”“根据这张图表里两条曲线的交叉点判断趋势”这种细粒度推理。Qwen3-VL 这类原生多模态模型的价值就在这里它把视觉理解当成了模型自身能力的一部分而不是外挂一个插件。这种“端到端”的设计思路带来了架构上的连锁反应视觉编码器要改连接器要改主干里的注意力机制也要改。顺带说一个很容易被忽略的点真正端到端的多模态模型从图像输入到文本输出中间所有参数的梯度都能贯通。这意味着你微调检测任务时不只是让模型学会输出坐标还能反向调整视觉编码器的特征提取方式让它更关注物体边缘、遮挡和上下文关系。外挂式方案根本做不到这一点。1.2 Qwen3-VL 的宏观骨架如果你只看一张架构图Qwen3-VL 的宏观骨架并不复杂它由三块构成第一块是视觉编码器负责把像素矩阵转成视觉 token。它不同于过去常见的 CLIP ViT而是使用了更适合高分辨率、多变尺寸输入的视觉塔内部对图片长宽比、分块方式做了专门优化。第二块是视觉-语言连接器负责将不同维度的视觉 token 映射到语言模型的语义空间。连接器做得不好视觉特征再强也进不了主干这也是很多自研多模态模型翻车的重灾区。第三块是 LLM 主干负责接住视觉 token 和文本 token做统一的注意力计算和自回归生成。从公开可下载的模型权重看Qwen3-VL 提供了多个不同规模的版本有面向端侧的小参数模型也有 MoE 结构的大参数模型。小模型适合跑在消费级显卡或者手机上但视觉理解能力相对有限大模型虽然参数多由于 MoE 的稀疏激活特性每次推理并不需要把全部参数都跑一遍实际算力成本比同等稠密小模型可控得多。这个骨架揭示了多模态架构的一条主线一切改动都围绕“如何让视觉和语言在更底层的地方发生交互”。这也直接引出了 Qwen3-Next 和 Qwen3.5 可能的演进方向无非是把融合的位置从“连接器”一步步推向“主干内部”把融合的粒度从“token 级”推向“特征子空间级”。1.3 MoE 稀疏专家路由藏着 Qwen3-Next 的影子说 Qwen3-Next 躲不开 MoE。MoE 全称 Mixture of Experts意思是不再用一个稠密网络处理所有输入而是准备一堆专家子网络再用一个路由网络判断当前输入更适合交给哪几位专家处理。对多模态模型来说MoE 有天然优势。图像任务和文本任务对特征提取的需求差异很大视觉 token 和文本 token 如果能分别路由到更擅长的专家上效果往往比共用一套参数更好。Qwen3-VL 的大尺寸版就是典型的 MoE 结构虽然总参数很大但每次前向计算只激活其中一部分显存占用和推理耗时才没有被拉爆。那 Qwen3-Next 会怎么演进我个人的推断是会更强调“跨模态路由”。现在的 MoE 路由大多基于 token 的语义自动选择专家并没有显式地区分“这是视觉 token”还是“这是文本 token”。下一代很可能会在路由策略里增加模态感知的偏置让视觉 token 更倾向于视觉增强专家文本 token 倾向于语言推理专家同时在二者交汇的层里设置共享专家专门处理图文混合上下文。这种“软隔离”设计比直接硬拆成视觉塔和文本塔更优雅也更能保持端到端的可微性。2. 核心模块手拆Qwen3-VL 到底做了什么2.1 动态分辨率与视觉 Tokenizer第一道关口视觉输入进入模型的第一站是 Tokenizer。图像不像文本那样天然有词元必须先把像素矩阵切成小块每个小块对应一个 token。这里最关键的架构选择是“固定分辨率切块”还是“动态分辨率切块”。Qwen3-VL 走的是后者也就是根据输入图片本身的分辨率和长宽比动态决定怎么切。这个设计我非常喜欢原因很朴素现实世界的图片根本不会严格按照正方形来。一张 1920x1080 的横图、一张 1080x1920 的竖图如果强行 resize 到固定 448x448信息损失非常严重特别是细长物体、表格、代码截图这类场景裁掉的内容往往就是关键内容。动态分辨率切块的一个具体实现思路是“九宫格法”模型把输入图片等比缩放到接近某个基准分辨率然后按需要分成一宫格、四宫格、九宫格等不同数量的子图每个子图再单独编码最后把子图的视觉 token 拼起来并加上位置信息告诉模型这些子图原来的空间关系。这个方法在 Qwen2.5-VL 阶段已经比较成熟Qwen3-VL 大概率延续并做细化。这里要提醒做微调的朋友视觉 token 数量不是你写的超参数而是由输入分辨率和切块策略共同决定的。同一张内容图在 448x448 下可能只产生几百个 token在 950x950 下可能会膨胀到几千个甚至上万个 token。这直接决定了训练时的 batch size 和显存开销。后面部署部分我会专门算这笔账。2.2 视觉-语言连接器与位置编码信息通道的“翻译官”视觉编码器输出的是视觉特征向量但它的分布和文本 embedding 的分布完全不一样不能直接丢进 transformer 主干。连接器的作用就是做一次“翻译”把视觉特征映射到语言模型的 embedding 空间。很多初学多模态的人以为连接器就是一个线性层实际上远没有那么简单。连接器要处理的第一个问题是位置信息。图像是二维结构视频是三维结构而标准的语言模型只懂一维位置编码。如果直接把二维图像 token 按行序拉平喂给 LLaMA 这类主干模型很难理解“上下左右”的对应关系。所以连接器通常会引入二维或三维的旋转位置编码也就是常说的 2D-RoPE、3D-RoPE。这个改动看着小实际上决定了模型能不能准确回答“物体 A 在物体 B 的右上方”这类空间问题。连接器要处理的第二个问题是模态间的尺度差异。视觉特征和文本特征经过不同编码器提取向量范数、分布形态都不同如果直接相加会导致注意力权重失衡。一个比较稳妥的做法是先用若干层 MLP 做非线性映射必要时再加 LayerNorm 和残差连接确保每个视觉 token 进入主干之前都已经“说得起人话”。在实际微调中如果你想用最小成本让模型适配自己领域的数据优先训练连接器通常是最划算的做法这一点后面细说。2.3 主干网络里的多模态注意力融合发生在每一层过去有一种观念认为视觉特征只在输入层和语言特征拼接进入主干后全部混在一起算就行。这种做法能用但效果有限因为深层网络如果不感知“当前 token 是图像来的还是文本来的”就很难针对不同模态做差异化建模。Qwen3-VL 这类新模型更强调在主干每一层都做模态融合。具体来说attention 矩阵里既有文本 token 对文本 token 的注意力又有视觉 token 对文本 token 的注意力还有视觉 token 内部的注意力。通过多头注意力机制模型能够动态决定“回答这个问题时最应该关注图上哪个区域”。这种机制本质上突破了传统视觉模型只能看局部感受野的限制让模型拥有了跨越整张图的全局推理能力。Transformer 之所以成为多模态架构的底座核心就是这种 attention 机制不挑输入形式。你给它一维文本序列它是 attention给它二维图像 patch 序列它也把它当成四五个 token 的序列来处理。只要位置编码给得对连接器映射得好同一个注意力模块就能同时处理两类信号。这也是为什么大家都在抢 Transformer 架构而不是另起炉灶搞一套新结构。后面如果真的出现 Qwen3.5主干大概率还是 Transformer但在注意力模式上可能加入稀疏注意力或者分层注意力进一步优化长视觉序列的计算效率。2.4 从检测到提示词反推同一架构应对不同任务很多人误以为物体检测是视觉模型的“老本行”大语言模型要搞检测肯定得额外加一个检测头。实际上 Qwen3-VL 类模型的做法很统一检测任务被描述成“token 生成任务”。你给模型一张图在 prompt 里要求它“返回图中所有物体的坐标框和类别”模型就会输出一个包含边界框坐标的文本结果。坐标可以直接用文本形式输出也可以通过特殊 token 映射到离散的 box 坐标空间。这样设计的架构优势非常明显模型的预训练目标是“预测下一个 token”检测、分割、描述、VQA 等任务全都能统一成同一套自回归接口不需要为每个任务单独设计输出头。训练时也是用相同的损失函数只是数据格式不同。这也解释了为什么我在微调检测任务时最核心的工作不是改模型架构而是设计 prompt 和统一标注格式。提示词反推Reverse Prompting也是这个逻辑的延伸。给模型一张图让它猜测“什么样的 prompt 会生成这张图”本质上还是多模态理解任务只不过输出从答案变成了指令文本。这类任务特别考验模型对“图文映射关系”的理解如果架构里视觉和语言融合得不够深生成的提示词通常会漏细节、缺层次感。3. 从 Qwen3-Next 到 Qwen3.5架构演进推演3.1 更极致的统一 token 空间整个多模态圈子现在最大的一个趋势是把理解模型和生成模型往同一个架构里装。现在的 Qwen3-VL 只能看不能画Qwen3-Next 如果按名字理解很可能是在大版本升级前先把“多模态 next 能力”集中放出来的过渡版本重点关注视觉理解深度的同时把“图文联合生成”的能力补上来。要做到“既能看图又能画图”架构上最理想的状态是建立一个统一的 token 空间图像、文本、视频、音频全部映射到同一种离散 token 序列里模型预测下一个 token 时既可能预测出一个汉字也可能预测出一个图像 patch。这个想法在学术界已经有不少尝试VQ-GAN、SEED-LLaMA 等模型都做过类似的事情。工业界真正落地起来难度很大因为图像 token 的量级比文本 token 大得多用够小的量化方式重构质量又会下降这个二分法短期很难彻底解决。如果 Qwen3.5 确实在规划中我猜测它会采取“理解为主、生成为辅”的折中方案即保留当前这种“图像 token 进文本 token 出”的主链路同时增加一个图像解码分支用于把模型内部的高层语义特征直接生成图片。这种方案不用完全推翻现有架构工程落地难度要小得多。3.2 推理成本的跨代变量架构演进从来不只是精度问题也是成本问题。Qwen3-VL 这类作品已经让大家看到图像 token 的推理成本远超文本 token。下一代的架构如果解决不了成本问题落地依然会受限。从部署角度推测Qwen3-Next 和 Qwen3.5 会在两个方向发力。一个是视觉 token 压缩通过合并相似 patch、减少冗余空间信息把一张 1024x1024 图的 token 数量从几千压到几百。另一个是投机采样和多模态投机解码用一个小模型先草拟输出再用大模型验证在保证精度的同时显著提高吞吐。这两个方向都不是花架子直接决定你公司能不能把这套模型放进线上服务、要不要烧那么多显卡。对我这样的技术博主来说看到这种演进倾向反而更兴奋。纯刷榜的模型只能停留在论文里真正把成本和效果平衡好的架构才有机会被装进真实产品中。多模态架构的下一步竞争其实不是“能不能做”而是“用多低的成本做出来”。4. 部署与微调中的架构取舍4.1 图像 token 数量决定显存这笔账一定要会算很多第一次跑多模态模型的人会被显存搞懵明明模型没多大传一张图上去显存飙升。问题大概率就出在视觉 token 数量上。拿一张 1024x1024 的图片来算账。假设视觉编码器的 patch size 是 14x14那这张图会被切成约 73x73 个 patch也就是 5329 个视觉 token。即便经过下采样合并送入 LLM 主干时通常也有几千个 token。相比一段常规文本可能只有 200 到 500 个 token图片直接带来十倍的序列长度增长。Transformer 的注意力计算和 KV cache 都跟序列长度直接挂钩。KV cache 大小大致等于“层数 × 注意力头数 × 头维度 × token 数 × 精度字节数”。如果模型是 8B 规模假设 32 层、每组 KV 头维度 128一张 1024x1024 图片产生的 KV cache 轻松超过 500MB这还没算中间激活值。也就是说喂一张图进去相当于喂了十段文本进去显存压力完全不是一个量级。实际操作中我的习惯是先用较小的输入分辨率跑通流程再逐步提高到目标分辨率。如果业务确实需要高清图优先开启 FlashAttention 这类融合算子能大幅减少中间激活的显存占用。千万别一上来就喂 4K 原图在很多框架里默认配置根本扛不住。4.2 最小组件微调视觉塔、连接器还是 LoRA多模态微调是社区最常讨论的话题尤其是“qwen3-vl 微调物体检测”这种需求。但很多人一开始就搞错方向直接全参数微调或者只微调 LoRA却没有认真想清楚“哪些层最值得改”。我提供一个非常实用的经验公式可用的最小组件依次是“连接器 → 顶层输出层 → 底层视觉编码器”。第一次尝试建议冻结整个视觉编码器和主干只训练 LoRA 加连接器。这样显存压力小收敛也快适用于大多数标注数据不多的场景。如果发现模型定位不准、框总是偏下一步再考虑解冻视觉塔的后几层让视觉特征根据你的数据做一定幅度的调整。这里要特别提醒“最小微调单位”不等于“只调几个 token 的 embedding”。如果任务难度大比如检测细小物体或者目标类别非常特殊连接器映射不到那可能得微调视觉编码器。反过来说如果任务只是改变回答风格、固定 prompt 模板那微调任意一层都可能过拟合。实操时最好先做一次“消融实验”固定训练步数分别试冻结与解冻视觉塔用验证集框准确率和召回率对比数据说话永远比经验靠谱。4.3 多模态 RAG 与 Agent 架构里模型如何被使用除了微调很多人关心多模态模型怎么接入 RAG 和 Agent。多模态 RAG 最大的坑在于“检索单元”怎么定。文本 RAG 切 chunk 很方便图片怎么做一种做法是把整张图和它的 OCR 文本、胶囊描述一起作为一个检索单元用户提问时用文本召回候选再把图片喂给视觉模型重新审视。另一种做法是先做目标检测把图里的每个物体截成小图各自生成描述和 embedding这样检索粒度细但每次检索要处理大量小图成本翻倍。Qwen3-VL 类模型在这套流程中承担两个角色既负责“读图回答”也可以作为“理解器/重排器”把检索到的候选图重新看一遍过滤不相关的图片。对 Agent 来说多模态模型能承担 GUI 理解任务比如看截图、判断按钮位置、反馈操作结果。这也是为什么大家都在押注多模态 Agent因为纯文本模型没法理解界面只有让模型“看图”才能把它真正嵌入自动化操作链路。5. 实战踩坑与排查实录5.1 问题速查表这里整理一份我在实测和微调中遇到的典型问题按频率排序现象可能原因解决方案显存爆掉图片分辨率过高视觉 token 爆炸限制输入分辨率开启 FlashAttention减小 batch size检测框整体偏移视觉编码器冻结太死特征不适应任务解冻视觉塔最后几层微调连接器输出坐标越界训练数据里框坐标没归一化统一使用 0 到 1000 的相对坐标避免像素绝对坐标同一张图两次结果差异大解码温度设置过高检测任务将温度设为 0或使用确定性采样中文检测标签识别差视觉编码器对中文纹理训练不足数据增强中加中文 OCR 样本多尺度训练长视频无法输入帧数过多超过模型最大序列长度抽帧做分段理解再用文本拼结构5.2 两个容易被忽略的小经验第一点是关于图像预处理的。很多多模态模型对图像归一化有自己的统计量不能直接套用 ImageNet 的均值方差。如果你在微调时发现 loss 不降先检查预处理部分是不是把像素范围从 [0,255] 变成了 [-1,1] 或者 [0,1]这个细节错了后面的训练基本全废。不必过分焦虑实在不确定就直接用模型代码库里自带的预处理函数别自己另写一套。第二点是关于检测输出格式的。用 Qwen3-VL 做检测时提示词里最好明确要求“按给定格式输出”比如box标签加坐标。如果 prompt 太开放模型可能答非所问输出一串描述而不是坐标。训练数据里的标注格式也要跟推理 prompt 保持一致我踩过的坑就是训练时用中文描述坐标推理时却用英文标签结果模型表现骤降。这个问题的本质是自回归模型对输入输出分布高度敏感任何不一致都会放大到结果端。还有一个很实用的调试技巧当你怀疑模型没有真正理解视觉内容时先把视觉编码器的输出抽出来做个可视化。如果同一类物体在不同图片上的特征向量距离很远说明视觉塔没学好如果距离很近说明问题出在后续融合。这种调试方法比盲目调参高效得多。多模态模型更新迭代非常快但核心的架构思维其实相对稳定视觉信息如何进入语言空间位置信息如何保持注意力如何在跨模态间流动推理成本如何控制。把这四条主线想清楚哪怕明天出一个新名字的模型你也能快速拆出它的底牌。