上海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 首页询问的时候,它居然杜撰了自己的作者!看来多模态大模型上的幻觉问题也要赶紧着手研究了~

图片

 

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

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

相关文章

【智能算法应用】麻雀搜索算法求解非线性方程组问题

目录 1.算法原理2.数学模型3.结果展示4.代码获取 1.算法原理 【智能算法】麻雀搜索算法(SSA)原理及实现 2.数学模型 非线性方程组为: 2 x 1 − x 2 e − x 1 − x 1 2 x 2 e − x 2 (1) \begin{aligned}&2x_1-x_2e^{-x_1}\\&-…

keepalive 理解

发送信息到目的ip失效(对端服务器或者POD挂了),SYN 重试到TIMEOUT 内核参数TCP_SYNCNTGo grpc 设置withblock会一直阻塞,不设置withbloack每20s重试一次(20s是默认值) 发送信息到已经建连连接,TCP 重试到TIMEOUT 内…

基于机器学习的学生学习行为自主评价设计与实现

管理员功能: a)学生学习数据管理:可查看学生学习的详情,编辑学生学习的内容,删除和添加学生学习,设置学生学习库存。 b)角色管理:增加删除学生用户,分配学生用户权限,查看学生用户…

VirtualPrivate Network v2rayN

1, download/receive the package v2rayN 2, download .net package https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-8.0.4-windows-x64-installer?cidgetdotnetcore

油猴脚本:BOSS候选人简历工作履历时间自动计算显示

BOSS的候选人工作履历时间不计算,不符合我的查看习惯,很容易让那种经常跳槽的人简历通过,容易遗漏,特编写此程序! 使用前:使用后: 代码如下: // UserScript // name BOSS网页版辅助器…

马蹄集oj赛(双周赛第二十六次)

目录 斐波那契数列的组合 三国杀 数列分段 小码哥的跳棋游戏新编 能量供应 小码哥爱数字 最小串 小船过河 摘果子 泼墨淋漓 很重的枪 小码哥的布阵指挥 斐波那契数列的组合 #include<bits/stdc.h> using namespace std;// 斐波那契数列 1 1 2 3 5 8 13 21 34…

uni-app小知识点记录

