(2024,VLM,操纵链)CogCoM:训练大型视觉语言模型,通过操作链深入细节

news2024/11/15 23:32:13

CogCoM: Train Large Vision-Language Models Diving into Details through
Chain of Manipulations

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

2. 方法

2.1. 术语

2.2. 数据生成

2.3 训练

3. 实验

5. 局限性


0. 摘要

视觉-语言模型(Vision-Language Models,VLM)通过对齐视觉指令与答案进行广泛的训练,展示了它们的广泛适用性。然而,这种明确的对齐导致模型忽视了关键的视觉推理,进而在细致入微的视觉问题和不忠实的响应方面失败。在本文中,我们提出了一种名为 "Chain of Manipulations" 的机制,该机制使 VLM 能够通过一系列操纵来解决问题,其中每个操纵都是指对视觉输入进行的操作,可以是通过先前训练获得的内在能力(例如,grounding)或者是模仿类似人类行为的行为(例如,放大)。这种机制鼓励 VLM 生成具有证据支持的视觉推理的忠实响应,并允许用户在可解释的路径中跟踪错误的原因。因此,我们训练了 CogCoM一种通用的基于内存的 17B 兼容 VLM 架构,使用了推理机制 。实验证明,我们的模型在来自 3 个类别的 8 个基准上实现了最先进的性能,并且在有限数量的训练步骤中,数据迅速获得了竞争性能。

代码:https://github.com/THUDM/CogCoM

2. 方法

2.1. 术语

我们首先介绍术语的正式定义和数据结构,以确保清晰理解。我们将操纵定义为一个灵活的集合,包括来自基础预定义集合的函数,以及模型在推理过程中自行设计的函数,以适应上下文学习。因此,我们预定义了 VLM 可以开发的一组操纵函数,这些函数可以来自先前的训练或通过模仿人类行为而得到:

M ⊆ {

Grounding(tgt)→bbx,

OCR(tgt)→txt,

Calculate(tgt)→num,

Counting(tgt)→num,

CropZoomIn(bbx,x)→img

}

其中参数或返回值 bbx,x,img,tgt,num,txt 分别表示边界框、缩放比例、图像、目标描述、数字和文本。

给定一个语言问题  Q 和一个初始输入图像 I_0​,一个使用操纵链(Chain of Manipulation,CoM)的通用视觉-语言模型表示为 VLM(ζ∣I_0​,Q) ⇒ A ,其中 ζ 指的是一系列证据推理步骤,

其中 f_i​ 指的是来自操纵定义集合 M 的实例化操纵函数,desc_i​ 指的是包括操纵执行在内的语言描述。这个定义明确声明了操纵函数 f_i​ 的符号执行,并且与现有的自由形式指令-答案数据结构兼容,其中包括语言描述 desc_i​。

2.2. 数据生成

基于数据结构的定义,我们介绍一个数据生成框架,该框架能够在基于图像的问答对上高效地合成CoM 数据,并且还能够通过用人工劳动替代语言和视觉标注器来生成高质量的注释。

  • 给定一个包含图像和相应的视觉问答对的三元样本的通用语料库 D={(I,Q,A)},我们的自动数据合成框架包括一个语言标注器和若干个根据操纵进行视觉标注的标注器。
  • 对于每个样本中的问题 Q,我们首先让语言标注器生成具有 CoM 格式(f_i​,desc_i​)的操纵辅助求解步骤。在本文中,我们选择 GPT4 作为语言标注器。 
  • 然后,通过精确执行相应操作,我们使用视觉标注器来获得操作的返回值。
  • 我们执行这些操作以及推理步骤,将推理步骤转化为一棵树 T,因为当前操作 f1(x1) 的输入可能依赖于先前操作 f2 → x2 的多个返回值之一,即 x1 依赖于 x2(例如,图 2 中查找柱子的第 2 步)。

2.3 训练

