视觉语言模型导论:这篇论文能成为你进军VLM的第一步

近些年,语言建模领域进展非凡。Llama 或 ChatGPT 等许多大型语言模型(LLM)有能力解决多种不同的任务,它们也正在成为越来越常用的工具。

这些模型之前基本都局限于文本输入,但现在也正在具备处理视觉输入的能力。如果能将视觉与语言打通,那么势必能造就多种多样的应用 —— 这实际上也正是当前 AI 技术革命的关键方向。

即便现在已有不少研究将大型语言模型扩展到了视觉领域,但视觉与语言之间的连接尚未被彻底打通。举些例子,大多数模型都难以理解空间位置关系或计数 —— 这还需要复杂的工程设计并依赖额外的数据标注。许多视觉语言模型(VLM)依然难以理解属性和顺序。它们往往会忽略输入 prompt 的某些部分,因此为了得到理想结果,用户常常需要在提示工程上费心费力。还有些模型会产生幻觉,产出无用或不相关的内容。因此,人们依然在大力开发稳定的模型。

如果你是有志这一行业的学生或爱好者或想要从其它 AI 领域转战此方向,那么请一定不要错过我们今天要介绍的这篇《视觉语言模型导论》。

图片

  • 论文标题:An Introduction to Vision-Language Modeling
  • 论文地址:arxiv.org/pdf/2405.17…

这篇导论来自 Meta 和蒙特利尔大学等多所研究机构的数十位研究者,将解释 VLM 是什么、它们是如何训练的以及如何基于不同研究目标有效地评估它们。

该团队表示,这篇论文的目标是帮助读者轻松理解 VLM 并着重说明这一领域的有效实践,而不是提供 VLM 研究成果的详尽综述或完整指南。

多种多样的 VLM

得益于深度学习的发展,计算机视觉和自然语言处理领域都取得了令人瞩目的进展,也因此已经有不少研究团队尝试过将这两个领域连接到一起。

这篇论文关注的重点是最近期的基于 Transformer 的技术。

该团队将尝试打通这两大领域的研究成果,按训练范式分成了四类,见图 1。

图片

第一类是对比式训练(contrastive training),这是一种使用正例和负例对来训练模型的常用策略。VLM 的训练目标是为正例对预测相似的表征,为负例对预测不同的表征。

第二类是掩码(masking),其方法是根据某些未被遮掩的文本来重建被遮掩的图块。类似地,通过遮掩描述中的词,也可以让 VLM 根据未被遮掩的图像来重建这些被遮掩的词。

另一类是基于预训练骨干网络来训练 VLM,这往往是使用 Llama 等开源 LLM 来学习图像编码器(也可能是预训练的)和 LLM 之间的映射关系。相比于从头开始训练文本和图像编码器,学习预训练模型之间的映射关系的计算成本往往更低。

大部分这类方法都是使用中间表征或部分重建,而生成式 VLM 则能生成图像或描述。有鉴于这类模型的性质,它们的训练成本通常是最高的。

需要说明:这些范式并不是互斥的,很多方法都混合使用了对比、掩码和生成范式。文中为每种范式都提供了一两个模型进行说明,以帮助读者了解这些模型的设计思路。

基于 Transformer 的 VLM 早期研究

通过使用 Transformer 架构,BERT(使用 Transformer 的双向编码器表征)一诞生,就超过了当时所有的语言建模方法。之后不久,BERT 就被扩展用来处理视觉数据。visual-BERT 和 ViLBERT 是其中两个代表,它们的做法是将文本与图像 token 组合到一起。

这些模型有两个训练目标:1) 经典的掩码建模任务,目标是预测给定输入中缺失的部分;2) 句子 - 图像预测任务,目标是预测图像标注是否描述了图像内容。

通过利用这两个目标,这些模型在多种视觉 - 语言任务上表现出色,这主要是得益于 Transformer 模型有能力学会通过注意力机制将词与视觉线索关联起来。

基于对比的 VLM

基于对比的训练往往能通过基于能量的模型(EBM)更好地解释,即模型的训练目标是为观察到的变量分配低能量,为未被观察到的变量分配高能量。来自目标分布的数据的能量应该较低,其它数据点的能量应该较高。

使用掩码目标的 VLM

