跳到正文
AI 知识地图 0.18 · 2026-07-30
关于与纠错文字目录 / Search
理解原理

多模态

让一个模型同时看懂图、听懂声、读懂字

Multimodal · 多模态大模型

建议 25–35 分钟 · 中级 · 需要:了解「Transformer」「嵌入」的基本概念

核心命题 多模态指一个模型同时处理文本、图像、音频、视频等不同「模态」的信息。它靠两块基石成立:Transformer 对模态无感(什么都能切成 token),以及把不同模态对齐到同一个语义空间(让「猫的图」和「猫」这个词靠得近)。模态一旦打通,图文问答、文生图、看屏幕操作界面才成为可能。
读完这一页,你应该能自己回答:
  • 为什么要——为什么用一个模型统一处理图文声,而不是各用各的。
  • 凭什么能——为语言设计的架构,凭什么能吃图像和声音。
  • 灵魂在哪——图的 token 和文的 token,怎么让模型知道它们说的是同一件事。
  • 怎么接上——一个会说话的模型,怎么长出「眼睛」。
  • 解锁了什么——模态打通后,哪些以前做不到的事成为可能。
  1. 现实任务跨模态,且一个模型统一处理能让不同模态互相印证——所以要多模态。(§1)
  2. 第一块基石:Transformer 对模态无感,什么都能切成 token 一起算。(§2)
  3. 但「能一起算」不等于「懂它们是一回事」,所以需要第二块基石。(§2→3)
  4. 第二块基石:建立跨模态对齐;可以是 CLIP 式共享表示,也可以是投影器或交叉注意力连接。(§3)
  5. 工程上,用视觉编码器把图变成视觉 token、投影进词向量空间,和文字 token 一起喂给大模型。(§4)
  6. 模态打通后解锁图文问答、文生图、看屏幕操作、无障碍等。(§5)
  7. 但对齐质量决定上限、信息密度差异大、图上也会幻觉。(§6)

1为什么要「多模态」直觉

多模态模型要解决的问题可以用一句话概括:让同一个模型同时处理图、文、声等多种形式的信息,而不是为每种形式各训一个专用模型。这个目标不是出于工程上的好奇,而是由两个现实理由推动的。

第一个理由是,现实任务本身往往是跨模态的。看图说话需要把视觉内容转成语言;听声辨物需要把声音信号和物体的类别知识联系起来;阅读带插图的文档需要同时理解文字和图片、并弄清它们之间的对应关系。如果把这些模态完全割裂开、各自用独立模型处理,任务所依赖的“联系”就丢掉了:一个只看文字的模型无法利用插图中的结构信息,一个只听声音的模型无法借助文字命名它听到的东西。多模态模型的价值,恰恰在于把这种联系保留在同一个计算过程中。

第二个理由是能力层面的:把不同模态接入同一模型系统之后,模型可以做到联合条件化和跨模态推理。所谓联合条件化,是指生成或判断时同时以多种模态的输入为依据——比如回答“这只猫趴在哪里”时,模型同时利用图像里猫的位置和问题中“猫”这个指称。所谓跨模态推理,是指在一种模态中观察到的东西可以触发对另一种模态内容的推断或修正。这种能力只有在模态之间建立了信息通道之后才会出现。

需要注意,“同一系统”并不是一种固定的架构。它可以是端到端的统一模型,所有模态从一开始就共享一套参数;也可以是由专用编码器、投影器、适配器和语言模型等模块组合而成的系统。关键在于,无论内部如何组织,从外部看,多模态系统的输入是一种或多种模态的数据外加任务指令,输出则是文本、图像、声音、动作或某种跨模态判断。它的处理流程可以分解为两步:先把各模态编码成可计算的表示,再在这些表示之间建立跨模态信息通道,让信息能够在模态间流动。

