当前位置: 首页 > news >正文

上海AI Lab开源首个可替代GPT-4V的多模态大模型

与开源和闭源模型相比,InternVL 1.5 在 OCR、多模态、数学和多轮对话等 18 个基准测试中的 8 个中取得了最先进的结果。

上海AI Lab 推出的 InternVL 1.5 是一款开源的多模态大语言模型 (MLLM),旨在弥合开源模型和专有商业模型在多模态理解方面的能力差距。

图片


论文称,InternVL 1.5 在四个特定基准测试中超越了 Grok-1.5V、GPT-4V、Claude-3 Opus 和 Gemini Pro 1.5 等领先的闭源模型,特别是在与 OCR 相关的数据集中。

   GPT-3.5研究测试:

yeschat

GPT-4研究测试:

Hello, LLMs

Claude-3研究测试(全面吊打GPT-4):

AskManyAI

论文用下面一张图非常生动地展示了他们为 达到 AGI 星球 所做的努力:

图片


图中主要涉及 InternVL 的三个改进:(1)强视觉编码器:为大规模视觉基础模型 InternViT-6B 探索了一种持续学习策略,提高了其视觉理解能力,并使其可以在不同的LLM中迁移和重用。(2)动态高分辨率:根据输入图像的长宽比和分辨率,将图像划分为1到40个448×448像素的图块,最高支持4K分辨率输入。(3)高质量的双语数据集:收集了高质量的双语数据集,涵盖常见场景、文档图像,并用英文和中文问答对进行注释,显着提高了 OCR 和中文相关任务的性能。

图片


总体的结构则是采用与流行的多模态大模型类似的 ViT-MLP-LLM 架构,通过MLP映射器将预训练好的InternViT-6B与InternLM2-20b结合在一起。同时还使用一个简单的Pixel Shuffle 技巧将视觉标记的数量减少到四分之一。

对于动态高分辨率,研究人员则是从预定义的比例中动态匹配最佳宽高比,将图像划分为448×448像素大小的块,并为全局上下文创建缩略图。该方法最大限度地减少了纵横比失真,并在训练期间适应不同的分辨率。

图片

▲图4.动态分辨率。

在训练过程中,视觉标记的数量范围为 256 到 3,328。在测试过程中,图块数量最多可以增加到 40 个,从而产生 10,496 个视觉标记,从而实现最高4K分辨率的输入。

论文中也提供了模型在预训练和微调阶段使用的各类任务以及对应的数据集,并且都是公开数据集。为了构建大规模 OCR 数据集,研究人员还利用 PaddleOCR 对 Wukong 数据集的图像执行中文 OCR,对 LAION-COCO 数据集的图像执行英文 OCR。

图片

▲图5.(a) 预训练阶段使用的数据集

图片

▲图5.(b) 微调阶段使用的数据集。

而InternVL 1.5 的具体性能表现如何?如下图所示,InternVL 1.5 在大多数基准测试中都表现出领先的性能!

图片

▲图6.在 16 个多模式基准上与 SoTA 模型进行比较。

与 TextMonkey、DocOwl-1.5 和 LLaVA-NeXT 等其他开源模型相比,InternVL 1.5 在这些基准测试中显着缩小了与专有模型的差距。

然而,虽然 InternVL 1.5 超越了 MM1,并且在 MMMU 上与 Gemini Pro 1.0 相当,但它比其前身 InternVL 1.2 略有下降。作者也对此进行了分析,并称这可以被认为是适当的降低,且可以归因于语言模型规模较小,这种现象也可以在下图中的 MMT-Bench 结果中观察到。

图片

▲图7. 在ConvBench和MMT-Bench上与SoTA模型的比较。

针对InternVL在不同分辨率下的性能,研究人员也进行了实验。论文称,尽管在训练期间仅使用 1 到 12 个图块,但可以在测试期间将零样本任务扩展到 40 个图块(即,4K分辨率)。

但是作者也发现并不是所有任务都需要高分辨率,从图8来看,与 OCR 相关的任务(例如 DocVQA、InfoVQA、TextVQA 和 OCRBench)受益于分辨率的提高,而 AI2D、MMMU、MMBench 和 HallusionBench 等任务在更高分辨率下表现出轻微下降。

图片

▲图8.不同图像分辨率下 InternVL 1.5 性能的比较。X 轴代表图块数量,Y 轴代表基准性能。最高值及其相应的图块数量会突出显示。

