多模态 ——LLaVA 集成先进图像理解与自然语言交互GPT-4的大模型

概述

提出了一种大型模型 LLaVA,它使用 GPT-4 生成多模态语言图像指令跟随数据,并利用该数据将视觉和语言理解融为一体。初步实验表明,LLaVA 展示了出色的多模态聊天能力,在合成多模态指令上的表现优于 GPT-4。 在科学质量保证中进行微调时,LLaVA 和 GPT-4 的协同作用实现了新的一流准确性。

论文链接:http://arxiv.org/abs/2304.08485
代码链接:https://github.com/haotian-liu/LLaVA
demo链接:https://llava-vl.github.io/

导言

本文的重点是开发结合视觉和语言的人工智能助手。在传统模型中,每项任务都是独立解决的,语言只能描述图像内容。然而,随着大规模语言模型(LLM)的发展,语言能够指导各种各样的任务。本文介绍了一种名为视觉指令调整的新技术,该技术可生成视觉数据来构建大规模多模态模型(LMM)。生成的数据用于微调 LMM,并构建通用的指令跟随视觉代理。 使用 GPT-4 在科学 QA 多模态推理数据集上实现卓越性能。

相关研究

本文将重点讨论如何构建能够遵从视觉和语言指令的代理。现有工作大致可分为端到端训练模型和通过 LangChain 等系统调整不同模型的模型。我们还将自然语言处理(NLP)研究中提出的 LLM 指令调整方法应用于视觉任务,目的是建立一个通用的指令遵循视觉代理。我们认为,这将提高对指令的有效理解和概括,并可能适用于新的多模态任务。

GPT 辅助生成视觉指示数据

虽然社会上公开的图像和文本数据激增,但多模态教学数据却很有限。为了应对这一挑战,有人提议使用 ChatGPT/GPT-4 从大量图像对数据中收集多模态教学数据。

我们提出了一种使用 GPT-4 生成基于图像-文本对的自然问题的方法。由于通常的扩展方法缺乏多样性和深度推理,因此提出了一种方法,利用纯语言 GPT-4 和 ChatGPT 作为教师,生成遵循视觉指令的数据。使用符号表示法对图像进行编码,生成不同类型的指令遵循数据。研究表明,GPT-4 可以提供高质量的指令跟随数据,而且比普通的数据增强方法效果更好。

视觉指令的调整

模型架构

主要目标是有效利用预训练 LLM 和视觉模型的能力。 网络架构如图 1 所示。

LaMA(Large Language Model for Instructions Following)即大型语言模型fφ(⋅),由参数 φ 参数化。这是因为它在仅针对开源语言的指令调整工作中被证明是有效的。ViT-L/14 提供视觉特征 Zv=g(Xv),并使用可训练的投影矩阵 W 将图像特征转换为语言嵌入标记 Hq。这确保了图像和语言模型具有相同的维度。

因此,从图像中得出的视觉标记 Hv 过程序列既轻便又高效,可以快速迭代以数据为中心的实验。其他模型,如 Flamingo’s Gate Cross Attention 和 BLIP-2’s Q-former 或 SAM,都提供了对象级功能。未来的研究仍将探索更有效、更复杂的架构设计。

模型训练

对于每幅图像,对话数据由若干个轮次(X1q、X1a、…)组成。XTq, XTa)。其中 T 代表回合总数。所有助手的回答都会被汇总,每个回合中的指令都会被整理为 Xtinstruct。这种方法产生的多模态指令统一格式如表 2 所示。利用原始的自回归训练目标,对预测标记进行 LLM 指令调整。具体来说,就是计算在长度为 L 的序列中生成目标答案 Xa的概率。在训练模型时,我们考虑了两阶段的指令调整程序。其中,θ 是可训练参数,Xinstruct < i 和 Xa < i 分别是当前预测标记 xi之前所有回合中的指令和答案标记。在条件语句中,明确添加了 Xv,以强调图像是以所有答案为基础的,并且跳过了 Xsystem 消息和之前的所有 以提高可读性。

该方法也包括两个阶段。在第一阶段,从 CC3M 中选取 595K 对图像-文本,并使用简单的扩展方法将其转换为符合指令的数据,以便将其视为单轮对话。在此,随机抽样的问题被用作图像的指令,而原始标题则被训练为预期答案。在这一阶段,视觉编码器和 LLM 权重是固定的,只有投影矩阵 W 用于最大化可能性。

第二步,固定视觉编码器的权重,更新 LLaVA 的投影层和 LLM 的权重。换句话说,可训练参数就是投影矩阵 W 和 φ。聊天机器人的训练使用收集到的语言图像指令跟踪数据,并对多转和单转回答进行均匀采样;在 ScienceQA 基准中,问题以自然语言或图像的形式提供上下文,助手负责推理过程,推理过程包括在 ScienceQA 基准中,问题以自然语言或图像的形式提供上下文,助手负责推理过程,从多个选项中选择一个答案

