面试知识库
中 进阶

多模态大模型基础#

一句话答案#

主流多模态大模型(VLM)= 视觉编码器(ViT/CLIP/SigLIP)把图像切成 patch 编成向量 → 连接器(线性/MLP、Q-Former、Perceiver Resampler)把它们压成”视觉 token”对齐到 LLM 的词向量空间 → LLM 主干把视觉 token 和文字 token 一起做自回归。一张图通常消耗几百到一两千 token,高清靠切块/动态分辨率换更多 token;训练走”对比学习对齐 → 图文预训练 → 视觉指令微调”三步。关键取舍是拼接式(late fusion,便宜、复用现成模型)vs 原生多模态(early fusion,能力上限高但训练贵)。

核心要点

1. 典型架构:图像怎么变成 LLM 能读的 token#

图像 → resize/切块 → ViT(patch 14×14 → 每块一个向量,CLIP/SigLIP 预训练)
     → 连接器(Projector):把 N 个视觉向量映射/压缩成 M 个 LLM 维度的视觉 token
     → [文字 token ... <image> 视觉 token×M ... 文字 token] → LLM 自回归生成文字
plaintext
  • 视觉编码器:ViT 把图像切成固定大小 patch,每个 patch 线性投影后过 Transformer,输出 patch 级特征。用 CLIP(对比学习训练,特征天然与文本语义对齐)或 SigLIP(把 CLIP 的 softmax 对比损失换成 sigmoid 逐对损失,小 batch 也稳、效果更好)的 ViT 做初始化,通常冻结或小学习率微调。
  • 连接器三种流派:① 线性/MLP 投影(LLaVA 系)——每个 patch 一个 token,简单、保留最多信息,token 数多;② Q-Former(BLIP-2)——一组可学习 query(如 32 个)对视觉特征做 cross-attention,输出固定数量 token,压缩比高但可能丢细节;③ Perceiver Resampler(Flamingo)——思路类似,用固定数量 latent 重采样任意长度视觉特征。InternVL 等用 pixel shuffle 把相邻 2×2 patch 拼成一个 token,把 token 数压到 1/4。
  • LLM 主干:普通 decoder-only LLM,视觉 token 与文字 token 在序列里平等参与注意力(见 Transformer架构),输出仍是文字(理解类模型不产出像素)。

2. 分辨率与 token 数:图片有多”贵”#

  • 固定分辨率:LLaVA-1.5 用 336×336 输入、patch 14 → 24×24 = 576 个视觉 token;InternVL 用 448×448 + pixel shuffle → 每块 256 token。
  • 高清切块(AnyRes / 动态分辨率):把大图按网格切成若干 448/336 的子图各自编码,再加一张全局缩略图,token 数 = 块数 × 每块 token。一张 A4 文档切 6–12 块就是 1.5k–3k token,这是文档/OCR 场景能力跃升的关键,也是成本来源。
  • 原生动态分辨率(Qwen2-VL 起的 Qwen-VL 系列):不切块,直接按原图长宽比生成任意数量 patch,配 2D 位置编码(2D-RoPE/M-RoPE),约每 28×28 像素一个 token,图越大 token 越多,可设上下限。
  • 量级记忆:一张普通图片 ≈ 几百到 1k+ token,高清文档页 ≈ 1–3k token;商用 API 多按像素面积折算 token(常见量级是 1 百万像素约 1–1.5k token),低清模式可降到几十到一百多 token。所以”传图”的成本经常是同等信息量纯文本的几倍,与分词机制的对比见 Tokenizer与分词原理。

3. 训练范式:三步走#

阶段做什么训练哪些参数数据
0. 对比学习对齐(CLIP/SigLIP 预训练)图像编码器与文本编码器双塔,InfoNCE 拉近配对图文、推远非配对双塔全量数亿级网络图文对
1. 图文对齐预训练冻结 ViT 与 LLM,只训连接器,让视觉 token “说 LLM 的语言”(caption 任务)连接器数十万到数百万图文对
2. 视觉指令微调解冻 LLM(可含 ViT),用”图 + 问 + 答”对话数据学会看图回答、OCR、图表、定位连接器 + LLM(+ViT)数十万到数百万条指令,常含合成数据
3. 偏好对齐(可选)RLHF/DPO 减少幻觉、对齐格式LLM人工/模型偏好对