总体而言,InternVL 1.5 对动态分辨率表现出很强的鲁棒性。它可以根据每项任务的具体要求调整分辨率,确保在高分辨率有利的情况下实现最佳性能,在不利于高分辨率的情况下节省资源。

为了充分践行自己对标 GPT-4V的目标,论文中的 General QA、OCR-related QA、科学理解、中国传统文化、目标定位、多图像对话的示例上均与 GPT-4V进行对比,蓝色字体显示出色的答案,而红色字体显示错误的答案。

为了方便读者阅读,(如果非中文)下面的蓝色(或红色)字体的部分均进行中文翻译。

图片

▲General QA 的示例。

图片

▲OCR-related QA 示例。

图片

▲科学理解的例子。

图片

▲中国传统文化的范例。蓝色突出显示了出色的答案

图片

▲目标定位的示例。

图片

▲多图像对话示例。

最后,我们也可以在官方demo中进行试玩:

https://internvl.opengvlab.com

图片

不得不说,这个效果真的很惊喜!不过也存在一些问题,比如说当用 InternVL 1.5 的 arxiv 首页询问的时候,它居然杜撰了自己的作者!看来多模态大模型上的幻觉问题也要赶紧着手研究了~

图片

 

相关文章:

上海AI Lab开源首个可替代GPT-4V的多模态大模型

与开源和闭源模型相比,InternVL 1.5 在 OCR、多模态、数学和多轮对话等 18 个基准测试中的 8 个中取得了最先进的结果。 上海AI Lab 推出的 InternVL 1.5 是一款开源的多模态大语言模型 (MLLM),旨在弥合开源模型和专有商业模型在多模态理解方面的能力差距…...

Python教程:一文了解PageObject模式

PageObject 模式是一种用于测试自动化的设计模式,它将页面的功能和页面的实现分开,提高了代码的可维护性和可重用性。本文将从基础概念开始,逐步介绍 Python 中的 PageObject 模式,并提供详细的代码示例。 1. 什么是 PageObject 模…...

SpringBoot 启动时查询数据库数据,并赋值给全局变量

创建一个组件 AreaData import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component;import java.u…...

【Python】selenium爬虫常见用法和配置,以及常见错误和解决方法

欢迎来到《小5讲堂》 这是《Python》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 前言无执行文件代码报错信息错误路径手动下载自动下载 选项配置Ch…...

minio上传文件失败如何解决

1. 做了什么操作 通过接口上传excel文件,返回响应值 2. 错误如图 2. 如何解决 根据错误描述定位到了部署minio的地方minio通过docker部署,找到docker - compose发现配置文件中minio有两个端口,一个是用于api的,一个是用于管理界面…...

Java自动化测试框架--TestNG详解

一. 什么是TestNG TestNG是一个开源的自动化测试框架&#xff0c;它受JUnit和NUnit启发&#xff0c;其中“NG”即表示Next Generation&#xff0c;其功能更强大使用更方便。 二. TestNG配置 2.1 POM文件配置 在maven工程的pom.xml文件中加入以下依赖&#xff1a; <depe…...

【分布式 | 第五篇】何为分布式?分布式锁?和微服务关系?

文章目录 5.何为分布式&#xff1f;分布式锁&#xff1f;和微服务关系&#xff1f;5.1何为分布式&#xff1f;5.1.1定义5.1.2例子5.1.3优缺点&#xff08;1&#xff09;优点&#xff08;2&#xff09;缺点 5.2何为分布式锁&#xff1f;5.2.1定义5.2.2必要性 5.3区分分布式和微服…...

JavaScript百炼成仙自学笔记——13

函数七重关之六&#xff08;“new”一个函数&#xff09; 看个代码&#xff1a; function hello(){console.log(this); } 1、this&#xff1a;也是JavaScript中的一个关键字&#xff0c;永远指向当前函数的调用者 解释一下,有两层意思&#xff1a; ①this要嘛不出现&#…...

【skill】小米10让app永驻后台

小米10&#xff08;国行&#xff09;&#xff0c; 8128不能让app驻留后台我也忍了&#xff0c;但是12256依然如此&#xff0c;各种尝试&#xff0c;全网检索不杀app的方法&#xff0c;除了在系统设置里调&#xff0c;什么adb、shizuku冰箱冰柜的没一个能用 系统版本试过国行版…...