我们使用与 CogVLM(Wang et al., 2023b)相同的模型架构,这是一种通用的 VLM 方法,包括四个基本组件:

  • 视觉编码器。
  • MLP 适配器,用于将视觉编码器的输出映射到 LLM 主干的语言空间。
  • LLM 主干。
  • 视觉专家模块,用于可靠的多模态理解。将视觉特定的权重添加到 LLM 主干中每个块的注意层和前馈层,实现模态的深度融合。 

CogCoM-17B 依赖于两个主要阶段的训练,以发展通用多模态任务解决的能力和视觉推理能力:

  • 第一阶段的预训练包括两个子阶段的训练,分别用于建立基础的视觉理解和图像-问题-答案三元组的生成。
  • 第二阶段的对齐进一步训练模型,使其与人类在解决实际视觉问题上的偏好相一致。

3. 实验

5. 局限性

尽管我们试图开发一个准确而强大的框架,利用显著的 LLM 提供基本解决步骤,采用可靠的视觉工具获取视觉内容,然后基于遍历获取可行路径,但我们的方法仍然存在一些限制,我们希望在未来改进。首先,我们发现语言解决步骤的多样性不足,而视觉工具的不准确性(例如,定位框的粗粒度、斜体字的 OCR 失败)会导致大量负面路径(有效利用这些路径将是有益的)。我们建议通过专用提示和改进的视觉工具来解决这些限制。其次,我们当前的模型通过一组硬提示重新输入了操纵后的图像,这可能会带来速度损失。这有望通过将物理操作纳入向量空间的计算中来改进。 

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

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

相关文章

14 归并排序和其他排序

1.归并排序 2.计数排序 1. 归并排序 基本思想 建立在归并操作上的一种排序算法,采用分治法的一个典型应用。将已有序的子序列合并,得到完全有序的序列,将两个有序表合成一个称为二路归并。 原数组无序,以中间分割为两个数组,…

Mysql进阶(sql优化和explain关键字)

一、为什么要对SQL进行优化? 由于业务数据量的增多,SQL的执行效率对程序的运行效率影响增大,此时就需要对SQL进行优化。 二、SQL优化的方法 1.查询sql尽量不要使用select * ,而是具体字段。 节省资源,减少开销。 …

国际物流数字化运输方式选择指南 | 箱讯科技

国际物流涉及多种运输方式,每种方式都有其独特的优势和适用场景。选择合适的运输方式对于确保货物安全、及时到达目的地并控制成本至关重要。以下是对六种主要国际运输方式的简要介绍和选择建议: 国际快递:适用于小件、高价值或急需的货物。…

Response对象实现设置响应数据

1.设置响应数据功能 2.response设置重定向 重定向是一种资源跳转方式,类似于转发,但存在不同,转发是资源a处理了一部分,再跳转到资源b继续处理,最后响应。 实现方式一: resp.setStatus(302); resp.setHe…

力扣:42. 接雨水 84.柱状图中最大的矩形(单调栈,双指针)

这两道题解题思路类似,一个是单调递增栈,一个是单调递减栈。本篇博客给出暴力,双指针和单调栈解法。 42. 接雨水 题目: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后…

MQTT在linux下服务端和客户端的应用

