LLM - 理解 多模态大语言模型 (MLLM) 的指令微调与相关技术 (四)

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/142063880

免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。


完备(Full-Fledged) 的 多模态大语言模型(MLLM) 经历 3 个阶段的训练,即 预训练(Pre-training)、指令微调(Instruction-Tuning) 和 对齐调优(Alignment Tuning)。每个训练阶段都需要不同类型的数据,并且实现不同的目标。本篇介绍,指令微调(Instruction-Tuning) 部分。

指令微调 (Instruction-Tuning)

预训练(Pre-Training) 是 对齐不同模态和学习多模态的世界知识。指令(Instruction) 就是对于任务的描述,指令微调,教会模型更好地,理解用户的指令,并且完成所需的任务。通过这种方式调优,大语言模型(LLM) 可以通过跟随新的指令,泛化到未见过的任务,从而提高 零样本(Zero-Shot) 性能。

指令微调类似于多任务提示工程,包括:指令样本格式训练目标构建指令数据的方法常用数据集

预训练微调(有监督微调)、提示词工程、指令微调的差别,如图:

Instruction Tuning

指令样本格式简化的模板,构建多模态 指令(Instruction) 数据。

  • <instruction> 是任务的文本描述。
  • {<image>, <text>}<output> 是数据样本的输入和输出。

请注意,输入中的<text>在某些数据集中可能缺失,例如,仅包含<image>的图片描述数据集。

格式如下:

Instruction: <instruction> 
Input: {<image>, <text>} 
Response: <output>

指令模板可以推广到多轮对话的方式。

训练目标的 Loss 函数, R i R_{i} Ri 是 回答(Response), I I I 是 指令(Instruction), θ \theta θ 是参数,即:
L ( θ ) = − ∑ i = 1 N l o g p ( R i ∣ I , R < i ; θ ) L(\theta)=-\sum_{i=1}^{N}log\ p(R_{i}|I,R_{<i};\theta) L(θ)=i=1Nlog p(RiI,R<i;θ)
第一阶段预训练数据与第二阶段的指令微调的 Loss 公式是相同的。

指令数据的格式非常灵活,任务描述也是多样化,因此收集数据样本,通常更加困难且成本更高,其中 3 种典型的大规模收集指令数据的方法,即数据调整(Data Adaptation)自指令(Self-Instruction)数据混合(Data Mixture)

数据调整 (Data Adaptation):将已有的 VQA 数据集中,图像保持不变,Query 通过 GPT 扩写,作为新的 <instruction> ,Answer 也通过 GPT 扩写,作为新的 <output>,扩写保存内容正确不变,更符合人类的语言习惯。

参考视觉问答(VQA)数据集的指令模板,<Image>{Question}分别是原始 VQA 数据集中的图片和问题,即:

<Image> {Question}
<Image> Question: {Question}
<Image> {Question} A short answer to the question is
<Image> Q: {Question} A:
<Image> Question: {Question} Short answer:
<Image> Given the image, answer the following question with no more than three words. {Question}
<Image> Based on the image, respond to this question with a short answer: {Question}. Answer:
<Image> Use the provided image to answer the question: {Question} Provide your answer as short as possible:
<Image> What is the answer to the following question? "{Question}"
<Image> The question "{Question}" can be answered using the image. A short answer is

自指令(Self-Instruction):解决 多轮(Multiple Rounds) 对话场景,使用 大语言模型(LLM),通过少量手工标注的样本,生成文本 指令遵循(Instruction-Following) 数据。具体来说,少量指令遵循的样本被手工制作成 示例(Demonstrations),之后 ChatGPT 被提示使用这些示例,作为指导,来生成更多的指令样本。LLaVA 扩展至多模态领域,通过将图像转换成描述文本和边界框,并且,提示 GPT-4 使用要求和示例,指导和生成新的数据。通过这种方式,构建多模态指令数据集,称为 LLaVA-Instruct-150k。

通过 自指令(Self-Instruction) 生成的数据集:

  • 输入/输出模态: I I I:图像, T T T:文本, V V V:视频, A A A:音频
  • 数据组成:M-TS-T分别表示多轮和单轮

相关数据集如下:

Dataset

数据混合(Data Mixture):不是很常用的方式。除了多模态指令数据之外,仅语言的 用户-助手(User-Assistant) 对话数据,也可以用来提高对话能力和指令遵循能力。LaVIN 通过从仅语言和多模态数据中,随机抽样直接构建一个小批量。MultiInstruct 探索了不同的训练策略,这些策略涉及单一模态和多模态数据的融合,包括 混合指令调整(结合这两种类型的数据并随机打乱) 和 顺序指令调整(先文本数据,然后是多模态数据)。