《架构风清扬-Java面试系列第29讲》聊聊DelayQueue的使用场景

DelayQueue是BlockingQueue接口的一个实现类之一 这个属于基础性问题&#xff0c;老规矩&#xff0c;我们将从使用场景和代码示例来进行讲解 来&#xff0c;思考片刻&#xff0c;给出你的答案 1&#xff0c;使用场景 实现&#xff1a;延迟队列&#xff0c;其中元素只有在其预定…...

说说SpringBoot自动配置原理

Spring Boot的自动配置原理可以概括为&#xff1a;通过读取jar包中的配置信息&#xff0c;并根据项目依赖和条件注解自动配置应用程序所需的bean&#xff0c;从而减少手动配置的工作量。 第一、代码入口 SpringBootApplication &#x1f447; EnableAutoConfiguration &#…...

bash: docker-compose: 未找到命令

bash: docker-compose: 未找到命令 在一台新的服务器上使用 docker-compose 命令时&#xff0c;报错说 docker-compose 命令找不到&#xff0c;在网上试了一些安装方法&#xff0c;良莠不齐&#xff0c;所以在这块整理一下&#xff0c;如何正确快速的安装 docker-compose cd…...

linux 权限和权限的设置

在Linux中&#xff0c;文件和目录的权限是一个重要的安全特性。这些权限决定了哪些用户可以读取、写入或执行某个文件或目录。以下是关于Linux权限和如何设置它们的基本信息。 权限类型 Linux中有三种基本的权限类型&#xff1a; 读取&#xff08;r&#xff09;&#xff1a;…...

基于Springboot的旅游管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的旅游管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…...

springboot3项目练习详细步骤(第一部分:用户业务模块)

目录 环境准备 用户模块 注册 注册接口文档 ​编辑 实现结构 Spring Validation 登录 登录的接口文档 实现登录逻辑 JWT令牌 完善登录认证 拦截器 获取用户详细信息 接口文档 Usercontroller类中编写方法接口 忽略属性返回 优化代码ThreadLocal 更新用户基本信…...

推荐算法顶会论文博客笔记合集

小小挖掘机学习笔记 https://mp.weixin.qq.com/s/rp2xXueEyT8IKvTr2Qss3A 推荐系统学习笔记 https://blog.csdn.net/wuzhongqiang/category_10128687.html SIGIR SIGIR 2022 | 推荐系统相关论文分类整理&#xff1a;8.74 https://mp.weixin.qq.com/s/vH0qJ-jGHL7s5wSn7Oy…...

DRM/RESP无法连接linux上redis的原因

问题一&#xff1a; redis.conf配置文件 进入到自己的redis软件目录 vim redis.conf 将bind 127.0.0.1 : 1 注释掉&#xff0c;改成bind 0.0.0.0&#xff0c;让远程所有ip都可以访问 将daemonize yes 守护进程&#xff0c;修改后可在后台运行 protected-mod…...

vim怎么选中多行后在头部插入#(随手记)

方法1 进入可视行模式&#xff1a; 按下 V&#xff08;大写 V&#xff09;&#xff0c;选中整行&#xff0c;包括行尾空白字符。使用 v&#xff08;小写 v&#xff09;&#xff0c;然后移动光标选择从行中间开始的多行。 插入 #&#xff1a; 选中多行后&#xff0c;使用 I&…...

Objective-C的对象复制与拷贝选项

对象复制与拷贝 文章目录 对象复制与拷贝copy与mutablecopycopy与mutablecopy的简介示例&#xff1a;不可变对象的复制可变对象的复制 NSCopying和NSMutableCopying协议深复刻和浅复刻浅拷贝&#xff08;Shallow Copy&#xff09;&#xff1a;深拷贝&#xff08;Deep Copy&…...

HTML5 中的离线缓存机制,即应用缓存(Application Cache 或 AppCache)已被废弃并正在被逐步移除

HTML5 中的离线缓存机制&#xff0c;即应用缓存&#xff08;Application Cache 或 AppCache&#xff09;已被废弃并正在被逐步移除。这是因为应用缓存存在一些设计上的缺陷和限制&#xff0c;导致它在实际应用中经常出现问题。 取而代之的是一种更强大、更灵活的技术——Servi…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...