TinyGPT-V:微型视觉语言模型【VLM】

news2024/11/27 10:40:14

AI技术正在不断融入我们的日常生活。人工智能的一个应用包括多模态化,例如将语言与视觉模型相结合。这些视觉语言模型可以应用于视频字幕、语义搜索等任务。

本周,我将重点介绍一种名为 TinyGPT-V(Arxiv | GitHub)的最新视觉语言模型。这种多模态语言模型之所以有趣,是因为它对于大型语言模型来说非常“小”,并且可以部署在单个 GPU 上,只需 8GB 的​​ GPU 或 CPU 即可进行推理。这对于最大限度地提高人工智能模型的速度、效率和成本非常重要。

我想指出的是,我不是作者,也与模型的作者没有任何关系。然而,作为一名研究人员和从业者,我认为这是人工智能领域一个值得研究的有趣发展,尤其是因为拥有更高效的模型将解锁更多应用。让我们深入研究吧!

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 

1、问题与解决方案

多模态模型(例如视觉语言模型)在人机交互方面取得了创纪录的性能。随着这些模型的不断改进,我们可以看到公司开始在现实场景和应用中应用这些技术。

然而,许多人工智能模型,尤其是多模态模型,需要大量的计算资源来进行模型训练和推理。时间、硬件资源和资金的物理限制是研究人员和从业人员的瓶颈。

此外,这些限制目前阻碍了多模态模型部署在某些应用程序界面中,例如边缘设备。需要研究和开发量化(更小)和高性能模型来应对这些挑战。

TinyGPT-V 是一个 2.8B 参数的视觉语言模型,可以在 24GB GPU 上进行训练,并使用 8GB GPU 或 CPU 进行推理。这很重要,因为其他最先进的“较小”视觉语言模型(例如 LLaVA1.5)仍然相对“较大”(7B 和 13B 参数)。

与其他较大的视觉语言模型进行基准测试时,TinyGPT-V 在多个任务上实现了类似的性能。总之,这项工作有助于通过减少 AI 模型的计算需求同时保持性能来提高其效率。平衡这两个目标将使视觉语言模型能够直接在设备上使用,从而提供更好的用户体验,包括减少延迟和提高鲁棒性。

2、TinyGPT-V相关工作和技术

不太大的基础视觉语言模型 (VLM)

VLM 学习图像/视频与文本之间的关系,可应用于许多常见任务,例如在照片中搜索对象(语义搜索)、在视频中提问和接收答案 (VQA) 以及更多任务。LLaVA1.5 和 MiniGPT-4 是两种多模态大型语言模型,截至 2024 年 1 月,它们都是最先进的,并且比类似的 VL 基础模型相对较小。但是,这些 VLM 仍然需要大量的 GPU 使用和训练时间。例如,作者描述了 LLaVA-v1.5 13B 参数模型的训练资源,该模型使用八个 A100 GPU 和 80GB RAM 进行 25.5 小时的训练。这对希望在野外研究、开发和应用这些模型的个人和机构来说是一个障碍。

TinyGPT-V 是旨在解决此问题的最新 VLM 之一。它为视觉和语言组件使用了两个独立的基础模型:EVA 编码器用作视觉组件,而 Phi-2 用作语言模型。简而言之,EVA 可扩展到 1B 参数视觉变换模型,该模型经过预先训练以重建蒙版图像文本特征。Phi-2 是一个 2.7B 参数语言模型,在精选的合成和网络数据集上进行训练。作者能够合并这两个模型并将它们量化为总参数大小为 2.8B。

下面显示的是 TinyGPT-V 与其他具有各种视觉语言任务的 VLM 相比的性能。值得注意的是,TinyGPT-V 的表现与 BLIP-2 相似,这可能是由于从 BLIP-2 中获取的预训练 Q-Former 模块。此外,与 TinyGPT-V 相比,InstructBLIP 似乎取得了更好的性能,尽管需要注意的是,最小的 InstructBLIP 模型是用 4B 参数训练的。根据应用的不同,这种权衡对从业者来说可能是值得的,并且需要进行额外的分析来解释这种差异。