对输出结果的解释必须回到具体任务。例如,一次图文问答得到“猫趴在键盘上”,这只能说明模型在这次任务上正确地把图像证据和问题关联了起来,并不代表模型的全部视觉能力在任何场景下都可靠。反过来,如果某个任务并不需要跨模态联系——比如一段纯文本的分类、一张图的单模态识别——专用模型通常更简单、训练成本更低,也更容易调试。多模态不是无条件更优,而是在任务确实横跨模态时才体现出不可替代的价值。

因此,多模态的本质不是“把几个模型拼在一起”,而是让一个模型在一个统一的表示里同时容纳并关联不同模态。只有信息在统一的表示空间里真正发生了关联,才能产生 1 + 1 > 2 的效果;若只是把几个模型的输出机械拼接,跨模态联系并不会自动出现。

2第一块基石:Transformer 对模态无感直觉

Transformer 最初是为语言建模设计的,但它能够被直接用来处理图像和声音,原因在于它对自己的输入有很强的“无感”特性:它不关心输入到底是什么,只关心输入能不能被切成一串 token,也就是一串向量。只要满足这个条件,任何来源的数据都能走同一套计算流程。

具体做法是把不同模态强制变成同一种形状。一张图被切成一个个小方块,每个小方块当作一个“词”来编码;一段音频被切成一帧一帧,每帧同样编码成向量;文字本来就由词元组成。于是,来自完全不同感官通道的信息被统一成了“一串 token”这一种数据结构,同一套 Transformer 就能照单处理。

这解决了多模态的第一个门槛——能不能一起算。在这一层里,输入是图像块、音频帧或文字经过编码后得到的向量序列,输出则是 Transformer 更新后的 token 表示。更新之所以有效,靠的是自注意力机制:序列里的每个 token 都能与其他 token 交换信息,每个位置的输出都综合了全序列的上下文。正因为这个机制只依赖“位置之间两两交互”这种抽象关系,而不依赖输入的具体物理含义,同一个计算骨架才能不加修改地处理不同来源的序列。

但必须清醒地看到这一层的边界:输出表示只能说明模型完成了一次数值变换。如果没有配对训练或其他对齐信号,两个模态中位置相近的 token 并不能被解释为同一个概念。也就是说,“能一起算”不等于“懂它们是一回事”。

把猫的图切成 token、把“猫”这个字也变成 token,塞进同一个模型之后,它们此刻只是两串各说各话的数字。图像 token 的语言来自像素块,文字 token 的语言来自词表,两者之间没有任何天然的对应关系。模型凭什么知道这串图 token 和那个字指的是同一个东西?Transformer 自己回答不了这个问题。它只负责把序列算下去,而“这串数字与那串数字语义相同”这种知识,必须由额外的对齐机制注入。这正是下一块基石要解决的问题。

3第二块基石:用数值例子理解跨模态对齐数学直觉

上一块基石留下了一个悬而未决的问题:图像 token 和文字 token 虽然能进同一个 Transformer 一起算,但模型并不知道哪串数字和哪个词指的是同一个东西。跨模态对齐要解决的就是这个问题——让“猫的图”和“猫”这个词,在模型眼里对应上。

一种重要而直接的方法是学习可比较的跨模态表示:把配对的图文向量拉近,把不配对的推远。这是 CLIP 的路线。它的做法是用海量“图 + 对应文字说明”的配对数据,同时训练两个编码器——一个看图、一个读文——然后施加对比训练:配对的图和文向量互相靠拢,不配对的互相推开。这套目标函数正是“嵌入”概念里那套对比学习,只不过作用对象跨了模态。训练完成后,图像和文字就共享了同一个语义空间:不同模态各有自己的编码器,但都被映射进同一个空间里,让“猫的图”和“猫”这个词落在相近的位置。有了对齐,图 token 和字 token 才真正“说同一种语言”,这个共享空间也是文生图能够“按文字找到对应画面”的地基。

不过需要指出,多模态系统并不一定把所有 token 永久压进单一共享空间。另一种做法是保留视觉特征不动,再通过投影层或交叉注意力把它们接入语言模型。无论走哪条路线,共同目标是一致的:建立可学习的模态对齐与信息通道。

