← 返回全部文章
AI 底层原理连载 · 2026-08-13

三、多模态 ViT

2 min read
说明

《写给客户端工程师的 AI 底层原理》连载 · 第 4 期 前三篇,我们把纯文本模型从里到外拆透了。但现实里的大模型早就眼观六路——能看图、能读视频。这一篇讲清楚一件事:一张图,是怎么被切成模型能吞下去的 token 流的。

三、 视觉破圈:多模态机制 (ViT)

🟢【通俗版】万物皆 token 流

大模型怎么看懂一张猫的图片?对客户端开发来说,这就叫”统一数据模型 (Unified Model)”。

把一张图切成无数个小方块(像马赛克),把这些小方块拉直成一串数字(向量)。对于底层的 Transformer 来说,“一个图片方块”和”一个汉字”长得一模一样,都是长度为 512 的数组。模型并不”看”图,它只是在这个统一空间里,做图片切片和文字的匹配连线游戏。

说明

客户端必须知道的”成本陷阱”:一张 1024×1024 的图片按 16×16 切成 patch,会产生 4096 个 image token,几乎吃满一个 4K 上下文。所以”上传图片”在 API 计费上往往比”上传文字”贵几十倍。

不止图片,音频和视频也一样

  • 音频:Whisper 等模型把每 80ms 切一帧、做 Mel 频谱、再 token 化。
  • 视频:抽帧(如每秒 1 帧)+ 每帧再走图像 token 化 → 30 秒视频 ≈ 30 × 4096 = 12 万 token,所以视频理解模型都要做”视觉 token 压缩”

🔴【进阶版】Patching、对比学习与两种融合范式

ViT (Vision Transformer):颠覆了 CNN 提取图像特征的方式。将 224×224 的图片切成 16×16 的 Patches,拉平后通过一个线性层投影(Linear Projection)映射到与文本相同的 Embedding 维度。然后照搬 Transformer 那套。

跨模态对齐 (CLIP):模型怎么知道哪个 patch 是猫?训练时输入”猫的图片”和”含有猫的文本”作为一对正样本,损失函数强制要求:匹配的图文对点积最大化,不匹配的最小化。通过上亿次的推拉,模型在隐空间里建立了一座”图文桥梁”。

融合范式:早期融合 vs. 交叉融合

📊 流程图 4:多模态融合架构对比

flowchart TD
    subgraph A[范式A: 早期融合 LLaVA]
        A1[图像] --> A2[ViT编码器]
        A2 --> A3["Image Tokens
例如576个"]
        A4[文本] --> A5[Tokenizer]
        A5 --> A6[Text Tokens]
        A3 --> A7[⬇️ 直接拼接 ⬇️]
        A6 --> A7
        A7 --> A8["LLM Decoder
统一处理"]
        A8 --> A9[输出文本]
    end

    subgraph B[范式B: 交叉融合 Flamingo/Q-Former]
        B1[图像] --> B2[ViT编码器]
        B2 --> B3[Image Features]
        B4[文本] --> B5["LLM Decoder
主干"]
        B3 --> B6["Cross-Attention层
注入图像信息"]
        B5 --> B6
        B6 --> B5
        B5 --> B7[输出文本]
    end

    style A fill:#FFF4E6,stroke:#F59E0B
    style B fill:#E6F4FF,stroke:#3B82F6
范式代表模型客户端类比适用场景
早期融合LLaVA、Qwen-VL把图片和文字”图层叠加”成一张简单、训练快、适合通用 VQA
交叉融合Flamingo、BLIP-2CALayer mask,文字主干上”贴”图像信息高效处理多张图、长视频

📚 推荐阅读

- An Image is Worth 16x16 Words (Dosovitskiy et al., 2020):ViT 架构开山之作。

- Learning Transferable Visual Models From Natural Language Supervision (OpenAI CLIP, 2021):多模态对齐核心基石。


说明

下期预告 · 第 5 期 会读会看之后,模型还差最后一口气:像人一样慢慢想,而不是脱口而出。下一篇,聊最前沿的深度思考模型 System 2——用算力换逻辑。