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

LLM - 理解 多模态大语言模型 (MLLM) 的发展与相关技术 (一)

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

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


多模态大语言模型 (Multimodal Large Language Models, MLLM),例如 GPT-4V,使用 大语言模型 (LLM) 作为内核,执行多模态任务。常见多模态任务,包括看图讲故事、不需要 OCR 的数学推理等,同时,需要注意多模态 幻觉 (Hallucination) 的问题,以及扩展的多模态技术,如 多模态的上下文学习 (In-Context Learning),多模态的思维链 (Chain of Thought),大语言模型辅助的视觉推理 (LLM-Aided Visual Reasoning) 等。MLLM 的核心概念,即网络架构 (Architecture)、训练策略 (Training Strategy)、数据 (Data)、评估 (Evaluation),关注大模型的涌现能力 (Emergent Ability),以及融合大语言模型与大视觉模型 (Large Vision Models, LVM) 的方法。其中,常见的视觉任务包括:

分割任务 (Segmentation),相关技术:

  • SAM: Segment Anything
  • SAM2: SAM 2: Segment Anything in Images and Videos

检测任务 (Detection),相关技术:

  • DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection,2022-6-11,香港科技大学

  • Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection

    • DINO: DETR with Improved deNoising anchOr boxes
    • DETR: DEtection TRansformer
  • DINOv2: Learning Robust Visual Features without Supervision

目前 CV 任务主要分为 2 类,即判别式 (Discriminative) 和 生成式 (Generative),判别式参考 CLIP 相关模型,生成式参考 OFA 相关模型。

  • CLIP: Learning Transferable Visual Models From Natural Language Supervision
  • OFA: Unifying Architectures, Tasks, and Modalities Through a Simple Sequence-to-Sequence Learning Framework, ICML-2022

同样的,MLLM 也属于生成式的模型,但是,与传统的模型相比,表现出 2 个代表性特征,即:

  1. MLLM 基于具有 十亿规模 (Billion-Scale) 参数的 LLM,这在以前的模型中没有使用,可以更好的执行推理任务。
  2. MLLM 使用新的训练范式来释放其全部潜力,例如使用 多模态指令微调 (Multimodal Instruction Tuning),以鼓励模型遵循新的指令。

其中,多模态指令微调 (Multimodal Instruction Tuning) 的相关技术,如下:

  • LLM 指令微调,参考 FLAN: Finetuned Language Models Are Zero-Shot Learners - ICLR-2022 Google Research
  • 多模态的 LLM 指令微调,参考 LLaVA (Large Language and Vision Assistant) : Visual Instruction Tuning - NeurIPS-2023 Microsoft Research

MLLM 的一些研究方向,包括:

  1. 更好的 颗粒度(Granularity) 支持,开发对于用户提示的更精细控制,通过方框或点击,支持特定区域或对象。
  2. 增强对输入和输出模态的支持,如图像、视频、音频和点云。除了多模态的输入,例如 NExT-GPT 项目,进一步支持多模态的输出。
  3. 改进语言支持,努力将 MLLMs 的成功延伸到其他语言,例如中文,尽管训练语料相对有限。
  4. 扩展到更多领域和使用场景,将 MLLMs 的强大能力转移到其他领域,如医学图像理解和文档解析。

医学领域的相关进展:

  • Llava-med: Training a large language-and-vision assistant for biomedicine in one day, 2023.6.1
  • Med-flamingo: a multi-modal medical few-shot learner, 2023.6.27
  • Pmc-vqa: Visual instruction tuning for medical visual question answering, 2023.5.29

MLLM 发展的时间线 (至 2024 年):

MLLM

SAM 系列 1~2

Paper:

  • SAM: Segment Anything
  • SAM2: SAM 2: Segment Anything in Images and Videos

SAM 模型 (Model) 包括 3 个部分:

  1. 任务:具有提示的分割任务
  2. 模型:分割模型:支持数据标注,以及,通过提示词工程 Zero-Shot 迁移至一系列任务。
  3. 数据:数据引擎 (SA-1B):收集超过10 亿个 Mask。

参考:

SAM

SAM 架构 (Architecture): 重量级 (Heavy Weight) 的图像编码器,输出图像嵌入编码,通过多种输入提示词,进行高效查询,以实时速度生成目标 Mask。多于一个目标的模糊提示,SAM 可以输出多个有效 Mask 及其关联的置信度分数。参考:

SAM

轻量级的掩码解码器 (Lightweight Mask Decoder):

  1. 通过 2 层解码器,通过交叉注意力,更新图像嵌入和提示 Token。
  2. 图像嵌入被放大,更新后的输出 Token,用于动态预测 Mask。
  3. 为保持图示清晰:在每个注意力层中,位置编码被添加到图像嵌入中,整个初始提示 Token (包括位置编码) 重新添加到 Token 的 Query 和 Key中。

LMD

SAM2 模型:

  1. 任务:具有提示的视觉分割任务。
  2. 模型:SAM2 通过已存储先前提示和预测结果的 流式记忆(Streaming Memory),交互式地在一个或多个视频帧上,通过提示,如点击、Box 或Mask,分割区域。
  3. 数据集:大规模 SA-V 数据集 (50.9K Videos)。

如图:

SAM2