阶段 0 产出的 CLIP/SigLIP 本身也是多模态 Embedding 模型,可直接做图文检索(与文本 Embedding 的关系见 Embedding原理与选型)。

4. 拼接式(late fusion)vs 原生多模态(early fusion)#

维度拼接式 / 适配器式(LLaVA、Qwen-VL 到 Qwen3-VL、InternVL)原生多模态(GPT-4o、Gemini、Qwen3.5 起的 Qwen 主干、Chameleon、Fuyu 类)
做法预训练好的视觉编码器 + 预训练好的 LLM,用连接器桥接、后期微调从预训练起就把图像(patch 或离散视觉 token)与文字混在一个序列里联合训练
成本低:复用两边成果,几十万图文对即可高:需从头或大规模继续预训练
能力受视觉编码器上限制约(分辨率、细粒度),模态间交互”后天”跨模态推理更深,可统一理解与生成、支持音频/视频交错输入
现状开源中小模型和企业自训仍常用头部闭源模型主流;开源已跟进,如 Qwen3.5(2026-02)起主干模型用 early fusion 原生支持图文,不再单独出 VL 分支

5. 能力与局限;生成类、语音视频一句带过#

  • 强项:OCR 与文档理解(含表格、手写)、图表问答、截图/UI 理解、视觉定位(grounding)——以文本形式输出 bbox 坐标或点,支撑 GUI Agent(见 [AI Agent技术趋势与框架选型](/topics/ai-agent/AI Agent技术趋势与框架选型))。
  • 弱项:计数(超过几个就不准)、细粒度空间关系(左右/上下/重叠)、小字与低分辨率细节、长文档跨页聚合;多模态幻觉——描述图中不存在的物体(object hallucination,POPE 等基准衡量),文字先验压过视觉证据。
  • 理解 vs 生成:本文讲的是”看图说话”的理解类模型;图像生成走扩散模型(Stable Diffusion / DiT 类,从噪声逐步去噪),二者架构不同,统一理解与生成的模型仍在演进。
  • 语音与视频:语音先过音频编码器(Whisper 类)变成每秒数十个音频 token 再进 LLM;视频按 1–2 fps 抽帧、每帧当图处理并做时间维压缩,所以长视频 token 极贵、需要采样与摘要。

6. 应用层:多模态 RAG 与 API 调用#

面试高频题”怎么让 LLM 读懂 PDF 里的图表?“有三条路线:

  1. 解析为文本再走文本 RAG:版面分析 + OCR(MinerU、PaddleOCR 等)抽文字与表格,图表用 VLM 生成一段”图注/数据描述”替身文本,一并切块入库。成本低、可复用现有管线(见 RAG架构与实现),但图表语义靠替身文本的质量。
  2. VLM 端到端读页面:把 PDF 逐页渲染成图,直接喂 VLM 问答,省掉 OCR 管线、对复杂版式/手写最稳,但每页上千 token、页数多时要先检索再读。
  3. 视觉检索(ColPali 类,或 Qwen3-VL-Embedding 这类多模态向量模型):用 VLM 把每页截图编成多个 patch 级向量,查询端 ColBERT 式 late interaction 打分,检索”像页面”的页再交 VLM 回答,跳过 OCR 且保留图表信息,代价是索引体积大。 生产上常是 1 + 2 混合:文本块做主检索,命中页附带原图交给 VLM 作答。

API 调用:消息 content 里混排 {"type":"text"} 与 {"type":"image_url"/"image", 公网 URL 或 base64},可选 detail/分辨率档位控 token;多图/多页时注意单请求 token 上限与费用,并做图片压缩、只传相关页。

面试回答(2分钟版)

