多模态大模型 · 原理交互图解

多模态大模型如何"看懂"图片

它既不会"看",也没有眼睛。所谓识别图片,本质是把图像变成一串"视觉词",塞进本来只会处理文字的大语言模型里,让它"读图说话"。下面用多张可交互图解拆开看。

01一句话原理

大模型原本只认文字(Token)。要让它认图,关键是加一个"翻译官":把图片切成小块、编码成一串向量(视觉 Token),再投影到大模型能理解的"词向量空间",最后和文字一起喂给 LLM 去理解和回答。

🖼️ 图片像素矩阵 ✂️ 切块编码视觉 Token 🔗 投影对齐同空间 🧠 LLM理解+回答 💬 答案
核心类比:对 LLM 来说,一张图 ≈ 一段特殊的"外语句子"。视觉编码器负责把图"翻译"成这种外语,投影层负责把它"转写"成 LLM 母语(词向量),LLM 再像读文章一样读它、并用中文回答你。

02图片是怎么被"切开"的(互动)

图像本质是一个由像素组成的矩阵(比如 224×224 个格子,每个格子有 RGB 颜色)。Transformer 不擅长直接吃像素,所以先把它切成规则的小方块——Patch(图像块)。每个 Patch 会被压成一个向量,成为后续处理的"视觉词"。

👉 点击下面的按钮改变切块粒度,再点一下任意小块,看它如何变成一串向量(示意):

图像尺寸
224 × 224
切块粒度(Patch 数/边)
4 × 4
→ 视觉 Token 数量
16
每个 Token 是一个 768 维(示意)向量,而非一个字。
选中 Patch 的向量(点击图中方块):
未选中 — 点图中任意一块试试
为什么是向量而不是像素?一个 224×224×3 的像素块有 15 万个数字,又冗余又难学。切成十几个 Patch、再压缩成少量"语义向量",既降维又保留"这块大概是什么"(边缘、纹理、颜色、形状),这正是 Transformer 擅长处理的序列形式。

03三大核心部件(点击查看)

一个能看图的多模态大模型,通常由三部分拼起来。点下面的卡片看每部分干什么:

👁️
视觉编码器
Vision Encoder
🔗
对齐投影层
Projector / Adapter
🧠
大语言模型
LLM (Decoder)
👁️ 视觉编码器 (ViT)图→视觉特征序列 🔗 投影层映射到 LLM 词空间 🧠 LLM图文混合→生成回答

04视觉 Token 是怎么"进"LLM 的

投影之后,每个视觉 Token 就是一个和文字词向量同维度、同空间的向量。于是 LLM 的输入序列里,可以像插文字一样插入一串"图像占位符",例如:

输入序列 = [ <image> 🟦🟦🟦…(N个视觉Token) </image> ] + [ 这张图里有什么? ]

LLM 完全不知道这些是"图像",它只看到一串特殊 Token,和文字 Token 一样参与自注意力计算——每个词都能"看到"每个视觉 Token,从而把图上的信息和问题关联到一起。最终自回归地吐出答案。

🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 视觉 Token(图像编码) "图里有什么?" 文本 Token 🧠 Transformer 统一注意力计算 两类 Token 拼成同一条序列,一起算注意力
关键一步——投影层:如果缺了它,视觉向量和文字向量"语言不通",LLM 读不懂。投影层(如 LLaVA 的一个小 MLP,或 BLIP-2 的 Q-Former)就是那个"同声传译",把"图像语"翻译成"文字语"。很多方案里视觉编码器和 LLM 都冻结不动,只训练这薄薄一层就能获得看图能力。

05CLIP:让"图"和"文"说同一种语言(互动)

很多多模态模型的根基是 CLIP:它用"对比学习"把图像和文字塞进同一个向量空间——匹配的图文靠得近,不匹配的推远。这样模型就学会了"图义"和"词义"的对齐,也就能零样本认图。

👉 选一个你认为和左边图片最匹配的文字描述,看相似度条:

🐱 一只趴着的橘猫
🌳 有太阳和树的风景
🚗 一辆红色汽车
当前:🌳 有太阳和树的风景(高匹配)
为什么重要:CLIP 训练时看了 4 亿对"图+说明文字",学会的不是"这是树",而是"树的画面"和"'树'这个词"在向量上靠近。于是你给它没见过的图,它也能靠"最近的文字"判断类别——这就是零样本识别,也是后续 VLM 的"视觉常识"来源。

06训练两阶段

🧊冻结主干,只练"翻译"

视觉编码器(ViT)和 LLM 通常保持冻结(不更新参数),只用海量"图+文"对训练中间的投影层,把视觉特征对齐到 LLM 的词空间。便宜、稳定、不易遗忘。

💬教它"按指令看图答问"

用多模态对话数据(问题+图+答案)做指令微调,让模型学会"描述、计数、推理、对比"等具体能力,从"能对齐"变成"会对话"。这一步常用 GPT-4 生成的高质量问答对来蒸馏。

阶段训练对象数据目标
对齐预训练仅投影层(其余冻结)大规模图-文对视觉↔语言同空间
视觉指令微调投影层 + LLM(轻量)多模态对话/QA听懂指令、会答问

07一次"看图问答"的完整流程(分步)

点下面步骤,看从你发图到出答案,中间发生了什么:

08它到底为什么能"看懂"

🎯编码器学到语义

ViT 在海量图文上预训练,每个 Patch 向量已携带"边缘/物体/场景"等语义,而非裸像素。

🌉投影打通两种语言

投影层让"图像语"和"文字语"落在同一空间,LLM 才能读懂视觉 Token。

🧩LLM 提供常识与推理

LLM 本身的世界知识 + 注意力关联,把"图上的内容"和"你的问题"连起来,生成答案。

一句话:"看懂"= 编码器提取语义特征 + 投影做语言翻译 + LLM 用常识推理回答。它不是"看见"了画面,而是"读到"了画面被翻译成的一串向量,再结合自己学过的知识作答。

09局限与误区

误区:它有眼睛:其实全程是向量计算,没有"看见"的主观体验。
空间/细节弱:数清几个物体、读准小字 OCR、精确定位常被搞错。
会幻觉:图里没有的东西也可能被自信地编出来。
不真正理解因果:能描述"猫在桌上",未必理解"为什么/会怎样"。
对抗脆弱:人眼无感的小扰动可能让它判错。
依赖训练分布:罕见物体、新组合容易翻车。
实用建议:高精度的"看图数数/读小字/定位"别只信多模态模型,配合专用 OCR / 检测模型更稳;关键场景要求它给出依据(引用区域)并人工复核。

10一张图总结

🖼️ 输入图片像素矩阵 👁️ ViT 编码切块→视觉特征 🔗 投影层对齐词空间 🧠 LLM读图+推理 💬 答 图片 = 一串"视觉词",被翻译进 LLM 的母语后,由它读图作答 根基:CLIP 式图文对齐 · 部件:视觉编码器 / 投影层 / LLM · 训练:对齐预训练 + 视觉指令微调

所以,多模态大模型识别图片的秘密不在于"看",而在于把图翻译成 LLM 读得懂的语言