模型训练使用的数据集包括:

  • GQA:真实世界的视觉推理和组合 QA
  • VSR:具有空间关系的英文文本-图像对
  • IconQA:使用图标图像进行视觉理解和推理
  • VizWiz:从视障人士用智能手机拍摄的照片中得出的视觉查询,并补充了 10 个答案。
  • HM:旨在检测模因中的仇恨内容的多模式集合。

TinyGPT-V 与类似的最先进的“较小”视觉语言模型进行了基准性能对比

请注意,我们应该假设作者将他们的模型表示为“TinyGPT-4”。它的性能与 BLIP-2 相当,后者有 ~3.1B 个参数。InstructBLIP 在不同任务上的表现更好,但值得注意的是,它有 ~4B 个参数。这比 TinyGPT-V 要大得多,后者有 ~2.1B 个参数。

视觉和语言特征的跨模态对齐

VLM 训练由几个目标函数组成,用于优化 a) 扩展 VLM 的效用,b) 提高​​ VLM 的总体性能,以及 c) 降低灾难性遗忘的风险。除了不同的目标函数外,还有几种模型架构或方法来学习和合并视觉和语言特征的联合表示。我们将讨论训练 TinyGPT-V 的相关层,它们在下面以块的形式显示。

TinyGPT-V 训练方案

第 1 阶段是热身预训练阶段。第二阶段是训练 LoRA 模块的预训练阶段。第三训练阶段旨在对模型进行指令调整。最后,第四训练阶段旨在针对各种多模态任务对模型进行微调。

BLIP-2 论文中描述的 Q-Former 用于从对齐的图像文本数据中学习联合表示。 Q-Former 方法针对三个目标进行了优化,以学习视觉语言表示:

  • 图像-文本匹配:学习图像和文本表示之间的细粒度对齐
  • 图像-文本对比学习:对齐图像和文本表示以最大化获得的相互信息
  • 基于图像的文本生成:训练模型以在给定输入图像的情况下生成文本

在 Q-former 层之后,他们采用了 MiniGPT-4(Vicuna 7B)中预先训练的线性投影层来加速学习。然后,他们应用线性投影层将这些特征嵌入到 Phi-2 语言模型中。

规范化

从不同模态训练较小的大规模语言模型面临着重大挑战。在训练过程中,他们发现模型输出容易受到 NaN 或 INF 值的影响。这在很大程度上归因于消失梯度问题,因为模型的可训练参数数量有限。为了解决这些问题,他们在 Phi-2 模型中应用了几种规范化程序,以确保数据具有足够的代表性以进行模型训练。

在整个 Phi-2 模型中应用了三种规范化技术,与原始实现相比略有调整。他们更新了在每个隐藏层中应用的 LayerNorm 机制,包括一个小数以实现数值稳定性。此外,他们在每个多头注意力层之后实施了 RMSNorm 作为后规范化程序。最后,他们加入了查询键规范化程序,他们认为这在低资源学习场景中很重要。

上图应用低秩自适应 (LoRA) 对 TinyGPT-V 进行微调。面板 c) 展示了如何在 TinyGPT-V 中实现 LoRA。面板 d) 展示了上一节中描述的查询键规范化方法。

3、结束语

TinyGPT-V 为提高多模态大型语言模型效率的一系列研究做出了贡献。在多个领域(例如 PEFT、量化方法和模型架构)的创新对于在不牺牲太多性能的情况下尽可能缩小模型至关重要。正如在预印本中所观察到的那样,TinyGPT-V 实现了与其他较小的 VLM 类似的性能。它与 BLIP-2 性能相匹配(最小模型有 31 亿个参数),虽然它在类似基准上的表现不如 InstructBLIP,但它的尺寸仍然较小(TinyGPT-V 有 28 亿个参数,而 InstructBLIP 有 40 亿个参数)。

对于未来的方向,肯定有一些方面可以探索以提高 TinyGPT 的性能。例如,可以应用其他 PEFT 方法进行微调。从预印本来看,尚不清楚这些模型架构决策是否纯粹基于经验性能,或者是否是为了方便实施。这应该进一步研究。