指令微调样本的数据质量与数量同等重要。预先在 大规模且嘈杂 的图文对上训练的模型,表现并不如在 较小且干净 的数据集上预训练的模型。较少且质量更高的指令微调数据,可以实现更好的性能。对于数据过滤,构建评估数据质量的指标,以及自动过滤劣质视觉-语言数据的方法。数据质量的 2 个标准:

  • 提示多样性(Prompt Diversity),已经发现指令的多样性,对于模型性能至关重要,多样化的提示有助于提高模型性能和泛化能力。
  • 任务覆盖范围(Task Coverage),在训练数据涉及的任务方面,发现 视觉推理(Vision Reasoning) 任务,在提升模型性能方面优于描述和问答任务,增强指令的复杂性,可能比增加任务多样性和增加细粒度的空间注释更有效。

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

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

相关文章

如何看待IBM中国研发部裁员

如何看待IBM中国研发部裁员&#xff1f; 近日&#xff0c;IBM中国宣布撤出在华两大研发中心&#xff0c;引发了IT行业对于跨国公司在华研发战略的广泛讨论。这一决定不仅影响了众多IT从业者的职业发展&#xff0c;也让人思考全球化背景下中国IT产业的竞争力和未来发展方向。面对…

文件格式转换:EXCEL和CSV文件格式互相转换

目录 1.EXCEl和CSV文件格式互相转换1.1首先安装所需的Python包1.2excel转换为csv代码如下&#xff1a;1.3csv转换为excel代码如下&#xff1a; 由于excel文件在数学建模数据处理当中的局限性&#xff0c;我们通常把excel文件转换为csv文件来处理&#xff0c;下面是相关的代码&a…

P1439 【模板】最长公共子序列 (线性DP,LCS + LIS)

【模板】最长公共子序列 题目描述 给出 1 , 2 , … , n 1,2,\ldots,n 1,2,…,n 的两个排列 P 1 P_1 P1​ 和 P 2 P_2 P2​ &#xff0c;求它们的最长公共子序列。 输入格式 第一行是一个数 n n n。 接下来两行&#xff0c;每行为 n n n 个数&#xff0c;为自然数 1 …

Java算法总结

文章目录 一、链表相关1.1 从尾到头打印单链表[要求 方式1&#xff1a;反向遍历。方式2&#xff1a;Stack栈]1.2 josephu问题&#xff08;使用带尾指针的循环链表&#xff09; 二、动态规划2.1 斐波那契数列 2022.4.182.2 青蛙上台阶 2022.4.18 三、位运算符3.1 二进制中1的个数…

统信服务器操作系统【d版字符系统升级到dde图形化】配置方法

统信服务器操作系统d版本上由字符系统升级到 dde 桌面系统的过程 文章目录 一、准备环境二、功能描述安装步骤1. lightdm 安装2. dde 安装 一、准备环境 适用版本&#xff1a;■UOS服务器操作系统d版 适用架构&#xff1a;■ARM64、AMD64、MIPS64 网络&#xff1a;连接互联网…

几种修改docker默认存储位置的方法

需求 docker容器存放目录磁盘空间满了&#xff0c;需要转移数据&#xff0c;修改Docker默认存储位置 解决方法 方法&#xff11;&#xff1a;迁移到新目录 停止docker服务。 1systemctl stop docker; //每个liunx版本的命令不一样。创建新的docker目录&#xff0c;执行命令df…

为了有了ReentrantLock还需要ReentrantReadWriteLock?

ReentrantLock 和 ReentrantReadWriteLock 是 Java 中的两种不同实现的锁&#xff0c;它们各自适用于不同的应用场景。以下是为什么需要 ReentrantReadWriteLock 的几个原因&#xff1a; 1. 读写分离 ReentrantLock 是一种独占锁&#xff0c;适用于任何线程操作共享资源的场景…

kettle 数据库迁移 使用分页原理实现 数据库mysql

使用 kettle 9.0 先修改配置文件: C:\Users\xx\.kettle 新增如下配置,解决mysql 空字符串 自动转 null bug KETTLE_EMPTY_STRING_DIFFERS_FROM_NULLY git地址: GitHub - 2292011451/kettle_tool 第一步: 先把要迁移的表进行读取,循环查询每个表的最大数量以及页数,追加到…

linux文件系统权限详解

注:目录的执行权限代表是否可以进入。 一、文件权限控制对文件的访问: 可以针对文件所属用户、所属组和其他用户可以设置不同的权限 权限具有优先级。user权限覆盖group权限,后者覆盖other权限。 有三种权限类别:读取、写入和执行 读权限:对文件:可读取文件…

VS Code 配置 C/C++ 编程运行环境(保姆级教程)

文章目录 一、软件下载1. 下载 VS Code 安装工具 2. 下载 MinGW-W64二、安装 VS Code三、安装 MinGW-W64 及配置环境变量四、配置 VS Code 的 C/C 编程运行环境1. 汉化 VS Code&#xff08;选做&#xff09;2. 安装 C/C 扩展包 五、测试 VS Code 的 C/C 编程环境1. 创建代码文件…

ARM/Linux嵌入式面经(三三):大疆

嵌入式工程师考察主要蕴含:C/C++,处理器的架构,操作系统(linux或嵌入式实时操作系统),常见硬件接口协议/总线,文件存储系统等几方面 文章目录 1)C/C++static作用,变量加入static以后在内存中存储位置的变化。static的作用变量加入static后在内存中存储位置的变化面试官…

