模型简介
模型特点
模型能力
使用案例
🚀 R1 - AQA --- 强化学习在音频问答任务中超越监督微调:案例研究
R1 - AQA 是一个音频问答(AQA)模型,它基于 Qwen2 - Audio - 7B - Instruct
,并使用分组相对策略优化(GRPO)算法通过强化学习进行了优化。该实现仅使用 38k 个后训练样本就在 MMAU 基准测试中取得了最先进的性能。更多详细信息,请参考我们的 Github 和 技术报告。
🚀 快速开始
R1 - AQA 是一个基于 Qwen2 - Audio - 7B - Instruct
的音频问答模型,通过强化学习优化,在 MMAU 基准测试中表现出色。下面将为你介绍该模型的相关信息及使用示例。
✨ 主要特性
- 算法有效性:GRPO 算法可直接且有效地应用于音频模态,即使是参数仅 82 亿的
Qwen2 - Audio - 7B - Instruct
模型也适用。 - 数据高效性:仅使用 38k 个后训练样本,强化学习就超越了监督微调,表明基于强化学习的方法在没有大型数据集的情况下也能有效。
- 推理研究:显式推理过程对 AQA 任务未显示出显著益处,如何有效利用“深度思考”或逐步推理仍是待研究的开放问题。
- 发展空间:大型音频语言模型(LALMs)在听觉 - 语言推理方面仍远落后于人类,基于强化学习的方法值得进一步探索。
📚 详细文档
介绍
R1 - AQA 是基于 Qwen2 - Audio - 7B - Instruct
的音频问答(AQA)模型,通过分组相对策略优化(GRPO)算法进行强化学习优化。该实现仅用 38k 个后训练样本就在 MMAU 基准测试中达到了最先进的性能。
我们的主要发现如下:
- GRPO 算法可直接且有效地应用于音频模态,甚至适用于参数仅 82 亿的
Qwen2 - Audio - 7B - Instruct
。 - 仅 38k 个后训练样本,强化学习就超越了监督微调,说明基于强化学习的方法无需大型数据集也能有效。
- 显式推理过程对 AQA 任务未显示出显著益处,如何有效利用“深度思考”或逐步推理仍是待研究的开放问题。
- 大型音频语言模型(LALMs)在听觉 - 语言推理方面仍远落后于人类,基于强化学习的方法值得进一步探索。
额外说明
- AVQA 训练集原本约有 40k 个样本,但由于部分数据源失效,我们仅使用了约 38k 个样本。其他使用 YouTube 源的数据集(如 AudioSet)也面临类似问题。我们认为缺失的 2k 个样本对训练结果影响不大。
- 关于 82 亿参数的表述基于《Qwen2 - Audio 技术报告》。
表格:MMAU 基准测试的准确率(%)
模型 | 方法 | Test - mini | Test | Test - mini | Test | Test - mini | Test | Test - mini | Test |
---|---|---|---|---|---|---|---|---|---|
- | 人类* | 86.31 | - | 78.22 | - | 82.17 | - | 82.23 | - |
Gemini Pro 2.0 Flash | 直接推理* | 56.46 | 61.73 | 58.68 | 56.53 | 51.65 | 61.53 | 55.60 | 59.93 |
Audio Flamingo 2 | 直接推理* | 61.56 | 65.10 | 73.95 | 72.90 | 30.93 | 40.26 | 55.48 | 59.42 |
GPT4o + 强能力 | 直接推理* | 57.35 | 55.83 | 49.70 | 51.73 | 64.86 | 68.66 | 57.30 | 58.74 |
Llama - 3 - 8B - Instruct + 强能力 | 直接推理* | 50.75 | 49.10 | 48.93 | 48.93 | 55.25 | 62.70 | 52.10 | 53.57 |
Qwen2 - Audio - 7B - Instruct | 直接推理* | 54.95 | 45.90 | 50.98 | 53.26 | 42.04 | 45.90 | 49.20 | 52.50 |
SALAMONN | 直接推理* | 41.00 | 40.30 | 34.80 | 33.76 | 25.50 | 24.24 | 33.70 | 32.77 |
Qwen2 - Audio - 7B - Instruct | CoTA [1] | 60.06 | - | 64.30 | - | 60.70 | - | 61.71 | - |
Qwen2 - Audio - 7B - Instruct | Zero - Shot - CoT [2] | 61.86 | - | 56.29 | - | 55.26 | - | 57.80 | - |
Qwen2 - Audio - 7B - Instruct | GRPO(我们的方法)1️⃣ | 69.37 | - | 66.77 | - | 57.36 | - | 64.50 | - |
Qwen2 - Audio - 7B - Instruct | GRPO(我们的方法)2️⃣ | 68.77 | 69.76 | 64.37 | 61.40 | 63.66 | 62.70 | 65.60 | 64.36 |
注释
* 数据来源于 MMAU 排行榜。
[1] Xie, Zhifei 等人的论文 "Audio - Reasoner: Improving Reasoning Capability in Large Audio Language Models." arXiv 预印本 arXiv:2503.02318 (2025)。
[2] Ma, Ziyang 等人的论文 "Audio - CoT: Exploring Chain - of - Thought Reasoning in Large Audio Language Model." arXiv 预印本 arXiv:2501.07246 (2025)。
1️⃣ 这是原始模型,与 Hugging Face 上的模型相同,在我们的技术报告中有描述。
2️⃣ 这是提交到 MMAU 排行榜 的模型,经过多次训练以获得平衡的结果。
💻 使用示例
基础用法
import torch
import torchaudio
from transformers import Qwen2AudioForConditionalGeneration, AutoProcessor
# 加载模型
model_name = "mispeech/r1-aqa"
processor = AutoProcessor.from_pretrained(model_name)
model = Qwen2AudioForConditionalGeneration.from_pretrained(model_name, torch_dtype=torch.bfloat16, device_map="auto")
# 加载示例音频
wav_path = "test-mini-audios/3fe64f3d-282c-4bc8-a753-68f8f6c35652.wav" # 来自 MMAU 数据集
waveform, sampling_rate = torchaudio.load(wav_path)
if sampling_rate != 16000:
waveform = torchaudio.transforms.Resample(orig_freq=sampling_rate, new_freq=16000)(waveform)
audios = [waveform[0].numpy()]
# 生成提示文本
question = "Based on the given audio, identify the source of the speaking voice."
options = ["Man", "Woman", "Child", "Robot"]
prompt = f"{question} Please choose the answer from the following options: {str(options)}. Output the final answer in <answer> </answer>."
message = [
{"role": "user", "content": [
{"type": "audio", "audio_url": wav_path},
{"type": "text", "text": prompt}
]}
]
texts = processor.apply_chat_template(message, add_generation_prompt=True, tokenize=False)
# 处理
inputs = processor(text=texts, audios=audios, sampling_rate=16000, return_tensors="pt", padding=True).to(model.device)
generated_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = generated_ids[:, inputs.input_ids.size(1):]
response = processor.batch_decode(generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
print(response)
📄 许可证
本项目采用 Apache - 2.0 许可证。
📚 引用
@article{li2025reinforcement,
title={Reinforcement Learning Outperforms Supervised Fine-Tuning: A Case Study on Audio Question Answering},
author={Li, Gang and Liu, Jizhong and Dinkel, Heinrich and Niu, Yadong and Zhang, Junbo and Luan, Jian},
journal={arXiv preprint arXiv:2503.11197},
year={2025},
url={https://github.com/xiaomi-research/r1-aqa; https://huggingface.co/mispeech/r1-aqa}
}









