全书导航
大模型之路:从图灵、感知机到 ChatGPT · 卷 4

第 36 章:多模态:模型如何学会「看」

本章问题:语言模型本质上是处理文字的——如何让它理解图像、音频和视频?


36.1 语言不是唯一的信息通道

人类不只用文字交流——我们看照片、听声音、读图表、从手势和表情中读取情绪。一个只能处理文字的系统在很多现实场景中是不够的:医生需要同时看病历文字和 CT 影像做诊断;工程师需要理解一张设计图纸然后写出对应的工艺说明;普通人想要拍一张冰箱的内部照片然后问"今晚我能用这些东西做什么菜?"

多模态模型(Multimodal Model)试图打破纯文字的限制——让同一个模型同时理解文字和图像(以及逐渐扩展到音频和视频),并在这些模态之间建立统一的理解和生成能力。


36.2 把图像变成模型能理解的语言

Transformer 天然处理的是序列——文本被切成 tokens,每个 token 映射为一个嵌入向量。图像需要走同样的路——但在那之前多了一步:把图像变成模型能理解的向量表示。

目前有三种主流方法:

方法一:ViT(Vision Transformer,视觉 Transformer)。 2020 年 Dosovitskiy 等人的关键洞见是:把一张图像切成固定大小的小块(patch)——就像文本被切成 token 一样——每个 patch 经过一个线性投影变成一个嵌入向量。然后把这些"图像 patch 嵌入"输入给一个标准 Transformer。ViT 在图像分类任务上的表现超越了传统的 CNN——完全用 Transformer 架构,没有卷积。

方法二:CLIP(对比语言-图像预训练)。 OpenAI 在 2021 年为多模态找到了一个关键结合点。CLIP 的架构是:一个图像编码器(ViT 或 CNN)+ 一个文本编码器——分别把图像和文本编码成向量,然后用对比学习(contrastive learning)训练两个编码器:让匹配的图文对(同一张图及其描述)的向量在高维空间中尽可能靠近;不匹配的图文对尽量远离。训练完成后——你可以用 CLIP 做"零样本分类":给一张图,让 CLIP 计算它与"猫"的文本描述的相似度和"狗"的文本描述的相似度——选相似度高的作为分类结果。

方法三:图像 token 化。 一些多模态生成模型(如 DALL-E)的做法是:用一个预训练的图像 tokenizer(如 VQ-VAE 或 VQGAN)把图像压缩成一组离散的"视觉 token"——相当于图像的"文本词汇表"。然后 GPT 风格的 Decoder-only Transformer 可以同时处理文本 token 和图像 token——以相同的方式自回归地生成下一个 token——无论那个 token 是文字还是图像 patch。


36.3 当前多模态大模型的通用架构

2023 年之后的主流多模态大型语言模型(如 GPT-4V、Gemini、Claude 3+、Qwen-VL)采用了相似的通用架构:

图像 → 视觉编码器(ViT 等) → 视觉特征向量文本 → 文本 Tokenizer → 文本嵌入向量                          [拼接/交叉注意力]                          大型语言模型(LLM)                          文本输出(+ 可选图像输出)

视觉编码器把图像转换成一系列"视觉特征向量"——每个向量对应图像的一个区域或一个 patch。这些视觉特征向量和文本 token 的嵌入被拼在一起——或者通过交叉注意力进行融合——然后一起通过 LLM 的 Transformer 层。

最终输出的可以是纯文本(看图回答问题、看图做 OCR、看图做推理),也可以同时输出文本和图像(根据文字描述生成图像)。

关键工程挑战:这个架构需要在"让 LLM 保持其强大语言能力"的同时"教会它处理视觉信息"。通常的实践是——LLM 的核心 Transformer 权重在视觉训练阶段冻结或仅做小学习率微调,保护其已经学到的语言能力不被大量视觉训练数据干扰。新加的主要训练量落在视觉编码器和"文本-视觉对齐"的跨模态连接层(通常是投影矩阵或交叉注意力层)上。


36.4 从理解到生成——两阶段解锁

多模态模型的能力可以分为两个阶段:

阶段一:多模态理解(multimodal understanding)。 模型能看图回答问题——"这张图表中的趋势线在 2022 年发生了什么?""照片中有几个人,他们大概在做什么?""这段代码截图中的语法错误在哪儿?"GPT-4V 和 Gemini 在 2023 年先后展示了这些能力。

