首页
/ Qwen2.5-Omni 语音识别指标复现问题分析与解决方案

Qwen2.5-Omni 语音识别指标复现问题分析与解决方案

2025-06-29 06:06:46作者:裘晴惠Vivianne

在复现Qwen2.5-Omni模型的语音识别(ASR)性能指标时,研究人员发现实际测试结果与论文声明存在一定差距。本文将深入分析这一问题,并提供完整的解决方案。

问题现象

研究人员在复现过程中发现,在Librispeech测试集上,实际测试结果为test-clean 2.4、test-other 4.2,与论文声明的1.6和3.5存在差距。同样在CV-15-en数据集上,测试结果为8.7,略高于声明的7.6。值得注意的是,中文ASR任务如fleurs-zh测试结果为4.6,与声明的3.0也有一定差距。

关键影响因素分析

经过多次测试验证,发现以下几个关键因素会显著影响ASR性能:

  1. 推理参数配置:默认的generate参数设置可能不适合ASR任务
  2. 注意力机制实现:flash attention的使用会影响结果
  3. 精度设置:bfloat16精度可能导致细微差异
  4. token限制:输出长度限制不当会影响转录质量

完整解决方案

经过与开发团队的沟通和多次实验验证,以下配置能够获得最佳ASR性能:

# 模型加载配置
model = Qwen2_5OmniModel.from_pretrained(
    model_path,
    torch_dtype="auto",  # 避免强制使用bfloat16
    device_map="auto",
    attn_implementation=None  # 禁用flash attention
)

# 生成配置
output = model.generate(
    **inputs,
    thinker_do_sample=False,  # 禁用采样
    thinker_max_new_tokens=256,  # 设置适当的输出长度限制
    repetition_penalty=1.0,  # 禁用重复惩罚
    use_audio_in_video=True,
    return_audio=False
)

技术细节说明

  1. thinker_do_sample参数:这个隐藏参数实际上控制着内部"thinker"模块的采样行为,设置为False可以确保使用贪婪解码而非随机采样,这对ASR任务至关重要。

  2. 精度选择:虽然bfloat16能提高计算效率,但在ASR任务中可能导致细微的精度损失,使用自动精度选择(torch_dtype="auto")通常能获得更好结果。

  3. 注意力机制:flash attention虽然加速计算,但可能引入微小差异,在追求指标复现时应暂时禁用。

其他注意事项

对于多语言混合语音识别任务,建议使用更明确的prompt来指定语言转换行为。虽然当前cookbook中未提供完整的多语言prompt模板,但可以通过实验确定最佳提示词。

通过以上配置调整,研究人员应该能够复现出与论文声明一致的ASR性能指标。如果在特定数据集上仍有差距,建议检查音频预处理流程和评估脚本的实现细节。

登录后查看全文
热门项目推荐
相关项目推荐