Meerkat:第一个统一视听空间和时间定位的MLLM

news2024/10/6 3:35:42

       大型语言模型(LLMs)在各种自然语言处理任务中表现出色,达到了理解和推理能力的人类水平精度。此外,借助新兴的指令微调范式,这些语言模型可以被赋予遵循开放式自然语言指令的能力,甚至可以与其他模态,特别是视觉结合。尽管音频通常是与相关视觉场景相辅相成的,但在LLMs的背景下,音频在很大程度上还未被探索。构建能够“倾听”的多模态LLMs可能能够开启多媒体内容分析、多模态虚拟助手、教育和培训等新应用。有限的先前工作已经将音频纳入MLLMs。然而,它们主要关注于如字幕和问答这样的粗粒度任务,这些任务相对容易纳入LLM接口。尽管最近在利用MLLMs进行定位方面取得了一些进展,但它们要么只关注视觉模态,要么由于两个模态的联合建模不足,难以捕捉视听事件中发生的细粒度细节

     本文的目标是利用LLMs进行细粒度视听理解面临以下挑战

  • 不同任务的输入和输出格式存在差异(例如,根据音频查询进行图像定位,图像引导的音频时间定位);
  • 没有大规模数据集用于训练具有定位能力的视听LLMs。

     鉴于上述挑战,本文提出了Meerkat,这是第一个能够分别在图像和音频中有效进行空间和时间定位的统一视听大型语言模型框架。它具有两个关键模块,这些模块对其细粒度理解的强能力至关重要:一个基于最优传输的模态对齐模块,它以弱监督方式学习图像和音频补丁之间的跨模态对齐;以及一个能够强制执行跨注意力热图中一致性的跨模态注意力模块。这两个模块共同使学习更好的联合视听表示成为可能

链接:https://github.com/schowdhury671/meerkat

1 概述

1.1 多模态大型语言模型 (Multi-modal Large Language Models, MLLMs)

     受大型语言模型(LLMs)在遵循指令方面能力的启发,研究者最近开始利用LLMs来理解多模态内容。不同的模态需要不同的特征提取方法。例如,图像可以使用 CLIP-ViT-B/16 等视觉模型提取特征,而音频可以使用 CLAP 等音频模型提取特征。

     将不同模态的特征融合起来,以便模型可以更好地理解多模态内容。常见的融合方法包括:

  • 视觉编码器:例如 MiniGPT4, X-LLM, Video-ChatGPT 等模型,它们通过学习视觉编码器来将 LLM 与其他模态进行潜在对齐。
  • 跨注意力机制:例如 Otter, LLaMA-Adapter 等模型,它们将跨注意力层集成到 LLM 中,以融合多模态信息。
  • 图像和音频编码器的结合:例如 Meerkat,它使用 CLIP 和 CLAP 的编码器提取特征,并通过 AVOpT 和 AVACE 模块进行跨模态对齐。
  • 1.2 细粒度多模态理解 (Fine-grained Multi-modal Understanding)

     许多多模态 LLM 主要关注粗粒度任务,例如字幕和问答。然而,对于需要细粒度理解的任务,例如图像对齐和音频时间定位,现有的 LLM 难以胜任。   Meerkat 采用两种方法来实现细粒度理解:

  • AVOpT 模块:通过最优传输方法在图像和音频特征之间进行弱监督对齐,从而提高不同模态的语义一致性。
  • AVACE 模块:通过跨注意力机制强制不同模态之间的区域级对齐,从而提高模型对特定对象的关注。
  • 1.3 LLM引导的任务统一 (LLM guided Task Unification)

    LLM作为任务统一框架的接口,近年来取得了巨大进步。受到语言模型成功的推动,研究开始探索如何在语言模型的范围内统一生成和推理任务,利用其易于访问的特点。

     LLM 可以作为一个统一的接口来整合不同的任务,例如图像对齐、音频时间定位和事实核查。Meerkat 使用指令微调来将不同的任务整合到 LLM 中,并使用 LoRA 进行模型微调。

2 方法论

Meerkat技术框图

2.1 多模态特征提取

Meerkat 的多模态特征提取方法有效地利用了预训练的 CLIP 和 CLAP 模型,分别提取图像和音频的特征。通过使用线性层来确保模态一致性,Meerkat 能够将图像和音频信息有效地融合到同一个语义空间中,为后续的任务处理提供坚实的基础

