什么是多模态大模型
2024-8-20
是什么
- 在机器学习领域,”模态”被用来描述不同类型的数据形式,如文本、图像、视频、音频等。
- 最开始以 ChatGPT 为代表的大语言模型,都是只支持文本这个单一模态。
- 可以同时处理文本、图像、音频等多种形式的数据输入输出的大模型,就是多模态大模型。
特点:端到端
一个模型能同时理解和处理多种模态的数据输入。
- 非端到端的例子:
- 在 ChatGPT 上,可以调用 DALL-E 生成图片,但实际流程是 prompt → GPT4模型 → 生成细节提示词 →DALL-E模型 → 生成高质量细节图像,只是一个能力串联,并不是一个多模态大模型。
- 在豆包或其他一些LLM APP上,支持语音输入→文字和语音输出,实际流程是 语音→ASR模型转文字→LLM→文字→tts模型转语音,并不是端到端 语音→LLM→语音。
- 端到端的例子:
- GPT4o 的实时语音对话,流程是 语音→ GPT4o模型→语音。延迟低、语气/音色/停顿/语义都能综合理解到。
- claude3.5 支持按要求识别图片,流程是 图片+prompt → claude模型→文本。能很好结合 prompt 按要求输出对图片的识别。
- 端到端的好处:
- 模型能直接从原始的数据中学习不同模态之间的关联和映射关系,发现隐藏在数据中的复杂跨模态模式,可以 scale up 达到涌现,没有中间折损,可以做到低延时。
原理:基于大语言模型
- 多模态大模型以大语言模型为基础模型,复用已预训练好的模型理解能力,在上面增加其他模态的能力,对齐多个模态的特征让原大语言模型能理解。GPT4o 就是在 GPT4 基础上增加音频/图片的特征能力,它在文本上的理解能力还是跟 GPT4 差不多。
- 模型通用的基本构造(参考这篇文章):
当前模型能力
把多模态大模型能力拆分成输入理解、输出生成的话:
- 当前主要在发展输入理解部分,较多大模型支持了图片理解、视频理解能力。
- 输出生成上,主流的还是各模态各自在发展阶段,如图片生成模型、视频生成模型、音乐生成模型,都是独立单任务模型。GPT4o、gemini 支持了音频的端到端理解和生成,其他大模型基本还只支持文本生成。
- 有一些新的模型在尝试大统一,输入输出都支持 文本、图片、音频、视频多种模态,如腾讯刚出的 VITA、AnyGPT、Unified-IO,都处于起步阶段,看起来综合效果还没很好。
图片理解
通往多模态的第一步,基本都是在LLM上加入图像识别能力,已成为目前大模型标配,这是最自然最广泛的需求,难度也不高。
现状:大部分模型 文心一言,豆包,GPT4o,claude、Gemini 等都支持,开源的 Qwen-VL、LLaVA、Yi-VL、MiniCPM-V 等也非常多。
能力:大模型加持的图像识别,各项能力都能胜任,包括OCR、图片物体理解、逻辑理解、文档图表理解、隐喻理解等。
效果:能力比较全面,但也相对平庸,相对垂直领域专门优化的图片识别模型,效果有差距。例如各大模型在OCR能力上的评测,相对最好的OCR垂直模型有差距,更垂直的像植物识别这种,跟PictureThis 这类专门优化过的差距会更大。对图片理解上,结合大模型能力效果会比较好(评测)。图片识别评测维度非常多,有各种维度的评测标准,从个人实际观感上综合识别效果最好的是claude 3.5。
原理
以 Yi-VL 为例,其他模型差不太多,都是在 LLM 基础上增加图像编码处理然后端到端训练 :
- 图中的Large Language Model是基础模型,Yi-34B-Chat或Yi-6B-Chat。
- Vision Transformer(ViT)模块用于图像编码,用CLIP模型。
- Projection 模块处理图像特征,训练后的这一层让图像特征跟文本特征空间对齐,包含 layer normalizations 和 Multilayer Perceptron(MLP)。
- 火焰标志表示训练,雪花标志标识冻结不训练。训练分了3步,用了不同的 图片-文本 数据对,最后一步 LLM 也参与训练了。
- LLaVA/MiniCPM-V也是类似的结构和训练过程,训练最后一步都会微调到LLM基模参数。
应用
- 图片搜索、语义搜索、物体识别、人脸识别这些垂类小模型已经能做好。
- 给图片配诗、给图片配音、拍照搜题+解题、阅卷、验证图识别等,这些用结合LLM的大模型,门槛会降低,效果也会有优化。
- 截屏识别自动化,试卷阅卷,这种场景结合 LLM 才能做好
视频理解
现状:部分主流大模型支持通过把视频抽帧为一系列静态图进入模型分析,本质上是图片理解能力,能做到一定程度的内容理解,GPT4o 基本是这样,一些支持图片识别的大模型稍加调整也能支持这种方式。少部分模型能识别视频和对应的音频,如Gemini、阿里开源的 VideoLLaMA2。有比较多的开源模型在做各种方式的尝试,更好识别视频帧之间的时间逻辑关系、跟音频/文字模态做更好的整合理解。
效果:有个项目 Video-MME 专门分析各大模型视频识别理解能力,测了多个模型在各种理解任务上的表现,包括时间/空间关系的感知和逻辑推理、文字/物体感知、信息总结等,视频类型包括电影、体育、vlog等,能结合整个视频里的信息做理解。各模型在2分钟以内的短视频上理解能力已经不错,中长视频会差比较多,Gemini、GPT4o和效果最好的,开源的模型差距还比较大。
原理
视频理解的主流方法是使用图像编码器从视频中提取帧,对其进行编码,然后用压缩模块压缩视频编码信息,再将其输入到 LLM 中,与文本输入进行联合理解。
也有很多模型在尝试各种方案,如智谱 CogVLM2 加入时间定位、时间戳的数据,让模型能感知视频对应时间。有些模型尝试改造 LLM,不让视觉特征与文本混合,在 LLM 内部增加独立的 transformer 模块处理,如 mPLUG-Owl3。
以 VideoLLaMA2 为例看下大致原理, 综合支持了视频和音频输入,视频和音频分别编码:
- 视频按帧编码为特征,经过STC Connector 处理,Spatial Convolution 处理视频帧特征,提取空间信息,Spatial – Temporal Downsampling 降低视频数据维度,再经过投影层与其他模态特征对齐,一起进入大模型。音频也是一样的流程。
- 训练分成多个步骤,视频、音频分别单独训练,最后再联合视频音频一起训练,每个步骤有对应的数据集,看起来只有最后一步联合训练,LLM基模的参数才会参与训练。
(题外话,名字叫 VideoLLaMA2,实际上跟Llama没关系,LLM基模用的是Mistral)
应用
基于类似的原理,可以自行训练在垂类表现更好的视频模型,例如:
- 视频配文案
- 视频内容总结、解读
- 视频内容搜索(以自然语言搜索长视频特定内容出现位置)
- 影视解读(影视时长过长,当前大模型 context 能力还不具备)
音频理解&输出
能力:GPT4o 和 Gemini 都支持了音频理解和输出,能很好理解音频里的语气、语调、节奏、风格等信息,细微的喘息、叹气声都能很好识别和生成,实时性也能做到很高。
原理
目前 GPT4o 和 gemini 相关公开的具体实现细节较少,最基本的原理跟上述应该差不多,语音编码为token→投影层对齐其他模态→输出预测语音token→解码为语音。可以看看 AnyGPT 的实现:
应用
最主要的应用是拟人真实程度高的实时语音对话,从GPT4o的演示看,这点对体验影响很大,即使智能能力进步不大,真实性和实时带来的 AGI 感受也是很强。
语音转录、会议记录总结等,虽然已经有很多 ASR 模型能做到转文字,但整个音频的内容、多人对话、语气情绪都能输入大模型,结合大模型理解能力,预计能做到更好的效果。
其他
端到端生成图片 Gemini 号称支持,但没找到相应资料,视频生成单模型都还在摸索,结合 LLM 还早。多模态大模型整体处于发展阶段,各模态的理解和生成还没到很高的水平,整体进展没预期快,但以当前的能力,针对垂直场景做一些训练,是能够较低门槛做出一些之前做不到或做不好的应用了,例如视频配旁白。
从我个人的使用感受来看,垂直场景比如代码补全的 AI 生成已经非常易用了,无法想象多模态大模型成熟之后将会怎么改变我们的生活。感觉博主的分享。