带你认识微信多模态大模型 POINTS

始于数据,但不局限于数据

POINTS: Improving Your Vision-language Model with Affordable Strategies

前言

近来,随着大型语言模型的发展,视觉语言大型模型的能力也在逐步增强,GPT-4[1]、Gemini Pro 1.5[2]和Claude 3[3]等著名的闭源模型成功将 LLM 扩展到视觉语言模型领域。LLaVA[4],InternVL[5]等开源模型也在迅速发展。目前,视觉语言模型领域存在一些关键问题亟待解决:1)闭源模型很少公开关于其架构的详细信息。相比之下,开源模型虽公开了其训练策略,但这些策略的详细消融并没有完全披露。2)在目前的开源工作中,对于预训练阶段,大多都是凭经验添加不同来源的数据集,这使得预训练过程难以得到深入的探索。3)在微调阶段,绝大多数工作关注的重点通常是添加和消融更多的数据集,这样性能会较快触及瓶颈。我们针对以上几点给出了我们的方案,并进行了清晰充分的实验论证。

POINTS 主要包含 3 个部分:

  1. 强 baseline: 通过融入当前主流的前沿技术,我们为进一步探索创造了一个较强的 baseline

  2. pre-train 数据集过滤策略:借鉴 LLM 中常用的利用 ppl 来过滤数据的思想,我们利用一个离线模型使用 ppl 的方式来过滤 pre-train 数据,最终得到 1M 高效的 pre-train 数据

  3. model soup: 在指令微调阶段,过滤大部分工作都集中在消融更多的数据集来增强模型性能,但这种方式很可能达到一个阶段后带来的增益就比较有限,我们率先提出在不同指令微调数据集上训练得到的模型进行 model soup,实验结果表明,模型的性能可以得到进一步较大的提升

强 baseline

我们首先将现在开源工作中的各种技术(动态高分辨率,CapFusion,双视觉编码器,Individual Select)进行了整合,并提出一种新的动态分辨率分割方法,以搭建一个更加稳健和高效的 baseline。下图是POINTS的模型结构。对于每个模块(例如 OCR ViT、General ViT、MLP Projector 和 Large Language Model),虚线左侧标签表示预训练时的状态,右侧标签表示指令调优时的状态。

Consistent Aspect Ratio Dynamic High Resolution (CATTY)

将高分辨率图像提供给视觉语言模型有利于捕捉细粒度细节和减少幻觉。与 LLaVA-Next[6] 和 InternVL-1.5[5] 中的动态高分辨率不同的是,我们在对高分辨率图像进行切分时保持了图块的纵横比。在InternVL-1.5[5]中,在分割图像之前,图像大小会被调整为预定义分辨率中与其最接近的目标分辨率,这种切图方式容易导致失真。而我们通过在切图时引入overlap的方式在把图像切割为固定大小图块的同时,保持了图块纵横比。

CATTY的具体步骤如下:i) 首先,预定义图像可以分割成的最大图块数(在我们的实验中设置为 8)。ii) 列出图块数不超过最大图块数的所有整数分辨率组合。iii) 给定一个高度为H和宽度为W的图像,我们寻找与其分辨率最近的整数分辨率,乘视觉编码器的图像尺寸,得到目标图像的高度Hr和宽度Wr,并通过以下方式将图像大小调整为目标大小 (Ht × Wt ):

给定视觉编码器的输入分辨率 Hv×Wv,目标图像应分为 Hr/Hv × Wr/Wv 图块。接下来,我们使用一个滑动窗口分割目标图像 Ht×Wt ,该窗口的步幅分别为 Height 和 width。步幅(Sh, Sw) 的计算方式如下:(若 Hr/Hv = 1,Sh为0,若 Wr/Wv = 1,Sw 为 0)

除了使用CATTY分割的图块,我们还加入了整体图像的缩略图来捕获整体上下文信息。在将视觉编码器输出的特征对齐并传入到大型语言模型之前,我们InternLM-XComposer2-4KHD[7]中的pixel-shuffile,设置下采样因子为 0.25,减少图像特征的序列长度以提高效率。

CapFusion

预训练数据集中原始 caption 通常存在很多噪声和结缺陷。为了解决这个问题,LAION-COCO 和 BLIP-LAION[8] 等提出了通过 image captioning model 生成 synthetic caption。但合成字幕中较为简单的句法和语义结构可能会导致缺失可扩展性和缺乏世界知识。CapFusion利用大语言模型整合原始 caption 和 synthetic caption,在丰富的世界知识和结构化且语法简单之间取得了较好的平衡。我们使用 InternLM-XComposer2[9] 为图像生成 synthetic caption,使用 InternLM2[10] 来整合原始 caption 和 synthetic caption。