现在主流的多模态大模型基本是三段式:第一段是视觉编码器,一般用 CLIP 或 SigLIP 预训练的 ViT,把图切成 14×14 的 patch,每个 patch 编成一个向量;第二段是连接器,把这些视觉向量映射到 LLM 的词向量空间变成”视觉 token”,简单的就是一层 MLP,像 LLaVA,要压缩就用 Q-Former 或 Perceiver Resampler 输出固定数量 token;第三段是普通的 LLM,视觉 token 和文字 token 放在同一个序列里做自回归。分辨率直接决定 token 数,336 的图大约 576 个 token,高清文档靠切块或动态分辨率能到一两千甚至三千 token,所以传图比传文字贵不少。训练是三步:先有 CLIP 对比学习把图文对齐,然后冻住两边只训连接器做图文预训练,最后解冻 LLM 做视觉指令微调,必要时再做偏好对齐减少幻觉。架构上还要分清拼接式和原生多模态:开源主流是拼接式,把现成的视觉编码器和 LLM 桥起来,便宜;GPT-4o、Gemini 这类是从预训练起就混合多模态,能力上限更高但贵。能力上 OCR、图表、定位都不错,弱点是计数、细粒度空间关系和多模态幻觉。落地最常见的问题是怎么读 PDF 图表,三条路:OCR 加 VLM 写图注再走文本 RAG、PDF 逐页渲染直接喂 VLM、或者 ColPali 这种视觉检索直接检索页面截图,生产上一般文本检索为主、命中页附原图让 VLM 回答。

追问与易错

追问方向:

  • 为什么用 CLIP/SigLIP 的 ViT 而不是随便一个 ImageNet 分类 ViT? → 对比学习训出的特征已经和文本语义对齐,连接器只需做小的空间映射就能让 LLM 读懂,收敛快、数据少;分类 ViT 的特征偏向类别判别,对齐成本高得多。
  • 一张图到底多少 token,怎么控成本? → 取决于分辨率与连接器:固定 336 约 576,高清切块 1–3k,API 常按像素面积折算。控成本靠压图到必要分辨率、用低清档位做粗筛、多页文档先检索再传、以及缓存重复图片的前缀。
  • Q-Former 和 MLP 投影怎么选? → MLP 每 patch 一个 token,信息保留最全,OCR/文档类效果更好但 token 多;Q-Former 固定 32/64 个 query 压缩率高,适合通用描述和低成本,细粒度任务容易丢信息。当前开源主流偏向 MLP + pixel shuffle 折中。
  • 多模态幻觉怎么缓解? → 数据侧加入负样本与”图中没有 X”的指令数据,训练侧做 DPO 偏好对齐,推理侧提高分辨率、让模型先 grounding 再回答、对关键结论用 OCR 或第二次询问交叉验证。
  • 多模态 RAG 里图片怎么做向量? → 两条路:用 CLIP/SigLIP 类双塔模型对图片和文字统一编码,做跨模态近邻检索;或 ColPali 式把页面截图编成 patch 级多向量做 late interaction,精度高但索引大。很多场景更务实的是让 VLM 先生成文字描述再走文本向量。
  • 视频输入和图像有什么本质不同? → 视频按 1–2 fps 抽帧后每帧像一张图,token 数随时长线性爆炸,所以要做时间维压缩(相邻帧 token 合并)、关键帧采样,并在位置编码里加时间维度(如 M-RoPE)。

易错点:

  • ❌ “VLM 在像素上做理解” → 是把图像切 patch 编码成离散数量的视觉 token 送进 LLM,分辨率不够、小字看不清是常见失效原因。
  • ❌ “GPT-4o 和 LLaVA 架构一样,都是图片接 LLM” → LLaVA 类是后期拼接,GPT-4o/Gemini 是原生多模态从预训练联合训练,交互深度与成本差异很大。
  • ❌ “多模态模型既能看图又能画图” → 理解类 VLM 只输出文字;图像生成是扩散模型等另一套架构,统一模型是少数。
  • ❌ “做多模态 RAG 必须先 OCR” → VLM 端到端读页或 ColPali 视觉检索都可跳过 OCR;是否 OCR 取决于成本、版式复杂度与可解释性需求。