InternVL:论文阅读 -- 多模态大模型(视觉语言模型)


更多内容:XiaoJ的知识星球


文章目录

  • InternVL: 扩展视觉基础模型与通用视觉语言任务对齐
    • 1.概述
    • 2.InternVL整体架构
      • 1)大型视觉编码器:InternViT-6B
      • 2)语言中间件:QLLaMA。
      • 3)训练策略
        • (1)第一阶段:视觉-语言对比训练
        • (2)第二阶段:视觉语言生成训练
        • (3)第三阶段:监督微调(SFT)
    • 3.InternVL应用
      • 1)对于视觉感知任务
      • 2)对于对比任务
      • 3)对于生成任务
      • 4)对于多模态对话


InternVL: 扩展视觉基础模型与通用视觉语言任务对齐

图1. 不同视觉和视觉语言基础模型的比较。

(a) 表示传统的视觉基础模型,例如 ResNet 在分类任务上预先训练。

(b) 表示视觉语言基础模型,例如在图像-文本对上预训练的 CLIP。

(c ) 是 InternVL,它将大规模视觉基础模型InternViT-6B与大型语言模型保持一致,并且适用于对比和生成任务。
在这里插入图片描述

Supervised pre - training(监督预训练)
:图像经过视觉编码器(vision encoder),得到分类类别。

Contrastive pre - training(对比预训练)
:图像经过视觉编码器(vision encoder),再通过对比编码器(contrastive encoder)与文本进行对比训练。


1.概述

大型语言模型的快速增长,为多模态AGI(Artificial General Intelligence,通用人工智能)系统带来了更多可能,但视觉和视觉语言基础模型的发展却没跟上。

我们设计了大规模视觉语言基础模型 InternVL, 它首次将大规模视觉编码器与LLMs该模型对齐。该模型在各种通用视觉语言任务上表现出强大的性能,包括视觉感知任务、视觉语言任务和 多模态对话。

目前视觉语言模型(VLLMs)的限制

为了将视觉模型与 LLMs 桥接,现有的视觉语言模型(VLLMs)通常使用轻量级的“glue(粘合层)”,如QFormer或线性投影,来对齐视觉和语言模型的特征,连接视觉和语言模型。

但这种方法存在以下问题:

(1)参数规模差异:LLM参数可达10000亿,而VLLMs的视觉编码器通常只有10亿左右,这可能导致LLM的容量未被充分利用;

(2)表征不一致:视觉模型,基于纯视觉数据进行训练或与BERT系列对齐,与LLM的表征往往不一致;

(3)连接效率低,轻量级且随机初始化的“粘合层”可能无法有效捕捉多模态理解和生成所需的丰富跨模态交互和依赖关系。


2.InternVL整体架构

与传统的纯视觉主干和双编码器模型不同,InternVL有三个关键设计:

  • 参数平衡的视觉和语言组件: 60亿参数视觉编码器( InternViT-6B)+80亿参数的LLM中间件(QLLaMA)

  • 对齐视觉编码器和语言中间件:视觉编码器(InternViT-6B)与LLM中间件(QLLaMA)对齐。

  • 渐进式图像文本对齐:在大规模嘈杂的图像文本数据上启动对比学习,随后过渡到在细粒度数据上生成学习。

1)大型视觉编码器:InternViT-6B

它使用普通视觉转换器(ViT)实现了 InternVL 的视觉编码器。为了匹配 LLMs的规模,我们将视觉编码器扩展到 60 亿个参数,从而产生了 InternViT-6B 模型。

2)语言中间件:QLLaMA。

语言中间件 QLLaMA 旨在协调视觉和语言特征。

QLLaMA 基于预先训练的多语言 LLaMA 开发的,并新增了 96 个随机初始化的可学习查询和交叉注意力层(10 亿个参数)。这种方式使 QLLaMA 能够顺利地将视觉元素集成到语言模型中,从而增强组合特征的连贯性和有效性。

3)训练策略

图3. 所提出的 InternVL 模型的训练策略。
在这里插入图片描述

如图所示,InternVL 的训练包括三个渐进阶段,包括视觉-语言对比训练、视觉-语言生成训练和监督微调。

(1)第一阶段:视觉-语言对比训练

我们进行对比学习,在网络规模的嘈杂图像文本对上将 InternViT-6B 与多语言 LLaMA-7B 对齐。这些数据都是公开的,包括多语言内容,包括 LAION-en、LAIONmulti、LAIONCOCO、COYO、Wukong 等。我们使用这 些数据集的组合,并过滤掉一些质量极低的数据来训练我们的模型。

在训练过程中,我们使用LLaMA-7B对文本进行编码得到文本特征Tf,同时利用InternViT-6B提取视觉特征If。按照CLIP(Contrastive Language-Image Pretraining)的目标函数通过最大化匹配的图像-文本对的相似度,同时最小化不匹配对的相似度,从而学习图像和文本之间的关联。

(2)第二阶段:视觉语言生成训练