在深度学习研究中,掩码是一种常用技术。它可被视为一种特定形式的去噪自动编码器,其中的噪声有一种空间结构。它也与修复(inpainting)策略有关,该策略曾被用于学习强大的视觉表征。BERT 也在训练阶段使用了掩码式语言建模(MLM)来预测句子中缺失的 token。掩码方法非常适合 Transformer 架构,因此输入信号的 token 化使得随机丢弃特定的输入 token 变得更容易。

已经有一些研究在图像方面探索这一方法,即掩码式图像建模(MIM),具体案例包括 MAE 和 I-JEPA。

很自然地,也有人将这两者组合起来训练 VLM。其一是 FLAVA,其使用了掩码在内的多种训练策略来学习文本和图像表征。另一个是 MaskVLM,这是一种独立模型。

基于生成的 VLM

上面的训练范式主要是操作隐含表征来构建图像或文本抽象,之后再在它们之间映射,生成范式则不同,它考虑文本和 / 或图像的生成。

CoCa 等一些方法会学习一个完整的文本编码器和解码器来描述图像 Chameleon Team 和 CM3leon 等另一些方法则是多模态的生成模型,其训练目标就包括生成文本和图像。最后,还有些模型的目标是基于文本生成图像,比如 Stable Diffusion、Imagen 和 Parti。但是,即便它们是为生成图像而生的,它们也能被用于解决一些视觉 - 语言理解任务。

用预训练骨干网络构建的 VLM

VLM 的一个缺点是从头开始训练的成本很高。这通常需要成百上千台 GPU,同时还必须使用上亿对图像和文本。因此,也有很多研究者探索使用已有的 LLM 和 / 或视觉提取器,而不是从头开始训练模型。

这种做法的另一个优势是可以利用现在很多开源且易用的 LLM。

通过使用这样的模型,有可能学习到仅在文本模态和图像模态之间的映射。通过学习这样的映射,仅需要少量计算资源就可让 LLM 有能力回答视觉问题。

该团队在论文中说明了这类模型的两个代表:一是首个使用预训练 LLM 的模型 Frozen,二是 Mini-GPT。详见原论文。

VLM 训练指南

有一些研究揭示了进一步扩大深度神经网络规模的重要性。受这些 scaling law 的激励,最近不少项目都在通过增加计算量和扩大模型规模来学习更好的模型。这就催生了 CLIP 等模型 —— 其训练使用了 4 亿张图像,计算预算自然也非常高。就算是其开源实现 OpenCLIP,根据模型大小的不同,训练也使用了 256 到 600 台 GPU,耗时数天到几周。

但是,又有一项研究表明通过精心的数据整编,有可能战胜 scaling law。这一节首先将讨论训练模型时数据的重要性,并会给出一些用于构建 VLM 训练数据集的方法。

然后会讨论常用的软件、工具和技巧,它们可帮助实践者更高效地训练 VLM。

由于训练 VLM 有多种不同方法,所以文中还会讨论特定情形下应该选用什么类型的模型。

之后,该团队还会给出一些提升定基(grounding,即正确映射文本与视觉线索的能力)的技巧,并介绍使用人类偏好提升对齐的技术。

VLM 常被用于阅读和翻译文本,所以他们也会分享一些用于进一步提升 VLM 的 OCR 能力的技术。

最后是一些常用的微调方法。

图片

训练数据

为了评估预训练数据集的质量,DataComp 提出了一个基准,其中 CLIP 的模型架构和预训练超参数都是固定的。其评估重点是设计出能在 38 个下游任务上取得优良零样本和检索性能的图像 - 文本数据集。DataComp 提供了多个有噪声网页数据集池,规模从小型(1.28M)到超大型(12.8B)不等。针对每个池,都有多个过滤策略被提出和评估。DataComp 表明:为了训练出高效高性能的 VLM,数据剪枝是一个关键步骤。

用于 VLM 的数据剪枝方法可以分为三大类:(1) 启发式方法,可以清除低质量数据对;(2) bootstrapping 方法,使用预训练的 VLM 评估图像和文本的多模态对齐程度,然后丢弃其中对齐较差的数据对;(3) 用于创建多样化和平衡数据集的方法。具体的措施包括:

  • 使用合成数据来提升训练数据
  • 使用数据增强
  • 交错式的数据整编
  • 评估多模态数据质量
  • 利用人类专业知识:数据标注的力量

软件

这一小节讨论了现有的可用于评估和训练 VLM 的软件以及训练它们所需的资源。

  • 使用现有的公共软件库
  • 我需要多少台 GPU?
  • 为训练加速
  • 其它超参数的重要性

使用什么模型?

