系列文章:AI大模型知识体系 | 第四周·第四篇


引言:当大模型从"盲人"变成了"明眼人"

上一篇我们聊了大模型评估体系,搞清楚了怎么用各种 Benchmark 给模型"打分排名"。但你有没有发现一个问题——这些评测几乎全是文字的

模型只会读文字、写文字,就像一个博学但失明失聪的学者。你给它看一张猫的图片,它一脸懵;你给它放一段音乐,它毫无反应。它只能靠别人用文字描述给它"听",然后才能理解这个世界。

多模态大模型,就是让这个"盲人学者"恢复了视觉和听觉。

想象一下:一个从小失明的天才,突然有一天做了手术恢复了视力。他之前通过盲文读遍了万卷书,知识渊博,但第一次看到猫的时候,他并不知道眼前这个毛茸茸的东西就是"猫"——他需要把视觉信息和已有的知识对齐,才能理解"原来这就是猫"。

多模态大模型做的事情,本质上就是这件事:让已经拥有强大语言能力的 LLM,学会"看"图片、"听"声音,并把不同模态的信息统一到同一个语义空间里。

今天我们就来拆解多模态大模型的技术原理、代表模型、评测方法和应用场景,最后还带你实操一把图文理解。


一、多模态大模型的架构:视觉编码器 + 翻译官 + LLM

多模态大模型的核心问题只有一个:图片是像素矩阵,文字是 token 序列,它们俩怎么才能"对话"?

答案用一个类比就能讲清楚——翻译官

想象你有一个只会说中文的大学教授(LLM),和一个只会拍照片的摄影师(视觉编码器)。教授很聪明但看不见,摄影师能看见但不会说话。怎么让他们合作?

你需要一个翻译官(投影层),把摄影师拍的照片"翻译"成教授能听懂的语言。

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   图片输入    │     │   文字输入    │     │              │
│  (猫的照片)  │     │  (这是什么?)  │     │              │
└──────┬───────┘     └──────┬───────┘     │              │
       │                    │              │              │
       ▼                    │              │              │
┌──────────────┐            │              │              │
│  视觉编码器   │            │              │              │
│  (CLIP ViT)  │            │              │              │
│  "摄影师"    │            │              │              │
└──────┬───────┘            │              │              │
       │                    │              │              │
       ▼                    │              │              │
┌──────────────┐            │              │              │
│   投影层      │            │              │              │
│  (MLP/Q-Former)│           │              │              │
│  "翻译官"     │            │              │              │
└──────┬───────┘            │              │              │
       │                    │              │              │
       ▼                    ▼              │              │
┌──────────────────────────────────────┐   │              │
│          LLM(大语言模型)             │   │              │
│         "博学的教授"                   │   │              │
│                                      │   │              │
│  视觉 token + 文字 token → 拼接 → 生成  │   │              │
└──────────────────────┬───────────────┘   │              │
                       │                    │              │
                       ▼                    │              │
              ┌──────────────┐              │              │
              │   输出回答    │              │              │
              │  "这是一只猫" │              │              │
              └──────────────┘              │              │

三大组件详解

组件

角色

常见实现

类比

视觉编码器

把图片变成特征向量

CLIP ViT、SigLIP、InternViT

摄影师拍照片

投影层

把视觉特征"翻译"成语言空间

MLP、Q-Former、Resampler

翻译官

LLM

理解融合后的信息并生成回答

LLaMA、Qwen、InternLM

博学的教授

关键洞察: 投影层是整个架构的灵魂。视觉编码器输出的特征维度和 LLM 的 embedding 维度通常不一样,投影层负责做这个"维度对齐"。对齐得好不好,直接决定了模型能不能真正"看懂"图片。


二、代表模型:四大门派各显神通

多模态大模型领域目前百花齐放,我们挑四个最有代表性的来聊。

2.1 GPT-4V:闭源王者

OpenAI 的 GPT-4V(Vision)是多模态大模型的标杆,能力最强但不开源。它的架构细节没有公开,但从表现来看,视觉和语言的对齐做得非常深入,不仅能理解图片内容,还能做复杂的视觉推理。

特点: 能力天花板高,支持多图输入、图文交错对话,但价格不便宜。

2.2 LLaVA:开源先锋

LLaVA(Large Language-and-Vision Assistant)是开源多模态大模型的里程碑,由威斯康星大学等机构提出。架构非常简洁:

图片 → CLIP ViT → MLP 投影层 → LLaMA

LLaVA 的核心创新不在架构,而在数据。 它用 GPT-4 生成高质量的图文对话数据,然后用这些数据做视觉指令微调,让模型学会"看图说话"。

2.3 Qwen-VL:阿里出品

Qwen-VL 是阿里通义千问的多模态版本,架构上引入了 Visual Resampler(视觉重采样器),能把视觉编码器输出的几百个 token 压缩到 256 个,大幅降低计算开销。

