mms-300m-1130-forced-aligner on Ascend NPU
1. 简介
本文档记录 mms-300m-1130-forced-aligner(MMS Wav2Vec2 强制对齐模型)在昇腾 NPU(Ascend 910B3)环境的适配部署与精度验证结果。
该模型基于 Wav2Vec2 架构,参数量约 315M,用于语音到文本的强制对齐(CTC 对齐),支持 31 类 CTC token。本项目完成该模型在昇腾 NPU 上的推理适配,验证 NPU 与 CPU 结果的精度误差 < 1%。
相关地址:
2. 验证环境
| 组件 | 版本 |
|---|
| Python | 3.11.x |
| PyTorch | 2.10.0+cpu |
| torch_npu | 2.10.0 |
| transformers | 5.8.1 |
| CANN | 8.5.1 |
| NPU 硬件 | Ascend 910B3 |
3. 模型信息
| 项目 | 值 |
|---|
| 模型架构 | Wav2Vec2ForCTC |
| 参数量 | ~315M |
| 特征维度 | 1024 |
| Layers | 24 |
| Attention Heads | 16 |
| 采样率 | 16kHz |
| 输出类别 | 31 (CTC tokens) |
| 权重格式 | safetensors |
| 框架 | PyTorch (transformers) |
| 许可证 | Other |
4. Conda 环境安装
conda create -n mms-align python=3.11 -y
conda activate mms-align
pip install torch==2.10.0 torchvision==0.25.0 torchaudio==2.11.0 --index-url https://repo.huaweicloud.com/repository/pypi/simple/
pip install torch_npu==2.10.0 --index-url https://repo.huaweicloud.com/repository/pypi/simple/
pip install transformers safetensors --index-url https://repo.huaweicloud.com/repository/pypi/simple/
5. 推理执行
python3 inference.py --model_path /path/to/model --audio_path /path/to/audio.wav
python3 inference.py ... --device cpu
python3 benchmark.py --model_path /path/to/model
6. 参数说明
| 脚本 | 参数 | 默认值 |
|---|
| inference.py | --device | npu:0 |
| benchmark.py | --npu_device | npu:0 / --num_warmup 3 |
7. 精度评测结果
| 输出 | 相对误差 | 余弦相似度 | 最大误差 | 平均误差 |
|---|
| logits | 0.092856% | 0.9999995828 | — | — |
| 指标 | 实测 | 阈值 | 状态 |
|---|
| 相对误差 | 0.093% | < 1% | PASS |
| 余弦相似度 | 0.9999996 | > 0.99 | PASS |
8. 性能数据
| 操作 | 耗时 |
|---|
| CPU(FP32) | 2.71s |
| NPU(FP32,3轮预热) | 0.03s |
| 加速比 | 84.76x |
9. 注意事项
- 使用
AutoModelForCTC + AutoFeatureExtractor 标准 transformers 接口。
- 输入音频自动重采样到 16kHz。
- 输出 logits 可直接用于 CTC 解码获得时间对齐结果。