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

news2025/1/12 0:50:34

欢迎关注我的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.coloradmin.cn/o/2133788.html

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

相关文章

第 12 篇 Helm 部署 Redis

文章目录 Redis Chart部署 Redis 单机版部署 Redis 哨兵版第 1 步&#xff1a;准备 values.yaml 配置文件第 2 步&#xff1a;安装 bitnami/redis第 3 步&#xff1a;解决 Pod Pending 问题查看 Pod 状态添加 PV 持久化卷创建 pv1创建 pv2创建 pv3 查看 Pod 状态 第 4 步&#…

java实际开发——数据库存储金额时用什么数据类型?(MySQL、PostgreSQL)

目录 java开发时金额用的数据类型——BigDecimal MySQL存储金额数据时用的数据类型是——decimal PostgreSQL存储金额数据时用的数据类型是——decimal 或 money java开发时金额用的数据类型——BigDecimal https://blog.csdn.net/Jilit_jilit/article/details/142180903?…

传统Malmquist-Luenberger指数与全局Malmquist-Luenberger指数的区别

1.全局技术前沿的构建 1.1传统ML指数 技术前沿的时间依赖性 传统的Malmquist-Luenberger&#xff08;ML&#xff09;指数在每个时期&#xff08;例如年份&#xff09;单独构建各自的技术前沿。这意味着每个时期的生产可能性集合和技术效率都是基于该时期的数据。 不可比性问…

【包教包会】CocosCreator3.xSprite和Label渐变色(支持3.x、支持原生、可合批)

完美适配Web、原生平台&#xff08;其余平台没测过&#xff09;。 下载地址&#xff1a;水煮肉片饭/Palette3.x 如何导入自己项目&#xff1a; 1、将Demo中Palette.ts复制到自己项目assets目录下 2、新建一个Sprite或Label节点&#xff0c;将Palette组件挂上去 3、设置顶点…

openstack之glance介绍

概念 glance为nova提供镜像服务&#xff0c;用于启动实例&#xff0c;预建镜像已安装cloud-init&#xff0c;可以访问openstack基金会获取操作系统镜像&#xff1a;官方镜像 格式 raw&#xff1a;无格式的镜像&#xff1b; vhd&#xff1a;hyper-v使用的格式&#xff1b; vm…

arcgisPro地理配准

1、添加图像 2、在【影像】选项卡中&#xff0c;点击【地理配准】 3、 点击添加控制点 4、选择影像左上角格点&#xff0c;然后右击填入目标点的投影坐标 5、依次输入四个格角点的坐标 6、点击【变换】按钮&#xff0c;选择【一阶多项式&#xff08;仿射&#xff09;】变换 7…

数据结构(7.3_1)——二叉排序树

二叉排序树&#xff0c;又称二叉查找树(BST,Binary Search Tree) 一棵二叉树或者是空二叉树&#xff0c;或者是具有如下性质的二叉树&#xff1a; 左子树上所有结点的关键字均小于根结点的关键字&#xff1b;右子树上所有结点的关键字均大于根结点的关键字&#xff1b;左子树…

系统优化工具 | PC Cleaner v9.7.0.3 绿色版

PC Cleaner是一款功能强大的电脑清理和优化工具&#xff0c;旨在通过清理系统垃圾文件、解除恶意软件和优化系统性能来提高计算机的运行效率。该软件提供了多种功能&#xff0c;可以帮助用户维护和提升计算机的整体表现。 PC Cleaner 支持 Windows 7 及以上操作系统&#xff0…

餐饮+KTV点歌一体化思路-—SAAS本地化及未来之窗行业应用跨平台架构

一、餐饮KTV点歌一体化 1. 多元化体验&#xff1a;为顾客提供了餐饮和娱乐的双重享受&#xff0c;满足了不同需求&#xff0c;增加了顾客的停留时间和消费可能性。 2. 增加消费机会&#xff1a;顾客在享受美食的同时可以唱歌娱乐&#xff0c;可能会增加酒水、小吃等额外消费。…