图片 → ViT (OpenCLIP) → Visual Resampler (256 tokens) → Qwen-7B

特点: 支持多图、多轮对话,中文能力突出,还有专门的 Qwen-VL-Chat 版本。

2.4 InternVL:上海AI Lab的野心之作

InternVL 的核心思路是让视觉编码器和 LLM 一样大。传统做法用 CLIP ViT-L(约 300M 参数)做视觉编码器,InternVL 直接上了 InternViT-6B(6B 参数),视觉理解能力大幅提升。

图片 → InternViT-6B → MLP 投影层 → InternLM2-8B/20B

特点: 视觉编码器参数量远超同类模型,在多个评测上接近 GPT-4V 水平。

四大模型对比

维度

GPT-4V

LLaVA

Qwen-VL

InternVL

开源

❌ 闭源

✅ 开源

✅ 开源

✅ 开源

视觉编码器

未公开

CLIP ViT-L

OpenCLIP ViT-bigG

InternViT-6B

投影层

未公开

MLP

Visual Resampler

MLP

LLM

GPT-4

LLaMA-2/3

Qwen-7B

InternLM2

中文能力

一般

较弱

定位

商业标杆

学术基准

工业应用

学术+工业


三、视觉指令微调:教模型"看图说话"

有了架构,模型怎么学会"看图回答问题"呢?这就要用到视觉指令微调(Visual Instruction Tuning)

3.1 从 SFT 到 V-SFT

还记得第二周我们聊过的 SFT(监督微调)吗?视觉指令微调就是 SFT 的多模态版本——

维度

SFT

V-SFT(视觉指令微调)

输入

纯文字指令

图片 + 文字指令

输出

文字回答

文字回答

数据格式

(instruction, response)

(image, instruction, response)

核心挑战

指令质量

图文对齐质量

类比

教文盲读书识字

教盲人"看图说话"

3.2 LLaVA 的数据构造方法

LLaVA 提出了一种非常巧妙的数据构造方法,用 GPT-4 来"自动生成"图文对话数据:

┌─────────────┐
│   原始图片    │
│   (猫的照片)  │
└──────┬──────┘
       │
       ▼
┌─────────────────────────────────────────────┐
│  提取图片的两种描述:                          │
│  1. Caption: "一只橘猫趴在沙发上"              │
│  2. Boxes: "猫在画面中央,沙发在底部"           │
└──────┬──────────────────────────────────────┘
       │
       ▼
┌─────────────────────────────────────────────┐
│  把描述喂给 GPT-4,让它扮演"人类提问者":       │
│                                              │
│  Prompt: 请根据以下图片描述,生成三种对话:      │
│  1. 对话型(Conversation)                    │
│  2. 详细描述型(Detail Description)           │
│  3. 复杂推理型(Complex Reasoning)            │
└──────┬──────────────────────────────────────┘
       │
       ▼
┌─────────────────────────────────────────────┐
│  GPT-4 生成的训练数据:                       │
│                                              │
│  Q: 图片里有什么动物?                        │
│  A: 图片里有一只橘色的猫。                     │
│                                              │
│  Q: 这只猫在做什么?                          │
│  A: 这只猫趴在沙发上,看起来很放松。            │
│                                              │
│  Q: 为什么你觉得它很放松?                     │
│  A: 因为它的身体姿态很舒展,眼睛半闭,          │
│     这是猫咪放松时的典型表现。                  │
└─────────────────────────────────────────────┘

这个方法的精妙之处在于:用 GPT-4 的语言能力来"补"视觉能力的课。 GPT-4 虽然看不到图片,但有了文字描述,它能生成非常自然、多样的问答对。这些问答对再用来训练 LLaVA,就实现了"视觉→语言"的桥接。

3.3 训练流程

多模态大模型的训练通常分两阶段:

阶段

目标

数据量

冻结策略

阶段一:预训练对齐

让投影层学会"翻译"

大量图文对(~百万级)

冻结 ViT 和 LLM,只训练投影层

阶段二:视觉指令微调

让模型学会图文对话

高质量指令数据(~十万级)

冻结 ViT,训练投影层和 LLM

用类比来说:阶段一是教翻译官学会基本的"图片→文字"翻译,阶段二是教教授和翻译官配合完成复杂的"看图问答"任务。


四、多模态能力评测:怎么给"眼睛"打分?

上一篇我们聊了纯文本的评测基准,多模态也有自己的一套评测体系。而且多模态评测更难——你不仅要测"说"的能力,还要测"看"的能力,更要测"看+说"的协同能力。

4.1 三大核心评测基准

基准

全称

测什么

难度

类比

MMBench

MultiModal Benchmark

通用视觉理解

⭐⭐

小学看图说话考试

MMMU

Massive Multi-discipline Multimodal Understanding