hku-mars雷达相机时间同步方案-软件驱动(MID360与海康MV-CB060-10UMUC-S)

hku-mars雷达相机时间同步方案-软件驱动 hku的方案在硬件和软件方面都做了工作&#xff0c;所以才会实现相机帧和雷达帧的完全对齐。硬件方面的设置请参考上一期。 港大的同步结果&#xff1a; hku-mars雷达相机时间同步方案-硬件&#xff08;MID360与海康MV-CB060-10UMUC-S&…

详解QT元对象系统用法

文章目录 元枚举 QMetaEnum元方法 QMetaMethod元对象构建 QMetaObjectBuilder元属性 QMetaProperty定义元对象属性获取属性信息与信号和槽结合QML属性访问动态属性元类型 QMetaTypeQt的元对象系统是Qt框架中的一个核心特性,它为Qt应用程序提供了一种动态类型信息机制。这种机制…

窗口嵌入桌面背景层(vb.net,高考倒计时特供版)

开发思路 根据系统生成高考倒计时的具体时间&#xff0c;附加江苏省省统考的时间生成算法&#xff0c;并且用户可以根据实际情况调整前后30天&#xff0c;具有丰富多彩的图片库和强大的自定义功能&#xff0c;效果图见P3 目前程序处于正式版的1.4版本&#xff0c;本程序由本作…

解决 webpack 配置 sass-loader后报错,无法正常build

1. 问题描述 总是打包build报错&#xff0c;本质上css样式语法也没写错在使用 sass-resources-loader 的项目中&#xff0c;开发者常常遇到构建错误或意外的样式行为&#xff0c;这是因为 sass-resources-loader 的作用和使用场景并不总是被正确理解。sass-resources-loader 主…

【HarmonyOS】鸿蒙头像上传-(编辑个人信息页- 头像上传)+实时数据更新

#效果图 #思路 ##步骤&#xff1a; ###一、利用picker api选择1张图片 实例化选择器参数(使用new PhotoSelectOptions())实例化图片选择器 (使用newPhotoViewPicker() )调用图片选择器的select方法传入选择器参数完成图片选取获得结果 利用picker api选择1张图片 async sele…

[Redis] Redis中的Hash类型和List类型

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

智能体趋势:未来科技的核心驱动力

随着人工智能&#xff08;AI&#xff09;技术的不断发展&#xff0c;**智能体&#xff08;intelligent agents&#xff09;**逐渐成为当今科技发展的重要趋势。这些智能体不仅仅是软件&#xff0c;它们正在改变我们生活和工作的方式&#xff0c;成为推动科技和社会变革的核心力…

eureka.client.service-url.defaultZone的坑

错误的配置 eureka: client: service-url: default-zone: http://192.168.100.10:8080/eureka正确的配置 eureka: client: service-url: defaultZone: http://192.168.100.10:8080/eureka根据错误日志堆栈打断电调试 出现两个key&#xff0c;也就是defaultZone不支持snake-c…

Go语言现代web开发defer 延迟执行

The defer statement will delay the execution of a function until the surrounding function is completed. Although execution is postponed, funciton arguments will be evaluated immediately. defer语句将延迟函数的执行&#xff0c;直到周围的函数完成。虽然执行被延…