2.1.1 图像编码器

  • CLIP-ViT-B/16: Meerkat 使用预训练的 CLIP-ViT-B/16 编码器来提取图像特征。CLIP 是一个视觉语言模型,它能够将图像和文本表示在同一个语义空间中。ViT-B/16 是一个基于视觉 Transformer 的模型,能够有效地捕捉图像中的全局和局部特征。
  • 图像嵌入表示: 图像嵌入表示 zI 是一个二维向量,其中 SI 表示图像 token 的数量,DI 表示每个 token 的隐藏维度。

2.1.2 音频编码器

  • CLAP: Meerkat 使用 CLAP 的音频 Transformer 作为音频编码器。CLAP 是一个针对音频数据的预训练模型,它能够学习音频特征并生成与自然语言描述相关的表示。
  • 音频嵌入表示: 音频嵌入表示 zA 也是一个二维向量,其中 SA 表示音频 token 的数量,DA 表示每个 token 的隐藏维度。

2.1.3 模态一致性保证

在将图像和音频嵌入输入到语言模型之前,Meerkat 使用额外的线性层来确保不同模态的嵌入维度保持一致。这种一致性保证了图像和音频信息能够被语言模型有效地处理和融合。

2.2 视听特征对齐

本文为模型配备了两个不同级别的监督:通过模态对齐模块(AVOpT)实现的弱监督和通过视听一致性强化模块(AVACE)实现的强监督,有效地解决了图像和音频特征空间不一致的问题,并提高了模型在细粒度音频-视觉理解任务中的性能

2.2.1 音频-视觉最优传输对齐 (AVOpT):

由于图像和音频分别由 CLIP 和 CLAP 模型提取特征,它们的特征空间不同,导致语义不一致。利用最优传输 (OT) 方法,在图像特征和音频特征之间进行 patch 级别的对齐。

2.2.1.1 步骤

  • 将图像和音频输入分别编码成特征嵌入。
  • 将特征嵌入表示成离散概率分布。
  • 计算两个概率分布之间的 Wasserstein 距离,即 OT 距离,最小化距离的同时保持拓扑信息。
  • 学习 OT 计划,将图像特征和音频特征之间进行映射,使它们在语义上更一致。

2.2.1.2优势

  • 可解释性: OT 计划可以解释为图像特征和音频特征之间的映射关系,更易于理解。
  • 鲁棒性: OT 方法对噪声和数据分布的变化具有鲁棒性。
  • 适用于细粒度任务: 在需要细粒度理解的音频-视觉任务中,如图像参考图像 grounding,AVOpT 可以有效地对齐特征,提高模型性能。

2.2.2 音频-视觉注意力一致性强制 (AVACE)

AVOpT 虽然对齐了特征,但缺乏对目标区域和背景区域的区分。利用交叉注意力机制,将音频-视觉特征关联起来,并通过限制注意力地图的范围,强制模型关注目标区域。

2.2.2.1 步骤

  • 将 AVOpT 学习到的特征嵌入输入到 LLM。
  • 利用交叉注意力机制,将音频特征和图像特征关联起来。
  • 定义一个掩码,将注意力地图限制在目标区域的边界内。
  • 最大化目标区域内的注意力,最小化其他区域的注意力。

2.2.2.2 优势

  • 提高定位精度: AVACE 可以帮助模型更精确地定位目标区域,提高下游任务的性能。
  • 增强语义关联: 通过交叉注意力机制,模型可以更好地理解音频和图像之间的语义关联。

2.3 AVOpT 和 AVACE 的协同作用

  • AVOpT 提供了弱监督,使模型可以学习到跨模态特征的潜在关系。
  • AVACE 提供了强监督,强制模型关注目标区域,并增强语义关联。
  • 两者结合,可以使模型学习到更高质量的音频-视觉表示,从而在下游任务中取得更好的性能。

3 MeerkatBench:细粒度音视频理解的统一基准套件

     MeerkatBench 基准套件,旨在促进细粒度音视频理解研究。它包含了五项任务,涵盖了从细粒度到粗粒度的理解层次:

3.1 任务

  • 音频指向图像定位 (ARIG): 根据音频输入,预测图像中目标对象的边界框坐标。
  • 图像引导音频时间定位 (IGATL): 根据图像输入,预测音频事件发生的时间间隔。
  • 音视频事实核查 (AVFact): 分析并验证给定音视频场景中陈述的真实性。
  • 音视频问答 (AVQA): 回答包含音视频信息的各种问题。
  • 音视频字幕 (AVC): 根据音视频输入生成文本描述。