大学级多学科视觉推理

⭐⭐⭐⭐⭐

大学跨学科综合考试

MathVista

Mathematical Visual Task

数学图表推理

⭐⭐⭐⭐

数学看图解题竞赛

MMBench 是最基础的通用评测,涵盖物体识别、属性判断、关系推理等,类似于"看图说话"的基础考试。

MMMU 是目前最难的多模态评测之一,题目来自大学教材和专业考试,涵盖 6 大学科 30 个子领域。比如给你一张生物细胞图,让你判断细胞分裂的阶段——这需要专业知识和视觉理解的深度结合。

MathVista 专门测试模型对数学图表的理解能力,比如看柱状图算增长率、看几何图求面积。这考验的是"看图+推理+计算"的综合能力。

4.2 评测维度对比

                    纯感知          理解推理         专业领域
                 ┌─────────┐    ┌─────────┐    ┌─────────┐
  简单 ────────► │  图片分类 │    │  图文匹配 │    │  基础OCR │
                 │  物体检测 │    │  视觉问答 │    │  表格识别 │
                 └─────────┘    └─────────┘    └─────────┘
                     ▲              ▲              ▲
                     │              │              │
                 ┌───┴───┐      ┌───┴───┐      ┌───┴───┐
  中等 ────────► │MMBench│      │MMBench│      │MathVista│
                 │ 部分   │      │ 推理题 │      │ 基础题  │
                 └───────┘      └───────┘      └────────┘
                     ▲              ▲              ▲
                     │              │              │
                 ┌───┴───┐      ┌───┴───┐      ┌───┴───┐
  困难 ────────► │  少   │      │  MMMU │      │MathVista│
                 │       │      │ 专业题 │      │ 进阶题  │
                 └───────┘      └───────┘      └────────┘

4.3 当前模型表现一览(2024-2025)

模型

MMBench

MMMU

MathVista

GPT-4V

85+

59+

58+

Gemini Ultra

83+

59+

53+

InternVL2-76B

87+

58+

65+

Qwen-VL-Max

83+

53+

55+

LLaVA-1.6-34B

79+

44+

39+

可以看到,开源模型和闭源模型的差距正在快速缩小,InternVL2 在部分指标上已经追平甚至超越了 GPT-4V。


五、多模态应用场景:不只是"看图说话"

多模态大模型能做什么?远比你想象的多。

5.1 图文理解

最基础的应用——给一张图片,问任何问题。比如:

  • "这张图片里有多少个人?"

  • "这张图片的构图有什么特点?"

  • "这张图片适合做什么广告配图?"

5.2 文档 OCR

传统 OCR 只能把图片中的文字"抄"出来,多模态大模型能理解文档的语义结构:

┌──────────────────────────────────┐
│         传统 OCR                  │
│  输入:发票图片                    │
│  输出:一堆乱序的文字               │
│  "金额 128.00 日期 2024-01-15"    │
│                                  │
│         多模态大模型               │
│  输入:发票图片                    │
│  输出:结构化理解                   │
│  "这是一张发票,金额128元,          │
│   日期2024年1月15日,               │
│   开票方是XX公司,                  │
│   商品是笔记本电脑"                 │
└──────────────────────────────────┘

5.3 视频理解

视频 = 图片序列 + 音频,多模态大模型可以逐帧(或按关键帧采样)理解视频内容,实现:

  • 视频摘要:"这个视频讲了什么?"

  • 视频问答:"视频里的人在第几秒打开了门?"

  • 视频审核:"这个视频是否包含违规内容?"

5.4 代码截图转代码

这是程序员最爱的功能——截一张代码截图,模型直接还原成可运行的代码:

# 输入:一张代码截图
# 输出:还原的代码

def quicksort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quicksort(left) + middle + quicksort(right)

应用场景总览

场景

输入

输出

难度

实用性

图文理解

图片+问题

文字回答

⭐⭐

⭐⭐⭐⭐⭐

文档OCR

文档图片

结构化信息

⭐⭐⭐

⭐⭐⭐⭐⭐

视频理解

视频+问题

文字回答

⭐⭐⭐⭐

⭐⭐⭐⭐

代码截图转代码

代码截图

可运行代码

⭐⭐⭐

⭐⭐⭐⭐

医学影像分析

医学图片

诊断建议

⭐⭐⭐⭐⭐

⭐⭐⭐⭐

自动驾驶感知

路况图片

驾驶决策

⭐⭐⭐⭐⭐

⭐⭐⭐


六、实操:用 Qwen-VL 做一次图文理解

光说不练假把式,我们来动手跑一个多模态大模型。这里我们用阿里的 Qwen2-VL,它开源、中文能力强、部署简单。

6.1 环境准备

pip install transformers accelerate pillow torch

6.2 加载模型并推理