SAM2 架构:对于给定帧,分割预测依赖于当前提示或先前观察的记忆。视频以流式方式处理,图像编码器一次处理一帧,与之前帧中目标对象的记忆,进行 交叉注意(Cross-Attended)。Mask 解码器,可选的也接受输入提示词,预测该帧的分割 Mask。最后,记忆编码器,转换预测和图像编码器的嵌入,用于在未来帧中使用。如图:

SAM2

记忆 Attention (Memory Attention:除了正弦绝对位置嵌入外,在自注意力和交叉注意力层中,使用二维空间旋转位置嵌入 (RoPE)。目标指针 Token 不使用 RoPE,因为没有特定的空间对应关系。默认情况下,记忆注意力使用 L = 4 层。

Mask 解码器架构:设计与 SAM 相似,并且在上采样过程中,额外包括来自图像编码器的 stride 4 和 8 的特征 (引入多尺度特征)。同时,使用与输出 Mask 相应的 Mask Token,作为对象指针,并且生成遮挡评分,以指示感兴趣的目标,在当前帧中是否可见。

MD

DINO 系列

Paper:

  • DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection,2022-6-11,香港科技大学

  • Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection

    • DINO: DETR with Improved deNoising anchOr boxes
    • DETR: DEtection TRansformer
  • DINOv2: Learning Robust Visual Features without Supervision

Grounding DINO (定位 DINO): 开放集检测 (Open-Set Detection) 的关键,在于引入语言信息以实现对未见物体的泛化。大多数现有的开放集检测器,都是通过将封闭集检测器,扩展到带有语言信息的开放集场景来开发的。特征融合可能发生在以下三个阶段中:Neck (Phase A)、Query Initialization (Phase B) 和 Head (Phase C)。举例来说,GLIP 选择了Phase A,而 OV-SETR 选择在 Phase B 进行模型融合。封闭集检测器通常有三个重要模块:

  1. 用于特征提取的主干网络 (Backbone)
  2. 用于特征增强的颈部 (Neck) 网络
  3. 用于区域细化或框预测的头部 (Head) 网络。

封闭集检测器可以通过学习语言感知的区域嵌入,泛化检测新物体,使得每个区域,都可以在语言感知的语义空间中被分类到新的类别中。实现这一目标的关键是,在颈部或头部输出中,计算 区域输出(Region Outputs) 与 语言特征(Language Features) 之间的对比损失。

DINO

Grounding DINO 架构,不同的特征融合方式,分别应用在 3 个阶段:

  • Phasa A:设计结合 Self-Attention、Text-to-Image Cross-Attention、Image-to-Text Attention 的特征 Enhancer 应用在 Neck 中。
  • Phasa B:设计 Language-Guided Query Selection 用于初始化 Head 的 Query。
  • Phasa C:设计跨模态的 Decoder 用于 Head 部分,从而增强 Query 特征表达。

即:

DINO

OFA (早期的视觉多模态)

Paper: OFA: Unifying Architectures, Tasks, and Modalities Through a Simple Sequence-to-Sequence Learning Framework, ICML-2022

OFA,One For All,融合视觉文本任务、视觉任务、语言任务的预训练任务,包括视觉定位 (Visual Grounding)、定位描述 (Grounded Captioning)、图文匹配 (Image-Text Matching)、图像描述 (Image Captioning)、视觉问答 (VQA)、目标检测 (Object Detection)、图像填充 (Image Infilling) 以及文本填充 (Text Infilling),即:

OFA

指令微调 (Instruction Tuning)

Paper:

  • LLM 指令微调,参考 FLAN: Finetuned Language Models Are Zero-Shot Learners - ICLR-2022 Google Research
  • 多模态的 LLM 指令微调,参考 LLaVA (Large Language and Vision Assistant) : Visual Instruction Tuning - NeurIPS-2023 Microsoft Research

FLAN 示例:

FLAN

FLAN 与其他模式的对比:

FLAN

视觉指令微调 LLaVA 网络架构:

LLaVA

参考:

  • 知乎 - 十分钟解读Grounding DINO-根据文字提示检测任意目标
  • GitHub - Awesome-Multimodal-Large-Language-Models

http://www.kler.cn/a/298124.html

相关文章:

  • 如何用Stable diffusion三步搞定场景定制化?这些经验你一定要知道!AI绘图SD商业化实战教程!
  • 基于Neo4j知识图谱的构建及可视化
  • 企业架构对现代企业的价值:改进流程、提高效率和更好的决策
  • FALCON:打破界限,粗粒度标签的无监督细粒度类别推断,已开源| ICML‘24
  • 【较真儿】事务特性及场景演化:
  • DynamiCrafter模型构建教程
  • weititer0000
  • Spring boot 项目作为客户端调用 服务端websocket
  • 传输大咖41 | 如何解决汽车行业大文件传输难题?
  • Qt/C++ Mysql数据库用户登录分配软件(源码分享)
  • 关于.NET在中国为什么工资低的分析
  • 【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)
  • 网络编程day02(字节序、TCP编程)
  • 汽车电子行业知识:关于域控制器
  • 目标检测的损失函数
  • vscode docker debug python
  • Vue如何将网页转换成图片或PDF并上传
  • 腾讯云 Spring Boot 安装 SSL 证书
  • 前端练习小项目 —— 养一只电子蜘蛛
  • Spark数据介绍