前面已经提到,训练 VLM 的方法有好几种。一些是使用简单的对比训练方案,一些则是使用掩码策略来预测缺失的文本或图块,还有一些模型使用的是自回归或扩散等生成范式。也有可能使用 Llama 或 GPT 等预训练的视觉或文本骨干网络。在这种情况下,构建 VLM 模型仅需学习 LLM 和视觉编码器表征之间的映射。

那么,应该如何选择这些方法呢?我们需要像 CLIP 一样从头开始训练视觉和文本编码器,还是像 Flamingo 或 MiniGPT 一样从预训练的 LLM 开始训练?

  • 何时使用 CLIP 这样的对比模型?
  • 何时使用掩码?
  • 何时使用生成模型?
  • 何时使用 LLM 作为预训练骨干网络?

提升定基

在 VLM 和生成模型文献中,定基(grounding)是一个关键难题。定基的目标主要是解决模型不能很好理解文本 prompt 的问题,这个问题既可能导致模型忽视 prompt 中的某些部分,也可能导致其产生幻觉,想象出 prompt 中没有的内容。

解决这些难题需要理解关系,比如确定一个物体是在左边还是右边、否定、计数、理解属性(如颜色或纹理)。

提升定基这个研究领域很活跃,而目前还尚未出现一种能解决此难题的单一简单方法。尽管如此,在提升定基性能方面,还是有一些技巧可用:

  • 使用边界框标注
  • 否定描述

提升对齐

受语言领域指令微调的成功的启发视觉语言模型也开始整合指令微调和根据人类反馈的强化学习(RLHF)来提升多模态聊天能力以及将输出与期望响应对齐。

指令微调涉及到在一个包含指令、输入和期望响应的监督式数据集上对视觉语言模型进行微调。通常来说,指令微调数据集的规模远小于预训练数据集 —— 指令微调数据集的规模从少量到数十万不等。整合了指令微调的视觉语言模型包括 LLaVa、InstructBLIP、OpenFlamingo。

RLHF 的另一个目标是对齐模型输出与人类偏好。使用 RLHF 时,需要训练一个奖励模型来匹配人类偏好 —— 即人类认为一个模型响应是好是坏。尽管指令微调需要监督训练样本(收集成本较高),但 RLHF 则可使用辅助式奖励模型来模拟人类偏好。然后再使用该奖励模型来微调主模型(不管是语言模型还是视觉语言模型),使其输出与人类偏好对齐。LLaVa-RLFH 就是一个视觉语言模型整合 RLHF 的突出案例,其能通过事实信息来提升模型的输出对齐。

提升对富含文本的图像的理解

在我们的日常生活中,视觉感知中有一大关键部分:理解文本。多模态大型语言模型(MLLM)的成功可让 VLM 以零样本方式应用于多种应用,并且其中许多已经可用于真实世界场景。

有研究表明 MLLM 具备卓越的零样本光学字符识别(OCR)能力,无需专门使用特定于 OCR 领域的数据进行训练。但是,当涉及到数据类型之间的复杂关系时,这些模型往往难以解读图像中的文本,原因是它们的训练数据中包含大量自然图像。

下面列出了一些在文本理解方面的常见难题以及试图解决该难题的模型:

  • 使用细粒度的富含文本的数据进行指令微调:LLaVAR
  • 处理高分辨率图像中的细粒度文本:Monkey
  • 分立式场景文本识别模块和 MM-LLM:Lumos

参数高效型微调

事实已经证明,在跨领域视觉和语言任务上,VLM 的效果很好。但是,随着预训练模型大小持续增长,由于计算限制,微调这些模型的全体参数集将变得不切实际。

为了解决这一难题,参数高效型微调(PEFT)方法诞生了,其目标是解决与微调大规模模型相关的高计算成本问题。这些方法关注的重点是训练部分参数来使模型适应下游任务,而不是重新训练全体模型。现有的 PEFT 方法可以分为四大类:

  • 基于低秩适配器(LoRa)的方法
  • 基于 prompt 的方法
  • 基于适应器的方法
  • 基于映射的方法

实现负责任 VLM 评估的方法

VLM 的主要能力是实现文本与图像的映射,因此度量其视觉语言能力就非常关键了,因为这能确保词与视觉线索真正实现了映射。

在评估 VLM 方面,早期的评估任务包括图像描述和视觉问答(VQA)。

现在还有以文本为中心的 VQA(text-centric VQA)任务,其评估的是模型理解和阅读图像中的文本的能力。