安装与部署

获取代码:

git clone https://github.com/haotian-liu/LLaVA.git
cd LLaVA

安装软件包:

conda create -n llava python=3.10 -y
conda activate llava
python -mpip install --upgrade pip  # enable PEP 660 support
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu117
pip install -e .
pip uninstall bitsandbytes

如果想在本地启动 Gradio ui 演示,请依次运行以下命令。如果计划启动多个模型工作器以比较不同检查点之间的差异,只需要一次启动控制器和Web服务器。
在这里插入图片描述

启动项目:

python -m llava.serve.controller --host 0.0.0.0 --port 10000

试验

多模态聊天机器人

研究人员开发了一种名为 LLaVA 的新型多模态人工智能模型,并制作了一个聊天机器人演示,展示了它的图像理解和对话能力;LLaVA 仅在 80,000 张图像上进行了训练,并显示出与 GPT-4 相似的推理结果。这表明,LLaVA 可以遵循指令、理解场景并做出适当的回应。其他模型(BLIP-2 和 OpenFlamingo)则侧重于描述图像,对指令的反应有限。定量评估还比较了 LLaVA 和 GPT-4 在 COCO 验证集所选图像上的答题能力,试图从 GPT-4 的评分中了解 LLaVA 的表现。具体结果见表 3。

对说明的调整使模型遵循用户说明的能力提高了 50 多个百分点。增加详细说明和复杂推理问题后,模型的整体性能提高了 7 个百分点。模型在会话问题上的表现也有所提高,这表明推理能力与会话能力相辅相成。最后,将三种数据类型结合在一起取得了 85.1% 的最佳性能。该评估方案为全面评估和了解大型多模态模型的功能提供了一个基准。

在研究中,使用新适配器的 LLaVA 在 ScienceQA 数据集上达到了 90.92% 的高准确率,而 GPT-4 的结果为 82.69%。与 LLaVA 和 GPT-4 相结合,则能保持 90.97% 的高准确率。此外,还提出了一种通过再次提示 GPT-4 来生成唯一答案的方案,从而达到了 92.53% 的新的最高准确率。这项研究为利用 LLM 的模型组合提供了新的可能性。通过比较不同条件下的模型性能,我们对科学质量保证任务的适当模型配置有了更好的了解。

结论

本文展示了使用 GPT-4 语言模型进行视觉指令调整的有效性。本文引入了一个新的数据生成管道,以生成遵循语言和图像指令的数据,并在此基础上训练多模态模型 LLaVA。通过微调,ScienceQA 实现了新的 SoTA 准确率,多模态聊天数据实现了卓越的视觉聊天体验。未来的前景包括在更大的数据规模上进行预训练,并与其他视觉模型连接。这有望实现新的功能并提高性能。

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

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

相关文章

如何减少延迟队列的压力

1、增加消费者数量&#xff1a; 通过增加消费者&#xff08;即处理消息的工作进程&#xff09;的数量&#xff0c;可以提高消息的处理速度&#xff0c;从而减轻队列的压力。这可以 通过水平扩展来实现&#xff0c;即部署更多的消费者实例来并行处理消息。 2、优化消费者性能&…

第1章、react基础知识;

一、react学习前期准备&#xff1b; 1、基本概念&#xff1b; 前期的知识准备&#xff1a; 1.javascript、html、css&#xff1b; 2.构建工具&#xff1a;Webpack&#xff1a;https://yunp.top/init/p/v/1 3.安装node&#xff1a;npm&#xff1a;https://yunp.top/init/p/v/1 …

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之三 简单动态聚光灯效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之三 简单动态聚光灯效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之三 简单动态聚光灯效果 一、简单介绍 二、简单动态聚光灯效果实现原理 三、简单动态聚光灯效果…

Mysql视图与事物与字符集实验

一 视图 1.视图的定义 视图是一个虚拟表&#xff0c;其内容由查询定义。 2.视图的优点 1&#xff09;视点集中 2&#xff09;简化操作 3&#xff09;定制数据 4&#xff09;分隔合并数据 5&#xff09;安全性好 3.语法格式及限定条件 1&#xff09;语法格式&#xff1…

详细讲解 C 语言标准库中的 strncmp 函数

strncmp 是 C 语言标准库提供的一个函数&#xff0c;用于比较两个字符串的前若干个字符是否相等。以下是关于 strncmp 函数的详细说明&#xff1a; 函数原型 int strncmp(const char *str1, const char *str2, size_t num); 参数说明 const char *str1: 指向第一个要比较的字…

轻量化模块整理,即插即用

轻量化模块整理&#xff0c;即插即用&#xff08;持续更新&#xff09; 整理一些轻量化的结构&#xff0c;作为知识储备&#xff0c;可以用到后续的项目和研究中 Mobilenetv3 深度可分离卷积 MobileNetV3 是一个轻量级的深度学习模型&#xff0c;专为移动和边缘设备上的高效…

