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

欢迎关注我的CSDN:https://spike.blog.csdn.net/

本文地址:https://spike.blog.csdn.net/article/details/142237871

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


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

指令微调 (Instruction-Tuning)

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

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

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

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

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

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

格式如下:

bash 复制代码
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=1∑Nlog p(Ri∣I,R<i;θ)

第一阶段预训练数据与第二阶段的指令微调的 Loss 公式是相同的。

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

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

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

bash 复制代码
<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分别表示多轮和单轮

相关数据集如下:

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

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

  • 提示多样性(Prompt Diversity),已经发现指令的多样性,对于模型性能至关重要,多样化的提示有助于提高模型性能和泛化能力。
  • 任务覆盖范围(Task Coverage) ,在训练数据涉及的任务方面,发现 视觉推理(Vision Reasoning) 任务,在提升模型性能方面优于描述和问答任务,增强指令的复杂性,可能比增加任务多样性和增加细粒度的空间注释更有效。
相关推荐
feilieren3 分钟前
AI 视频:初识 Pika 2.0,基本使用攻略
人工智能·ai视频
开放知识图谱1 小时前
论文浅尝 | HippoRAG:神经生物学启发的大语言模型的长期记忆(Neurips2024)
人工智能·语言模型·自然语言处理
威化饼的一隅1 小时前
【多模态】swift-3框架使用
人工智能·深度学习·大模型·swift·多模态
人类群星闪耀时1 小时前
大模型技术优化负载均衡:AI驱动的智能化运维
运维·人工智能·负载均衡
编码小哥1 小时前
通过opencv加载、保存视频
人工智能·opencv
发呆小天才O.oᯅ1 小时前
YOLOv8目标检测——详细记录使用OpenCV的DNN模块进行推理部署C++实现
c++·图像处理·人工智能·opencv·yolo·目标检测·dnn
lovelin+v175030409662 小时前
智能电商:API接口如何驱动自动化与智能化转型
大数据·人工智能·爬虫·python
rpa_top2 小时前
RPA 助力电商:自动化商品信息上传,节省人力资源 —— 以影刀 RPA 为例【rpa.top】
大数据·前端·人工智能·自动化·rpa
视觉语言导航2 小时前
arXiv-2024 | STMR:语义拓扑度量表示引导的大模型推理无人机视觉语言导航
人工智能·具身智能
咯咯咯伦3 小时前
AI神了,一键视频下载+翻译+配音+字幕!(整合包)
人工智能