Dual Vision Encoder

相关工作如 SPHINX[11] 和 Cambrian1[12],已经证明不同的视觉编码器会在不同的领域表现优势,结合多个视觉编码器可以在性能上有更大的提升。文本密集型图像所需的视觉编码能力在一定程度上有别于自然图像。为了增强光学字符识别(OCR)能力,我们训练了一个单独的视觉编码 OCR ViT,遵循 Vary[13] 的方法从图像中提取文本特征。与其不同的是,我们没有从零构建图文对的训练样本(如图表),我们使用PaddleOCR提取的文本结果构建数据集,并在数据集中加入描述自然图像的caption组成完整的预训练数据集。我们将完成训练的 OCR ViT 与通用视觉编码器(通用 ViT)用过加权平均值合并,然后将输入到大型语言模型中。

Individual Select

Individual Select[14] 通过贪心选择的方式从一个数据池中确定最有效的指令调优数据集。我们收集了其中所提到的开源数据集,并整合了DeepSeekVL[15]、Cambrian-1[12] 和 Cauldron[16] 使用的数据以及额外的16个数据集。此外,鉴于学术数据集的提示风格趋于同质,为了增强提示的多样性,我们从 LAION-5B 中随机选取了一些图像使用 GPT-4o 生成了一系列问答对。最终我们得到了可视化指令调优数据集 Base Set。

预训练数据筛选策略

perplexity(PPL) 常在大语言模型中被用作评估预训练数据集质量的指标。受其启发,我们利用已被训练过的视觉语言模型 P 来进一步过滤掉CapFusion获得预训练数据集中的低质量部分。对于预训练数据集中的每个数据样本s,我们使用以下公式计算所有文本的 PPL,({w1,…,wN } 表示s中的文本序列):

我们对所有样本进行升序排序,并选择前 20% 用于预训练。与大型语言模型中的筛选结果不同,对比 PPL 前 20% 和后 20% 的样本,我们发现两者的区别并不是数据的质量。PPL 后 20% 的物品通常包含晦涩难懂的世界知识,例如游戏版本号和计算机出厂序列号,这类世界知识极为罕见,且信息量非常少,因此对模型的学习不太有益。

Model Soup

视觉指令调优数据对于现有视觉语言模型的卓越性能至关重要。但现有工作大多通过迭代消融来选择更有效的数据集,这种方法很快会达到了一个瓶颈期,后续的数据选择带来的提升微乎其微,甚至会降低模型性能。在数据选择遇到瓶颈后,我们使用 model soup 整合使用不同指令调优数据集进行微调的模型优势。model soup 的原理是通过使用不同的超参数(学习率、数据增强、初始化种子等)对模型进行微调以收敛到不同的局部最优值,对这些模型的权重进行插值,以得到一个更强的模型。为了将 model soup 的思路应用在数据集的优势融合上,我们在性能饱和的指令调优数据集base set上单次加入一个 Individual Select 阶段未能带来显著性能提升的数据集,构成新的数据集Di* ,模型在微调后收敛到不同的局部最优值f(Dk*;θk),再将这些模型权重进行插值。我们提出了Maximum Soup、Average Soup 和 Greedy Soup 三种方法来选择微调模型的最佳组合。

Maximum Soup

给定评估分数 Acc,我们使用以下公式获得一个更强模型 f(θs):

Average Soup

通过取所有微调模型的权重平均值,我们可以获得更强的模型 f(θs):

Greedy Soup

首先根据评估分数对微调后的模型进行降序排序。接着遍历排序后的模型。对于每个模型,我们计算其权重与模型池中当前所有模型的权重的平均值。如果评估分数提高,则模型将添加到池中。最后,我们对池中所有模型的权重进行平均,以获得更强的模型,表示为 f(θs)。下表概述了 Greedy Soup 的步骤。

实验

我们使用 OpenCompass中 的 8 个基准,从不同角度均衡地对模型进行评估。这些指标包括:MMBench 和 MMStar:用于评估通用能力;MMMU:用于测试STEM(科学(Science)、技术(Technology)、工程(Engineering)和数学(Mathematics))能力;MathVista:用于数学相关能力;AI2D:用于图表相关能力;OCRBench:用于OCR功能;MMVet:用于主观评估。我们使用 OpenCompass 提供的 VLMEvalKit 进行标准化评估,在 MMBench 上选择 dev-en split。