Radford et al. [2021] 也提出了一种常用的评估方法,该方法是基于零样本预测,比如 ImageNet 分类任务。这样的分类任务可以评估 VLM 是否具备足够的世界知识。

Winoground 是一个更近期的基准,其度量的是模型的视觉 - 语言组合推理能力。

另外,我们已经知道 VLM 会表现出偏见和幻觉,因此对这两方面进行评估也非常重要。

图片

将 VLM 扩展用于视频

之前谈到的 VLM 基本都是在静态视觉数据(图像)上训练和评估的。但是,视觉数据还有动态的,即视频。

对 VLM 而言,视频数据既能带来新挑战,也有望为其带来新能力,比如理解物体的运动和动态或在空间和时间中定位物体和动作。用文本检索视频、视频问答和视频生成正在快速成为基础的计算机视觉任务。

视频的时间属性对存储、CPU 内存来说都是一个巨大挑战(如果把每一帧都视为一张图像,那么帧率越高,成本就越高)。于是对于处理视频的 VLM 而言,就需要考虑多个权衡因素,比如数据加载器中动态视频解码器的压缩格式、基于图像编码器来初始化视频编码器、为视频编码器使用时空池化 / 掩码机制、非端到端 VLM。

与图像 - 文本模型类似,早期的视频 - 文本模型也是使用自监督指标来从头开始训练视觉和文本组件。但不同于图像模型,对比式视频 - 文本模型并非首选方法,早期时人们更喜欢融合和时间对齐方法,因为相比于计算视频的全局表征,让表征中有更多时间粒度更重要。

近段时间,视频 - 语言模型领域出现了图像 - 语言模型领域类似的趋势:使用预训练 LLM 并将其与视频编码器对齐,从而增强 LLM 的视频理解能力。视觉指令微调等现代技术也被广泛使用并被适配用于视频。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

资源分享

图片

大模型AGI学习包

图片

图片

资料目录

  1. 成长路线图&学习规划
  2. 配套视频教程
  3. 实战LLM
  4. 人工智能比赛资料
  5. AI人工智能必读书单
  6. 面试题合集

人工智能\大模型入门学习大礼包》,可以扫描下方二维码免费领取

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

图片

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩

图片

3.LLM

大家最喜欢也是最关心的LLM(大语言模型)

图片

人工智能\大模型入门学习大礼包》,可以扫描下方二维码免费领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

录屏软件免费推荐,拥有这4款,不花一分钱

在这个充满创意与活力的数字时代,录屏软件早已成为我们探索世界、分享生活的必备神器。但市面上却存在很多收费的录屏软件,让人望而却步。那么有没有一些录屏软件免费帮助我们轻松开启录影人生,尽情展现创意与才华呢? 本文就将带…

痉挛性斜颈是中医治疗好还是西医好呢?你有真正了解吗?

痉挛性斜颈是西医治疗好还是中医治疗好 痉挛性斜颈,是由于中枢神经系统异常冲动引起的颈部肌群阵发性不自主收缩,使头颈向一侧扭转或痉挛性倾斜。 痉挛性斜颈的病因,多数是由于脑深部的神经细胞病变引起的。这些病人可以有脑炎、出生时窒…

光电门验证动量守恒实验

本实验所需器件与第二个实验相同。但是连线方式有所区别,先将Arduino的电源输出接到两个光电门,然后再将光电门1的信号输出线接到Arduino的第10个端口,光电门2的信号输出线接到Arduino的第11个端口。对Arduino写入下列程序(只有主…

【GreenHills】GHS-Servecode的查看和说明

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 在Green Hills客户申请license试用以及正式文件的Servecode编号会有不同,该文档对此进行说明并如何主动查看Servecode,并且说明Servecode的类别,通过Servecode了解客户授权情况。 …

【机器学习】初学者经典案例(随记)

🎈边走、边悟🎈迟早会好 一、概念 机器学习是一种利用数据来改进模型性能的计算方法,属于人工智能的一个分支。它旨在让计算机系统通过经验自动改进,而不需要明确编程。 类型 监督学习:使用带标签的数据进行训练&…

2-30 基于matlab的神经网路下身份证号码识别算法

基于matlab的神经网路下身份证号码识别算法,二值化、膨胀处理、边界区域划分、身份证字符分割,字符识别算法,输出识别结果。并保存识别结果。程序已调通,可直接运行。 2-30 神经网络 身份证识别 图像处理 - 小红书 (xiaohongshu.c…

FastAPI 学习之路(四十)后台任务

我们在实际的开发中,都会遇到,我们要执行的一些任务很耗时,但是对于前端,没必要进行等待。比如发送邮件,读取文件。我们在fastapi如何实现呢。 其实很简单,fastapi已经给我们封装好一个现成的模块&#xff…

4款免费国产开源软件,功能过于强大,常被认为是外国人开发

之前小编分享了一些良心的电脑软件,大部分都是国外的开源软件,就有部分同学在后台说小编有点极端了,国内也是有良心的电脑软件的。 本期就是国产软件专场,今天就给大家推荐几款良心的国产电脑软件,说真的,…

UNIAPP_ReferenceError: TextEncoder is not defined 解决

错误信息 1、安装text-decoding npm install text-decoding2、main.js import { TextEncoder, TextDecoder } from text-decoding global.TextEncoder TextEncoder global.TextDecoder TextDecoder

ENSP防火墙综合配置

综合拓扑: 实验要求: 要求一 生产区的安全策略配置 办公区的安全策略 要求二 生产区的安全策略 游客和办公区的安全策略 因为ISP返回的数据包会被防火墙最后的默认安全策略给拒绝,所以,把要ISP返回的数据给允许通过 要求三 增加…

python如何计算今天是星期几

需要解决的问题:时区问题 解决方案:引入pytz 封装的方法如下: import datetime from .. import pytzweek_list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六&quo…

人工智能及深度学习在病理组学中的应用概述|系列推文·24-07-11

小罗碎碎念 从本期推文开始,小罗将开始进行一项长期的工作——从头开始梳理人工智能在病理组学中的应用。 我会先从机器学习的进展开始讲,随后过渡到深度学习,再进一步阐述数据的处理分析方法,最后介绍人工智能在精准医疗以及病…

django超市管理系统-计算毕业设计源码50628

摘要 随着零售业的快速发展和数字化趋势的加强,超市作为零售业的重要组成部分,面临着日益增长的竞争压力。为了提高超市的运营效率、降低管理成本并提供更好的客户服务,超市管理系统的引入变得至关重要。基于Python的超市管理系统旨在利用先进…

【MyBatis】——入门基础知识必会内容

🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL&#xff0…

Unity3D 太空大战射击游戏

一、前言 本案例是初级案例,意在帮助想使用unity的初级开发者能较快的入门,体验unity开发的方便性和简易性能。 本次我们将使用团结引擎进行开发,帮助想体验团结引擎的入门开发者进行较快的环境熟悉。 本游戏案例以太空作战为背景&#xff0c…

kubernetes集群部署:关于CRI(一)

上周接到了一项紧急预研任务:kubernetes各项属性采集。目前我手里已经存在二进制部署的一套kubernetes(v1.23版本CRI:dockershim)集群;为了适配的广泛性,决定使用kuberadm工具部署最新(v1.30版本…

16集 用ESP-DL(ESP32)编译Tensorflow lite语音识别工程-《MCU嵌入式AI开发笔记》

16集 用ESP-DL(ESP32)编译Tensorflow lite语音识别工程-《MCU嵌入式AI开发笔记》 参考文档: ESP-DL 用户指南: https://docs.espressif.com/projects/esp-dl/zh_CN/latest/esp32/index.html 这个ESP-DL 是由乐鑫官方针对乐鑫系列…

SwiftUI @FetchRequest 中 CoreData 托管对象不能正确被刷新的解决

问题现象 在 CoreData 背后加持的 SwiftUI 应用中,我们在视图(View)中往往会采用 @FetchRequest 来查询、排序和过滤我们心仪的托管对象。 不过在上面的示意图中我们发现:虽然 Challenge(挑战)托管对象状态已经变为“失败”,但仍然显示在了最顶部的“正在进行”挑战的 …

概率统计(二)

二维离散型 联合分布律 样本总数为16是因为,两封信分别可以放在4个信箱 边缘分布律 条件分布律 独立性 选填才能用秒杀 联合概率乘积不等于边缘概率的乘积则不独立 二维连续型 区间用一重积分面积用二重积分 离散型随机变量 常见6个分布的期望和方差 离散型随机变…

记录一次mysql死锁问题的分析排查

记录一次死锁问题的分析排查 现象 底层往kafka推送设备上线数据应用层拉取设备上线消息,应用层有多个消费者并发执行将设备上线数据同步数据库表pa_terminal_channel日志报:(Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: …