MQTT(Message Queuing Telemetry Transport)是一种轻量级、开放标准的消息传输协议,设计用于受限设备和低带宽、不稳定网络的通信。 MQTT的一些关键特点和概念: 发布/订阅模型: MQTT采用发布/订阅(Publ…

【typescript】特殊符号用法(?:)(??)(?.)(!)(!!)

一. 问号冒号(?:) 1.可以作为对象类型的可选属性,如: interface Person{name : string;age?: number; }const person1 : Person {name:"zien"} const person2 : Person {name:"sad", age:18} console.l…

【Unity】QFramework通用背包系统优化:使用Odin优化编辑器

前言 在学习凉鞋老师的课程《QFramework系统设计:通用背包系统》第四章时,笔者使用了Odin插件,对Item和ItemDatabase的SO文件进行了一些优化,使物品页面更加紧凑、更易拓展。 核心逻辑和功能没有改动,整体代码量减少…

蓝桥杯-求阶乘-python

问题描述 满足N!的末尾恰好有K个0的最小的N是多少? 如果这样的N不存在输出一1。 思路解析 末尾的0是由10产生的,而10是由质数2和5产生的 在求阶乘的过程中,只要是偶数就会有2,而5相对2更少,所以对于10的数量我们可以…

【分享】Word快捷键--Tab键的应用技巧

在使用word编辑文档时,想必大家一定经常用到【Tab】这个快捷键,今天来分享几个Tab键的应用技巧,这些技巧在文档排版中大有用处,可以大大提高我们的操作效率。 1.段首空两格 写文章时,只需按下【Tab】键就可以自动缩进…

Java串口通信技术探究2:RXTX库单例测试及应用

目录 一、创建串口工具类二、串口工具测试三、运行时会遇到的错误JVM崩溃无法找到指定的类 本文主要介绍了Java串口通信技术探究,重点分析了RXTX库单例测试以及串口工具的使用。通过实例演示了如何使用SerialPortTool类进行串口操作,包括打开串口、关闭串…

MySQL篇----第十一篇

系列文章目录 文章目录 系列文章目录前言一、BLOB 和 TEXT 有什么区别?二、MySQL_fetch_array 和 MySQL_fetch_object 的区别是什么?三、MyISAM 表格将在哪里存储,并且还提供其存储格式?四、MySQL 如何优化 DISTINCT?五、如何显示前 50 行?前言 前些天发现了一个巨牛的人…

ProtonMail邮箱怎么样?国内有什么替代品?

ProtonMail作为业界知名的加密邮箱提供者,其安全性、隐私保护等特性让不少追求私密通信的用户趋之若鹜。然而对于国内用户而言,ProtonMail可能并非最佳选择,受限于许多因素,从语言支持到服务器位置再到可访问性,都可能…

parse库,一个优雅的python库

前言 在Python中,format方法和f-strings是两种常用的字符串插值方法。 name "Haige" age "18" print(f"{name} is {age} years old.")# Haige is 18 years old.而如果是要从字符串中提取期望的值呢?相信很多人的第一或…

tkinter绘制组件(41)——菜单按钮

tkinter绘制组件(41)——菜单按钮 引言布局函数结构按钮部分菜单显示完整代码函数 效果测试代码最终效果 github项目pip下载结语 引言 TinUI5的新控件,菜单按钮,menubutton。 这是一个与TinUI菜单(menubar&#xff0…

【C++】基础知识讲解(引用、内联、auto,基于范围for循环)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:http://t.csdnimg.cn/eCa5z 目录 引用 概念 特性 使用场景 作参数 作返回值 传值、传引用效率比较 引用和指针的区别 内联函数 概念…

excel 导出 The maximum length of cell contents (text) is 32767 characters

导出excel报错。错误日志提示::The maximum length of cell contents (text) is 32767 characters 排查后,发现poi有单元格最大长度校验,超过32767会报错。 解决方案: 通过java反射机制,设置单元格最大校验限制为Int…

Skywalking 应用笔记

概念 Skywalking是一款分布式的系统 性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking是一款 观察性的分析平台和应用性能管理系统,提供了 分布式追踪、性能指标分析、应用服务依赖分析、可视化一体化等解决方…

CV | SAM在医学影像上的模型调研【20240207更新版】

本文主要是SAM(Segment Anything)在医学影像上的数据集,模型及评估方法调研【持续更新】~ 1.开源数据集 可参考这篇【数据集 | 基于计算机视觉的医学影像处理数据集_CSDN博客】 2.算法模型 2023.04_SAM 论文:2018.08.05v_Segm…

Win32 SDK Gui编程系列之--弹出式菜单

1.弹出式菜单 例如,在命令提示窗口中点击鼠标右键,会出现如下图所示的弹出菜单(下拉菜单)。 这种弹出式菜单的实现很简单。不创建菜单栏,用CreatePopupMenu函数创建的菜单是最顶端的菜单就可以了。 菜单的显示使用TrackPopupMenu函数进行。 例如,点击鼠标右键显示弹出…