3.2 数据集

     MeerkatBench 使用了现有的公共数据集,例如 Openimages-AudioSet、VGGSound、AVSBench、LLP 等,并对其进行适配,以形成图像和音频配对。

    此外,MeerkatBench 还包含了 300 万个指令微调样本,用于训练模型学习细粒度的音视频语义。

3.3 目标

    MeerkatBench 的目标是提供一个统一的基准套件,用于评估细粒度音视频理解模型的性能。

    通过包含不同粒度的任务,MeerkatBench 可以帮助研究者了解模型在不同理解层次上的能力,并推动音视频理解技术的进步。

4 实验

4.1 实验设置

4.1.1 模型

  • 图像编码器: 使用预训练的 CLIP-ViT-B/16 编码器提取图像特征。
  • 音频编码器: 使用 CLAP 编码器提取音频特征。
  • LLM: 使用开源的 Llama 2-Chat (7B) 作为 LLM 的骨干网络。
  • AVOpT 模块: 基于最优传输算法,学习图像和音频特征之间的弱对齐关系。
  • AVACE 模块: 通过交叉注意力机制,强化图像和音频特征之间的区域级对齐关系。

4.1.2 训练方法

  • LoRA 微调: 使用 LoRA 技术对 LLM 进行微调,以适应特定的任务。
  • 单阶段训练: 使用一个阶段进行训练,而不是传统的两阶段训练。

4.1.3 评估指标

4.1.3.1  Audio Referred Image Grounding (ARIG)

  • cIoU (Intersection over Union): 衡量模型预测的边界框与真实边界框的重叠程度,取值范围在 0 到 1 之间,值越大表示重叠程度越高,模型性能越好。
  • AUC (Area Under Curve): 衡量模型预测的边界框与真实边界框之间的精确度和召回率的平衡,取值范围在 0 到 1 之间,值越大表示模型性能越好。

4.1.3.2 Image Guided Audio Temporal Localization (IGATL)

F1-score: 衡量模型预测的时间区间与真实时间区间之间的精确度和召回率的平衡,取值范围在 0 到 1 之间,值越大表示模型性能越好。

4.1.3.3 Audio-Visual Fact-checking (AVFact)

  • Precision and Recall: 用于评估模型在四种不同类型的 AVFact 任务中的性能,Precision 衡量模型预测为 True 的样本中实际为 True 的比例,Recall 衡量模型预测为 True 的样本中实际为 True 的比例。值越大表示模型性能越好。
  • F1-score: 可以通过 Precision 和 Recall 计算得到,用于衡量模型在四种不同类型的 AVFact 任务中的综合性能,取值范围在 0 到 1 之间,值越大表示模型性能越好。

4.1.3.4 Audio-Visual Question Answering (AVQA)

  • Existential, Localization, Counting, Temporal, Comparative: 这五个指标分别衡量模型在不同类型的 AVQA 任务中的性能,Existential 指的是模型是否能够回答关于事件是否存在的问题,Localization 指的是模型是否能够回答关于事件位置的问题,Counting 指的是模型是否能够回答关于事件数量的问题,Temporal 指的是模型是否能够回答关于事件时间的问题,Comparative 指的是模型是否能够回答关于事件比较的问题。每个指标都采用二分类指标进行评估,例如 Precision 和 Recall,值越大表示模型性能越好。
  • Avg: AVQA 任务的平均值,用于衡量模型在不同类型的 AVQA 任务中的综合性能。

4.1.3.5 Audio-Visual Captioning (AVC)

BLEU@4, METEOR, ROUGE, CIDEr: 这四个指标用于评估模型生成的文本与真实文本之间的相似度,值越大表示模型生成的文本越接近真实文本,模型性能越好。

4.1.4 训练细节

  • 使用 8 个 A100 GPU 进行训练。
  • 使用 AdamW 优化器和 DeepSpeed 进行优化。
  • 学习率设置为 3×10−5。
  • 使用 FP16 精度进行训练和推理。

4.2 实验结果

4.2.1 音频指向图像定位 (ARIG)

  • 数据集: Openimages-AudioSet, Openimages-VGGSound, AVSBench, VGGSS, PASCAL Sound, Flickr-Soundnet。
  • 任务: 根据音频输入,预测图像中相关对象的边界框坐标。
  • 评估指标: cIoU 和 AUC。
  • 结果: Meerkat 在所有数据集上都取得了最先进的性能,相对改进高达 20.34%。