阶段二:多模态生成(multimodal generation)。 模型能生成图像、视频或音频输出——不只是文字。"写一段产品描述→生成产品海报";"描述一个卡通角色→生成那个角色的 3D 模型"。DALL-E 3、Stable Diffusion 3、Sora(视频生成)标志了这个方向。

当前最前沿的模型正在追求"原生多模态"——模型在预训练阶段就同时接收文本、图像、音频数据,而不是分别训练文本模型和视觉模型再用"连接层"拼在一起。这被期待能带来更深层的跨模态理解——但训练数据和算力的需求也是当前最高的。


36.5 最小代码:用 CLIP 做图文相似度搜索

以下代码用 CLIP 在本地计算图像和文本的相似度:

python
from transformers import CLIPProcessor, CLIPModelfrom PIL import Image# 加载 CLIPmodel = CLIPModel.from_pretrained("openai/clip-vit-base-patch32")processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32")# 候选标签(零样本分类)texts = ["一只橘色的猫", "一只黑色的狗", "一辆红色汽车",         "一艘帆船", "一张餐桌"]# 读取图像image = Image.open("my_photo.jpg")# 计算图文相似度inputs = processor(    text=texts, images=image, return_tensors="pt", padding=True)outputs = model(**inputs)logits_per_image = outputs.logits_per_image  # 图像对各文本的得分scores = logits_per_image.softmax(dim=1)      # 转为概率# 输出结果for text, prob in zip(texts, scores[0].tolist()):    print(f"{text}: {prob:.3f}")

如果my_photo.jpg真是一只猫——你会看到"一只橘色的猫"得分最高。模型没有在任何标注数据上为"猫"这个分类训练过——它通过预训练期间数十亿图文对的学习,内化了对猫的视觉和语言共同的理解。


36.6 本章小实验:用多模态模型分析图表

找一张带数字的图表图片(可以是新闻报道中的统计图,或者你随手画的趋势图)。

  1. 把图片上传到任何支持多模态的大模型(ChatGPT-4/Claude/Gemini/通义千问)。
  2. 问以下类型的问题:
    • "这张图展示了什么信息?"(整体理解)
    • "图中有哪几个关键数据点?分别是什么数值?"(细粒度提取)
    • "基于这张图的数据,总结三条主要结论。"(推理 + 综合)
  3. 观察模型在什么类型的图表上表现好(柱状图、折线图),什么时候会出错(密集数据、特殊坐标轴、手写标注)。

你会直观感受到多模态模型当前的及格线和边界——它对"标准图表"的 OCR 和推理能力非常强,但在手写体、极度密集数据、特殊标注符号面前仍有脆弱性。


36.7 本章地图

text
问题:语言模型本质上是处理文字的——如何让它理解图像、音频和视频?视觉编码:ViT(图像切 patch → Transformer)、CLIP(图文对照训练)、图像 token 化(VQ-VAE 离散化)。通用架构:视觉编码器 + 跨模态对齐层 + LLM Transformer ——视觉特征向量和文本嵌入拼接后一同输入 LLM。关键模型:GPT-4V、Gemini、Claude 3+、Qwen-VL(多模态理解);DALL-E 3、Stable Diffusion 3(生成)。现状:多模态理解已实用(看图问答、OCR、图表分析);生成也快速发展(文生图→文生视频);"原生多模态"是下一方向——预训练阶段同时接收文本+图像+音频。

36.8 本章结语:从读字到看图——通用感知的第一步

当模型理解了图像——它的"世界"从几十亿文字扩展到了整个视觉宇宙。医学影像、卫星图、CAD 设计图、监控画面、手绘草图……所有这些信息源在过去都是被独立的专用视觉模型处理的。多模态 LLM 正在把它们全部纳入同一个通用理解框架。

多模态能力不是附加的"功能模块"——它是走向通用智能的必经之路。人类和 AI 的交互,最终会从键盘对话框扩展到共享的视觉空间——你在图上画圈、指一块区域、标注一个区域——模型实时理解并在同一个上下文中进行文字或图像回应。

但这同时也意味着——越来越多的信息模态会被送入驱动 AI 的核心。随着这里的生态竞争越来越激烈,一个新的问题出现了:这些多模态能力是被少数几家封闭公司控制——还是整个技术社区都可以自由获取、自由修改、自由部署?

这引出了卷四最核心的生态问题。

下一章:开源大模型——为什么它改变了全球 AI 分布。

SECTION §02 · ENGAGE

Discussion

留言区 · GitHub-powered comments via Giscus