欢迎关注我的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 个代表性特征,即:
- MLLM 基于具有 十亿规模 (Billion-Scale) 参数的 LLM,这在以前的模型中没有使用,可以更好的执行推理任务。
- 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 的一些研究方向,包括:
- 更好的 颗粒度(Granularity) 支持,开发对于用户提示的更精细控制,通过方框或点击,支持特定区域或对象。
- 增强对输入和输出模态的支持,如图像、视频、音频和点云。除了多模态的输入,例如 NExT-GPT 项目,进一步支持多模态的输出。
- 改进语言支持,努力将 MLLMs 的成功延伸到其他语言,例如中文,尽管训练语料相对有限。
- 扩展到更多领域和使用场景,将 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 年):
SAM 系列 1~2
Paper:
- SAM: Segment Anything
- SAM2: SAM 2: Segment Anything in Images and Videos
SAM 模型 (Model) 包括 3 个部分:
- 任务:具有提示的分割任务
- 模型:分割模型:支持数据标注,以及,通过提示词工程 Zero-Shot 迁移至一系列任务。
- 数据:数据引擎 (SA-1B):收集超过10 亿个 Mask。
参考:
SAM 架构 (Architecture): 重量级 (Heavy Weight) 的图像编码器,输出图像嵌入编码,通过多种输入提示词,进行高效查询,以实时速度生成目标 Mask。多于一个目标的模糊提示,SAM 可以输出多个有效 Mask 及其关联的置信度分数。参考:
轻量级的掩码解码器 (Lightweight Mask Decoder):
- 通过 2 层解码器,通过交叉注意力,更新图像嵌入和提示 Token。
- 图像嵌入被放大,更新后的输出 Token,用于动态预测 Mask。
- 为保持图示清晰:在每个注意力层中,位置编码被添加到图像嵌入中,整个初始提示 Token (包括位置编码) 重新添加到 Token 的 Query 和 Key中。
SAM2 模型:
- 任务:具有提示的视觉分割任务。
- 模型:SAM2 通过已存储先前提示和预测结果的 流式记忆(Streaming Memory),交互式地在一个或多个视频帧上,通过提示,如点击、Box 或Mask,分割区域。
- 数据集:大规模 SA-V 数据集 (50.9K Videos)。
如图:
SAM2 架构:对于给定帧,分割预测依赖于当前提示或先前观察的记忆。视频以流式方式处理,图像编码器一次处理一帧,与之前帧中目标对象的记忆,进行 交叉注意(Cross-Attended)。Mask 解码器,可选的也接受输入提示词,预测该帧的分割 Mask。最后,记忆编码器,转换预测和图像编码器的嵌入,用于在未来帧中使用。如图:
记忆 Attention (Memory Attention:除了正弦绝对位置嵌入外,在自注意力和交叉注意力层中,使用二维空间旋转位置嵌入 (RoPE)。目标指针 Token 不使用 RoPE,因为没有特定的空间对应关系。默认情况下,记忆注意力使用 L = 4 层。
Mask 解码器架构:设计与 SAM 相似,并且在上采样过程中,额外包括来自图像编码器的 stride 4 和 8 的特征 (引入多尺度特征)。同时,使用与输出 Mask 相应的 Mask Token,作为对象指针,并且生成遮挡评分,以指示感兴趣的目标,在当前帧中是否可见。
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 进行模型融合。封闭集检测器通常有三个重要模块:
- 用于特征提取的主干网络 (Backbone)
- 用于特征增强的颈部 (Neck) 网络
- 用于区域细化或框预测的头部 (Head) 网络。
封闭集检测器可以通过学习语言感知的区域嵌入,泛化检测新物体,使得每个区域,都可以在语言感知的语义空间中被分类到新的类别中。实现这一目标的关键是,在颈部或头部输出中,计算 区域输出(Region Outputs) 与 语言特征(Language Features) 之间的对比损失。
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 特征表达。
即:
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),即:
指令微调 (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 与其他模式的对比:
视觉指令微调 LLaVA 网络架构:
参考:
- 知乎 - 十分钟解读Grounding DINO-根据文字提示检测任意目标
- GitHub - Awesome-Multimodal-Large-Language-Models