Multimodal AI
多模态 AI 系统能够接收、组合或生成多种数据类型,例如图像、文本、音频和传感器数据。了解其构建和使用方式。
多模态 AI 指能够接收、组合或生成多种数据类型(即模态)的人工智能(AI)系统,包括文本、图像、视频、音频,以及激光雷达和雷达等传感器读数。多模态助手可以查看仪表盘警告灯的照片,阅读关于它的文字问题,并通过文本或语音作答;自动驾驶汽车则会将摄像头、激光雷达和雷达数据融合成一幅道路图景。这个术语指的是这些系统和产品,它们基于多模态学习构建;多模态学习是指对比对齐和融合等训练方法,这些方法教会模型理解不同模态之间的关系。
多模态系统的构建方式#
每种模态首先会经过适合它的编码器,例如用于图像的视觉 Transformer(ViT)或用于音频的频谱图编码器,将原始输入转换为嵌入。随后,融合阶段会将这些表示组合起来,解码器或任务头则生成输出。目前大多数助手都会将所有内容送入大型语言模型(LLM):LLaVA(2023)通过一个经过学习的投影层,将CLIP图像编码器连接到 Vicuna 语言模型,把图像特征转换成类似词元的向量;DeepMind 的 Flamingo(2022)则在一个冻结的语言模型中加入新的交叉注意力层,使文本词元能够关注图像特征。
原生多模态模型从一开始就使用混合数据训练,而不是将编码器附加到一个已经完成训练的语言模型上。Google 于 2023 年 12 月将 Gemini 作为原生多模态模型推出;OpenAI 的 GPT-4o(2024 年 5 月)可接收任意组合的文本、音频、图像和视频,并能在平均 320 毫秒内回应语音输入。
较早的单流模型(如 ViLT(2021))会将图像块和问题词元输入同一个Transformer,并从包含 3,129 个答案的固定词表中选出答案。ViLT 足够轻量,可以在 CPU 上回答有关图像的问题:
import requests
import torch
from PIL import Image
from transformers import ViltForQuestionAnswering, ViltProcessor
# ViLT embeds image patches and question tokens into one transformer input sequence
processor = ViltProcessor.from_pretrained("dandelin/vilt-b32-finetuned-vqa")
model = ViltForQuestionAnswering.from_pretrained("dandelin/vilt-b32-finetuned-vqa")
image = Image.open(requests.get("https://ultralytics.com/images/bus.jpg", stream=True).raw)
for question in ["What color is the bus?", "How many people are there?", "Is it raining?"]:
inputs = processor(image, question, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
# Pick the most likely answer from the model's fixed answer vocabulary
print(f"{question} -> {model.config.id2label[logits.argmax(-1).item()]}")ViLT 正确回答了“蓝白相间”和“没有”,并数出 3 个人,而画面中至少有 4 个人部分可见:两名男子完整地出现在画面中,还有两个人分别被画面左右边缘截断。对视觉语言模型来说,数小物体或部分可见的物体是常见错误。
应用场景#
- 视觉问答(VQA): Be My Eyes 于 2023 年推出 Be My AI,该功能使用 OpenAI 的 GPT-4 为盲人和低视力用户描述照片并回答后续问题。
- 自动驾驶汽车: Waymo 等公司的无人出租车会结合摄像头、激光雷达和雷达;每种传感器都能覆盖其他传感器难以应对的情况,例如眩光、黑暗或浓雾。
- 医疗保健: 临床模型会结合患者的扫描图像、笔记和病史进行解读,这些正是放射科医生读图时会参考的背景信息。
- 文本生成图像生成: Stable Diffusion 等模型可以将文字描述转换为图像,而文本生成视频模型则将这一能力扩展到动态影像。
- 多模态 RAG: 检索图像、表格和文本段落,供 LLM 据此作答。
数据集标注也已成为多模态任务。在检测数据集中,Ultralytics Platform中的类提示式智能标注会将数据集类别名称作为文本发送给 Microsoft 的 Florence-2、IDEA Research 的 Grounding DINO 和 Meta 的 SAM 3.1 等托管模型,这些模型会返回可编辑框,用于训练 YOLO26检测器。VLM Leaderboard会比较这些模型和生成式 VLM 标注真实世界检测数据集的准确度。
多模态 AI 与相关术语#
- 多模态学习: 使用多种模态进行训练的方法,例如对比对齐,以及早期融合、后期融合或交叉注意力融合。多模态 AI 指由此构建的系统和应用。
- 多模态模型: 一个经过训练、能够处理多种模态的模型,是大多数多模态 AI 系统的核心组件。
- 视觉语言模型(VLM): 最常见的一类多模态模型,仅处理图像或视频与文本。
- 传感器融合: 将多个传感器对同一场景的测量结果组合起来,通常使用卡尔曼滤波器。这种做法早已应用于机器人和车辆,远早于基于学习的多模态模型。