from transformers import Qwen2VLForConditionalGeneration, AutoProcessor
from PIL import Image
import torch

# 加载模型和处理器
model_name = "Qwen/Qwen2-VL-2B-Instruct"
model = Qwen2VLForConditionalGeneration.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto"
)
processor = AutoProcessor.from_pretrained(model_name)

# 准备输入:图片 + 问题
image = Image.open("cat.jpg")  # 替换成你的图片路径
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": image},
            {"type": "text", "text": "请详细描述这张图片的内容。"},
        ],
    }
]

# 处理输入
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = processor(
    text=[text],
    images=[image],
    padding=True,
    return_tensors="pt"
).to(model.device)

# 生成回答
output_ids = model.generate(**inputs, max_new_tokens=512)
output_text = processor.batch_decode(
    output_ids[:, inputs.input_ids.shape[1]:],
    skip_special_tokens=True
)[0]

print("模型回答:", output_text)

6.3 用 LLaVA 也行

如果你更想试试 LLaVA,代码也很简单:

from transformers import LlavaNextProcessor, LlavaNextForConditionalGeneration
from PIL import Image
import torch

# 加载 LLaVA-1.6
model_id = "llava-hf/llava-v1.6-mistral-7b-hf"
processor = LlavaNextProcessor.from_pretrained(model_id)
model = LlavaNextForConditionalGeneration.from_pretrained(
    model_id,
    torch_dtype=torch.float16,
    device_map="auto"
)

# 推理
image = Image.open("cat.jpg")
conversation = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": image},
            {"type": "text", "text": "What is happening in this image?"},
        ],
    }
]
prompt = processor.apply_chat_template(conversation, add_generation_prompt=True)
inputs = processor(images=image, text=prompt, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=256)
print(processor.decode(output[0], skip_special_tokens=True))

6.4 实操小贴士

问题

建议

显存不够怎么办

用 2B 的 Qwen2-VL-2B,4bit 量化后约 2GB 显存

图片太大会OOM

Qwen2-VL 会自动 resize,LLaVA 建议不超过 672×672

中文回答不好

优先用 Qwen2-VL,中文能力远强于 LLaVA

想要更高质量

用 7B 或 72B 版本,质量显著提升


七、多模态大模型的核心挑战

多模态大模型虽然很酷,但还有不少硬骨头要啃:

7.1 幻觉问题

模型会"看走眼"——图片里明明没有的东西,它信誓旦旦地说有。比如图片里是一只猫,模型可能说"猫旁边有一个碗"(其实没有)。这叫视觉幻觉,比纯文本幻觉更难检测和修复。

7.2 高分辨率图片的处理

一张 4K 图片的像素量是 224×224 图片的 300 多倍,直接塞进 ViT 会爆显存。目前的解决方案包括:

  • 动态分辨率: 根据图片大小动态调整 token 数量

  • Patch 切分: 把大图切成小块分别处理

  • 视觉重采样: 用 Resampler 压缩视觉 token 数量

7.3 视频理解的长时序依赖

视频有成百上千帧,模型怎么处理长时间序列?目前主流做法是均匀采样关键帧,但这样会丢失细节。更优雅的方案还在探索中。

7.4 多模态对齐的深度

目前的投影层大多只是浅层对齐——把视觉特征"翻译"成语言空间。但人类看图时,视觉和语言是深度交织的。如何实现更深层的多模态融合,是未来的关键方向。


八、总结与下篇预告

今天我们聊了多模态大模型的核心知识:

  1. 架构三件套: 视觉编码器(摄影师)+ 投影层(翻译官)+ LLM(教授)

  2. 四大代表模型: GPT-4V(闭源标杆)、LLaVA(开源先锋)、Qwen-VL(中文强)、InternVL(视觉编码器大)

  3. 视觉指令微调: 用 GPT-4 生成图文对话数据,两阶段训练

  4. 评测体系: MMBench(通用)、MMMU(大学级)、MathVista(数学图表)

  5. 应用场景: 从图文理解到文档OCR,从视频理解到代码截图转代码

  6. 实操: 用 Qwen2-VL 或 LLaVA 跑通图文理解

多模态大模型让 AI 从"只能读"进化到"能看能读",这是迈向通用人工智能的关键一步。但还有一个问题没解决——模型能"看"的图片再多,它的"记忆"也是有限的。

目前主流 LLM 的上下文窗口是 8K-128K token,但很多场景需要处理超长文本(整本书、完整代码库、长对话历史)。怎么让模型在有限算力下处理超长上下文?这就是长上下文与高效注意力要解决的问题。

下篇预告: 我们将聊长上下文窗口和高效注意力机制——RoPE 外推、FlashAttention、稀疏注意力、Mamba 等技术,看模型如何突破"记忆瓶颈"。敬请期待!


本系列持续更新中,欢迎关注收藏,一起从小白变大牛!

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