最后,在撰写本文时,预训练模型和针对指令学习进行微调的模型已经可用,而多任务模型目前是 GitHub 上的测试版本。随着开发人员和用户使用该模型,进一步的改进可以深入了解 TinyGPT-V 的其他优势和劣势。但总的来说,我认为这是一项有用的研究,有助于设计更高效的 VLM。


原文链接:TinyGPT-V:微型VLM - BimAnt

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

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

相关文章

QT:Telnet客户端与服务器的创建

客户端 telnetClient类 #ifndef TELNETCLIENT_H #define TELNETCLIENT_H#include <QObject> #include <QTcpSocket>class TelnetClient : public QObject {Q_OBJECTpublic:explicit TelnetClient(QObject *parent nullptr);~TelnetClient();// 连接到指定的主机…

智慧节能节水设备远程监控解决方案

智慧节能节水设备远程监控解决方案&#xff0c;作为现代物联网技术与环保理念深度融合的产物&#xff0c;旨在通过高度集成的传感器网络、大数据分析及云计算平台&#xff0c;实现对各类节能节水设施的精细化管理和实时监控&#xff0c;从而大幅度提升资源利用效率&#xff0c;…

eNSP 华为三层交换机实现VLAN间通信

华为三层交换机实现VLAN间通信 三层交换机&#xff1a; <Huawei>sys [Huawei]sys SW-3 [SW-3]vlan batch 10 20 [SW-3]int vlan 10 [SW-3-Vlanif10]ip address 192.168.10.254 24 [SW-3-Vlanif10]int vlan 20 [SW-3-Vlanif20]ip add 192.168.20.254 24 [SW-3-Vlanif20]in…

Qt登录窗口设计

widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QIcon> //图标类 #include <QPushButton> #include <QLineEdit> //行编辑 #include <QLabel> #include <QTextEdit> #include <QMovie>class Widge…

专业名词理解(一):鲁棒性和泛化能力

目录 前言 一、鲁棒性&#xff08;Robustness&#xff09; 二、泛化能力&#xff08;Generalization&#xff09; 总结 前言 鲁棒性&#xff08;Robustness&#xff09;和泛化能力&#xff08;Generalization&#xff09;是机器学习和人工智能模型的重要特性&#xff0c;它…

CDD数据库文件制作(四)——服务配置(0x11)

目录 1.子功能创建2.会话切换配置2.1.根据诊断调查表进行信息提取(0x1101)2.2.会话转换配置(0x1101)2.3.根据诊断调查表进行信息提取(0x1102)2.4.会话转换配置(0x1102)2.5.根据诊断调查表进行信息提取(0x1103)2.6.会话转换配置(0x1103)2.7.会话切换配置完成后效果图…

R9 9900X R9 9950X评测:看完觉得7800X3D更香了

原文转载修改自&#xff08;更多互联网新闻/搞机小知识&#xff09;&#xff1a; R9 9900X R9 9950X评测&#xff1a;能效提升&#xff0c;温度下降 R9 9900X R9 9950X基础规格 注&#xff1a;评测信息来自外媒Wccftech 老规矩&#xff0c;先介绍一下这两款锐龙9000旗舰CPU的…

【笔记1-7】Qt bug记录:error C2371: QStringList重定义;不同的基类型,Qt6无法使用QStringList

在Qt5工程升级到Qt6的过程中&#xff0c;出现了QStringList重定义的问题 一开始尝试在其他文件中使用QStringList&#xff0c;结果是Qt5.9.4版本怎么使用都没有问题&#xff0c;而Qt6.7.2在其他文件中写同样的代码也会有问题 通过调查Qt源码&#xff0c;发现是Qt6对qcontainer…

栈与计算—— 150、227、224※

150. 逆波兰表达式求值&#xff08;中等&#xff09; 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。每个操作数&#xff08;运算对象&a…

web前端之实现一只可爱的小杰尼乌龟、伪元素、动画

MENU 前言效果图htmlstyle 前言 代码段使用HTML和CSS创建一个“杰尼龟”的动画。 效果图 html <div class"squirtle"><div class"tail"></div><div class"body"><div class"stomach"></div><d…

了解数据库中常用存储引擎数据结构(1)

