weixin_62994174/Belle-whisper-large-v3-zh
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Belle-whisper-large-v3-zh(昇腾NPU适配)

Belle-whisper-large-v3-zh是由BELLE团队基于Whisper large-v3模型进行微调得到的中文增强版模型。本仓库提供了该模型在华为昇腾硬件(Ascend 910B2)上推理的昇腾NPU适配方案。

验证状态:通过 | 编码器精度通过 | 解码器精度通过 | 端到端转录通过

模型信息

项目详情
模型Belle-whisper-large-v3-zh
架构WhisperForConditionalGeneration(编码器-解码器)
原始来源Xorbits/Belle-whisper-large-v3-zh(ModelScope)
参数规模~15亿
模型维度(d_model)1280
编码器层数32
解码器层数32
注意力头数20
前馈网络维度(FFN Dimension)5120
词汇表大小51866
梅尔频谱 bins 数128
精度FP32
语言中文(zh)
任务自动语音识别(ASR)

环境配置

组件版本
NPUAscend 910B2(2颗,每颗64GB HBM)
CANN8.5.1
PyTorch2.9.0
torch_npu2.9.0.post1+gitee7ba04
transformers>= 4.34.0
Python3.11

快速开始

1. 下载模型

pip install modelscope
modelscope download --model Xorbits/Belle-whisper-large-v3-zh \
    --local_dir ./models/Belle-whisper-large-v3-zh \
    --exclude "pytorch_model.bin"

2. 安装依赖项

pip install torch torch_npu transformers librosa soundfile

3. 运行推理

# Single audio file transcription
python inference.py --audio /path/to/audio.wav

# Benchmark mode
python inference.py --benchmark --num-runs 50

4. 运行完整评估

python evaluate.py --num-runs 30 --warmup 5

性能基准测试

在Ascend 910B2上测试,FP32精度,单NPU(npu:0)。

固定长度音频(5秒合成音频)

指标数值
平均延迟0.2089 秒
P50 延迟0.2085 秒
P90 延迟0.2115 秒
P99 延迟0.2156 秒
标准差0.0023 秒
吞吐量9.58 tokens/s
峰值内存6526 MB

可变长度音频扩展性

音频时长输入帧数平均延迟输出 tokens
3秒30000.216 秒2.0
5秒30000.223 秒2.0
10秒30000.212 秒2.0
15秒30000.340 秒5.0
30秒30000.817 秒15.0

注:合成纯音音频产生的输出 tokens 极少。真实语音会根据音频内容成比例地产生更多 tokens。编码器运行时间约为 50ms(固定成本),解码器生成速度约为 10 tok/s。

精度验证

在相同输入下,将NPU(FP32)输出与CPU(FP32)参考输出进行比较。

编码器隐藏状态精度

指标数值阈值状态
余弦相似度0.9998005> 0.999PASS
信噪比(SNR)33.95 dB> 30 dBPASS
最大绝对误差1.978--
平均绝对误差0.007--
相对误差1.63%--
弗罗贝尼乌斯相对误差0.0201--

解码器第一步 Logit 精度(独立测试)

指标数值阈值状态
余弦相似度0.9999263> 0.999PASS
信噪比(SNR)29.95 dB> 20 dBPASS
Top-1 重叠率100%--
Top-5 重叠率100%>= 80%PASS
Top-10 重叠率100%--
Top-100 重叠率99%--
相对误差3.33%< 5%PASS

端到端转录

指标数值阈值状态
Token 匹配准确率100%> 90%PASS
转录文本完全匹配True-PASS
CPU 输出嗯嗯--
NPU 输出嗯嗯--

总体结果:通过

三个验证阶段全部通过。编码器隐藏状态的余弦相似度>0.9998。解码器 logits 的余弦相似度>0.9999。端到端转录结果完全一致。

项目结构

Belle-whisper-large-v3-zh/
├── README.md                  # This document
├── inference.py               # NPU inference script (single audio / benchmark)
├── evaluate.py                # Precision & performance evaluation suite
├── eval_report.json           # Full evaluation results (JSON)
└── test_audio/                # Test audio generation script
    └── generate_test.py

架构详情

基于NPU的Whisper编码器-解码器流水线:

  1. 音频预处理:梅尔频谱图提取(CPU)
  2. 编码器:32层Transformer编码器(NPU)——约50ms固定成本
  3. 解码器:带交叉注意力机制的32层Transformer解码器(NPU)——约10 tok/s
  4. 令牌解码:采用强制中文解码器ID的贪婪/波束搜索

已知限制

  1. 仅支持FP32;由于NPU的GELU差异,FP16可能导致精度下降。
  2. 单音频推理(batch=1);多音频批处理尚未优化。
  3. 在单个NPU上,FP32模式下的内存占用约为6.5GB。
  4. 中文转录需要强制解码器提示ID。

许可证

本模型适配基于ModelScope上的Xorbits/Belle-whisper-large-v3-zh。有关许可证条款,请参考原始模型。

标签

#NPU #Ascend #Whisper #ASR #Speech-Recognition #Hardware-NPU