[论文阅读笔记] A Survey on Multimodal Large Language Models

Abstract

使用LLM辅助的multimodal工作的架构特点以及运用。

Architecture

  1. Modality Encoder:

使用pre-aligned encoder将其他模态和LLM tokens对齐。

大分辨率图像尺寸图像训练出的encoder可以达到更好的效果
→\rightarrow→ 如何保证大分辨率输入?
→\rightarrow→ 1 direct scaling:将image变为新encoder对应的高分辨率后输入;2 patch division:将高分辨率图像切分成多个不同块,将各个块和压缩后低分辨率的整张图用于低分辨率的encoder上

对于encoder而言,参数量和训练数据并没有分辨率那么重要

  1. Pretrained LLM

增大LLM的参数量会带来一定程度的收益

  1. Modality Connector

LLM只接受语言类token
→\rightarrow→ 将其他模态和语言对齐
→\rightarrow→ 1 加入可学习的connector在Modality Encoder和LLM之间。

  • token-level在进入LLM前操作:将encoder输出的特征使用connector转译成tokens然后直接和text tokens拼接输入给LLM。
  • feature-level在LLM内操作:在LLM内部添加新的模块,让不同模态之间深度fusion。
    connector的参数量一般和整个
    →\rightarrow→ 2 使用expert model将其他模态转换成语言后直接交给LLM。将其他模态的输入直接转化为语言描述形式,然后输入给LLM。

Training Strategy

  1. Pretrain

需要大量的多模态数据对,旨在对齐不同模态并学习知识。

常见的pretrain方法:将encoder和LLM参数冻结,训练modality connector。
→\rightarrow→ 在不丢失pretrain知识的情况下,进行模态间的对齐。

对于short/noisy的数据,pretrain会使用低分辨率来加快训练过程;对于long/clean的数据,pretrain会使用高分辨率来减少幻觉(分辨率低 →\rightarrow→ 模态对应token数少 →\rightarrow→ 遐想空间大 →\rightarrow→ 发生幻想)。高质量数据pretrain时,解冻encoder参数可能会带来更好的对齐效果。
→\rightarrow→ 根据数据集的质量,来手动选择输入数据和encoder所对应的分辨率。高分辨率输入时,分割出的patch数目多因为分割窗口大小不变,encoder输出的token数越多。
注意:每个patch使用的encoder参数是共享的,所以不会增大参数量。LLM每个token计算时使用的参数也共享,所以也不会增大参数量。

  1. Instruction Tuning (在LLM后加下游)

Supervised Finetune:需要成对的下游任务数据集;

Prompting:通过few-shot提高模型在某一特定任务上的能力;

Instruction Tuning:用一堆不同的任务去微调模型,让模型学会如何理解没有见过的任务,并在所有下游任务上都具备良好性能。有点像agent

每条训练数据分为三大块:1 描述任务的instruction(optional);2 input;3 output

训练目标类似LLM的auto-regression,和ground truth output靠近。

训练数据集收集方法:

  1. data adaption:将已有高质量数据集拼凑在一起。Instruction由人工书写或GPT生成。

  2. self-instruction:仅仅拼凑数据集无法模拟现实生活中人们多轮对话的需求。使用一些数据集给GPT,生成模拟的上下文数据。

  3. Alignment Tuning

将模型和人类的喜好对齐。RLHF / DPO不再需要训练额外的reward model。

数据集:收集人类对于模型回复的feedback

Evaluation

  1. closed-set
    问题的答案可以被预测,并且局限在有限的空间内。
  2. open-set
    问题的答案非常灵活,细分为:manual score,GPT score和case study。case study是比较两个模型的回答之间的区别,来看是否有一个模型性能更佳。

HALLUCINATION

  1. pre-correction:数据集中加入幻觉数据,让模型在学习的过程中减少幻觉情况。
  2. in-process-correction:找出模型幻觉根源,修改模型架构
  3. post-correction:在output生成后修正存在的幻觉。
相关推荐
qq_2842740510 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
qq_2842740511 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Dawson Zhu11 小时前
《Agentic Design Patterns》第 9 章导读:学习与适应(Learning and Adaptation)
人工智能·语言模型·架构·aigc·agi
Titan202412 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
深圳老胡13 小时前
STM32CubeMX 生成 CMake 工程,用 VSCode 编译与调试的完整流程
笔记·stm32·单片机·代码规范
坤坤子吖13 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
乐橙开放平台14 小时前
智慧连锁客流检测和离岗检测怎么对接
大数据·人工智能·笔记·物联网·自动化·音视频·智能家居
零基础12314 小时前
FinalShell 使用教程:从安装到高效运维
运维·经验分享·笔记·finalshell
ACP广源盛1392462567314 小时前
Type‑C 扩展坞方案选型笔记|国产 DP1.4 转 HDMI2.0 桥接芯片 GSV2201S @ACP评估
c语言·开发语言·笔记·硬件架构·硬件工程·国产芯片
敲个大西瓜15 小时前
langchain笔记(一)
redis·笔记·langchain