对齐的效果可以用一个数值例子看清楚。设猫图向量 v = (0.8, 0.6),文本“猫”的向量 t₁ = (1, 0),文本“键盘”的向量 t₂ = (0.6, 0.8),三个向量长度都为 1。长度归一化之后,余弦相似度就等于点积。逐一计算:v · t₁ = 0.8 × 1 + 0.6 × 0 = 0.8,而 v · t₂ = 0.8 × 0.6 + 0.6 × 0.8 = 0.48 + 0.48 = 0.96。于是这张猫图向量与“键盘”的相似度 0.96 反而高于它与“猫”的相似度 0.8。这个结果并不矛盾:如果这张图表现的是“猫趴在键盘上”的场景,其视觉表示里键盘像素占据了相当分量,局部表示更匹配“键盘”是完全合理的。它恰好说明相似度分数必须结合具体任务来解释。

对齐训练的输入是成对或带对应关系的图文样本,输出是可比较的表示或可跨模态查询的特征。训练目标很明确:提高正确图文配对的相似度,降低错误配对的相似度。在检索场景下,模型按相对分数排序,分数越高表示“在当前候选集合中更匹配”,但它不是一个事实概率。单个相似度数值不能保证模型数得清键帽数量,也不能保证它理解空间关系;如果配对数据本身带有偏差、候选集合发生变化,或者任务要求计数与空间推理,单靠全局对齐就不够了。

把两块基石放在一起看:Transformer 让不同模态能一起算,对齐让它们说同一种语言。没有对齐,多模态就只是几串互不相干的 token 硬凑在一起;对齐才是多模态系统真正打通模态的灵魂所在。

图:猫 字:「猫」 共享语义空间 猫图 与「猫」→ 靠在一起 车图 与「汽车」
图 1 对齐:不同模态各有自己的编码器,但都被映射进同一个语义空间,让「猫的图」和「猫」这个词落在相近的位置。有了对齐,图 token 和字 token 才「说同一种语言」。

4怎么把「看」接到「说」上工程

前两节讲的是“能不能一起算”和“怎么对齐”,现在落到一个更具体的场景:已经有一个很会说话的大语言模型,怎么让它长出“眼睛”,能够边看图边答话。

一种主流做法非常直接,可以看作一条三段的接入链。第一段是视觉编码器:把输入图像变成一串视觉 token,也就是图像特征的向量序列,这一步完成的是从像素到可计算表示的转换。第二段是投影层:把这些视觉 token 对齐进大模型的词向量空间,让它们看上去像大模型认识的“词”。第三段是拼接与生成:把投影后的视觉 token 当成一些特殊的“词”,拼在文字 token 前面,一起喂给大模型。于是大模型就能像“读文字”一样“读”这张图,然后照常自回归地生成回答——它在每一步预测下一个 token 时,既能看见图像内容,也能看见问题文字,两者在同一个序列里相互作用。

这条接入链的输入是一张图和文字问题,输出是语言模型生成的答案。各部分的分工是明确的:视觉编码器负责提取图像特征,投影层负责把特征变成语言模型可接收的视觉 token,语言模型再结合文字 token 逐步生成回答。整个流程之所以可行,正是因为前两块基石已经就位:视觉 token 和文字 token 是同一种数据结构,所以能进同一个序列;投影层完成的对齐让模型知道这些视觉 token 表达的是图像语义,而不是一串无关的数字。

解释输出时需要保持清醒:答案里的词是条件生成的结果,不是视觉传感器的直接读数。模型“看见”的其实是编码压缩后的图像表示,细小文字、空间定位关系和超高分辨率图像中的细节可能在这一压缩过程中丢失。因此,凡是涉及读图中小字、判断精确位置、或依赖高分辨率细节的任务,都应当用对应的图像切片或放大区域单独验证模型的回答,而不能默认它“看清了”整张图。