微信小程序二维码

目录 前言小程序二维码不限制数量的小程序码微信小程序官方文档&#xff1a;获取不限制数量的小程序码小程序里面中接收不限制数量的小程序码传递的参数 普通链接二维码微信小程序官方文档&#xff1a;扫普通链接二维码打开小程序小程序里面中接收普通链接二维码传递的参数 前言…

C#面:泛型的主要约束和次要约束是什么

在 C# 中&#xff0c;泛型的约束是用来限制泛型类型参数的行为和能力的。 主要约束和次要约束是两种不同的约束方式。 主要约束&#xff08;Primary Constraint&#xff09;&#xff1a; 主要约束指定了泛型类型参数必须满足的最基本的条件&#xff0c;它可以是一个类、一个接…

力扣HOT100 - 56. 合并区间

解题思路&#xff1a; class Solution {public int[][] merge(int[][] intervals) {// 先按照区间起始位置排序Arrays.sort(intervals, (v1, v2) -> v1[0] - v2[0]);int[][] res new int[intervals.length][2];int idx -1;for (int[] interval : intervals) {//直接加入的…

《高等数学》笔记

文章目录 第一章 函数与极限第四节 无穷小与无穷大定义1 无穷小 第七节 无穷小的比较 第三章 微分中值定理与导数的应用第三节 泰勒公式 第九章 多元函数微分法及其应用第二节 偏导数第三节 全微分第四节 多元复合函数的求导法则 第一章 函数与极限 第四节 无穷小与无穷大 定…

CSS基础之伪类选择器(如果想知道CSS的伪类选择器知识点,那么只看这一篇就足够了!)

前言&#xff1a;学习CSS就必须要学习选择器&#xff0c;在之前我们已经学习了基本选择器和复合选择器&#xff0c;但是还有几个选择器没有学习&#xff0c;这篇文章主要讲解伪类选择器。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-…

基于springboot实现视频网站管理系统【项目源码+论文说明】计算机毕业设计

基于springboot实现视频网站管理系统演示 摘要 使用旧方法对视频信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在视频信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问…

顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-回铃音补偿

文章目录 前言联系我们解决问题操作步骤 前言 回铃音&#xff1a; 当别人打电话给你时&#xff0c;你的电话响铃了&#xff0c;而他听到的声音叫做回铃音。回铃音是被叫方向主叫方传送&#xff0c;也是彩铃功能的基础。我们平时打电话听到的“嘟 嘟 嘟 嘟”的声音&#xff0c;就…

[Linux] haproxy地址映射实现性能测试

背景 需要虚拟1万个网元做性能测试&#xff0c;前提是已经有网元模拟器&#xff0c;可以在服务器上批量起虚拟IP, 每个虚拟IP对应一个网元进程&#xff0c;但是一台服务器的CPU数量有限&#xff0c;不可能起1万个模拟器进程。于是结合haproxy&#xff0c;将frontend的1万个IP映…

asp.net core 网页接入微信扫码登录

创建微信开放平台账号&#xff0c;然后创建网页应用 获取appid和appsecret 前端使用的vue&#xff0c;安装插件vue-wxlogin 调用代码 <wxlogin :appid"appId" :scope"scope" :redirect_uri"redirect_uri"></wxlogin> <scri…

实现商品下拉框筛选

我们在购买商品的时候会出现下拉框供我们选择商品的类型或者想要便宜一点的商品&#xff0c;我们对商品进行排序等&#xff1b;那么如何实现呢&#xff1f;我在写项目的时候遇到了这个功能&#xff0c;我给大家讲一下我的实现思路。 首先&#xff0c;我们先先写一个select框&a…

【备忘】composer国内镜像列表

为方便使用自己整理了一份&#xff1a; 腾讯云&#xff1a; composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/ 阿里云 composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/ 中国全量镜像 composer …

机器学习和深度学习 --李宏毅(笔记与个人理解)Day 18

Day 18 Spatial Transformer Layer 因为单纯的cNN无法做到scaling&#xff08;放大&#xff09;and rotation&#xff08;转&#xff09;&#xff0c;所以我们引入&#xff1b; 实战中也许我们可以做到 是因为 我们的training data 中包含了对data 的augmentation&#xff1b; …

解锁智能未来:用Ollama开启你的本地AI之旅

Ollama是一个用于在本地运行大型语言模型&#xff08;LLM&#xff09;的开源框架。它旨在简化在Docker容器中部署LLM的过程&#xff0c;使得管理和运行这些模型变得更加容易。Ollama提供了类似OpenAI的API接口和聊天界面&#xff0c;可以非常方便地部署最新版本的GPT模型并通过…

【项目精讲】Swagger接口文档以及使用方式

Swagger 介绍 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(https://swagger.io/) 前后端分离开发&#xff0c;有利于团队合作接口的文档在线自动生成&#xff0c;降低后端开发人员编写接口文档的负担功能测试 如何使…