【我的 PWN 学习手札】Unlink Attack

目录 前言 一、Unlink介绍 二、保护和限制 &#xff08;1&#xff09;FD->bk P AND BK->fd P &#xff08;2&#xff09;chunksize(P) prev_size(next_chunk(P)) &#xff08;3&#xff09;largebin chunk 三、适用场景 四、利用与绕过 &#xff08;1&#…

Day 11-12:查找

目录 概念 方法 折半查找 前提 算法思路 分块查找 算法思路 哈希表 概念 构造哈希函数的方法 保留除数法 处理冲突的方法 开放地址法&#xff08;二次探查法&#xff09; 链地址法&#xff08;重要&#xff09; 哈希表的实现 结构体的创建 哈希表的创建 哈希…

Agent实战——使用 Dify 和 Moonshot API 构建 AI 工作流

引言 在当今的大模型应用浪潮中&#xff0c;AI Agent的开发和集成已经成为技术革新的重要方向。随着大模型的不断进步&#xff0c;如何利用这些强大的模型来简化复杂的任务&#xff0c;并将其集成到企业的生产环境中&#xff0c;成为开发者和企业共同关注的焦点。在2024年稀土…

linux-L3_linux 查看进程(node-red)

linux 查看进程 以查看进程node-red为例 ps aux | grep node-red

自制游戏手柄--Android画面的input输入控制

在使用传感器获取到运动数据后&#xff0c;怎样转换为input事件传给手机呢&#xff0c;这里以Android为例&#xff0c; 我们可以考虑以下方式&#xff1a; 1. 物理方式&#xff0c;使用舵机连接触碰笔去实现&#xff0c; 2. 构造MotionEvent事件&#xff0c;注入input&#…

Python之 条件与循环(Python‘s Conditions and loops)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

linux环境下手动安装mysql

没想到兜兜转转这么些年&#xff0c;今天申请个云服务器用来搭建求生2服务器&#xff0c;先用mysql来测试&#xff0c;结果还是花了相当久的时间。 基本所有单节点部署应用到linux环境&#xff0c;都三个流程&#xff1a; 1 下载安装包 2 解压修改配置文件 3 运行启动脚本 我们…

Idea 中的一些配置

配置 javap jdk 自带的 javap 可以用来查看字节码信息。 配置过程&#xff1a; 打开设置&#xff0c;定位到 Tools&#xff0c;External Tools新建项&#xff0c;Program 中填 javap 的路径Argument 中填 -c $FileClass$Working directory 中填 $OutputPath$ Argument 中也…

【有啥问啥】复习变分下界即证据下界(Evidence Lower Bound, ELBO):原理与应用

复习变分下界即证据下界&#xff08;Evidence Lower Bound, ELBO&#xff09;&#xff1a;原理与应用 变分下界&#xff08;Variational Lower Bound&#xff09;&#xff0c;也称为“证据下界”&#xff08;Evidence Lower Bound, ELBO&#xff09;&#xff0c;是概率模型中的…

Golang | Leetcode Golang题解之第403题青蛙过河

题目&#xff1a; 题解&#xff1a; func canCross(stones []int) bool {n : len(stones)dp : make([][]bool, n)for i : range dp {dp[i] make([]bool, n)}dp[0][0] truefor i : 1; i < n; i {if stones[i]-stones[i-1] > i {return false}}for i : 1; i < n; i {…

产品探秘|开物——面向AI原生和云原生网络研究的首选科研平台

在当今高速发展的信息技术领域&#xff0c;特别是对于那些致力于前沿科技探索与实践的高校而言&#xff0c;拥有一款能够支持复杂网络业务研究与开发的平台至关重要。开物™数据网络开发平台&#xff08;Data Network Development Platform&#xff0c;简称DNDP&#xff09;&am…