图像 视觉编码器 视觉 token +文字 token 大模型 答案
图 2 给大模型装眼睛的常见做法:图像 → 视觉编码器 → 视觉 token(投影进词向量空间)→ 和文字 token 拼在一起 → 喂给大模型。模型于是能「边看图边答话」。

5模态打通,解锁了什么综合

把图文声接进同一个模型之后,之前做不到或做不好的事开始成为可能。这些新能力不是凭空出现的,每一种背后都对应着前面建立的机制:

能力靠什么实现
图文问答、读懂文档里的图表同一模型里的图文对齐与联合推理
文生图、文生视频文本与图像在共享空间对齐,才能“按文字找到画面”
Agent 看屏幕、操作界面把界面截图当作视觉输入来理解
无障碍应用:读图给视障者、语音交互跨模态转换,如图 → 文、文 → 声

这张能力表的输入是一个具体的跨模态业务任务,输出是应该采用的转换方向与验收结果:图文问答输出答案,文生图输出图像,屏幕 Agent 输出受控动作。选择能力时的思考顺序应当是:先判断哪些模态为任务提供条件、哪种模态承载最终结果,再沿“对齐—生成”这条链逐段验证模型是否真的具备所需的那一段能力。解释结果时也要限定范围:一次成功的图文问答只能说明模型在该任务切片上表现合格,“支持图像输入”不能推出 OCR、图表推理、空间定位和视频理解全部达标。

从更宏观的角度看,多模态大模型可以理解为给大语言模型加装了处理其他模态的入口和对齐层,核心的“理解与生成”仍然沿用语言模型那套机制。它并不是推倒重来的全新体系,而是语言模型能力的自然扩展。这也解释了为什么今天主流的模型几乎都是原生多模态的:既然对齐和入口的代价已经被不断压低,而收益覆盖了上面整张表,那么把多种模态纳入同一个系统就成了顺势而为的选择。

能力靠什么
图文问答、读懂文档里的图表同一模型里图文对齐、联合推理
文生图 / 文生视频文本与图像在共享空间对齐,才能「按文字找到画面」(见「图像生成」)
Agent 看屏幕、操作界面把界面截图当作视觉输入来理解(见「计算机操作」「AI Agent」)
无障碍:读图给视障者、语音交互跨模态转换(图→文、文→声)

6代价与挑战工程

多模态系统引入了纯文本模型没有的新失败来源,可以把它们归成三类:对齐、计算与生成。要诊断一次失败,不能只看最终回答——单看回答无法区分模型到底是没看清、没对齐,还是语言模型自己脑补了内容。正确做法是把失败样本、模态原件和中间表示放在一起,按一条因果链逐层检查:原始输入是否清楚;编码是否保留了关键信息;跨模态对应是否正确;生成是否忠于证据。每一层都可能成为首次出错的环节,而首次出错的位置决定了应当采取的处置方式。

第一类代价出在对齐上。对齐质量决定上限:图文对齐训练得不好,模型就会“看错”——把图中的东西认成别的,或者在图文之间建立错误的对应。多模态系统的成败,很大程度上取决于对齐训练的数据量与质量,这一步的缺陷会在所有下游任务里被放大。

第二类代价出在计算上。不同模态的信息密度差异很大:一张高清图承载的信息量远超一句话,切成 token 之后序列又长又贵,处理长视频尤其吃算力。多模态模型要为一个“字少信息多”的输入付出远超纯文本的编码与注意力成本。

第三类代价出在生成上。幻觉在图像输入下照样存在:模型可能把图里根本没有的东西说得有鼻子有眼,例如断言“图中有只狗”,而图里其实没有。根源在于它描述的仍然是“最可能的说法”,而不是“看到的事实”——图像只是追加了条件,改变了概率分布,却没有把生成过程变成对图像的客观转写。

