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

LLaMA- Adapter V2: Parameter-Efficient Visual Instruction Model

发表时间:28 Apr 2023

论文链接:https://arxiv.org/pdf/2304.15010

作者单位: Shanghai Artificial Intelligence Laboratory

Motivation如何有效地将大型语言模型 (LLM) 转换为指令追随者最近是一个流行的研究方向,而训练 LLM 进行多模态推理仍有待探索。尽管最近的 LLAMA-Adapter 展示了使用 LLM 处理视觉输入的潜力,但它仍然不能很好地推广到开放式视觉指令并落后于 GPT-4。

解决方法:在本文中,我们提出了 LLAMA-Adapter V2,这是一种参数高效的视觉指令模型。相对于LLaMA- Adapter有以下四点改进:

  1. 我们首先通过解锁更多可学习的参数((e.g., norm, bias and scale)来增强 LLAMA-Adapter,这些参数除了adapters之外在整个 LLAMA 模型中分配指令跟随能力。

LLaMA-Adapter在冻结的LLaMA模型上采用可学习的适应提示和零初始化注意机制,从而可以有效地整合新知识。但是,参数更新受限于自适应提示和门控因子,没有修改LLMs的内部参数,这限制了它进行深度微调的能力。鉴于此,研究人员提出了一种偏差调整策略,除了适应提示和门控因素之外,进一步将指令提示融合到LLaMa中。具体来说,为了自适应地处理指令跟随数据的任务,研究人员首先解冻 LLaMA 中的所有规范化层对于Transformer中的每个线性层,研究人员添加一个偏差和一个比例因子作为两个可学习的参数。值得注意的是,新增参数的数量仅占整个LLaMA的 0.04%(∼5M),表明 LLaMA-Adapter V2仍然是一种参数高效的方法。

  1. 其次,提出了一种早期融合策略,将视觉标记只输入到早期的LLM层中,有助于更好地结合视觉知识。同时防止输入视觉提示和适应提示之间的直接交互

在LLaMA-Adapter中,输入的视觉提示由具有可学习视觉投影层的冻结视觉编码器顺序编码,然后在每个插入层添加到自适应提示。在LLaMA-Adapter V2中,研究人员将编码的视觉标记和自适应提示注入不同的Transformer层,而不将它们融合在一起,如上图3所示。

对于数据集共享的自适应提示,研究人员跟随LLaMA-Adapter,将它们插入到最后L层(比如,L=30)。

对于输入的视觉提示,研究人员直接将它们与单词标记连接起来,这是具有零初始化注意力的Transformer层,而不是将它们添加到自适应提示中。与提出的联合训练一起,这种简单的视觉标记早期融合策略可以有效地解决两类微调目标之间的冲突。这样就使得参数高效的LLaMA-Adapter V2具有良好的多模态推理能力。

  1. 第三,研究人员提出了LLaMA-Adapter V2的联合训练范例,以利用图像文本字幕数据和纯语言指令示例。由于500K图像文本对和50K指令数据之间的数据量差异,直接将它们组合起来进行优化会严重损害LLaMA-Adapter的指令跟随能力。因此,研究人员的联合训练策略优化了LLaMA-Adapter V2中不相交的参数组,分别用于图像文本对齐和指令跟随。 具体来说,只有视觉投影层和带门控的早期零初始化注意力针对图文字幕数据进行训练,而后期适应提示与零门控、未冻结范数、新添加的偏差和比例因子(或可选的低秩适应)被用于从指令跟随数据学习。 不相交的参数优化很好地解决了图文理解和指令跟随之间的干扰问题,这有助于 LLaMA-Adapter V2的视觉指令跟随能力。

  1. 最近的视觉指令模型,如MiniGPT4和LLaMA需要大规模的图像文本训练来连接视觉模型和LLM。相比之下,研究人员的LLaMA-Adapter V2对更小规模的常见图像字幕数据进行了微调,使其数据效率更高。然而,研究人员的方法的图像理解能力相对较弱,导致偶尔出现不准确或无关的响应。研究人员建议集成字幕、OCR和搜索引擎等专家系统,以补充LLaMA-Adapter V2额外的视觉推理能力,而不是收集更多的图像文本数据或采用更强大的多模态模块。 如下图所示,研究人员利用字幕、检测和OCR等专家系统来增强LLaMA-Adapter V2的视觉指令跟随能力。 在推理过程中,我们将额外的专家模型(例如字幕/OCR 系统)合并到 LLAMA-Adapter 中,以进一步增强其图像理解能力,而不会产生训练成本。与原始 LLAMA-Adapter 相比,我们的 LLAMA-Adapter V2 只需在 LLAMA 上引入 14M 参数就可以执行开放式多模态指令。新设计的框架也表现出更强的仅语言指令跟踪能力,甚至在聊天交互方面表现出色。

实现方式对于具有 32 个 Transformer 层的 LLAMA-7B 模型,我们将静态适应提示插入到最后 31 层。此外,我们将动态视觉提示附加到第一层提示长度设置为 20。归一化层中的所有参数、线性层偏差和尺度在训练期间都设置为更新,而 LLAMA 中的其余参数保持冻结。

实验Stronger Language Instruction Model,Visual Instruction Model

结论它在视觉理解能力方面仍然落后于 LLAVA,容易受到专家系统提供的不准确信息的影响。 未来,我们计划探索更多专家系统的集成,并使用多模态指令数据集或其他 PEFT 方法(例如 LoRA)微调 LLAMA-Adapter V2,以进一步提高其视觉指令跟踪能力。

相关文章:

LLaMA- Adapter V2: Parameter-Efficient Visual Instruction Model

发表时间:28 Apr 2023 论文链接:https://arxiv.org/pdf/2304.15010 作者单位: Shanghai Artificial Intelligence Laboratory Motivation:如何有效地将大型语言模型 (LLM) 转换为指令追随者最近是一个流行的研究方向&#xff0…...

【爬虫实战】利用代理爬取Temu电商数据

引言 在行业竞争激烈、市场变化快速的跨境电商领域,数据采集可以帮助企业深入了解客户需求和行为,分析市场趋势和竞争情况,从而优化产品和服务,提高客户满意度和忠诚度。同时,数据采集可以实时跟踪库存水平和销售情况&…...

【MATLAB源码-第244期】基于MATLAB的BP神经网络语音特征信号分类,输出原信号与预测信号对比图以及预测误差和正确率。

操作环境: MATLAB 2022a 1、算法描述 BP神经网络(Back Propagation Neural Network)是一种广泛应用于模式识别和分类问题的人工神经网络。在本次语音特征信号分类任务中,我们将详细描述如何通过BP神经网络实现对四类语音信号的…...

HarmonyOS 习题(二)

1、在类Web开发范式自定义组件创建后,加入到Page组件树时,会触发以下哪一项回调。 A)Onlnit B)OnAttached C)OnLayoutReady D)OnDetached 答案:B 分析: onlnit:自定义组件初始化生命周期回调&a…...

