“ 很多朋友们可能没听过salesforce ai research,但是你可能知道它们所作的一些工作-BLIP-2、InstructionBLIP、BLIP Diffusion、X-InstructBLIP等等。该机构与众不同的是,当大家都在热火朝天的拼一些超大的多模态大模型的性能的时候,它却在尝试着推出一些很轻量的多模态大模型,而它的目标是比肩或者超越比它大的MLLM。BLIP-2是一个开创性的工作,与当今更现代的LMM相比,BLIP-2中使用的数据缺乏达到竞争性能所需的规模、质量和多样性。此外,BLIP-2采用了一个复杂的Q-Former架构来连接视觉和语言模式,再加上一系列复杂的训练目标(ITM、ITC和ITG损失),这两者都对大规模训练构成了障碍。本文介绍了xGen-MM(也称为BLIP-3),这是一个用于开发大型多模态模型(LMM)的框架。该框架由精心策划的数据集、训练配方、模型架构和由此产生的LMM套件组成。它的出现势必会推动开源MLLM的快速发展!”
项目主页-https://github.com/salesforce/LAVIS/tree/xgen-mm
论文链接-https://arxiv.org/pdf/2408.08872
01-BLIP系列模型发展历程
2023年,Junnan Li, Dongxu Li等人提出“BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models”算法。本文提出了BLIP-2,这是一种通用且高效的预训练策略,从现成的冻结预训练图像编码器和冻结的大型语言模型中引导视觉语言预训练。**BLIP-2通过一个轻量级的查询转换器弥合了模态差距,该转换器分两个阶段进行预训练。第一阶段从冻结图像编码器中学习视觉语言表示。第二阶段将视觉从冻结的语言模型引导到语言生成学习。**BLIP-2在各种视觉语言任务上实现了最先进的性能,尽管其可训练参数比现有方法少得多。例如,我们的模型在零样本VQAv2上比Flamingo80B好8.7%,可训练参数减少了54倍。
2023年,Wenliang Dai, Junnan Li等人提出“InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning”算法。本文对基于预训练BLIP-2模型的视觉语言教学调整进行了系统全面的研究。作者收集了26个公开可用的数据集,涵盖了各种各样的任务和功能,并将其转换为指令调优格式。此外,引入了一个指令感知的查询转换器,它可以提取针对给定指令定制的信息特征。在13个搁置数据集上进行训练后,InstructionBLIP在所有13个搁置的数据集上都达到了最先进的零样本性能,大大优于BLIP-2和更大的Flamingo模型。当对单个下游任务进行微调时,该模型也会带来最先进的性能(例如,在图像上下文中对ScienceQA问题的准确率为90.7%)。
2023年,Wenliang Dai, Junnan Li等人提出“BLIP-Diffusion: Pre-trained Subject Representation for Controllable Text-to-Image Generation and Editing”算法。本文介绍了BLIP Diffusion,这是一种新的主题驱动图像生成模型,支持多模态控制,该模型消耗主题图像和文本提示的输入。**与其它主题驱动的生成模型不同,BLIP Diffusion引入了一种新的多模态编码器,该编码器经过预训练以提供主题表示。首先按照BLIP-2对多模式编码器进行预训练,以产生与文本对齐的视觉表示。**然后,设计了一个主题表示学习任务,该任务使扩散模型能够利用这种视觉表示并生成新的主题呈现。实验结果证明,BLIPDiffusion可以灵活地与ControlNet和prompt to prompt等现有技术相结合,从而实现新的主题驱动的生成和编辑应用程序。
2023年,Artemis Panagopoulou, Le Xue等人提出“X-InstructBLIP: A Framework for aligning X-Modal instruction-aware representations to LLMs and Emergent Cross-modal Reasoning”算法。本文介绍了一个简单但有效的跨模态框架,该框架构建在冻结的LLM之上,允许在不进行大量模态特定定制的情况下集成各种模态。为了便于指令模态微调,作者按照自动和可扩展的方式收集高质量的指令调优数据,由24K音频QA样本和250K 3D QA样本组成。利用指令软件表示,该模型与领先的同行表现相当,无需进行广泛的特定模态预训练或定制。此外,该方法展示了跨两种或多种输入模态的跨模态推理能力,尽管每种模态投影都是单独训练的。
02-xGen-MM背景简介
大型多模态模型因其潜在的应用能力而受到广泛关注。专有模型和开源LMM的最新进展突显了该领域的快速发展和大家对它的兴趣。然而,尽管取得了这些进步,开源模型和专有模型在访问开放权重、训练配方和策划数据集方面仍存在差距。这些限制阻碍了开源社区复制、理解和改进LMM。
最近的研究表明,大规模高质量的数据对于训练鲁棒的LMM至关重要。如上图所示,BLIP-2是探索LMM的开创性工作之一,它利用合成数据在当时取得了令人印象深刻的结果。**然而,与当今更现代的LMM相比,BLIP-2中使用的数据缺乏达到竞争性能所需的规模、质量和多样性。此外,BLIP-2采用了一个复杂的Q-Former架构来连接视觉和语言模式,再加上一系列复杂的训练目标(ITM、ITC和ITG损失),这两者都对大规模训练构成了障碍。**此外,BLIP-2仅支持单幅图像输入,而交错多模式数据格式是多模式数据最自然的形式。
如上图所示,为了应对这些挑战,本文引入了xGen-MM(BLIP-3),这是一个新的框架,旨在通过利用多模态交织数据集、精心策划的字幕数据集和其它公开可用的数据集来扩大LMM训练的规模。
03-xGen-MM算法简介
本文介绍了xGen-MM(也称为BLIP-3),**这是一个用于开发大型多模态模型(LMM)的框架。该框架由精心策划的数据集、训练配方、模型架构和由此产生的LMM套件组成。**xGen-MM是xGen-MultiModal的缩写,它进一步扩展了Salesforce之前的生成式人工智能计划和相应的文本xGen、代码生成codeGen、函数调用APIGen等基础模型。
在xGen MM(BLIP-3)中,作者通过用更具可扩展性的视觉标记采样器来替换Q-Former,简化了模型架构,并简化了训练目标,使其仅关注多模态上下文中文本标记的自回归损失。其主要重点是数据集管理和扩展训练数据。近期,BLIP-3团队推出了两个大规模、高质量的数据集:MINT-1T,一个万亿代币规模的交错数据集;以及BLIP3-KALE,一个知识增强的高质量密集字幕数据集。除此之外,作者介绍了另外两个专业数据集:BLIP3-OCR-200M,一个具有密集OCR注释的大规模数据集;以及BLIP3-GROUNDING-50M,一个大规模的视觉接地数据集。
这些模型经过一系列任务的严格评估,包括单图像和多图像基准测试。其预训练基础模型表现出强大的上下文学习能力,而指令调优模型在具有相似模型大小的开源LMM中表现出了具有竞争力的性能。
此外,作者引入了一个带有DPO的安全调谐模型,旨在减轻幻觉等有害行为并提高安全性。作者开源了我们的模型、精心策划的大规模数据集和微调代码库,从而促进LMM研究的进一步发展。
04-xGen-MM算法训练流程
上图展示了xGen-MM(BLIP-3)框架整体训练流程。详细的步骤如下所述:
-
首先,将来自集成交织和字幕数据集的自由形式交织图像和文本被输入到框架中;
-
然后,将输入的图像送入一个冻结权重的Vision Transformer中,并执行令牌采样,获取到相应的视觉Tokens;
-
接着,将输入的文本送入一个Text Tokenizer中,获取到文本Tokens;
-
接着,将视觉Tokens与文本Tokens一起送入一个预训练的LLM模型中;
-
最后,将标准的自回归损失应用于文本标记。视觉变换器在训练过程中保持冻结状态,而所有其他参数,包括令牌采样器和预训练的LLM,都经过训练。
05-xGen-MM算法实现细节
05.01-模型训练过程详解
预训练阶段–**预训练的目的是预测预训练的数据集混合中的下一个文本标记。**总体而言,生成的基础模型xGen-MM-Pi3-mini-base-r是针对集合数据集中约1000亿个多模态标记进行预训练获得的,其预训练分辨率为384x384像素,与SigLIP保持一致。
**监督微调阶段(SFT)–**作者根据以下的流程进一步微调我们的预训练模型,使其更好地理解和遵循用户查询。在微调阶段,使用一组公开可用的指令跟踪数据集。作者采用任意分辨率视觉标记采样策略,以便更好地理解更高分辨率的图像,如文本丰富的文档数据。
交错多图像监督微调阶段–作者在多图像和单图像指令的混合指令微调模型进行了第二阶段的微调。**第二阶段微调的目标是增强模型理解交错图像文本输入的能力,这有助于多模式上下文学习、多图像问答和更多实际用例。**对于多图像微调,还采用了与前一SFT阶段相同的任意分辨率视觉标记采样策略。
**后训练阶段–**最后,**作者进行了两个阶段的后训练,从而提高模型的有用性,同时减轻幻觉和毒性等有害因素的影响。**首先利用DPO进行直接偏好优化,从而提高模型的有用性和视觉忠实性。然后进行安全微调,从而提高模型的无害性。
05.02-预训练数据配方
混合交错数据集–作者将MINT-1T(包括其HTML、PDF和ArXiv子集)与OBELICS(仅限HTML)相结合,创建了一个更多样化、更全面的数据集组合,覆盖了更广泛的领域。
混合字幕数据集–作者整合了各种各样的字幕数据集。1)BLIP3-KALE是一个大规模策划的高质量字幕数据集。2)BLIP3-OCR-200M是一个经过精心策划的大规模OCR数据集,旨在解决当前大型多模式模型在处理文档和图表等富含文本的图像方面的局限性,因为传统的图像文本数据集往往缺乏足够的OCR注释。3)BLIP3-GROUNDING-50M是一个经过精心策划的大规模基础数据集,旨在增强在视觉特征中基础语义概念的能力,这对于对象检测、语义分割和理解指称表达等任务至关重要;4)其它公共数据集混合:其中还包括其他公开可用的数据集,如未固化的Datacomp-1B图像文本对、CC12M、CC3M、VG和SBU。
05.03-监督微调阶段数据配方
模型微调阶段使用的数据集来自不同领域的公共数据集。作者在各领域数据上面进行采样,**包括多模式对话、图像字幕、视觉问答、图表/文档理解、科学和数学。除了多模态图像文本数据外,作者还在视觉指令调优过程中混合了纯文本指令跟踪数据。**最终,作者收集了100万个公开可用的指令调优样本,在这些样本对该模型进行了微调。
多图像指令调整阶段从对单个图像样本进行微调的模型开始。**作者使用公共多图像/交织图像文本指令数据的混合。**为了防止模型在单图像能力上恶化,重用了之前微调阶段使用的单图像数据集的子集,并将其混合到多图像训练数据中。
05.04-后训练阶段数据配方
通过直接偏好优化提高真实性–作者采用VLFeedback,这是一个综合注释的多模式偏好数据集,它使用现成的VLM来生成对多种多模式指令的响应,然后由GPT4-V沿着三个轴进行评分—有用性、视觉忠实性和道德性。**该数据集包含8万条这样的指令,作者通过将模型中平均得分最高(和最低)的响应标记为首选(和不首选),并过滤出得分较低的首选响应示例,从而构建偏好数据。**因此,最终生成了62.6k个偏好示例。
通过安全微调提高无害性–作者对VLGuard数据集的列车分割执行3个安全微调周期,其中包含2k个不安全图像和指令示例。VLGuard包括两种类型的不安全示例:(1)不良图像与安全指令和理想的弃权响应配对,以及(2)安全图像与两种指令响应配对,一种是安全的,另一种是不安全的。
06-xGen-MM算法性能评估
06.01-小样本预训练效果评估
在预训练阶段之后,作者在经典的字幕和VQA任务上评估了该预训练模型,并与之前支持少镜头学习多模式评估的模型进行了比较。如上表所示,作者给出了零样本和少量射击(4次和8次射击)结果。
总体而言,该模型在上下文学习性能方面具有很强的竞争力。对于OCR任务(TextCaps和TextVQA)和VQA-v2,它明显优于MM1-3B,甚至更大的模型,如Idefics-9B和MM1-7B。
06.02-单图像基准性能评估
**
**
如上表所示,作者比较了该模型与一些规模相当(<5B)的模型的性能,包括闭源和SoTA开源模型。通过观察与分析,我们可以发现:xGen MM指令在通用VQA和视觉感知基准上都优于之前的基线。此外,xGen-MM指令交织虽然在多图像数据上进行了进一步的微调,但在单图像基准测试中保持了良好的性能,总体得分最高。
06.03-多图像基准性能评估
如上表所示,作者比较了xGen-MM指令和xGen-MM命令在多图像基准上的效果。**虽然前者是从可以理解交织图像文本数据的xGen MM库进行微调的,但它在多图像基准测试中表现不佳。**作者怀疑这是因为仅仅对单个图像数据进行微调会损害这种能力。使用多图像SFT,可以看到分数显著提高。
07-xGen-MM算法效果展示
如何学习大模型 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 的正确特征了。