我们将InternViT-6B与QLLaMA连接,并采用生成训练策略。QLLaMA继承了第一阶段LLaMA-7B的权重,我们保持InternViT-6B和QLLaMA冻结,仅用过滤后的高质量数据训练新增的可学习查询和交叉注意力层。

我们进一步筛选掉 了质量不高的数据,从第一阶段的49.8亿减少到10.3亿。

沿用BLIP-2的损失函数,该阶段的损失由图像-文本对比 (ITC) 损失、图像-文本匹配 (ITM) 损失和图像基于文本生成 (ITG) 损失三部分组成,这使得查询能够提取强大的视觉表示,并进一步与LLMs对齐特征空间。

(3)第三阶段:监督微调(SFT)

InternVL在创建多模态对话系统时,我们通过 MLP 层将其与 现成的LLM解码器(例如 Vicuna 或 InternLM) 连接起来,并进行监督微调 (SFT)。


3.InternVL应用

图 4. 使用 InternVL 的不同方式。
在这里插入图片描述

通过灵活地结合视觉编码器和语言中间件,InternVL 可以支持各种视觉语言任务,包括对比任务、生成任务和多模态对话。

1)对于视觉感知任务

InternVL 的视觉编码器 InternViT-6B,可以作为视觉任务的支柱。给定一个输入图像,我们的模型可以生成特征图进行密集预测任务,或者使用全局平均池化和线性投影进行图像分类。

2)对于对比任务

如图 4(a)、4(b) 所示,我们引入了两种推理模式:InternVL-CInternVL-G。它们使用视觉编码器,或InternViT和QLLaMA的组合来编码视觉特征。

具体来说,我们将InternViT的视觉特征,或QLLaMA的查询特征进行注意力池化,以计算全局视觉特征If。此外,我们从QLLaMA的[EOS]令牌中提取特征,将文本编码为Tf。通过计算If和Tf之间的相似度分数,我们可以支持图像-文本检索等对比任务。

3)对于生成任务

QLLaMA由于其有大量的参数,本身就具有很有前途的图像描述能力。QLLaMA的查询重新组织了 InternViT-6B 的视觉表示,并作为QLLaMA的前缀文本。后续的文本标记将按顺序逐个生成。

4)对于多模态对话

引入了 InternVLChat,利用 InternVL 作为视觉组件来连接LLMs。为此,我们有两种不同的配置。

  • 一种选择是独立使用 InternViT-6B,如图 4© 所示。

  • 另一种方法是同时使用完整的 InternVL 模型,如图 4(d) 所示。

.


论文《InternVL: Scaling up Vision Foundation Models and Aligning for Generic Visual-Linguistic Tasks》:

  • https://huggingface.co/papers/2312.14238
  • https://arxiv.org/pdf/2312.14238

GitHub:

  • https://github.com/OpenGVLab/InternVL

声明:资源可能存在第三方来源,若有侵权请联系删除!

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

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

相关文章

【AWS入门】AWS云计算简介

【AWS入门】AWS云计算简介 A Brief Introduction to AWS Cloud Computing By JacksonML 什么是云计算?云计算能干什么?我们如何利用云计算?云计算如何实现? 带着一系列问题,我将做一个普通布道者,引领广…

二分算法刷题

1. 初识 总结:二分算法题的细节非常多,容易写出死循环。使用算法的条件不一定是数组有序,而是具有“二断性”;模板三种后面会讲。 朴素二分二分查找左端点二分查找右端点 2. 朴素二分 题目链接:704. 二分查找 - 力扣…

itsdangerous加解密源码分析|BUG汇总

这是我这两天的思考 早知道密码学的课就不旷那么多了 纯个人见解 如需转载,标记出处 目录 一、官网介绍 二、事例代码 源码分析: 加密函数dump源码使用的函数如下: 解密 ​编辑 ​编辑 关于签名: 为什么这个数字签名没有…

深度解析React Native底层核心架构

React Native 工作原理深度解析 一、核心架构:三层异构协作体系 React Native 的跨平台能力源于其独特的 JS层-Shadow层-Native层 架构设计,三者在不同线程中协同工作: JS层 运行于JavaScriptCore(iOS)或Hermes&…

前端内存优化实战指南:从内存泄漏到性能巅峰

前端内存优化实战指南:从内存泄漏到性能巅峰 一、内存问题引发的场景 1.1 典型内存灾难现场 // 经典内存泄漏示例 const zombieElements new Set();function createLeak() {const div document.createElement(div);zombieElements.add(div); // 元素永不释放div…

【工作记录】pytest使用总结

1、 fixture夹具 可参考: python3.x中 pytest之fixture - 漂泊的小虎 - 博客园 fixture是指夹具(把用例夹在中间),它包括前置工作和后置工作,前置是用例代码的准备阶段,后置是用例执行之后的清理阶段,用…

C++基础笔记