如何搭建一个圈子社区系统?开源社交陪玩交友圈子论坛帖子系统保姆级搭建教程!

整体部署流程如下: 1.获取源码/前后端分离,前端Uniapp vue2.0 后端thinkphp6(Gitee直达) 2.服务器安装宝塔(已有宝塔请安装环境,Nginx或者Apache/ php 7.3/ mysql 5.6 ) 3.进入宝塔添加网站&…...

Delphi5实现身份证检验(DLL版)

效果图 身份证行政区划分代码 识别归属地需要行政区划分,都在data.txt文档里面了。 最后一位校验码 根据上面的原理编写程序即可。 {这个函数计算最后一位检验码是否正确,ID是18位身份证号字符串,结果返回字符串} function IDcheck(ID:stri…...

linux下的C++程序

1.安装g编译环境(c)、gcc编译环境(c语言) sudo yum install gcc或者gcc-c //安装gcc/g编译(用管理员权限弄) 验证是否安装成功 gcc或者g --version //如果显示版本号,则表示安装成功 sudo yum remove g…...

selfAttention 中的dk到底是什么

在Self-Attention机制中,为什么需要对 Q K T QK^T QKT 的结果进行缩放,除以 d k \sqrt{d_k} dk​ ​。以下是详细解释: 缩放的原因 除以 d k \sqrt{d_k} dk​ ​ 的原因有两个: 防止输入过大:如果不缩放&#xf…...

安装MongoDB UI客户端工具:mongodb-compass-1.40.2-win32-x64.msi

文章目录 1、安装 mongodb-compass-1.40.2-win32-x64.msi2、安装后配置链接地址: 1、安装 mongodb-compass-1.40.2-win32-x64.msi 2、安装后配置链接地址:...

一行命令搞定内网穿透

一行命令搞定内网穿透 一款开源免费的内网穿透工具:localtunnel ,基于 nodejs 实现,无需修改 DNS 和防火墙设置,方便快捷的将内网服务暴露到外网,为开发人员、测试人员以及需要分享本地项目的人提供实时的公网访问方式…...

C语言——扫雷游戏

扫雷游戏通常是一个由方格组成的区域内进行的,其中随机分布着一定数量的地雷 。玩家的目标是通过点击方格来标记出所有地雷的位置,同时避免自己点到地雷而导致游戏失败。游戏开始时,玩家通常只能看到一部分方格,而其余的方格则需要…...

【LLM】-16-评估LLM-与标准答案的差距

目录 1、评估回答是否正确 1.1、util_zh 1.2、eval_zh 1.3、评估 2、评估生成答案与标准答案的差距 2.1、eval_zh2 2.2、评估 即使没有提供的理想答案,只要能制定一个评估标准,就可以使用一个 LLM 来评估另一个 LLM 的输出。 如果可以提供理想答…...

WeNet 2.0:更高效的端到端语音识别工具包

WeNet 2.0:更高效的端到端语音识别工具包 原文链接:[2203.15455] WeNet 2.0: More Productive End-to-End Speech Recognition Toolkit (arxiv.org) 1.摘要 WeNet是一个开源的端到端语音识别工具包,WeNet 2.0在此基础上进行了四项主要更新&#xff0c…...

阿里大模型调用 = 》通义千问大语言模型

背景:简单的通过API或者SDK在线调用阿里云大模型(基于百炼平台),基于在线知识库 参考地址:安装阿里云百炼SDK_大模型服务平台百炼(Model Studio)-阿里云帮助中心 (aliyun.com) 1、获取API-KEY 当您通过API/SDK调用大模…...

idea使用free流程,2024idea免费使用

1.先到官网下载,这里选择win系统的,点击下图的.exe https://www.jetbrains.com/idea/download/?sectionwindows 2.下载好后基本上就是一直点击“下一步”到直到安装好,安装好后先打开软件后关闭退出 3.下载配配套资料 链接: https://pan.ba…...

算法_链表专题---持续更新

文章目录 前言两数相加题目要求题目解析代码如下 两两交换链表中的结点题目要求题目解析代码如下 重排链表题目要求题目解析代码如下 合并K个升序链表题目要求题目解析 K个一组翻转链表题目要求题目解析代码如下 前言 本文将记录leetcode链表算法题解,包含题目有&a…...

在Windows MFC\C++编程中,如何使用OnCopyData函数

在C中,OnCopyData 函数通常不是标准C库的一部分,而是与特定的图形用户界面(GUI)框架相关联,如Microsoft Foundation Classes (MFC) 或 Windows API 编程。在MFC应用程序中,OnCopyData 是用于处理来自其他应…...

【Qt】项目代码

main.cpp文件 argc:命令行参数个数。*argv[ ]:每一个命令行参数的内容。main的形参就是命令行参数。QApplication a(argc, argv) 编写一个Qt的图形化界面程序,一定需要QApplication对象。 widget w; 在创建项目的时候,勾选widg…...

MySQL中常用工具

MySQL自带的系统数据库 常用工具 MySQL mysqladmin mysqlbinlog mysqldump mysqlimport/source mysqlimport只能导入文本文件,不能导入sql文件...

关于儿童编程语言

青少年通常会通过Scratch或Python开始学习编程。在这两种语言中,代码的编写(或者在Scratch中是构建)方式类似于英语,这使得初学者更容易学习。Scratch的一个重要卖点是对视觉和运动感知学习者非常友好。这些代码块按颜色编码&…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...