想象一家叫“读图翻译社”的公司,专门接“看图写报告”的订单。客户送来一张照片,希望公司用几句话讲清楚照片里发生了什么。这家公司有三道工序:一进门是“速记部”,一群眼疾手快的视觉速记员把照片按格子切好,每格画一个简明符号;接着是“翻译部”,把视觉符号转写成文字草稿;最后是“编辑部”,资深文字主编把草稿打磨成通顺自然的回答。Qwen-VL 就是这样一个“读图翻译社”:速记部是 ViT 视觉编码器,翻译部是视觉-语义适配器,编辑部是 Qwen 语言模型。本文要拆解这套流水线的每个环节——速记员怎么分块、怎么在速记本上标坐标、翻译官怎么转换符号、主编怎么组织语言,以及新人怎么经过三阶段特训逐步胜任岗位。看完你会明白:多模态大模型不是魔法,而是一条设计精密的跨语言翻译流水线。
对 AI 从业者而言,理解 Qwen-VL 的“双塔+适配器”架构,等于拿到了拆解绝大多数视觉-语言模型的通用图纸:无论未来模型如何换壳,分块编码、位置适配、跨模态投影、多阶段训练这套骨架都不会变。
目录
可视化演示
动态演示拆解Qwen-VL的视觉语言的核心机制,通过基础/核心/应用/扩展四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
拆解Qwen-VL的视觉语言:Qwen Qwen-VL整体架构设计 ViT编码器与视觉token生 核心机制可视化 拆解Qwen-VL的视觉语言整体架构与关键组件
整体架构:读图翻译社的流水线
先俯视一下整家“读图翻译社”。客户递进来的照片,从来不是直接丢给主编的——主编是文字专家,看不懂像素。照片要先进速记部,由视觉速记员把画面切成规整的小格子,逐格提炼符号;然后翻译部把符号转写成主编能读懂的文字草稿;最终主编基于草稿组织成通顺的句子。整条流水线,就是 Qwen-VL 的宏观设计:视觉塔负责“看”,语言塔负责“写”,两者之间由一座窄窄的适配桥连接。
这套“双塔加一桥”结构在架构图上非常清晰。视觉塔是 ViT(Vision Transformer),它把图像变成一串视觉 token;语言塔是 Qwen 语言模型,它接收“图像描述 + 用户问题”的拼接序列,以自回归方式逐字产出回答;中间那座桥是视觉-语言适配器,通常是一个很轻量的 MLP 层,负责把视觉特征投影到语言模型的嵌入空间。三者的分工,对应人类团队里“速记员—翻译官—主编”的协作关系。
在推理时,图片先被切块并序列化,得到一串视觉 token,与用户指令的文本 token 拼接在一起,交给语言模型统一处理。语言模型看不到任何原始像素,它读到的只是视觉塔“转述”后的符号序列。因此,视觉 token 的数量直接决定了模型每张图需要“读”多长的材料——这就是 token 预算问题的起点。
理解了这张总览图,后面每一节都是在放大观察某个部门的内部操作。速记部怎么画格子、怎么保证坐标不丢、翻译官怎么转写、主编怎么成文,以及新人怎么培训上岗,一一拆解。
- 分子分辨率 H×W图像的高宽像素数,决定了画面里总共有多少个基本像素单元。
- 分母 patch 边长 p每个速记格子的边长,Qwen-VL 中通常取 14 像素,格子越小看得越细,token 越多。
- 取整舍去不完整格当图像尺寸不能被 p 整除时向下取整,避免出现半个格子的尴尬;Qwen-VL 在预处理时会先把图缩放到 p 的倍数,让公式里取整几乎不损失。
ViT视觉编码器:速记部的手艺
速记部的工作可以这样理解:速记员拿到照片,先在图纸上盖一张 14×14 像素的透明方格网,然后对每个格子做三件事——看一眼格子里有什么颜色纹理、记成一个简写符号、再扫一眼隔壁格子确认关系。ViT 的前半段就是这个分块与投影过程:把每个 patch 展平成一长串像素值,乘一个可学习的投影矩阵,得到该 patch 的初始特征向量,也就是“速记符号”。
但只记单格信息远远不够——速记员必须理解“蓝天在上、草地在下”,这需要跨格子的信息交流。ViT 的核心是堆叠的 Transformer 编码层,每一层都通过多头自注意力,让每个格子的特征向量去“询问”其他所有格子:你是什么内容?我们有没有关联?通过这种全局交互,每个位置的输出不再只是自己的局部信息,而是带着整张图上下文的浓缩语义。
这个过程最终产出的,就是视觉 token 序列。每个 token 是一个高维向量,对应原图一个小区域的高层语义。它在语言模型眼里,等价于一个“词位”——照片中的“猫”、“草地”、“阳光”,都被压缩成了可以被注意力机制读取的向量符号。这也是“视觉 token 如何生成”的完整回答:不是直接拿像素当 token,而是像素经过分块、投影、多层全局交互后,提炼出的语义浓缩物。
速记员交出的符号质量,直接决定翻译官和主编的上限。ViT 里堆叠的层数、注意力头数,决定了速记符号里融合了多少全局信息;而 patch 尺寸则决定了符号的颗粒度。这些设计选择,最终都体现在视觉 token 的质量与数量上。
- 投影生成三胞胎每个 token 通过三个可学习矩阵生成查询 Q、键 K、值 V,分别代表“我想找什么”“我的标签是什么”“我提供的内容是什么”。
- 点积算相关性用当前词的 Q 去点乘所有词的 K,得到两两 token 之间的相似度分数,分数越高表示关系越紧密。
- 缩放防饱和除以 d_k 的平方根,防止点积数值过大把 softmax 推入两端饱和区,让梯度变小、训练不稳。
- 归一化加权聚合softmax 把分数转成和为 1 的权重,再与 V 加权求和,得到融合全局信息的输出向量。
位置编码:速记本上的二维坐标
速记符号如果散落一地而没有标注位置,主编拿到草稿会彻底懵掉——“上面是天空、下面是草地”这种空间关系,全靠坐标才能复原。ViT 本身是排列不变的:把任意两个 patch 顺序互换,注意力计算的结果完全相同。因此必须显式地告诉模型“每个格子原来在哪一行哪一列”,这就是位置编码存在的意义。
Qwen-VL 面对的更麻烦的问题是变分辨率输入。如果模型只支持固定 224×224,那位置编码表一次建好就能复用;但 Qwen-VL 希望任意分辨率图像都能进来——手机拍的照片长宽比五花八门,缩放后格子数量也变化。位置编码不能再用固定表格,而必须能随图像坐标系统“伸缩”。业界常用方案是 2D 感知的旋转位置编码(2D-RoPE):给横纵两个方向分别施加旋转角,视觉 token 的坐标就像画在可缩放的网格纸上。
当图像从 448×448 放大到 896×896 时,网格数从 32×32 变成 64×64,每个格子的坐标也要按比例“铺开”。位置编码的对齐策略就是按缩放比例对横纵坐标分别插值——坐标的绝对数值变了,但格子与格子之间的相对空间关系保持不变。这就是“变分辨率适配”的关键:模型理解的不是某个固定画幅,而是可任意缩放的相对空间。
坐标是空间理解的地基。没有位置编码,视觉 token 就是一袋散装的速记符号;有了可伸缩的二维坐标,模型才知道“左上角的符号描述的是天空,右下角的符号描述的是草地”,也才能在任意分辨率下保持空间认知的一致性。
- 设定波长基准分母里的 10000 决定正弦波的基础周期;指数 2i/d 让不同维度拥有不同频率,低维变化快、高维变化慢。
- 横坐标位置正弦编码对位置 x,偶数维度用正弦、奇数维度用余弦,组合成一个能唯一标识位置的向量。
- 二维合并横纵坐标各自的编码向量拼接或相加,得到二维空间指纹,再叠加到视觉 token 上。
视觉适配器:翻译官的转写台
速记符号是给视觉世界用的“方言”,文字主编只懂语言世界的“普通话”,中间需要翻译官转写。视觉-语言适配器就是这位翻译官:它接收 ViT 输出的高维视觉特征,通过一个轻量变换层,把它们投影到语言模型的嵌入空间。早期 Qwen-VL 论文中,这个适配器就是一层 MLP——把视觉 token 的维度映射到与文本 token 相同的维度,让两种模态在同一个向量空间里“对话”。
维度对齐只是表面功夫,真正的难点在语义对齐。视觉特征向量与文本嵌入向量不仅维度不同,分布也天差地别:视觉特征来自 ViT 的语义空间,文本嵌入来自语言模型的词向量空间。适配器要学的是一个跨模态投影,让“猫的视觉特征”与“猫的文本嵌入”在投影后的空间里距离很近。这个过程没有监督式的逐像素对应,而是通过海量图文对训练隐式学出来的,就像翻译官靠大量双语对照材料练出语感。
适配器还有一项职责是控制 token 预算。当输入图像分辨率很高时,视觉 token 可能成千上万,语言模型处理起来非常吃力。Qwen-VL 可以在适配阶段对 token 做压缩——把空间上相邻的若干 token 合并为一个。最简单的压缩方式就是平均池化:取一组相邻 token 各维度的均值,得到一个代表向量。压缩率越高,信息损失越大,但计算压力越小,这是后文“推理效率”要展开的权衡。
翻译官转写得好不好,直接决定主编的发挥空间。压缩太狠会丢细节,压缩太轻则下游计算量爆炸。Qwen-VL 通过适配器的维度设计与压缩策略,在“看懂细节”和“控制成本”之间找到平衡点——这也是工程落地中最需要调优的旋钮之一。
- 分组窗口将 N 个视觉 token 按顺序切成长度为 k 的连续窗口,每个窗口对应一个压缩目标。
- 组内逐元素求和把窗口内 k 个 token 向量在每一维度上分别相加,得到汇总向量。
- 求平均得到压缩 token汇总向量除以 k,得到该窗口的代表向量;整个序列长度从 N 变为 N/k,信息被浓缩。
Qwen语言模型:文字世界的主编
翻译官交付的是文字草稿,真正的“报告”还得由主编撰写。Qwen 语言模型就是这位主编:它接收视觉 token 与文本 token 拼接而成的完整序列,以一种叫“自回归”的方式逐词生成回答——每生成一个词,就把这个词追加到序列末尾,再预测下一个词。主编的每一步决策,都同时参考左边的视觉材料、用户问题和已经写出的前半句话。
在 Qwen-VL 中,视觉信息是以“序列前缀”的方式进入语言模型的:视觉 token 排在最前面,后面跟用户指令的 token。语言模型内部的注意力机制让后来的文本 token 可以“回头看”所有视觉 token,从而在写每个词时都能查询图像细节。这种设计的好处是语言模型原有的知识和能力几乎完全保留——不需要改造模型结构,只需让它学会读视觉 token 这种“新语言”。
主编的工作由语言建模目标驱动:预测下一个词的概率分布,并让正确答案的概率尽量高。训练时用交叉熵损失度量“模型给出的分布”与“真实下一个词”的差距,推理时则从预测分布中采样或贪心选取下一个词,循环往复直到生成结束符。回答的口吻、条理性、知识密度,都由主编在预训练和微调阶段积累的“语感”决定。
主编的文字功底是多年训练的结果,而它读图的能力则来自前面的视觉塔与适配器。Qwen-VL 并没有重新发明语言模型,而是很聪明地让“新部门”(视觉塔)学会向“老主编”汇报——老主编的写作能力、世界知识、推理技巧全部保留,只需学会参考视觉材料。
- 条件概率给定已经生成的前 t-1 个词 w<t,以及视觉上下文 v(就是那串视觉 token),模型预测第 t 个词的概率。
- 取对数化积为和整句话的联合概率是各词概率的连乘,取对数方便累加,同时把很小的概率值放大到可计算的数值范围。
- 负号求和对所有 T 个位置取负号再求和;模型越准,每项 log 概率越接近 0,损失越小,训练目标就是最小化这个损失。
预训练流程:三阶段特训计划
一个好的翻译团队不是天生默契的,要经过系统的特训。Qwen-VL 的多阶段预训练,很像翻译社的新人培养计划。第一阶段是“看图学说话”:让速记部和翻译官对着海量的图文对照材料训练——一张猫的照片配一句“一只橘猫坐在沙发上”。这个阶段的目标是建立视觉到语言的最基础映射,让模型明白“这些视觉符号大致对应哪些词”。此时视觉编码器通常是冻结的,只训练适配器和语言模型,相当于先让翻译官练基本功,别急着换速记员。
第二阶段是“全能实战训练”:把视觉编码器一并解冻,用更大规模、更多类型的多任务数据做联合训练——图文描述、视觉问答、OCR 文字识别、目标定位等任务混合在一起。这就像让各部门在真实订单中磨合:速记员要根据下游任务调整画符号的方式,翻译官要适应各种文体,主编要在实际场景中运用语言能力。全参数训练让整个系统的配合达到最优,泛化能力也更强。
第三阶段是“客户接待实训”:使用指令微调数据(SFT),教模型遵循用户的说话方式——用户问“图里有什么动物?”模型就回答“图里有一只橘猫”,而不是机械地输出一段描述。这个阶段数据量最小但质量要求最高,目的是把模型打磨成“听指挥、答所问”的助手。三个阶段环环相扣,缺一不可。
三个阶段的哲学是层层递进的:先确保“看得懂”,再追求“做得全”,最后打磨“听指挥”。跳过对齐直接微调,模型会缺少视觉理解底座;只做对齐不做微调,模型则像个不会看用户脸色的书呆子。Qwen-VL 的三阶段设计,是实践中被反复验证的稳妥路径。
- 对齐损失第一阶段图文对训练用的语言建模损失,让视觉 token 与文本语义完成初步对齐。
- 联合损失第二阶段多任务数据上的总损失,把图文描述、VQA、OCR 等任务的目标统一在一起优化。
- 指令微调损失第三阶段在高质量指令数据上的损失,专门调教模型遵循指令、格式化回答。
推理效率:token预算与性价比
流水线建好了,接下来要算经济账。翻译社每接一单,速记员画多少个符号、主编读多少页草稿,都直接决定成本和时效。在 Qwen-VL 中,这个“符号量”就是视觉 token 数,而它又由分辨率和 patch 尺寸共同决定:图像放大一倍,长宽都翻倍,token 数变成原来的四倍。看得越细,token 越多,理解越准,但计算开销也越大。
自注意力机制是开销的放大器。语言模型处理序列时,每两个 token 之间都要计算相关性,因此注意力部分的计算量随 token 数的平方增长——token 翻倍,这部分成本翻四倍。这就是为什么 token 预算必须精打细算:分辨率不是越高越好,而是要在“够看清”和“算得起”之间找平衡。Qwen-VL 支持把图像按 28 的倍数缩放到合适尺寸(如 448、672、896),既保证 patch 能整齐切分,又让用户按需求选择精度档位。
工程上还有一些辅助手段来优化效率:比如对不重要的区域用更低分辨率、对视觉 token 做压缩合并、或者限制单次推理的图像分辨率上限。Qwen-VL 的设计哲学是“把选择权交给用户”:提供从快速预览到精细识别的一整档分辨率选项,让不同业务场景自行取舍。
回看整个读图翻译社:速记部的格子粒度、坐标系的伸缩弹性、翻译官的转写与压缩、主编的逐字成文、三阶段特训的循序渐进,最后都汇入一个朴素的工程问题——在预算内把事情办好。Qwen-VL 架构的优雅之处,正在于每个环节都为这个问题给出了清晰且可调优的答案。
- 线性投影开销每个 token 要生成 Q/K/V,三个矩阵乘法共约 3nd² 次运算,加上输出投影就是 4nd²。
- 注意力矩阵开销QK^T 要计算 n×n 的相似度矩阵,再与 V 相乘,总共约 2n²d 次运算。
- 平方主导的悬崖n 增大时,n² 项增长远快于 n 项,token 数量成为推理成本的决定性因素。
AI 应用场景
截图级文档问答与报表理解
阶段:离线批量推理 / 在线问答服务
解决的问题:传统 OCR 加规则匹配的方案,面对版式多变的财报、票据、手写便签时脆弱不堪——只要表格结构稍有变化,规则就失效。Qwen-VL 直接把截图或扫描件作为图像输入,任意分辨率下既能识别文字,又能理解版式布局,用户用自然语言提问即可拿到结构化答案。
具体案例:财务团队每天处理几百张不同银行、不同年份的对账单。对接 Qwen-VL 后,只需上传截图并提问“这个月总支出是多少?最大一笔流水的日期是哪天?”,模型通过视觉定位与 OCR 能力,在任意分辨率图像中定位表格区域、读懂数字,返回精确答案,替代了原来逐份编写解析脚本的工作。
电商商品图自动打标与属性抽取
阶段:数据标注流水线 / 预训练数据清洗
解决的问题:人工为商品图打属性标签费时费力且标准不一。Qwen-VL 的视觉编码器天然适合“看图说话”任务,结合指令微调,可以把“图中有几件商品、什么颜色、什么款式、有无文字水印”等属性一次性抽取出来,替代多模型拼装的繁琐流程。
具体案例:某电商平台为百万级商品图打标签,传统方案要分别跑一个目标检测模型、一个 OCR 模型和一个颜色分类器,再写代码合并输出。改用 Qwen-VL 后,同一个模型读取商品主图,直接输出结构化 JSON:{“商品数”:2,“主色调”:“红色”,“品牌”:"XX",“水印”:true},流程从三模型变单模型,标注成本下降约 60%。
视障辅助读图与智能导览
阶段:端侧 / 云端推理服务
解决的问题:视障人士无法“看见”图片,需要一种把图像翻译成口语化描述的服务。Qwen-VL 的“图像→token→文本”流水线正好承担这个翻译角色,且能根据用户追问不断调整回答粒度,比固定模板的图说更灵活。
具体案例:无障碍辅助 App 接入 Qwen-VL 后,用户拍一张街景,App 自动生成描述:“前方人行道旁有一棵大树,树下有一辆蓝色共享单车,前方 20 米处是红绿灯。”用户继续问“我该往哪走?”模型结合图像内容回答“沿当前方向直行,在红绿灯处右转”。任意分辨率的支持让远近视距的拍摄都能被有效理解。
Python 演示
import numpy as np class MiniQwenVL: """迷你版Qwen-VL: 图像 -> patch -> token -> 2D位置编码 -> 池化压缩 -> 语言模型示意""" def __init__(self, patch_size=14, embed_dim=64, vocab_size=1000): self.p = patch_size self.d = embed_dim self.vocab = vocab_size self.patch_proj = np.random.randn(patch_size * patch_size * 3, embed_dim) * 0.02 self.lm_head = np.random.randn(embed_dim, vocab_size) * 0.01 def tokenize_image(self, image): H, W, _ = image.shape nrow, ncol = H // self.p, W // self.p tokens = [] for i in range(nrow): for j in range(ncol): patch = image[i * self.p:(i + 1) * self.p, j * self.p:(j + 1) * self.p] patch_flat = patch.reshape(-1) token = patch_flat @ self.patch_proj tokens.append(token) return np.stack(tokens), nrow, ncol def add_2d_position(self, tokens, nrow, ncol): for i in range(nrow): for j in range(ncol): idx = i * ncol + j tokens[idx, 0] += i / max(nrow - 1, 1) tokens[idx, 1] += j / max(ncol - 1, 1) return tokens def compress_pool(self, tokens, k=2): n_comp = len(tokens) // k comps = [] for i in range(n_comp): group = tokens[i * k:(i + 1) * k] comps.append(group.mean(axis=0)) return np.stack(comps) def lm_generate(self, tokens, steps=5): generated = [] for step_id in range(steps): vec = tokens[step_id % len(tokens)] logits = vec @ self.lm_head word_id = int(np.argmax(logits)) generated.append(word_id) print(f"第{step_id + 1}步: 预测词汇id = {word_id}") return generated def forward(self, image, compress_k=2, gen_steps=5): tokens, nrow, ncol = self.tokenize_image(image) print(f"输入图像 {W}x{H} -> 视觉token数: {len(tokens)}") tokens = self.add_2d_position(tokens, nrow, ncol) tokens = self.compress_pool(tokens, k=compress_k) print(f"经过k={compress_k}池化压缩后token数: {len(tokens)}") ids = self.lm_generate(tokens, steps=gen_steps) return ids if __name__ == "__main__": np.random.seed(42) H, W = 56, 56 image = np.random.rand(H, W, 3) model = MiniQwenVL(patch_size=14, embed_dim=64) model.forward(image)
patch = image[i*p:(i+1)*p, j*p:(j+1)*p]按 14×14 像素窗口切出图像块,对应速记员画格子的动作。patch_flat @ self.patch_proj把每个 patch 展平后乘投影矩阵,得到初始视觉 token,正是 ViT 的 patch embedding。tokens[idx, 0] += i / max(nrow - 1, 1)把行列坐标归一化后注入 token 的前两维,模拟二维位置编码。comps.append(group.mean(axis=0))对相邻 k 个 token 做平均池化压缩,对应视觉适配器的 token 压缩职责。logits = vec @ self.lm_head用压缩后的视觉 token 过输出头得到词表分布,模拟语言模型基于视觉上下文的下一步预测。
常见误区
误区“视觉 token 不就是把图片分成一块块像素塞给模型吗?就像把马赛克输入进去。”
正解像素是像素,token 是语义符号。视觉 token 是 patch 经线性投影、再经过十几层 Transformer 交互后得到的向量,它已经融合了该区域和全图其他区域的关系信息。就像速记员交出的不是照片复印件,而是经过分析提炼的“猫在沙发上”的简写符号——信息量远超原始像素,但又比像素更紧凑。
为何常见:因为 ViT 的输入确实源于像素分块,“分块→投影”这一步在视觉上太像切图,让人误以为模型直接消费像素。
误区“Qwen-VL 支持任意分辨率,所以 4000×3000 的照片不用任何处理直接塞进去就行。”
正解任何模型都有输入约束。Qwen-VL 的“任意分辨率”是指可以按需缩放到 patch 尺寸的整数倍(如 14 的倍数),并配合可伸缩的二维位置编码来保持空间结构。直接喂超大原图,token 数会爆炸,推理成本完全失控。实际做法是按业务需求选档位缩放,比如 448、672、896,而不是真的“原图直出”。
为何常见:厂商宣传语说“支持任意分辨率”,用户听到“任意”就理解为“无限制”,忽略了内部的分块与缩放工程细节。
误区“适配器不就是个全连接层吗?把视觉特征维度改成语言模型维度,没什么技术含量。”
正解维度对齐只是表面形式,适配器真正学的是跨模态语义映射——让猫的视觉特征和“猫”这个词的文本嵌入在同一个空间里相近。这个映射是海量图文对训练出来的,映射质量直接影响语言模型能否正确理解视觉内容。方向错了、分布偏了,主编拿到再好的速记稿也读不懂。一层 MLP 简单,但让这一层 MLP 学对东西,是整个多模态对齐的核心挑战。
为何常见:从实现代码看确实只有一行矩阵乘法,容易低估它背后训练目标和数据设计的分量。
误区“反正是训练,先做指令微调再做对齐不也一样?最后效果差不多。”
正解顺序是锚定关系。第一阶段对齐是给视觉和语言“牵线”,第二阶段联合训练是让全模型磨合,第三阶段微调是在成熟底座上调整行为风格。如果先做微调,模型连图文的对应关系都没建立,指令数据根本无法发挥作用;如果跳过联合训练,模型泛化能力不足,微调完只会死记硬背。就像新人培训必须先学认字、再学翻译、最后才敢接客户电话,顺序错了整个培养体系都会崩。
为何常见:很多人把 SFT 误当成“万能钥匙”,以为数据好就万事大吉,忽略了底座能力是前面阶段积累出来的。
误区“推理时把分辨率拉满,模型看得更细,效果一定最好。”
正解分辨率提升带来细节收益,但代价是 token 数平方级暴涨。注意力计算量随 token 数平方增长,分辨率翻倍成本翻四倍,而且过高的分辨率还会引入更多背景噪声和无关细节,有时反而干扰判断。实际部署要根据任务粒度选档:粗粒度场景问答用 448 足够,细粒度 OCR 或小目标定位再考虑 896 以上。
为何常见:“越清晰越好”是人的直觉,但模型的计算复杂度和注意力分散效应,让这个直觉在工程上不成立。
面试题
Q1. Qwen-VL 整体架构的三大部分是?
- A.视觉编码器、语言模型、适配器← 正确答案
- B.卷积层、全连接层、池化层
- C.编码器、解码器、注意力层
- D.生成器、判别器、损失函数
答案:A。Qwen-VL 是“双塔加一桥”结构:视觉塔是 ViT 编码器、语言塔是 Qwen 语言模型、桥是视觉-语言适配器。B 是传统 CNN 组件,C 是序列到序列框架,D 是 GAN 的组件,都不符合 Qwen-VL 的架构。
Q2. 视觉编码器采用的骨干网络是?
- A.ViT 视觉 Transformer← 正确答案
- B.ResNet 残差网络
- C.LSTM 循环网络
- D.VGG 卷积网络
答案:A。Qwen-VL 使用 ViT(Vision Transformer)作为视觉编码器,因为 Transformer 结构能与语言模型天然对齐,且擅长捕捉全局关系。CNN 与 RNN 不是该模型的视觉骨干。
Q3. Qwen-VL 图像分块的 patch 尺寸默认是?
- A.7×7 像素块
- B.14×14 像素块← 正确答案
- C.32×32 像素块
- D.224×224 像素块
答案:B。Qwen-VL 采用 14×14 的 patch 尺寸,448×448 输入对应 32×32=1024 个 patch,也就是 1024 个视觉 token。patch 越小格子越细、token 越多,14 是精度与成本之间的常用折中。
Q4. 视觉适配器的核心职责是?
- A.将视觉特征映射进文本空间← 正确答案
- B.对图像做高斯模糊降噪
- C.将语言模型参数全部冻结
- D.对文本做分词和词嵌入
答案:A。适配器相当于跨模态翻译官,把视觉 token 的向量空间投影到语言模型的嵌入空间,让两种模态在同一空间“对话”。B 是图像处理,C 是训练策略,D 是文本预处理。
Q5. 变分辨率输入时如何保持空间信息?
- A.统一缩放到固定 224 像素
- B.按缩放比例适配二维坐标← 正确答案
- C.直接丢弃位置编码信息
- D.随机初始化新的位置编码
答案:B。当图像缩放导致格子数量变化时,二维位置编码要按缩放比例对横纵坐标分别拉伸,保持格子间相对空间关系。A 放弃了任意分辨率,C 会失去空间结构,D 破坏确定性。
Q6. 预训练三阶段的正确顺序是?
- A.对齐预训练到指令微调← 正确答案
- B.指令微调到对齐预训练
- C.联合训练到参数随机化
- D.只做单阶段指令微调
答案:A。正确顺序是:图文对齐预训练→多任务联合训练→指令微调 SFT。先建立视觉到文本的基础映射,再全参数多任务磨合,最后用指令数据打磨回答风格。顺序颠倒会导致底座缺失,微调失效。
Q7. 自注意力计算复杂度与视觉 token 数的关系是?
- A.随时间线性增长 O(n)
- B.恒定不变 O(1) 开销
- C.随数量平方增长 O(n²)← 正确答案
- D.随数量立方增长 O(n³)
答案:C。注意力矩阵要计算每对 token 之间的相关性,n 个 token 产生 n×n 的关联矩阵,所以复杂度是 O(n²)。这正是高分辨率输入导致推理成本暴涨的数学根源,token 翻倍开销翻四倍。
Q8. 图像分辨率从 1:1 变为 4:3 时,2D 位置编码如何适配?
- A.横纵维使用相同的插值比例
- B.横纵维按各自缩放比拉伸← 正确答案
- C.删除所有图像位置编码
- D.用文本位置编码替代图像
答案:B。非等比缩放(如从正方形变 4:3)时,横纵方向的格子数量变化不同,位置编码必须按各自方向的缩放比例分别拉伸,才能保持空间相对位置正确。A 只适用于等比缩放,C 和 D 会破坏空间信息。
Q9. 视觉 token 生成过程中包含哪些步骤?
- A.图像划分成均匀 patch← 正确答案
- B.展平并线性投影为向量← 正确答案
- C.叠加二维位置编码信息← 正确答案
- D.直接将原像素送入语言模型
答案:ABC。视觉 token 的生成是“切块→展平→线性投影→加位置编码”,最终得到的是语义浓缩向量。D 错误,语言模型从不直接读像素,它只读转换后的 token 序列。
Q10. 关于多阶段预训练的说法正确的有?
- A.先冻结视觉编码器再全参训练← 正确答案
- B.多任务数据能提升泛化能力← 正确答案
- C.指令微调让模型听从用户命令← 正确答案
- D.单阶段即可达到完整效果
答案:ABC。第一阶段的典型策略是冻结 ViT 只训练适配器和语言模型,避免视觉特征剧烈震荡;第二阶段多任务联合训练提升泛化;第三阶段 SFT 对齐用户意图。D 错误,单阶段训练无法同时建立视觉理解与指令跟随能力。