LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio

2024-09-08 12:28

本文主要是介绍LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 引言

  • 模型概述

  • 模型架构

  • 训练方法

  • 性能评估

  • 实战演示

  • 总结

引言

金山挂月窥禅径,沙鸟听经恋法门。

小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩,今天这篇小作文主要是介绍阿里巴巴的语音多模态大模型Qwen2-Audio。近日,阿里巴巴Qwen团队发布了最新的大规模音频-语言模型Qwen2-Audio及其技术报告。该模型在音频理解和多模态交互方面取得了显著进展,在多项基准测试中超越了此前的最佳水平。以下将从模型设计、训练方法、性能评估等多个方面对Qwen2-Audio进行详细解读。

技术报告地址:https://arxiv.org/abs/2407.10759

模型下载:https://huggingface.co/Qwen/Qwen2-Audio-7B-Instruct

在线demo:https://huggingface.co/spaces/Qwen/Qwen2-Audio-Instruct-Demo

模型概述

Qwen2-Audio是一个大规模音频-语言模型,可以接受各种音频信号输入,并根据语音指令执行音频分析或直接生成文本响应。与之前的模型(Qwen-Audio)相比,Qwen2-Audio在以下几个方面做了改进:

  1. 简化预训练过程: 使用自然语言提示替代复杂的层级标签,扩大了训练数据规模。

  2. 增强指令遵循能力: 通过监督微调和直接偏好优化(DPO),使模型输出更符合人类偏好。

  3. 实现两种音频交互模式: 语音聊天模式和音频分析模式,无需系统提示即可智能切换。
    3.1 语音聊天:用户可以使用语音向音频语言模型发出指令,无需通过自动语音识别(ASR)模块。
    3.2 音频分析:该模型能够根据文本指令分析音频信息,包括语音、声音、音乐等。

  4. 提高音频理解能力: 可以同时理解音频中的声音、多人对话和语音指令,并做出恰当响应。

  5. 支持多语言:该模型支持超过8种语言和方言,例如中文、英语、粤语、法语、意大利语、西班牙语、德语和日语。

模型架构

Qwen2-Audio的模型架构包含两个主要组件:音频编码器和大语言模型。

整体框架如下图所示:

1. 音频编码器

Qwen2-Audio使用Whisper-large-v3模型作为初始化的音频编码器。音频预处理过程如下:

  • 将音频重采样到16kHz

  • 使用25ms窗口大小和10ms作为step,将原始波形转换为128通道的梅尔频谱图

  • 添加步长为2的池化层,减少音频表示的长度

经过处理后,编码器输出的每一帧大约对应原始音频信号的40ms片段。

2. 大语言模型

Qwen2-Audio沿用了Qwen-7B作为基础语言模型组件。因此整个模型的参数总量为8.2B。

模型的训练目标是最大化下一个文本token的概率:

其中和分别表示音频序列和文本序列,θ和分别是大语言模型和音频编码器的可训练参数。 表示基于过往的文本序列。

训练方法

Qwen2-Audio的训练过程分为三个阶段:预训练、监督微调和直接偏好优化。

1. 预训练

在预训练阶段,Qwen2-Audio使用自然语言提示替代了之前Qwen-Audio的层级标签。研究发现,使用语言提示可以提高模型的泛化能力和指令遵循能力。预训练数据集包括多种类型的音频数据,如语音、音乐、环境声音等,总时长达数十万小时。

2. 监督微调(SFT)

在预训练的基础上,Qwen2-Audio采用基于指令的微调技术,提高模型与人类意图的对齐能力。研究强调了SFT数据的质量和复杂性对模型性能的关键影响。团队精心制作了一套高质量的SFT数据集,并实施了严格的质量控制程序。

微调过程考虑了两种人机交互模式:

  • 音频分析模式:用户可以让Qwen2-Audio分析各种音频,指令可以通过音频或文本的形式给出。

  • 语音聊天模式:用户可以与Qwen2-Audio进行语音对话,询问各种问题。

这两种模式在训练时是联合进行的,使用时无需区分切换模式。

3. 直接偏好优化(DPO)

为了进一步优化模型以遵循人类偏好,Qwen2-Audio采用了DPO方法。具体步骤如下:

  • 构建包含三元组数据,, 的数据集D,其中是包含输入音频的输入序列,和分别是人工标注的好响应和坏响应。

  • 优化模型θ,使其最小化以下损失函数:

其中是用θ初始化的参考模型,σ是sigmoid函数,β是一个超参数。

通过这三个阶段的训练,Qwen2-Audio逐步提升了音频理解能力、指令遵循能力和输出质量。

性能评估

为全面评估Qwen2-Audio的性能,研究团队在多个任务和数据集上进行了测试,包括:

  1. 自动语音识别(ASR)

  2. 语音到文本翻译(S2TT)

  3. 语音情感识别(SER)

  4. 声音分类(VSC)

  5. AIR-Bench聊天基准测试

主要结果如下:

1. ASR任务

  • 在Librispeech测试集上,Qwen2-Audio在test-clean和test-other子集上分别达到1.6%和3.6%的词错率(WER),优于之前的多任务学习模型。

  • 在Fleurs中文子集上,Qwen2-Audio的表现略优于Whisper-large-v3。

  • 在Aishell2测试集上,Qwen2-Audio在Mic、iOS和Android三个子集上的WER分别为3.0%、3.0%和2.9%,优于之前的最佳结果。

2. S2TT任务

在CoVoST2数据集上,Qwen2-Audio在7个翻译方向上都显著优于基线模型。例如:

  • 英德翻译:BLEU分数29.9

  • 德英翻译:BLEU分数35.2

  • 英中翻译:BLEU分数45.2

  • 中英翻译:BLEU分数24.4

3. SER任务

在Meld数据集上,Qwen2-Audio达到55.3%的准确率,与之前的Qwen-Audio(55.7%)相当。

4. VSC任务

在VocalSound数据集上,Qwen2-Audio达到93.92%的准确率,显著优于之前的最佳结果(Pengi:60.35%)。

5. AIR-Bench聊天基准测试

AIR-Bench是一个专门针对音频中心的指令遵循能力的测试集,包括语音、声音、音乐和混合音频四个维度。每个维度的得分由GPT-4自动评估,分数范围为0-10分。Qwen2-Audio在四个维度上的得分分别为:

  • 语音:7.37分

  • 声音:6.88分

  • 音乐:6.72分

  • 混合音频:6.43分

这些分数显著优于之前的最佳模型,如Gemini-1.5-pro等。

总体而言,Qwen2-Audio在各项任务中都展现出了优秀的性能,特别是在需要深度音频理解和复杂推理的任务上表现突出。

实战演示

模型下载:https://huggingface.co/Qwen/Qwen2-Audio-7B-Instruct

Demo体验:https://huggingface.co/spaces/Qwen/Qwen2-Audio-Instruct-Demo

由于使用了whisper模型,所以不做额外处理的话,最长只支持30s音频。

总结

Qwen2-Audio的创新点如下:

1. 自然语言提示替代层级标签Qwen2-Audio摒弃了之前模型使用的复杂层级标签,转而采用自然语言提示进行预训练。这一改变有以下优势:

  • 简化了预训练过程

  • 提高了模型的泛化能力

  • 增强了模型的指令遵循能力

  • 缩小了预训练和后训练阶段的差距

2. 双模式交互设计Qwen2-Audio创新性地实现了音频分析和语音聊天两种交互模式,并且能够在这两种模式之间无缝切换,无需用户手动选择或使用特定的系统提示。这种设计大大提高了模型的实用性和用户友好性。

3. 增强的音频理解能力Qwen2-Audio能够同时理解音频中的多种元素,包括背景声音、多人对话和语音指令。这种全面的音频理解能力使得模型可以在复杂的音频环境中准确捕捉用户意图并做出恰当响应。

4. 直接偏好优化通过引入DPO方法,Qwen2-Audio在保持强大功能的同时,输出结果更加符合人类偏好,提高了真实性和期望行为的遵循程度。

Qwen2-Audio的发布标志着大规模音频-语言模型研究的一个重要里程碑。它不仅在多个基准测试中实现了最优性能,更重要的是展示了一个统一的音频理解和交互系统的可能性。这为未来的人工智能系统向着更自然、更智能的人机交互方向发展提供了有力支撑。随着研究的深入和应用的拓展,我们有理由期待Qwen2-Audio及其后续模型能够在推动通用人工智能发展方面发挥重要作用。

这篇关于LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1148109

相关文章

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll