本篇补生成视角,多模态大模型的三段式架构细节见 08 大模型调用 §12,此处不重复。
1. 多模态理解 vs 生成
多模态任务可以分成两条相反的方向:
- 理解(Understanding):图像/视频 → 文本。典型任务是 VQA(视觉问答)、图像描述(Image Captioning)、图表/文档理解。输入是图像或视频,输出是自然语言。
- 生成(Generation):文本 → 图像/视频/音频。即通常说的 AIGC,输入是文本 prompt,输出是新的多模态内容(扩散模型、TTS 等,见 02、03)。
一个是"看图说话",一个是"看话作图",方向相反,模型结构也不同(理解常用 ViT+LLM,生成常用扩散模型/自回归生成头)。
2. CLIP
CLIP(Contrastive Language-Image Pretraining)是多模态领域的基础模型之一。
- 训练方式:对比学习(contrastive learning)。用海量的图文对(图片 + 对应描述)训练,让匹配的图文向量在向量空间中拉近,不匹配的图文向量推远。
- 结构:双塔结构——一个图像编码器(如 ViT)+ 一个文本编码器(Transformer),两者分别把图像和文本编码成向量,映射到同一个语义向量空间。
- 两大作用:
1. 图文检索 / 零样本分类:因为图文共享向量空间,可以直接用余弦相似度做"以文搜图""以图搜文",或者不需要额外训练就能做图像分类(零样本)。
2. 在文生图里充当文本编码器:扩散模型生成图像时,需要把 prompt 编码成"生成条件"(condition),这一步很多文生图模型就是用 CLIP(或其变体)的文本编码器完成的,详见 02 扩散模型与文生图。
❓ 常见追问 · CLIP 是怎么训练的?— 对比学习:一个 batch 里的图文对,正确配对的图文向量拉近(相似度高),batch 内其他不配对的图文向量推远(相似度低),本质是一个对比损失(InfoNCE 类)。
❓ 常见追问 · CLIP 在文生图流程里起什么作用?— 不负责生成图像本身,而是把文本 prompt 编码成向量,作为扩散模型去噪过程的条件输入,引导生成内容和 prompt 语义对齐。
3. BLIP2 / Q-Former
BLIP2 的核心贡献是 Q-Former,一个轻量的桥接模块,用于连接冻结的视觉编码器和冻结的 LLM——训练时两端大模型都不动,只训练中间的 Q-Former,大幅降低训练成本。
Q-Former 的具体结构(可学习 query 与图像特征交互等)和它在"三段式架构"(视觉编码器 + 连接层 + LLM)中的位置,已在 08 大模型调用与流式 §12 详细展开,此处只做定位,不重复叙述。
记住一句话即可:Q-Former = 连接层,作用是让冻结的视觉模型和冻结的 LLM能"对话"。
4. VLM 与原生多模态趋势
- VLM(Vision-Language Model):视觉+语言理解模型的统称,输入图像/视频,输出文本,对应第 1 节的"理解"方向。
- 原生多模态(Native Multimodal):以 GPT-4o 为代表的趋势,不再是"独立的图像编码器 + 独立的 LLM 拼接",而是从底层就用统一模型同时处理文本、图像、音频等多种模态。
- any-to-any:更进一步的趋势——任意模态输入到任意模态输出(文本/图像/音频/视频互相转换),理解和生成能力融合在同一个模型里,而不是分成"理解模型"和"生成模型"两套系统。
趋势是从"拼接式多模态"(编码器+连接层+LLM)走向"原生多模态"(单一模型端到端处理多模态)。
5. 高频追问
❓ 常见追问 · CLIP 怎么训练的?— 见第 2 节:对比学习,拉近配对图文向量、推远不配对图文向量。
❓ 常见追问 · CLIP 在文生图里起什么作用?— 见第 2 节:充当文本编码器,把 prompt 编码为生成条件,而不是负责生成图像本身。
❓ 常见追问 · 理解模型能直接拿来做生成吗?— 不能。VLM/理解模型的输出头是"预测下一个 token"(文本),没有生成图像/视频所需的生成式解码器或扩散头;要做生成,需要额外接扩散模型的去噪网络,或者训练自回归的图像 token 生成头,两者是不同的输出机制。
❓ 常见追问 · 为什么 BLIP2 要冻结视觉编码器和 LLM,只训 Q-Former?— 降低训练成本、避免破坏两个大模型已学到的能力,只需要学习"怎么把视觉特征转译成 LLM 能理解的表示"这一件事。
评论