projects: https://github.com/BradyFU/Awesome-Multimodal-Large-Language-Models/tree/Unified paper: https://www.techrxiv.org/users/993777/articles/1355509-a-survey-of-unified-multimodal-understanding-and-generation-advances-and-challenges引言
多模态理解与生成呈现相互促进的趋势,其结合也体现面对复杂世界问题的灵活性,具体可划分为如下三阶段特征:
- 分别在理解与生成形成专家模型
- 理解与生成结合构建统一模型
- 结合场景预期涌现的复杂交互能力
其中,作者引用一句深刻的道理总结理解与生成协同效应的洞见,也适用于作为多模态建模的哲学原理:
What I cannot create, I do not understand. —— Richard Feynman该综述提供以下贡献:
- 多模态建模方法的系统分类
- 编码解码策略的全景视图
- 训练生命周期的全面分析
- Benchmark的概述及汇总
- 当前主题的应用与挑战
- 未来的方向
后续行文也将围绕该顺序进行展开,尽可能简化力求信息清晰地平铺,确保条理性。
一、UFM:统一基础模型全景图
理解与生成模型分类简介
多模态理解分为判别式、生成式两大类,判别式模型通过学习决策边界对数据分类,而生成式模型则通过捕捉数据的联合分布,借助生成过程实现理解。
判别模型
以ResNet为代表,通过分类和识别等任务训练。后期通过无监督、自监督预训练学习泛化表征,再根据垂域任务微调,如MoCo、SimCLR、CLIP、ALIGN、SigLip、BiT。自监督学习主要分为对比学习、非对比学习两类。其中对比学习通常通过正负样本对距离的操控进行优化,使用最广泛的损失函数是InfoNCE loss:
基于对比学习的主要图像模型包括ALIGN、BASIC、Florence、OpenCLIP、SigLip,多模态统一模型包括LanguageBind、ImageBind。非对比学习则旨在通过最大化增强样本之间的相似度实现,而非成对数据,例如DINO通过教师蒸馏学生对同一视图的随机增强版本。而监督学习则通过标注数据定向训练特定任务的能力来抽象表征,特定任务数据集如BiT、JFT、I2E。
生成模型
与判别模型不同,生成模型倾向于学习联合数据分布P(x,y),而非条件概率p(y|x)。实现该目标的基础训练方法分为掩码建模和自回归两类。其中,掩码方法在早期BERT的研究中已得到充分证明。基于该思路实现的有BEIT、BEVT,MAE、SimMIM、EVA、EVA02、EVA-CLIP。而自回归方法在GPT-2的成功后成为主流,如LLaVA、LLaVA-1.5、Qwen-VL、DeepSeek-VL、Qwen2-VL、Qwen2-Audio、Qwen2.5-Omni等。
生成模型结构
主要的生成模型结构包括:基于能量的模型、生成对抗网络、自编码器、扩散模型、流匹配、自回归模型。
基于能量的模型通过能量函数表征数据的概率密度,最小化数据相关的能力进行优化:
生成对抗网络通过生成和判别网络的博弈隐式学习数据潜在分布,代表模型有SRGAN、SR等超分模型或其他风格迁移模型,可用如下最大最小化公式表示:
自编码器旨在对数据进行高度压缩并端到端地监督重构实现表征学习。但由于自编码器本身局限于数据重构,缺乏生成的灵活性,因此变分自编码器被提出以扩展其应用能力,后者通常采用重构损失、KL散度约束精度和分布稳健性,参考VQVAE、PixelCNN、PatchGAN、VQGAN、RAE等。过程可由如下距离公式表示:
扩散模型通过近似可逆的噪声采样过程建模数据分布,正向过程表示为原始数据从基于高斯分布采样的一系列逐步加噪版本:
逆向过程表示为基于网络预测的噪声采样逐步还原原始样本:
训练目标表示为中间采样步噪声的误差监督:
早期采用基于像素空间进行训练,如GLIDE、Imagen。后期广泛采用预训练的编解码器进行基于隐空间的扩散建模,如SD-1.5、SD-XL等。此外Unet由于精密优雅的结构非常适配成对的过程,如编解码和扩散过程,在早期被广泛采用,但后期逐渐被具有DiT所取代以便提高信息整合性能,同时对大规模训练范式更兼容,代表有SD-3.0、SiT、Sora。
流模型被视为一种可逆变换,将输入映射到输出,同时将原始分布转换为目标分布,局部密度变换量由雅可比行列式修正,其概率密度表示为:
通过最大化对数似然目标实现输入数据分布到简单先验分布(简单采样)的变换(此处省略类似于KL散度的正则):
其典型代表包括NICE、Real NVP、Glow。
自回归模型在当前是主流的多模态建模结构,其训练目标可表示如下:
训练目标是最大化所有预测项的对数似然,早期的代表包括PixelRNN、PixelCNN。
多模态建模系统性分类
共分三类:
- 专家模型级联:采用LLM作为核心控制模块,并通过自然语言接口与外部专家模型或服务交互,以实现多模态理解与生成。
- 多模块联合建模:
- 端到端统一建模:
专家模型级联
其优势在于集成的便利性和可扩展性,但本质上LLM作为核心控制器,不仅需要进行任务理解、任务编排,还有后端服务的正常响应整理、纠正等等,具有较高的能力预期和精度要求。同时任务执行过程的试错也容易导致较高的成本,以及级联的误差传递和隐私泄露等问题。因此更适合快速原型设计和工程化开发用途。该建模分类的代表包括:Visual ChatGPT、HuggingGPT、AudioGPT、SwitchGPT等。
多模块联合建模
这种方式分两种类型:1) Prompt引导 2) 表征引导。 Prompt引导通常通过文本作为中间介质引导完成各种模态的理解或生成,可有效地集成当前普遍建立在文本模态对齐的预训练模型从而实现低成本训练,参考Divter、TIGER、EasyGen、Mini-Gemini、GPT4Video、ModaVerse、LLMBind、Spider、VITRON、M2-Omni。但围绕Text-based的联合建模往往容易受限于自然语言自身的表达能力,尤其在任务具有抽象性、模糊性时,文本引导方法很难完整传达语义信息。表征引导侧重于在结构上完成语义对齐,而不是文本作为中介,因此在表达空间上具有显著优势。参考GILL、VLGPT、MiniGPT-5、MM-Interleaved、BLIP3-o、OmniGen2、UniLIP、EMU-X、VisionLLMv2、TextHarmony、PUMA、WeGen、Nexus-Gen、UniWorld-V1、Pisces、Janus、EVA-CLIP、SigLIP。前述工作普遍在连续Embedding上集成,与此平行的离散Token集成方法包括:SEED、LaVIT、MIO。在离散域集成的分支上,一部分工作致力于改进相应的Tokenizer,SEED-OPT、SEED-LLaMA、Seed-X、Video-LaVIT、ILLUME、DDT-LLaMA。此外,一些方法尝试探索Query-based的集成方式,如DreamLLM、MetaQuery、Ming-Lite-Uni、M2-Omni、Ming-Omni、OpenUni。更多模态相关探索包括:Next-GPT、X-VILA、CoDi-X、AnyGPT、C3LLM、MuMu-LLaMA、LM-MSN。
端到端统一建模
端到端建模分类如下:1) 自回归 2) 扩散 3) 自回归+扩散 4) 其他类型。其优势在于参数跨模态的共享能力,同时灵活地实现可扩展性,例如通过扩展词表完成新模态集成。相关工作不赘述,参考下述分支图表即可。值得一提的是笔者在端到端统一建模的相关训练项目中至少发现两个关键掣肘:第一点是庞大的自回归新模态词表容易存在竞争现象,例如15W的文本词表与3W的新模态词表叠加,在做交替生成时容易零碎穿插,导致生成不稳定,该问题往往优先引入RL进行后训练优化,但事实上多模态RL仅从正确性来看都是非常难定义的问题,更别提复杂高效的奖励空间。第二点是E2E多任务共训练所需数据量远比想象中要大得多,这对存储要求、算力需求,合成管道、清洗管道,甚至待训练任务列表划分及其多样性,都具有很大的挑战性。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。