一、uniapp输入框禁止输入汉字 <u-form-item label"****" prop"****"><u-input v-model"绑定值" type"text" input"limitInput"/> </u-form-item>limitInput(e) {this.$nextTick(() > {绑定值 e.rep…

通过实例学C#之Stack类

简介 集合&#xff0c;后进先出。 构造函数 Stack<>() 不使用参数创建stack对象。 Stack<>(ICollection col) 使用数组col来创建stack对象。 常用属性 Count 获取stack中包含的元素数。 static void Main(string[] args) {string[] strArray { "monda…

LeetCode HOT 100刷题总结

文章目录 1 哈希1.1 1-1.两数之和&#x1f7e2;1.2 2-49.字母异位词分组&#x1f7e1;1.3 3-128.最长连续序列&#x1f7e1; 2 双指针2.1 4-283.移动零&#x1f7e2;2.2 6-15.三数之和&#x1f7e1;2.3 7-11.盛最多水的容器&#x1f7e1;2.4 8-42.接雨水&#x1f534; 3 滑动窗…

【Web漏洞指南】服务器端 XSS(动态 PDF)

【Web漏洞指南】服务器端 XSS&#xff08;动态 PDF&#xff09; 概述流行的 PDF 生成工具常见攻击载荷 概述 如果一个网页使用用户控制的输入创建 PDF&#xff0c;您可以尝试欺骗创建 PDF 的机器人以执行任意的 JS 代码。 因此&#xff0c;如果PDF 创建机器人发现某种HTML标签…

【退役之重学Java】如何保证消息的幂等性

除了要保证高可用之外&#xff0c;从消息队列里消费到重复的消息该怎么办&#xff1f;即如何保证消息的幂等性 一、场景 消费者刚消费完&#xff0c;还没有提交&#xff0c;突然重启&#xff0c;导致重启后又收到了相同的消息&#xff0c;这就是重复消费 二、保证幂等性是什么…

为Linux的shell脚本编程创建文件时自动生成注释信息如(!/bin/bash)等

大家在每一次创建一个新的以.s等后缀结束的文件时可能总是会面临重复写一些注释信息,其实我们只需写一个文件自动生成这些就可以避免这些麻烦 首先在/root下新建一个如.vimrc的文件&#xff08;vim /root/.vimrc&#xff09; 然后输入以下内容 autocmd BufNewFile *.py,*.cc,…

程控负载的功能实现原理

程控负载&#xff0c;顾名思义&#xff0c;就是可以通过程序控制其工作状态的负载设备。它的主要功能是模拟实际负载的工作状态&#xff0c;为电源、电子设备等提供稳定的工作电流或电压。程控负载的功能实现原理主要包括以下几个方面&#xff1a; 1. 电流和电压调节&#xff1…

小米poco x3 pro adbd 以root权限启动提供服务

1. 首先申请解锁 2. 按volume - 和 power开机进入fastboot 3.下载twrp-3.7.1_12-0-vayu.img 4. fastboot flash recoery twrp-3.7.1_12-0-vayu.img, 安装magisk, termux 5. 下载aosp的android11的aosp_arm64-img-11718355.zip,Artifact Viewer 6. 解压aosp_arm64-img-1…

开源模型应用落地-CodeQwen模型小试-SQL专家测试(二)

一、前言 代码专家模型是基于人工智能的先进技术&#xff0c;它能够自动分析和理解大量的代码库&#xff0c;并从中学习常见的编码模式和最佳实践。这种模型可以提供准确而高效的代码建议&#xff0c;帮助开发人员在编写代码时避免常见的错误和陷阱。 通过学习代码专家模型&…

云联网是一种可扩展的、全球性的网络解决方案,用于连接多个地理位置的云部署和数据中心,实现各种云服务之间以及云与现有数据中心之间的安全、高速、稳定的连接

云联网是一种可扩展的、全球性的网络解决方案&#xff0c;用于连接多个地理位置的云部署和数据中心&#xff0c;实现各种云服务之间以及云与现有数据中心之间的安全、高速、稳定的连接。它基于SDN&#xff08;软件定义网络&#xff09;技术&#xff0c;提供一点上云、多云连接及…

ChatGPT开源的whisper音频生成字幕

1、前言 好了&#xff0c;那接下来看一下whisper开源库的介绍 有五种模型大小&#xff0c;其中四种仅支持英语&#xff0c;提供速度和准确性的权衡。上面便是可用模型的名称、大致的内存需求和相对速度。如果是英文版的语音&#xff0c;直接想转换为英文。 本来我是想直接在我的…

情感分类学习笔记(2)

Shopping Reviews sentiment analysis | Ldys Blog (buptldy.github.io) 1. imdb_w2v Word2Vec(sizen_dim, min_count10) 在你给出的代码片段中&#xff1a; python复制代码 imdb_w2v Word2Vec(sizen_dim, min_count10) 这里你试图创建一个Word2Vec模型实例&#xff0c;…

魔法程序员的奥妙指南:Java基本语法

作为一名魔法程序员&#xff0c;精通Java语言是至关重要的。Java作为一种强大的编程语言&#xff0c;在编写优质代码和开发强大应用程序时发挥着重要作用。让我们深入探讨Java基本语法的关键要点&#xff0c;从注释到变量&#xff0c;无所不包&#xff01; Java基本语法的神秘魔…

Linux网络编程:TCP并发服务器实现

目录 1、前言 2、多进程代码实现 2.1 创建新的进程 2.2 客户端接收响应函数 2.3 僵尸进程处理 2.4 完整代码 2.5 代码测试 3、多线程代码实现 3.1 创建新的线程 3.2 线程函数定义 3.3 完整代码 3.4 代码测试 4、总结 1、前言 前面实现了基本的TCP编程&#xf…