目录 引言 存储引擎和存储结构 两者的关系 存储结构 分类 1. 按数据组织方式分类 2. 按索引结构分类 3. 按存储介质分类 4. 按数据分布方式分类 5. 按数据冗余和备份分类 存储结构需要的特性 BTree 补充知识&#xff1a;Lock和Latch的区别&#xff08;存储引擎并发…

干货分享|如何使用Stable Diffusion快速打造瞬息全宇宙?

Deforum也是一款文生视频插件&#xff0c;它把提示词跃迁和运镜结合到一起&#xff0c;生成的视频让人仿佛穿越不同时空&#xff0c;因此又被称作瞬息全宇宙。本节将介绍使用Deforum生成视频的方法。 在使用Deforum时&#xff0c;由于设置参数非常多&#xff0c;初次使用时很难…

【C语言篇】编译和链接以及预处理介绍(下篇)

文章目录 前言#和###运算符##运算符 命名约定#undef命令⾏定义条件编译#if和#endif多个分支的条件编译判断是否被定义嵌套指令 头文件被包含头文件被包含的方式本地文件包含库文件的包含 嵌套文件包含 其他预处理指令 写在最后 前言 本篇接前一篇【C语言篇】编译和链接以及预处…

fvm 管理多个 flutter 版本

前言&#xff1a; flutter SDK 版本更新还是比较快的&#xff0c;新的特性带来了新的体验&#xff0c;更新频繁也是好的事情。一方面说明 flutter 社区活跃&#xff0c;另一方面 说明 flutter 进化的脚本并没有停下。这样也会带来另一个问题&#xff0c;如果多个项目 使用了不…

详解Python 66 个内置函数!附代码

大家好&#xff0c;想掌握Python编程语言&#xff0c;从零基础的小白晋升为大神&#xff1f;没问题&#xff01;接下来我们将以轻松有趣的方式&#xff0c;逐一解锁Python的66个内置函数&#xff0c;每一步都将结合实际应用场景、函数功能解析及简洁代码演示&#xff0c;带你深…

超全面!Midjourney用户手册中文版!详解模型、命令、参数与高级用法

前言 引言 大家好&#xff0c;我是包大。 最近正在上手体验目前网上很火的 AI 绘画工具 Midjourney&#xff0c;在优设和 B 站上找了很多教程来看&#xff0c;现在基本可以上手用它生成很多好玩的图片了。 这里私心推荐一下优设网的 AI 绘画专题&#xff0c;专题里已经积累了…

Docker详细讲解

2013年发布至今&#xff0c; Docker一直广受瞩目&#xff0c;被认为可能会改变软件行业。 但是&#xff0c;许多人并不清楚 Docker 到底是什么&#xff0c;要解决什么问题&#xff0c;好处又在哪里&#xff1f;今天就来详细解释&#xff0c;帮助大家理解它&#xff0c;还带有简…

【Linux操作系统】进程概念

目录 一、进程概念1.1 什么是进程 二、task_struct内容分类2.1 标识符2.2 进程状态2.2.1 进程排队2.2.2 关于进程状态的表述——运行、阻塞、挂起2.2.3 Linux中具体的进程状态2.2.4 孤儿进程 2.3 进程优先级 三、Linux的调度与切换3.1 进程切换3.2 进程调度 四、环境变量4.1 ma…

产品文档全攻略:分类、价值及创建技巧

作者 | Josh Fechter 产品文档是产品附带的资料。这些文档包含产品工作的详细信息、使用指南、免责声明以及与产品相关的其他重要详细信息。 产品文档是一个广义的术语&#xff0c;并不仅仅是为了供消费者使用。产品文档还包括供内部组织使用的产品或服务的信息。这些文档文件…

KETTLE调用http传输中文参数的问题

场景&#xff1a;检查服务器异常&#xff08;hive&#xff09;服务&#xff0c;就通过http发送一条短信到手机上&#xff0c;内容类似&#xff1a;【通知】 S T A R T D A T E h i v e 服务检测异常 {START_DATE}_hive服务检测异常 STARTD​ATEh​ive服务检测异常{DB_ID}&#…