数据配置

在预训练阶段,训练 OCR ViT 时,我们没有额外抓取PDF文件并转换为图像构建数据集,为了提高复杂背景下的 OCR 能力,我们从 LAION-5B-en、LAION-5B-cn、WuKong 和 Zero 中随机选择了 2000 万个数据样本。使用 PaddleOCR 从图像中提取文本,替换原始 caption 以形成新的数据对。此外我们加入 LAION-5B 的 1000 万个原始数据样本,构成最终数据集进行训练。

在指令调优阶段,基于 [14] 中确定的数据,我们继续使用 Individual Select 的方式在其他开源数据工作中进行了选择,确定为基础数据集。对于未能通过 Individual Select 得到增益的其余数据集,我们将其组成数据池,以待通过 model soup 的方式加以选择和利用。

训练配置

在 OCR ViT 的预训练阶段,我们使用 LLaVA 架构,视觉编码器从 OpenAI 的 CLIP-ViT-Large-336 初始化,大型语言模型是从 Yi-1.5-9B-Chat[19]初始化。冻结大型语言模型权重,设置视觉编码器和MLP是可训练的。视觉编码器和MLP的学习率分别设置为 2×10-4 和 2×10-5 ,学习率的schedule在训练过程的前3%采用预热(warm up),剩余步骤采用余弦衰减。

在整体视觉语言模型的预训练阶段,通用 ViT 从 OpenAI 的 CLIP-ViT-Large-336 初始化的,OCR ViT 则继承上个阶段的权重。参考 Vary 的设置,我们的通用 ViT 只有最后三层是可训练的,OCR ViT 则在整个阶段保持冻结状态。我们选择通用 ViT 和 OCR ViT 倒数第二层的特征通过 MLP 与大预言模型连接。起到特征对齐作用的 MLP,在预训练阶段保持可训练状态。通用 ViT 和 MLP 的学习率分别设置为 2×10-4 和 2×10-5 ,学习率的schedule在训练过程的前3%采用预热(warm up),剩余步骤采用余弦衰减。

在指令调优阶段,我们冻结通用 ViT 和 OCR ViT。MLP 和大预言模型保持可训练状态,学习率设置为 2 × 10−5 。学习率的 schedule 在训练过程的前3%采用预热(warm up),剩余步骤采用余弦衰减。

与目前先进的方法对比

除了 OpenCompass 的8个基准外,我们增加了ScienceQA、MME、LLaVA-Wild 和 ReadWorldQA 更详细地与目前领域内最先进的模型进行比较。POINTS的性能可与现有类似尺寸的模型媲美,甚至超越更大参数量的模型性能,如 Cambrian-34B。此外,与其他模型相比,POINTS 使用的预训练数据集和指令调优数据集更少且是公开可用的,我们下面将从各角度对 POINTS 进行了彻底的分析,充分论证每种策略的有效性。这意味着后续开源工作能够更简单直接地使用本文提出的方法。

强 baseline 的消融实验

CF:CapFusion,DHR:动态高分辨率,CATTY:我们提出的一致纵横比动态高分辨率,DEV:双视编码器,IS:Individual Select。MMB:MMBench、MV:MathVista、HB:HallusionBench、OCR:OCRBench、Overall:前 8 个基准的平均值。

每个组件都有助于稳步改进。这些增强功能非常重要, 例如,在引入动态高分辨率来分割输入图像后,我们观察到 OCR 相关任务(如 OCRBench)有了实质性的改进,性能从56.9% 对 60.3%。此外,使用具有动态高分辨率的高分辨率图像有助于减少幻觉,这主要是由于高分辨率图像中的细节增加。此外,用 CATTY 替换原来的动态高分辨率会导致各种基准测试的显着改进,OCR 相关基准测试的收益比其他基准测试更大。这可能是因为图像失真对图像中的文本有更明显的负面影响。与一般的视觉特征提取相比,CLIP-ViT 从图像中提取文本特征的能力是有限的,因为它是在大量的通用图像-文本对上训练的。因此,在集成了来自附加 ViT 的特征后,我们观察到 OCRBench 有了实质性的改进,并在文本丰富的图像上进行了后训练。在这 5 种策略中,通过 Individual Select 整合更多的可视化指令调整数据集会产生最显着的改进。这一观察结果与现有工作一致,强调了在视觉指令调整阶段选择有效数据集的重要性。

