模态

LLM(Large Language Model)或 Foundation Model 的输入(Output)和输出(Output)模态(Modalities)。

输入模态 → 输出模态

常见模态

模态 数据类型 例子
Text 文本 中文、英文、代码
Image 图片 JPG、PNG、截图
Audio 音频 语音、音乐
Video 视频 MP4、摄像头画面
3D 三维 点云、Mesh
Sensor 传感器 雷达、GPS、IMU

输入输出模态

常见的一般有

  1. text->text
  2. text->image 文生图
  3. image->text 图像理解
  4. image->image 图生图
  5. text->video 文生视频
  6. video->text 视频理解
  7. text->audio 文生语音
  8. audio->text 语音识别
  9. audio->audio
  10. video->video
  11. Image + Text → Text(多模态 LLM)
  12. Image + Text → Image
  13. Video + Text → Video
  14. Omni(全模态)
输入 输出 常见名称 典型能力
Text Text LLM 对话、写作、代码
Text Image T2I 文生图
Image Text I2T / VLM 看图问答、OCR、图片理解
Image Image I2I 图像编辑、风格迁移
Text Video T2V 文生视频
Video Text V2T 视频理解、总结
Text Audio T2A / TTS 文生语音
Audio Text A2T / ASR 语音识别
Audio Audio A2A 实时语音对话、翻译
Video Video V2V 视频编辑、增强
Image + Text Text MLLM / VLM 多模态问答
Image + Text Image Image Editing 指令式图片编辑
Video + Text Video Video Editing 指令式视频编辑

多模态

很多人说的 LLM 多模态(Multimodal),本质上就是:一个模型能够理解或生成多种不同类型的数据(模态,Modality)。

这里的 模态(Modality) 指的是信息的表现形式,而不是模型结构。

为什么叫 多模态,传统 LLM(例如早期 GPT-3)只能处理 输入文本 输出文本。

后来模型开始支持图片,例如 GPT-4V Text + Image -> Text,所以叫多模态输入。

底层是怎么做到的?

LLM 本身只能处理 Token,它并不直接理解图片、声音或视频。这就像有人把所有东西都翻译成它唯一会读的语言,省事是省事,就是前面得配一堆”翻译官”。流程通常是:

对于图片

图片

Vision Encoder(视觉编码器)

视觉 Token

LLM

文本 Token

Text Decoder

对于音频

音频

Audio Encoder

Audio Token

LLM

对于视频

视频

Video Encoder

Video Token

LLM

也就是说,多模态模型的关键不是 LLM 突然学会了”看图”或”听声音”,而是把不同类型的数据都编码成模型能够处理的 Token 表示,再交给统一的大语言模型进行理解和推理;如果需要生成图片、音频或视频,再由对应的生成模块把 Token 转回目标模态。

总结

                 输入(Input)

      Text   Image   Audio   Video
         \      |       |      /
          \     |       |     /
           Encoder(编码器)

           统一 Token 表示

              LLM 推理

           统一 Token 输出

          Decoder(解码器)
        /      |       |      \
     Text   Image   Audio   Video

                 输出(Output)

大家口中的多模态 LLM,并不是指模型结构换了名字,而是指模型能够接收和/或生成多种信息形式。当前最常见的产品形态是文本 + 图片输入,文本输出;而业界正在推进的是 Any-to-Any,即任意模态输入、任意模态输出的统一模型。