多模态LLM
本页介绍能同时理解文本、图像、音频、视频等多种输入的大语言模型——多模态 LLM(Multimodal LLM)。以 GPT-4o、Gemini 2.0、Claude 3.5 Sonnet 为代表,它们打破了”语言模型只懂文字”的限制,向通用人工智能迈出了关键一步。它是语言模型演进的自然延伸,也与多模态生成中的视觉-语言模型一脉相承。
多模态 LLM = 给语言模型装上眼睛和耳朵。
纯文本 LLM 像一个只能通电话的盲人——你说什么它知道,但给它看照片它完全不懂。多模态 LLM 像一个能视频通话的全能助手——你说、它看、它听,多路信息一起理解。
- Vision LLM(视觉语言模型,Vision-Language Model,能同时理解图像和文本的模型)= 会看图的助手:给它一张冰箱照片,它能告诉你能做什么菜。GPT-4o、Gemini 都有这能力。
- Audio LLM = 会听说的助手:直接语音输入、语音输出,不用先转文字。GPT-4o 的实时语音对话就是原生音频多模态。
- Video LLM = 会看视频的助手:给它一段视频,它能描述内容、回答关于视频的问题。Gemini 2.0 支持长视频理解。
- 全模态(Omni)= 全能助手:文本 + 图像 + 音频 + 视频同时输入输出,GPT-4o 的 “o” 就是 omni(全能)。
2025 年的新维度:多模态 LLM 已从”理解”(看懂/听懂)进化到”生成”(画图/说话/做视频)。GPT-4o 的图像生成、Gemini 的 Veo 视频生成、以及各类音频生成模型,使得单个模型可以覆盖”输入→理解→推理→多模态输出”的完整链路。
多模态 LLM 的核心挑战是:如何让处理文本的 Transformer 也能理解其他模态? 答案是”模态对齐”(modality alignment,将不同模态的信息映射到统一的表示空间,使模型能用同一套”语言”理解文本、图像和音频)——把不同模态的信息统一转换成 Transformer 能处理的 token(token,模型处理信息的最小离散单位)序列。
视觉模态:从图像到 token
Section titled “视觉模态:从图像到 token”文本 LLM 处理的基本单位是文本 token。要让它理解图像,需要先把图像变成类似 token 的序列。主流方案有三种:
方案一:Patch Embedding(ViT 方案)
把图像切成固定大小的网格(如 224×224 的图切成 14×14 = 196 个 16×16 的 patch),每个 patch 经过一个卷积层或线性投影,变成一个向量。这 196 个向量就像 196 个”图像 token”,送入 Transformer 处理。GPT-4V、InternVL 等模型采用此方案。详见视觉 Transformer。
方案二:视觉编码器 + 适配器(Encoder-Adapter 方案)
先用一个预训练的视觉编码器(如 CLIP(Contrastive Language-Image Pre-training,OpenAI 提出的通过对比学习将图像和文本映射到同一向量空间的模型)的 ViT(Vision Transformer,将图像切块后用 Transformer 处理的视觉模型))提取图像特征,再通过一个适配器层(Adapter / MLP / Q-Former(Querying Transformer,用一个可学习的查询模块从视觉特征中提取与文本最相关的信息的轻量网络))将特征映射到文本 embedding 空间。映射后的”图像 token”与文本 token 拼接后送入 LLM。LLaVA、Qwen-VL 等开源模型采用此方案。适配器的作用是充当”翻译官”,把视觉编码器的”视觉语言”翻译成 LLM 懂的”文本语言”。
方案三:原生多模态预训练(Native Multimodal)
GPT-4o、Gemini 2.0 等最新模型不再走”先训练纯文本模型再外挂视觉模块”的老路,而是从预训练阶段就用文本、图像、音频、视频混合数据训练同一个 Transformer。视觉和音频的编码器从一开始就与语言模型联合训练,模态间的”对齐”在预训练中自然完成。这使模型能理解跨模态的细微关系(如”这张图里谁在说话”这种需要视觉+音频联合理解的任务),而非简单地把图像”翻译成文字”再理解。
图像 token 数量的工程影响:一张图像经过编码后会产生多少 token,直接影响成本和速度。以 GPT-4o 为例,一张 1024×1024 的图像大约消耗 765 个 token(按 tile 数计算)。这意味着在 RAG 或 Agent 场景中大量使用图像会快速消耗上下文窗口。2025 年的趋势是用更高效的视觉编码器(如 NaViT 支持任意分辨率输入、Sapiens 的像素级下采样)来减少 token 消耗。
音频模态:从声波到 token
Section titled “音频模态:从声波到 token”音频的处理有两种路线:
- 级联方案(Cascaded Pipeline,语音→文字→LLM→语音的多级处理架构):语音 → ASR(Automatic Speech Recognition,自动语音识别)转文字 → 文本 LLM 处理 → TTS(Text-to-Speech,文本转语音)合成语音。技术成熟但信息有损(语调、情感、说话人特征在转文字时丢失),延迟高(多级处理串行执行,通常 2-4 秒)。
- 原生方案(Native):直接把音频编码为离散 token(如用 EnCodec、SoundStream 等神经音频编解码器(neural audio codec,用神经网络将连续声波压缩为离散 token 再还原的技术)),与文本 token 一起送入 LLM。LLM 直接输出音频 token,再解码为声波。GPT-4o 采用此方案,实现了约 320ms 的端到端语音延迟——接近人类对话的反应速度(人类对话平均反应时间约 200-500ms)。
为什么原生音频比级联方案更好? 想象你在和一个只能通过翻译沟通的外国人对话——你说中文,翻译翻成英文,对方用英文回答,翻译再翻回中文。每一步都可能丢信息(语气的微妙变化、情感色彩),而且慢。原生方案就像对方直接会说中文——没有中间人,信息无损,速度快。GPT-4o 的语音能感知你的情绪、模仿你的语调、甚至在你说”等一下”时停下来——这些都是级联方案做不到的。
视频模态:时空理解
Section titled “视频模态:时空理解”视频理解比图像理解复杂一个维度——不仅要理解”有什么”,还要理解”随时间如何变化”。主流方案有两种:
- 帧采样(Frame Sampling):从视频中均匀抽取 N 帧(如每秒 1 帧),每帧当作一张独立图像送入视觉编码器,再在时间维度上做注意力(temporal attention)关联各帧。Gemini 2.0 等模型采用此方案,支持最长 1 小时的视频输入。
- 视频 token 压缩:直接处理视频所有帧的 token 量太庞大(1 分钟 30fps 视频 = 1800 帧 × 每帧数百 token),需要用空间-时间注意力池化(spatiotemporal pooling)或 3D 卷积将相邻帧的冗余信息压缩。Video-LLaVA、LLaVA-NeXT-Video 等开源模型在这方面做了大量优化。
模态对齐的训练策略
Section titled “模态对齐的训练策略”多模态 LLM 通常采用分阶段训练:
- 模态对齐预训练(Modality Alignment Pre-training):用海量的”图像-文本”对(如 LAION-5B 数据集包含 58.5 亿图文对)训练视觉编码器 + 适配器,让模型学会”图像内容 ↔ 文本描述”的对应关系。此阶段通常冻结 LLM 权重,只训练编码器和适配器。
- 多模态指令微调(Multimodal Instruction Tuning):用”图像 + 问题 → 回答”格式的指令数据微调,让模型学会根据图像内容回答问题、描述场景、推理分析。LLaVA 用 GPT-4 生成大量”看图对话”训练数据,是这个方向的里程碑。
- 多模态 RLHF(Multimodal Reinforcement Learning from Human Feedback):与纯文本 RLHF 类似,用人类偏好数据对齐多模态输出,确保回答有帮助且安全。例如人类标注者会比较两个模型对同一张图的描述,选出更准确、更安全的那个。
2025 年的训练新趋势:
- 合成数据驱动:用强大的闭源模型(GPT-4o)生成大量”图像-问答”训练数据来训练开源多模态模型(即”蒸馏”策略),大幅降低了高质量标注数据的获取成本。
- 统一 token 化:不再为每种模态设计独立的编码器,而是用统一的多模态 tokenizer 将文本、图像、音频都编码为同一格式的 token。Meta 的 Chameleon(2024)是这一方向的代表。
- 任意分辨率输入:NaViT 等技术允许模型处理任意分辨率的图像,而非强制缩放到固定大小,这在小字 OCR、卫星图分析等场景显著提升了准确率。
统一架构趋势
Section titled “统一架构趋势”最新的多模态 LLM(如 GPT-4o、Gemini 2.0)趋向于原生多模态架构——从预训练阶段就用文本、图像、音频、视频混合数据训练同一个模型,而不是先训练纯文本模型再外挂视觉/音频模块。好处是模态间深度融合,模型能理解跨模态的细微关系。
传统多模态 LLM(外挂式): [预训练文本 LLM] + [预训练视觉编码器] + [适配器微调] = 能看图的 LLM → 模态间是"翻译"关系,深度融合有限
原生多模态 LLM(GPT-4o / Gemini 2.0): [文本 + 图像 + 音频 + 视频] → 统一预训练 → 原生多模态模型 → 模态间是"共生"关系,天然理解跨模态关联视觉理解的深层原理:注意力如何”看见”图像
Section titled “视觉理解的深层原理:注意力如何”看见”图像”理解多模态 LLM 为什么能”看懂”图像,关键在于跨模态注意力机制(cross-modal attention):
当多模态 LLM 接收到”图像 + 问题”输入时,Transformer 的自注意力层(self-attention layer)会让文本 token 和图像 token 互相”看见”彼此。例如当问题是”图中的猫是什么颜色?“时,“颜色”这个文本 token 会与图像中对应猫的区域的 patch token 产生高注意力权重——模型实质上是在图像的”猫”区域”寻找”颜色信息。这就是为什么多模态模型能回答关于图像细节的问题。
2025 年的研究(如 LLaVA-NeXT、InternVL 2)表明,视觉编码器的分辨率和精度是多模态性能的关键瓶颈。更高分辨率的输入 = 更多的 patch = 更丰富的视觉细节 = 更准确的 OCR、细粒度识别和空间推理能力。
多模态 LLM 架构
Section titled “多模态 LLM 架构”模态对齐训练流程
Section titled “模态对齐训练流程”级联 vs 原生音频方案对比
Section titled “级联 vs 原生音频方案对比”图像 token 化过程
Section titled “图像 token 化过程”用 OpenAI Vision API 分析图像
Section titled “用 OpenAI Vision API 分析图像”from openai import OpenAI
client = OpenAI()
# GPT-4o 支持图像输入:把图片 URL 或 base64 编码放入 image_urlresponse = client.chat.completions.create( model="gpt-4o", messages=[{ "role": "user", "content": [ {"type": "text", "text": "这张图里有什么?用中文描述。"}, {"type": "image_url", "image_url": {"url": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"}}, ], }],)print(response.choices[0].message.content)# 输出示例:图中有一只橘色的猫,正坐在地上...多图对比分析
Section titled “多图对比分析”"""GPT-4o 支持在一条消息中传入多张图片做对比分析。"""
response = client.chat.completions.create( model="gpt-4o", messages=[{ "role": "user", "content": [ {"type": "text", "text": "比较这两张 UI 截图的设计差异,给出改进建议。"}, {"type": "image_url", "image_url": {"url": "https://example.com/ui-v1.png"}}, {"type": "image_url", "image_url": {"url": "https://example.com/ui-v2.png"}}, ], }],)print(response.choices[0].message.content)本地图片的 base64 编码上传
Section titled “本地图片的 base64 编码上传”"""当图片无法通过 URL 访问时,可以用 base64 编码内嵌到请求中。"""import base64
def encode_image(image_path): with open(image_path, "rb") as f: return base64.b64encode(f.read()).decode("utf-8")
base64_img = encode_image("screenshot.png")
response = client.chat.completions.create( model="gpt-4o", messages=[{ "role": "user", "content": [ {"type": "text", "text": "这个报错是什么意思?我该怎么修?"}, {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{base64_img}"}}, ], }], max_tokens=500,)print(response.choices[0].message.content)用 Qwen2-VL 本地部署视觉语言模型
Section titled “用 Qwen2-VL 本地部署视觉语言模型”# 前提:pip install transformers torch pillow accelerate qwen-vl-utilsfrom transformers import AutoProcessor, AutoModelForVision2Seqfrom PIL import Imageimport torch
# Qwen2-VL 支持任意分辨率输入,中文场景表现优秀model_id = "Qwen/Qwen2-VL-7B-Instruct"processor = AutoProcessor.from_pretrained(model_id)model = AutoModelForVision2Seq.from_pretrained( model_id, torch_dtype=torch.float16, device_map="auto")
image = Image.open("your_photo.jpg") # 替换为你的本地图片
# Qwen2-VL 使用 chat template 格式messages = [ { "role": "user", "content": [ {"type": "image", "image": image}, {"type": "text", "text": "请详细描述这张图片中的内容。"}, ], }]
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)inputs = processor(text=text, images=image, return_tensors="pt").to("cuda")
output = model.generate(**inputs, max_new_tokens=300)print(processor.decode(output[0], skip_special_tokens=True))用多模态模型做自动化 UI 测试
Section titled “用多模态模型做自动化 UI 测试”"""一个实用的多模态 Agent:截取应用界面截图,让 LLM 检查 UI 是否符合设计规范。"""
def audit_ui(screenshot_path, design_spec): """用 GPT-4o 审查 UI 截图是否符合设计规范。""" base64_img = encode_image(screenshot_path)
response = client.chat.completions.create( model="gpt-4o", messages=[ { "role": "system", "content": ( "你是一个专业的前端 QA 工程师。" "请检查 UI 截图是否符合设计规范," "列出所有不符合之处和改进建议。" ), }, { "role": "user", "content": [ {"type": "text", "text": f"设计规范:\n{design_spec}"}, {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{base64_img}"}}, ], }, ], max_tokens=800, ) return response.choices[0].message.content
# 示例使用spec = """- 导航栏高度:64px,背景色:#1890ff- 主按钮圆角:6px,字体大小:14px- 页面最大宽度:1200px,居中- 所有图片必须有 alt 属性"""report = audit_ui("homepage_screenshot.png", spec)print(report)- 图像分辨率有上限:大多数视觉 LLM 支持的输入图像有最大分辨率限制(如 GPT-4o 支持到约 2048×2048,Gemini 2.0 支持更大)。超高分辨率图像会被缩放或裁剪,可能丢失关键细节。对需要精细识别的场景(如 OCR、医学影像、工程图纸),考虑先用裁剪/切片(tiling)预处理,将大图分成多个小区域分别分析。
- 多图理解能力参差不齐:GPT-4o 和 Gemini 支持多张图片对比和推理,但开源模型的多图能力通常较弱。多图场景(如”比较这两张图的区别”)建议优先用闭源 API。
- 视频理解是瓶颈:长视频需要大量帧采样,token 消耗巨大(1 分钟视频可能消耗数千到数万 token)。Gemini 2.0 支持最长 1 小时视频,但成本不低。实用建议:先用关键帧提取(keyframe extraction)或场景分割减少输入量。
- 音频原生 vs 级联的选择:级联方案(ASR + 文本 LLM + TTS)技术成熟、可控性强、支持任意文本模型,适合大多数场景;原生方案延迟低、保留情感信息、支持打断,但定制难度大。2025 年的选择标准:如果需要”自然对话体验”(如 AI 客服语音、陪伴机器人)选原生(GPT-4o 实时语音);如果需要”语音输入但答案质量优先”(如语音搜索)选级联。
- 隐私敏感场景用本地部署:医疗影像、工业质检等涉及敏感图像的场景,用 Qwen2-VL、LLaVA、InternVL 等开源模型本地部署,数据不出域。
- Prompt 要具体:对视觉 LLM,“描述这张图”太宽泛,模型会给出泛泛的回答。明确问”这张图中有几个人?他们在做什么?背景是什么?左上角的文字写了什么?“会得到更精准的结果。
- 注意图像 token 的成本:一张高清图片可能消耗数百到上千 token。在批量处理场景中,先评估图像 token 开销,避免意外的高额账单。使用
detail: "low"参数(OpenAI API)可以降低图像分辨率以节省 token。 - 多模态幻觉仍然存在:模型可能会”看到”图中不存在的东西(类似于文本幻觉)。在高风险场景(医学诊断、安全检查)中,务必加入人工验证环节。
- 结构化输出优于自由文本:需要从图像中提取结构化信息时(如读发票、提表格数据),在 prompt 中明确要求 JSON 格式输出,配合 GPT-4o 的 Structured Outputs / Function Calling 能力,比自由文本描述更可靠。
- ChatGPT / Gemini 图像对话:用户上传一张照片,AI 能识别物体、读取文字(OCR,Optical Character Recognition,光学字符识别)、分析图表、描述场景——从”帮我看看这道数学题怎么做”到”这个皮肤症状可能是什么”,视觉理解极大地扩展了 LLM 的应用边界。
- 智能客服与质检:电商客服让用户拍照上传损坏商品,AI 自动识别问题类型并生成工单;工厂流水线用视觉 LLM 做产品外观质检,比传统 CV(Computer Vision,计算机视觉)模型更灵活,能处理从未见过的新型缺陷。
- 实时语音助手:GPT-4o 的实时语音对话(约 320ms 延迟)让 AI 语音助手从”生硬的问答机”变成”自然的对话伙伴”,能感知语气、情绪,甚至能被中途打断。2025 年,这种能力被广泛应用于教育辅导、心理咨询、语言学习等场景。
- 无障碍辅助:Be My Eyes 等应用集成 GPT-4V,让视障用户通过手机摄像头实时获取周围环境描述——“前面有三级台阶""这是一罐番茄汤""路口红灯,请等待”。多模态 LLM 正在成为视障人群的”第二双眼睛”。
- 自动驾驶场景理解:多模态 LLM 正在被探索用于自动驾驶的场景理解与决策推理,将摄像头画面转化为自然语言的场景描述,辅助规划系统。Waymo、特斯拉等公司都在研究用 VLM 做”可解释的驾驶决策”。
- 医疗影像辅助诊断:放射科医生用多模态 LLM 预读 X 光片和 CT 扫描,AI 生成初步报告供医生审核,显著提升工作效率。注意:当前所有 LLM 辅助诊断都需医生最终确认,AI 不做独立诊断。
- 文档智能处理:多模态 LLM 能直接”看懂”包含图表、公式、手写注释的复杂 PDF 文档(如学术论文、财务报表),无需先做 OCR 再用文本模型处理。Claude 3.5 Sonnet 在这个场景表现尤为突出。
- UI/UX 自动化测试:用多模态 LLM 自动截图审查网页和 App 界面,检查设计规范一致性、可访问性问题,替代部分人工 QA 工作。
典型类库与工具
Section titled “典型类库与工具”| 类库 / 工具 | 语言 | 说明 |
|---|---|---|
| OpenAI GPT-4o API | REST | 全模态模型,支持文本、图像、音频输入输出,支持实时语音 |
| Google Gemini 2.0 API | REST | 原生多模态,支持长视频和超长上下文(1M-2M token) |
| Claude 3.5 Sonnet | REST | Anthropic 视觉语言模型,擅长图表和文档理解 |
| Qwen2-VL | Python | 阿里通义千问视觉模型,支持任意分辨率,中文场景表现优秀 |
| LLaVA / LLaVA-NeXT | Python | 开源视觉语言模型,学术界主流基线,持续迭代 |
| InternVL 2 | Python | 上海 AI Lab 开源多模态模型,在多项基准上领先开源 |
| transformers | Python | HuggingFace 库,支持加载多种开源多模态模型 |
| LMDeploy | Python | 多模态模型高性能推理部署框架,支持张量并行和流水线并行 |
| 术语 | 英文 | 解释 |
|---|---|---|
| 多模态 | Multimodal | 同时处理多种数据类型(文本、图像、音频、视频) |
| 视觉语言模型 | Vision-Language Model (VLM) | 能同时理解图像和文本的模型,多模态 LLM 的核心形态 |
| 模态对齐 | Modality Alignment | 将不同模态的信息映射到统一的表示空间,使模型能用同一套”语言”理解它们 |
| 视觉编码器 | Vision Encoder | 将图像编码为特征向量的模块,常用 CLIP ViT 或 NaViT |
| 适配器 | Adapter | 连接视觉编码器和 LLM 的转换层,将视觉特征翻译为文本空间表示 |
| Q-Former | Querying Transformer | 一种适配器结构,用可学习的查询模块从视觉特征中提取与文本相关的信息 |
| 图像块 | Image Patch | 将图像切割成的小方块,每块编码为一个 token |
| 原生多模态 | Native Multimodal | 从预训练阶段就用多模态数据训练的模型架构(如 GPT-4o、Gemini) |
| 级联方案 | Cascaded Pipeline | 语音→文字→LLM→语音的多级处理架构 |
| 神经音频编解码器 | Neural Audio Codec | 用神经网络将连续声波压缩为离散 token 并可还原的技术(如 EnCodec) |
| 跨模态注意力 | Cross-modal Attention | Transformer 中文本 token 与图像 token 互相参考的注意力机制 |
| 帧采样 | Frame Sampling | 从视频中按固定间隔抽取图像帧用于视频理解的技术 |
| 统一 token 化 | Unified Tokenization | 用同一套 tokenizer 将文本、图像、音频都编码为统一格式 token 的方法 |
- LLaVA:Liu et al., “Visual Instruction Tuning”(2023),开源视觉语言模型的里程碑,用 GPT-4 生成图文指令数据训练,效果好且完全开源。后续 LLaVA-NeXT 系列持续迭代至 2024-2025 年。
- CLIP:Radford et al., “Learning Transferable Visual Models From Natural Language Supervision”(2021),OpenAI 的图文对齐模型,是多模态 LLM 视觉编码器的基础。理解 CLIP 的对比学习机制是理解多模态对齐的关键。
- GPT-4o:OpenAI, “Hello GPT-4o”(2024),首个原生全模态模型,端到端训练实现约 320ms 语音延迟。其系统卡片(system card)披露了多模态安全对齐的细节。
- Gemini:Google, “Gemini: A Family of Highly Capable Multimodal Models”(2023-2024),从零开始训练的原生多模态架构,支持超长上下文。多模态生成方向详见多模态生成。
- Chameleon:Meta AI, “Chameleon: Mixed-Modal Early-Fusion Foundation Models”(2024),探索统一 token 化的早期融合多模态架构,对理解原生多模态的技术路线有重要参考价值。
- InternVL 2:Chen et al., “InternVL: Scaling up Vision Foundation Models and Aligning for Generic Visual-Linguistic Tasks”(2024),开源多模态模型 SOTA,在多项基准上逼近 GPT-4V。
- Qwen2-VL:阿里 Qwen 团队(2024),支持任意分辨率输入的开源视觉语言模型,中文场景表现优秀,技术报告详细描述了动态分辨率方案。