通过PPL筛选预训练数据的实验(左),Dual Vision Encoder 的实验(中),model soup 融合指令调优数据的实验(右)

(左)前两行比较了预训练阶段不同数据量的使用情况。第三行表示第一行中5M数据集按PPL筛选了升序排序的前20%子集。将预训练数据大小从 5M 扩展到 20M 反而会导致性能下降,我们认为可能的原因是:i)现有大多数视觉语言模型的视觉编码器都是从基于大量图像-文本对进行预训练的视觉模型初始化的。而我们的视觉语言模型,在预训练阶段使用的大部分数据很可能已经被视觉编码器训练过,导致在扩大预训练数据集的大小时,只会带来有限甚至负向的影响。ii) 现有的大规模网络爬虫数据集,例如 LAION-5B 和 COYO-700M,数据分布非常同质。我们提取图像的主要实体后绘制密度图后,发现这是一种长尾分布,因此,不加选择地增加数据量进行预训练只能带来有限的提升。而我们仅使用 1M 数据对模型进行预训练,这些数据是 5M 数据的按照 PPL 升序排序后的前 20%。这表明,在过渡过程中,过度地将模型暴露在晦涩和稀缺的知识中,不利于其学习。

(中)DVE:Dual Vision Encoder 架构。SVE:Single Vision Encoder 架构。

(右)lr:在不同学习率微调的模型上使用Model Soup。ds:使用不同数据集微调的模型上使用Model Soup。添加更多的指令调优数据集通常会达到一个瓶颈。然而,通过整合不同数据集训练得到的模型汤,我们观察到了实质性的改进,总分从 59.0 提高到 61.2。我们对各种 Model Soup 策略进行了比较。其中,greedy soup 的表现最好,分别比 maximum soup 和 average soup 高出 0.8 和 0.6 个百分点。此外,我们还对比了使用不同超参数(例如不同的学习率)进行模型汤的结果,其只能带来有限提升。

model soup 与 Individual Select 的对比实验

这幅图展示了在相同基础数据集基础上,使用 Individual Select 和 Model Soup 加入单个数据集的性能差距。表明当通过 Individual Select 的方式选择并添加额外的指令调整数据集无益时,使用 Model Soup 的融合方式可以显著提高性能。

如何学习大模型 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 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

多模态模型是一种人工智能系统,它能够同时处理多种类型的输入数据,并从中提取出有用的信息。这类模型的主要目的是为了在实际应用中解决那些需要结合文本、图像、语音等多种信息源的任务,例如问答系统、视觉推理任务等。 ### 多模态模型的特点: 1. **融合能力**:多模态模型能够将来自不同模态的数据结合起来进行分析和学习,比如通过图像识别和文本理解协同工作提供更准确的结果。 2. **复杂任务支持**:它们适用于涉及多种信息交互的复杂场景,如自然语言处理与视觉任务的结合,能够更好地理解和回应人类的需求。 3. **灵活性**:由于能够同时处理不同类型的数据,多模态模型在设计上较为灵活,可以适应各种应用场景而不必针对特定类型的数据集进行专门优化。 4. **深度学习基础**:通常基于深度学习技术构建,包括但不限于卷积神经网络(CNN)、循环神经网络(RNN)、Transformer等架构,这使得模型能够从大规模训练集中学习到复杂的模式和关联。 5. **自注意力机制**:多模态模型经常使用自注意力机制来有效地对不同模态的信息给予适当的权重,从而在处理大量输入特征时保持效率。 ### 应用实例: - **跨模态检索**:用户提问时,系统不仅理解文字内容,还能查看相关的图片,找到最匹配的答案或解释。 - **智能客服**:能理解用户的语音指令并展示相应的图像界面,提升用户体验。 - **自动问答系统**:结合文本和视频资料提供详细解答,帮助用户获得全面信息。 ### 面临挑战: - **计算资源需求**:多模态模型因其复杂性和规模往往需要大量的计算资源进行训练。 - **数据整合难度**:有效集成不同来源和格式的数据是一个挑战,需要处理数据的一致性和兼容性问题。 - **隐私保护**:处理包含个人敏感信息的多模态数据时,保障用户隐私是一个重要考量因素。 ### 相关问题: 1. 多模态模型是如何克服跨模态间差异性的? 2. 在多模态任务中,如何评估模型性能以及优化模型效果? 3. 大型多模态模型在处理实时数据流时面临哪些挑战?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值