4.2.2 图像引导音频时间定位 (IGATL)

  • 数据集: Openimages-AudioSet (Strong), LLP。
  • 任务: 根据图像输入,预测音频中相关事件发生的时间段。
  • 评估指标: segment-level F1-score。
  • 结果: Meerkat 在所有数据集上都取得了最先进的性能,相对改进高达 7.18%。

4.2.3 音频-视觉事实核查 (AVFact)

  • 数据集: Openimages-AudioSet。
  • 任务: 分析和验证给定音频-视觉场景中的陈述是否正确。
  • 评估指标: Precision 和 Recall。
  • 结果: Meerkat 在所有类别上都取得了最先进的性能,相对改进高达 14.86%。

4.2.4 音频-视觉问答 (AVQA)

  • 数据集: AVQA, MusicAVQA。
  • 任务: 回答包含音频和视觉信息的复杂问题。
  • 评估指标: Existential, Localization, Temporal, Count, Comparative。
  • 结果: Meerkat 在所有类别上都取得了最先进的性能,相对改进高达 16.9%。

4.2.5 音频-视觉字幕 (AVC)

  • 数据集: VALOR-32K。
  • 任务: 根据音频-视觉输入生成文本描述。
  • 评估指标: BLEU@4, METEOR, ROUGE, CIDEr。
  • 结果: Meerkat 在所有指标上都取得了最先进的性能,相对改进高达 37.12%。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1904168.html

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

相关文章

基于CentOS Stream 9平台搭建MinIO以及开机自启

1. 官网 https://min.io/download?licenseagpl&platformlinux 1.1 下载二进制包 指定目录下载 cd /opt/coisini/ wget https://dl.min.io/server/minio/release/linux-amd64/minio1.2 文件赋权 chmod x /opt/coisini/minio1.3 创建Minio存储数据目录: mkdi…

并发编程-05AQS原理

并发编程-深入理解AQS之ReentrantLock 一 认识AQS 在讲解AQS原理以及相关同步器之前,我们需要对AQS有一些基本的认识,了解下它有什么样的机制,这样追踪源码的时候就不会太过于迷茫! 1.1 什么是AQS java.util.concurrent包中的大…

【Java探索之旅】多态:重写、动静态绑定

文章目录 📑前言一、重写1.1 概念1.2 方法重写的规则1.3 重写和重载的区别1.4 重写的设计原则 二、动静态绑定2.1 静态绑定:2.2 动态绑定: 🌤️全篇总结 📑前言 在面向对象编程中,重写和动静态绑定是重要的…

如何利用Github Action实现自动Merge PR

我是蚂蚁背大象(Apache EventMesh PMC&Committer),文章对你有帮助给项目rocketmq-rust star,关注我GitHub:mxsm,文章有不正确的地方请您斧正,创建ISSUE提交PR~谢谢! Emal:mxsmapache.com 1. 引言 GitHub Actions 是 GitHub 提供的一种强大而灵活的自…

VMware虚拟机搭建CentOS7环境