1. C关键字 这个不多说,以后接触得到,但这里做个总结: 2. 命名空间 一般类型: namespace Xianyu {// 命名空间中可以定义变量/函数/类型int rand 10;int Add(int left, int right){return left right;}struct Node{struct No…

生活中的可靠性小案例12:类肤材质老化发粘问题

我一直觉得我买的某品牌车载吸尘器很好用,用了几年,目前性能也是杠杠的。然而它现在有个最大的问题,就是表面发粘了,用起来粘手,非常不舒服。 这一类问题在生活中不少见,尤其是一些用了类肤材质涂层的物件。…

黑马node.js教程(nodejs教程)——AJAX-Day01-04.案例_地区查询——查询某个省某个城市所有地区(代码示例)

文章目录 代码示例效果 代码示例 axiosTest.html <!DOCTYPE html> <!-- 文档类型声明&#xff0c;告诉浏览器这是一个HTML5文档 --> <html lang"en"> <!-- HTML根元素&#xff0c;设置文档语言为英语 --><head> <!-- 头部区域&am…

Ollama+OpenWebUI本地部署大模型

OllamaOpenWebUI本地部署大模型 前言Ollama使用Ollama安装Ollama修改配置Ollama 拉取远程大模型Ollama 构建本地大模型Ollama 运行本地模型&#xff1a;命令行交互Api调用Web 端调用 总结 前言 Ollama是一个开源项目&#xff0c;用于在本地计算机上运行大型语言模型&#xff0…

【NeurIPS 2024】LLM-ESR:用大语言模型破解序列推荐的长尾难题

标题期刊年份关键词LLM-ESR: Large Language Models Enhancement for Long-tailed Sequential RecommendationNeurIPS2024Large Language Models, Sequential Recommendation, Long-tailed &#x1f4da;研究背景 在电商和社交媒体的世界里&#xff0c;序列推荐系统&#xff…

C语言_数据结构总结9:树的基础知识介绍

1. 树的基本术语 - 祖先&#xff1a;考虑结点K&#xff0c;从根A到结点K的唯一路径上的所有其它结点&#xff0c;称为结点K的祖先。 - 子孙&#xff1a;结点B是结点K的祖先&#xff0c;结点K是B的子孙。结点B的子孙包括&#xff1a;E,F,K,L。 - 双亲&#xff1a;路径上…

Android 14 Telephony 网络选择功能介绍

一、总体介绍 (一)功能 手动搜网的流程:用户通过UI触发,调用TelephonyManager的API,比如startNetworkScan,然后这个请求会传递到RIL层,通过AT命令与基带通信,进行网络扫描。结果返回后,经过TelephonyRegistry通知应用层。中间可能涉及IPC,比如Binder通信,因为应用和…

系统思考全球化落地

感谢加密货币公司Bybit的再次邀请&#xff0c;为全球团队分享系统思考课程&#xff01;虽然大家来自不同国家&#xff0c;线上学习的形式依然让大家充满热情与互动&#xff0c;思维的碰撞不断激发新的灵感。 尽管时间存在挑战&#xff0c;但我看到大家的讨论异常积极&#xff…

位运算(基础算法)

按位与AND&#xff08; & &#xff09; 只有当两个位都为1时&#xff0c;结果才为1,否则为0。结果不会变大 按位或 OR&#xff08; | &#xff09; 只有当两个位中有一个为1时&#xff0c;结果才为1,否则为0。结果不会变小 按位异或 XOR &#xff08; ^ &#xff09; 只…

规模效应的三重边界:大白话解读-deepseek为例

前言&#xff1a;当Scaling Laws遇见边际递减效应 在人工智能的狂飙突进中&#xff0c;大语言模型如同不断膨胀的星体&#xff0c;吞噬着海量算力与数据。OpenAI于2020年揭开的Scaling Laws&#xff0c;曾为这场盛宴指明方向&#xff1a;模型性能随参数规模&#xff08;N&…

力扣143重排链表

143. 重排链表 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → Ln - 1 → Ln 请将其重新排列后变为&#xff1a; L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … 不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的…

wow-rag:task3-初步体验问答引擎

做RAG需要自己准备一个txt文档&#xff0c;新建一个docs文件夹&#xff0c;放进去。例如&#xff0c;这里放了一个./docs/问答手册.txt # 从指定文件读取&#xff0c;输入为List from llama_index.core import SimpleDirectoryReader,Document documents SimpleDirectoryRead…

bgp服务器是什么意思

一、基础概念 ‌BGP服务器‌&#xff08;Border Gateway Protocol Server&#xff09;指通过 ‌边界网关协议&#xff08;BGP&#xff09;‌ 实现 ‌多运营商线路智能调度‌ 的服务器&#xff0c;能够自动选择最优路径连接不同网络&#xff08;如电信、联通、移动&#xff09;…

AtCoder Beginner Contest 397(ABCDE)

目录 A - Thermometer 翻译&#xff1a; 思路&#xff1a; 实现&#xff1a; B - Ticket Gate Log 翻译&#xff1a; 思路&#xff1a; 实现&#xff1a; C - Variety Split Easy 翻译&#xff1a; 思路&#xff1a; 实现&#xff1a; D - Cubes 翻译&#xff1a…