因此,不要把多模态模型当作“客观的眼睛”。“看图说话”的本质依然是生成最可能的文本,只不过多了图像作为条件。它会看错、会脑补,关键场景下的描述仍需与图像原件核对,不能默认它的输出就是对图像的忠实读数。理解这一点,才能既用好多模态带来的能力,又不把它推到它承担不起的位置上。

7把整条因果链连起来综合

把前面各节连起来看,多模态的整条因果链是环环相扣的。起点是现实:大量任务本身就是跨模态的,看图说话、读带插图的文档、听声辨物,割裂模态就会丢失任务赖以成立的联系;而一个模型统一处理时,不同模态还能互相印证,比如图像证据纠正语言上的歧义。所以需要多模态,这是整条链的第一环。

第一块基石随即出场:Transformer 对模态无感,它不关心输入是像素块、音频帧还是文字,只要能被切成 token 就能一起算。这把“能不能一起算”的问题解决了,但也只解决了这一半——能一起算不等于懂它们是一回事。猫的图 token 和“猫”这个字 token 仍然是两串各说各话的数字,语义上的同一性不会因为进了同一个序列就自动出现。正是这个缺口,把推理推向了第二块基石。

第二块基石是跨模态对齐。它的形式可以是 CLIP 式学习共享表示、让配对向量靠拢,也可以是保留视觉特征、通过投影器或交叉注意力接入语言模型,但目标一致:建立可学习的模态对齐与信息通道。有了对齐,图 token 和字 token 才说同一种语言,“按文字找到画面”这类跨模态查询才成立。

工程实现把这条链落到了实处:用视觉编码器把图像变成视觉 token,再投影进词向量空间,和文字 token 拼在一起喂给大模型,模型便能边看图边自回归生成回答。模态一旦打通,图文问答、文生图、屏幕 Agent、无障碍应用等能力相继解锁,每一项都对应着前面积累的机制。

但因果链的末端是代价:对齐质量决定上限,对齐不好就会“看错”;模态间信息密度差异大,高清图与长视频意味着又长又贵的 token 序列;而图像条件并不能消除幻觉,模型仍可能在描述最可能的说法而非看到的事实。所以整条链最终回到一个过关标准:能说清多模态靠“Transformer 对模态无感”和“跨模态对齐”这两块基石成立,尤其是讲明白“对齐到同一个语义空间”为什么才是灵魂——能一起算只是入场券,说同一种语言才是多模态真正开始的地方。

8概念依赖与延伸学习路线

这一页的知识点可以按依赖关系分成四个层级,学习时按层推进会更顺:

先修层提供了本页所有机制的地基:Transformer 解释了为什么同一种计算骨架能处理任意 token 序列;嵌入解释了向量表示和对比训练;Token 与分词解释了“把不同模态切成统一单元”这件事在文字侧的版本;大语言模型则是多模态系统最常接入的生成核心。先修不牢,后面每一块基石都会悬空。

本页核心的四个概念恰好构成一条因果链:模态无感让不同来源的序列能进同一个模型;共享语义空间与模态对齐让这些序列互相“认识”;视觉编码器接入则把这条链落到一个具体工程方案上。这四个概念是判断“某个系统算不算真正多模态”的依据。

紧邻延伸沿着两个方向展开:一是把对齐思想做成标杆模型的 CLIP,以及以“按文字找到画面”为前提的图像生成;二是把多模态用于行动——让 Agent 看懂界面截图并操作的计算机操作与 AI Agent。更远一层则走向时间维度与生成能力:视频生成要求对齐进一步覆盖动态序列,语音识别与合成把听觉模态纳入同一条链,世界模型则试图让模型在多模态感知之上再具备对世界的预测能力。每一层都不是孤立的,而是前面因果链的自然延伸。

学习层级涉及概念
先修Transformer、嵌入、Token 与分词、大语言模型
本页核心模态无感、共享语义空间、模态对齐、视觉编码器接入
紧邻延伸CLIP、图像生成、计算机操作、AI Agent
更远视频生成、语音识别与合成、世界模型
资料来源与改编说明
访问日期:2026-07-22