相关资料 安装VMware 双击VMware-workstation(16.1.1软件安装包.exe安装文件,点下一步 激活码文件复制激活码激活安装linux 1、点击创建虚拟机

python等级考试——一级知识点汇总(turtle画图部分)

(本篇文章是针对中国电子学会青少年编程等级考试的,适合初学者以及青少年编程学习者) 本篇文章主要介绍turtle画图部分,其他一级考试知识点请移步下方链接:python等级考试——一级知识点汇总(不包含turtle…

【JAVA多线程】线程池概论

目录 1.概述 2.ThreadPoolExector 2.1.参数 2.2.新任务提交流程 2.3.拒绝策略 2.4.代码示例 1.概述 线程池的核心: 线程池的实现原理是个标准的生产消费者模型,调用方不停向线程池中写数据,线程池中的线程组不停从队列中取任务。 实现…

导航栏样式,盒子模型

1.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>li{he…

《机器学习》读书笔记:总结“第4章 决策树”中的概念

&#x1f4a0;决策树 基于树结构进行决策。 一棵决策树包括&#xff1a; 一个 根节点&#xff08;起点&#xff09;若干 叶节点&#xff08;没有下游节点的节点&#xff09;若干 内部节点(分支节点) 即&#xff1a; #mermaid-svg-Mxe3d0kNg29PM2n8 {font-family:"treb…

笔记本电脑内存不够

笔记本电脑内存不够是众多笔记本用户面临的常见问题&#xff0c;尤其是对于一些需要处理大型文件或者运行复杂软件的用户&#xff0c;这个问题可能会严重影响笔记本的使用体验。那么&#xff0c;我们应该如何解决笔记本电脑内存不够的问题呢&#xff1f;本文将从几个方面进行详…

联想电脑更新 Microsoft store 提示 (我们需要更新 Microsoft store 错误码为0x80070422 可在需要时使用)

1. 检查Windows Update服务是否启动 按下WinR组合键打开运行对话框&#xff0c;输入“services.msc”并按回车&#xff0c;打开服务面板。在列表中找到Windows Update服务&#xff0c;双击进入属性。如果服务状态为停止&#xff0c;请点击“启动”按钮&#xff0c;确保启动类型…

缓存-分布式锁-原理和基本使用

分布式锁原理和使用 自旋 public Map<String, List<Catelog2Vo>> getCatalogJsonFromDBWithRedisLock() {Boolean b redisTemplate.opsForValue().setIfAbsent(Lock, Lock, Duration.ofMinutes(1));if (!b) {int i 10;while (i > 0) {Object result redisTe…

上网监控软件有哪些?3款实力出众的上网监控软件

为什么需要上网监控软件&#xff1f; 据说&#xff0c;99%的员工上班都会摸鱼&#xff0c;1%的员工上班会窃取公司信息。 所以&#xff0c;因此&#xff0c;监控员工的上网行为是很有必要滴。 总结下来&#xff0c;上网监控软件的作用是&#xff1a; 1.提高生产力&#xff1…

从零开始读RocketMq源码(一)生产者启动

目录 前言 获取源码 总概论 生产者实例 源码 A-01:设置生产者组名称 A-02:生产者服务启动 B-01&#xff1a;初始化状态 B-02&#xff1a;该方法再次对生产者组名称进行校验 B-03&#xff1a;判断是否为默认生产者组名称 B-04: 该方法是为了实例化MQClientInstance对…

机器学习第四十六周周报 FMP

文章目录 week46 FMP摘要Abstract1. 题目2. Abstract3. FMP3.1 优化框架3.2 优化器 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程 5. 结论6.代码复现1. FMP2. fairGNN小结参考文献 week46 FMP 摘要 本周阅读了题为Chasing Fairness in Graphs: A GNN Architecture Per…

永磁同步电机控制算法--最大转矩电流比控制(虚拟信号注入法)

目前&#xff0c;国内外相关学者对 MTPA 控制方法进行了一系列的理论研究与仿真分析。通过研究取得的成果综合来看&#xff0c;该控制方法主要有&#xff1a;直接公式计算法、曲线拟合法、查表法、搜索法、高频信号注入法以及参数辨识法等。 之前的文章中已经介绍了直接公式计…

ASP.NET Core----基础学习03----开发者异常页面 MVC工作原理及实现

文章目录 1. 开发者异常页面(1)Startup.cs 页面的基础配置(2)自定义显示报错代码的前后XX行 2. MVC 的原理3. MVC 的实现4.默认路由路径5.返回Json字符串 1. 开发者异常页面 (1)Startup.cs 页面的基础配置 namespace ASP.Net_Blank {public class Startup{private readonly IC…

Matlab协方差矩阵分解法生成随机场

Matlab协方差矩阵分解法生成随机场 相关系数矩阵 % function outcohesion(x,y,mu,theta) % end % xyload(F:\Research-OUC\基于机器许学习模型的海底斜坡可靠度研究\基于comsol的斜坡稳定性分析\comsol网格操作\grid_operate-matlab.mphtxt); % xxy(:,1); % yxy(:,2); Xlinspac…

前端JS特效第22集:html5音乐旋律自定义交互特效

html5音乐旋律自定义交互特效&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; <!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>ChimeTime™</title…

Spring源码十二:事件发布源码跟踪

上一篇我们在Spring源码十一&#xff1a;事件驱动中&#xff0c;介绍了spring refresh方法的initMessageSource方法与initApplicationEventMulticaster方法&#xff0c;举了一个简单的例子进行简单的使用的Spring为我们提供的事件驱动发布的示例。这一篇我们将继续跟踪源码&…