数源AI 最新论文解读系列
论文名:LlamaFusion: Adapting Pretrained Language Models for Multimodal Generation
论文链接:https://arxiv.org/pdf/2411.02293.pdf
导读
在过去的几年里,我们看到了显著的多模态生成模型的进展,这些模型能够理解并以任意序列交错地生成文本和图像。像Transfusion、Chameleon和Unified-IO(这样的模型展示了统一架构的潜力,能够无缝处理图像和文本两种模态。然而,这些模型通常需要从头开始训练,要求大量的计算资源以实现跨所有模态的熟练度。即使是掌握单一模态的计算成本也是相当大的——训练像Llama-3这样最先进的纯文本大型语言模型(LLMs),需要训练超过15万亿个标记。
鉴于这些计算需求,我们研究了一种替代范式,该范式重用并适应现有的预训练大型语言模型(LLM)。我们探讨了一个基本的研究问题:如何在赋予预训练LLM视觉理解和生成能力的同时,保持其纯文本性能?我们的实验表明,对预训练的纯文本LLM进行多模态数据的朴素微调会导致其语言处理能力的显著下降。
简介
我们介绍了LlamaFusion,一个框架,用于增强预训练的纯文本大型语言模型(LLMs)的多模态生成能力,使其能够理解并以任意序列生成文本和图像。LlamaFusion利用现有的Llama-3权重来自回归处理文本,同时引入额外的并行变换模块,通过扩散处理图像。在训练过程中,每个模态的数据被引导至其专用模块:特定于模态的前馈层、查询-键-值投影以及规范化层独立处理每个模态,而共享的自注意力层则允许文本和图像特征之间的交互。通过冻结纯文本LLMs的特定模块并仅训练图像特定模块,LlamaFusion保留了纯文本LLMs的语言能力,同时发展出强大的视觉理解和生成能力。与从头开始预训练多模态生成模型的方法相比,我们的实验表明,LlamaFusion在仅使用50%的FLOPs的情况下,提高了20%的图像理解能力和3.6%的图像生成能力,同时保持了Llama-3的语言能力。我们还展示了该框架能够适配具有多模态生成能力的现有视觉-语言模型。总体而言,该框架不仅利用了现有对纯文本大型语言模型的计算投资,还使语言和视觉能力的并行发展成为可能,为高效的多模态模型开发提供了一个有前景的方向。
方法与模型
在这项工作中,我们旨在有效地适应预训练的、纯文本的LLM来处理图像理解和生成任务。具体来说,我们在一个开放权重的LLM——Llama-3的基础上继续训练,使用Transfusion目标来处理两种模态。由于Transfusion对其语言建模和图像扩散目标使用共享参数,关键挑战在于在优化其新的图像能力的同时防止Llama-3强大的纯文本性能下降。
模型架构
针对上述挑战,我们提出了LlamaFusion框架,该框架结合了预训练的、纯文本的Llama模型和一个专用的图像变换器,用于视觉生成和理解,使每个模态能够通过独立的权重进行处理。通过在微调视觉模块时冻结文本模块,我们保留了其仅有语言的能力,同时为视觉理解和生成的学习提供一个加速的开始。
LlamaFusion是一个仅包含N个变换器层的解码器模型。如图1所示,设计的核心是特定于模态的注意力层和前馈网络(FFN),每个层只处理来自其对应模态的数据。在不失一般性的情况下,我们在下面描述LlamaFusion时采用的配置是单个Transformer层,将残差连接和层归一化直接折叠进自注意力和前馈神经网络(FFN)中。模型的输入是文本令牌和带噪声的图像表示。我们用蓝色表示特定于文本的模块,红色表示特定于图像的模块。
输入投影 输入的文本令牌通过一个线性嵌入层被投影成一系列文本隐藏状态。带噪声的图像通过一个U-Net下采样器被投影成一系列图像表示。
然后,文本隐藏状态或图像隐藏状态被输入到下一个注意力层。
特定模态的自注意力,我们为每个模态创建独立的注意力矩阵。具体来说,文本隐藏状态和图像隐藏状态通过各自的Q、K、V矩阵转换成相应的查询、键和值。预注意力层规范化也是特定于模态的,并融入到QKV函数中。
我们通过将图像和文本模态的查询、键和值连接成统一的序列来实现跨模态注意力。接着,使用每个模态各自的O权重,将文本和图像标记位置的注意力加权值投影回隐藏状态维度。
其中,表示连接。M代表一个混合注意力掩码,与周等人(2024年)的“输血”研究中的掩码相同,对文本标记应用因果掩码,对图像标记应用双向掩码。这种设计允许在跨模态内部和之间进行自注意力,鼓励跨模态整合。
特定于模态的前馈网络 在注意力层之后,我们采用特定于模态的前馈神经网络分别处理文本和图像数据。前馈神经网络前的预规范化也是特定于模态的,并融合在FFN函数中。
输出投影:最终,在经过N层自注意力和前馈神经网络(FFN)之后,得到的隐藏状态通过语言模型的输出层被投影到文本的logits上,或者通过U-Net上采样器被投影到图像的预测噪声上。
与Transfusion相同,输出和分别通过语言建模损失(方程1)和DDPM损失(方程3)。文本模块中的所有参数以及图像模块中的自注意力和FFN参数均从预训练的Llama模型初始化。在优化过程中,我们将文本和图像参数组的学习率分离:使用一个文本学习率用于,以及一个图像学习率用于。为了保持模型在纯文本基准测试上的性能,我们在主要实验中使用(冻结文本模块),并在§5中探索不同的配置。
实验与结果
训练设置
-
数据:使用与Transfusion相同的380M Shutterstock图像-字幕数据集,图像中心裁剪并调整为256x256像素。
-
模型细节:图像通过VAE编码器和2块U-Net下采样器转换为256个patch。文本和图像特定的Transformer模块从预训练的Llama-3 8B模型初始化。
-
优化:冻结文本模块,仅微调图像模块,使用AdamW优化器和余弦退火学习率计划。
与Transfusion的受控比较
-
配置一:使用Transfusion一半的图像数据量,LlamaFusion使用约一半的总FLOPs。
-
配置二:匹配Transfusion的总FLOPs,但LlamaFusion仍使用冻结的文本模块。
评估设置
-
语言能力:在Hellaswag、SIQA、WinoGrande等任务上评估模型的语言能力。
-
图像理解:使用CIDEr分数评估模型生成图像描述的能力。
-
图像生成:在MS-COCO数据集上生成图像,使用FID和CLIP分数评估生成质量。
结果
-
语言能力:LlamaFusion在所有语言基准测试中保持了Llama-3的强性能。
-
图像理解:LlamaFusion相比Transfusion在CIDEr分数上提高了20%。
-
图像生成:LlamaFusion在FID和CLIP分数上均优于Transfusion。
分析
-
架构消融:证明了特定于模态的模块和分离的学习率对于保持模型性能至关重要。
-
图像编辑任务:展示了LlamaFusion在图像编辑任务上的有效性,补充了其在文本、图像理解和生成任务上的强大能力。
-
扩展到VLMs:将LlamaFusion的方法应用于视觉-语言模型(如LLaVA-NeXT),展示了其在保持多模态理解能力的同时增强图像生成能力。
总结
我们提出了LlamaFusion,一个旨在赋予LLMs多模态生成能力的框架。通过使用Llama-3进行文本生成,并集成用于图像扩散的并行变压器模块,LlamaFusion高效地复用了投入在预训练LLMs上的计算资源。llama融合(LlamaFusion)的模块化设计使得语言和视觉模块能够独立开发,降低了与大规模、多模态预训练相关的复杂性。虽然目前 llama融合是建立在仅文本的大型语言模型(LLM)之上,但它可以从现有的视觉理解大型语言模型中进一步受益),继承了强大的多模态理解能力,同时能够生成交错的文本和视觉内容。
如何学习大模型 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 的正确特征了。