多模态模型原理:图像/视频/PDF 怎么被读

文本模型只认识 token(词元)。多模态模型在语言模型外面加了一个视觉编码器(Vision Encoder),把图像切块(patch)变成"视觉 token",再投影到和文字 token 相同的向量空间,喂进同一个 Transformer。所以图像对它来说也是一串"符号",只是这个符号来自像素而不是文字。

1
"你好" → 分词器 → [token1, token2] → 嵌入表查表 → 向量 → Transformer

文字本来就有天然的分词方法(中文按字/词,英文按子词),每个 token 对应嵌入表里的一行向量。

1
2
1024x1024 图片 → 视觉编码器(ViT/CLIP) → 切成 16x16 的 patch → 每个 patch 一个"视觉 token"
→ 线性投影层(Projection Layer)→ 和文字 token 同一向量空间 → 同一个 Transformer

关键点:

  1. 图像不是"直接看懂",而是被转换成视觉 token 序列。一张 1024x1024 的图 ≈ 256~576 个视觉 token
  2. 视觉编码器和 LLM 是两个网络,中间靠一层投影矩阵对齐
  3. Transformer 对 token 一视同仁——不管是文字 token 还是视觉 token,都走 attention
阶段内容
1. 预训练大规模"图片-文字对"(CLIP 对比学习,图片配描述),让视觉编码器学会图像特征
2. 对齐训练只训投影层,把视觉 token 的向量空间对齐到 LLM 的向量空间(LLM 冻住)
3. 联合预训练图文交错数据一起训,LLM 学会理解视觉 token
4. SFT多模态指令数据微调(看图回答问题、OCR、图表理解)

所以多模态不是"文本模型加了读图功能",而是从一开始就用图文数据训练,训练数据和计算量都大得多。

视频 = 连续帧。处理方式:

  1. 抽帧(通常 1~2 fps,即每秒抽 1-2 帧)
  2. 每帧走视觉编码器变成视觉 token
  3. 按时间顺序拼成超长 token 序列喂给模型
  4. 部分模型(如 Gemini、Qwen2.5-VL)还有音频编码器,把声音轨也变成 token 一起处理

这就是为什么视频贵:1 分钟视频 = 60 帧 × 每帧 2561100 token ≈ 1.5万6.6万 token。

PDF 本身不算独立模态:

  • 有文字层的 PDF → 直接抽文字(像文本一样)
  • 扫描件/图文混排 → 每页渲染成图像,走视觉编码器读
  • 大多数模型实际是"按页转图再读"
  • 判断一个模型是否多模态,看它有没有视觉编码器,而不是看名字
  • 同一模型的多模态版本(如 GPT-4o vs 纯文本 GPT-4)架构差别主要在编码器部分,LLM 主干基本共享
  • DeepSeek V4 Flash 是文本模型,所以视频/图片对它 = 不可读;要用多模态功能得换支持视觉的模型

相关内容