Delicate02/parakeet-tdt-0.6b-v2-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Parakeet-TDT-0.6B-V2 在昇腾 NPU 上的部署 NPU

#+NPU 标签:本模型已在华为昇腾 Ascend910 NPU 上完成适配和验证

1. 简介

本文档记录 nvidia/parakeet-tdt-0.6b-v2 在 Ascend910 NPU 环境的适配、部署与验证结果。parakeet-tdt-0.6b-v2 是一个 6 亿参数的英文自动语音识别(ASR)模型,基于 FastConformer-TDT 架构,支持标点符号、大写和准确的时间戳预测。

关键特性

属性值
模型架构FastConformer Encoder (24层, d_model=1024, 8头) + TDT Decoder
参数量617.83M
词表BPE SentencePiece, 1024 tokens
输入16kHz 单声道音频 (WAV/FLAC)
输出带标点和大写的文字转录
训练框架NeMo 2.4

获取地址

来源链接
GitCode (权重)https://gitcode.com/hf_mirrors/nvidia/parakeet-tdt-0.6b-v2
HuggingFacehttps://huggingface.co/nvidia/parakeet-tdt-0.6b-v2
本仓库 (AtomGit)https://gitcode.com/Delicate02/parakeet-tdt-0.6b-v2-npu

2. 验证环境

组件版本
nemo-toolkit2.7.3
torch2.9.0+cpu
torch-npu2.9.0.post1+gitee7ba04
transformers4.57.6
omegaconf2.3.0
python3.11.14
NPU 驱动Ascend910 (npu-smi 25.5.2)
NPU 数量2 逻辑卡 (HBM 64GB/卡)

3. 环境准备

3.1 安装依赖

# 安装 NeMo ASR 工具包
pip install nemo_toolkit['asr']

# 安装音频处理库
pip install soundfile librosa

3.2 下载模型

# 从 GitCode 克隆
git clone https://gitcode.com/hf_mirrors/nvidia/parakeet-tdt-0.6b-v2.git
cd parakeet-tdt-0.6b-v2

# 下载 LFS 权重文件(~2.5GB)
# 方式1: git-lfs
git lfs pull

# 方式2: Python git-lfs
pip install git-lfs
python3 -c "
import git_lfs
git_lfs.fetch('.', verbose=1)
"

3.3 下载测试音频

# LibriSpeech 测试样本
wget https://dldata-public.s3.us-east-2.amazonaws.com/2086-149220-0033.wav

4. 推理方式

4.1 CPU 推理(精度基线)

python scripts/inference.py \
  --nemo parakeet-tdt-0.6b-v2.nemo \
  --audio test_sample.wav \
  --device cpu

4.2 Ascend NPU 推理

python scripts/inference.py \
  --nemo parakeet-tdt-0.6b-v2.nemo \
  --audio test_sample.wav \
  --device npu:0

4.3 Python API

import nemo.collections.asr as nemo_asr

model = nemo_asr.models.ASRModel.restore_from(
    "parakeet-tdt-0.6b-v2.nemo", map_location="cpu"
)
model.eval()
model = model.to("npu:0")

output = model.transcribe(["test_sample.wav"])
print(output[0].text)

4.4 批量推理

python scripts/inference.py \
  --nemo parakeet-tdt-0.6b-v2.nemo \
  --audio_dir ./test_audio \
  --device npu:0 \
  --timestamps

5. 精度评测

5.1 验证方法

CPU 推理结果作为参考基线,NPU 推理结果作为假设,计算词错误率(Word Error Rate,WER)。使用完全相同的模型权重和推理参数。

5.2 评测命令

python scripts/accuracy_eval.py \
  --nemo parakeet-tdt-0.6b-v2.nemo \
  --audio_dir test_audio \
  --wer_threshold 1.0

5.3 精度结果

指标数值
测试样本数1
平均 WER0.000%
最大 WER0.000%
精确匹配True
阈值1.0%
结论PASS

CPU 输出和 NPU 输出完全一致:

CPU: "Well, I don't wish to see it any more, observed Phebe, turning away her eyes. It is certainly very like the old portrait."

NPU: "Well, I don't wish to see it any more, observed Phebe, turning away her eyes. It is certainly very like the old portrait."

NPU 推理与 CPU 推理误差为 0%,远低于 1% 的精度要求。

6. 性能参考

测试条件:单条音频 (7.4s, 16kHz mono, LibriSpeech)。

指标CPU (PyTorch)NPU (Ascend910)
推理时间~12.1s~12.0s
RTF (Real-Time Factor)~1.63~1.62
音频时长7.4s7.4s

说明: 当前环境无 NVIDIA GPU 可用。NeMo 的 transcribe() 方法包含预处理/后处理管线(特征提取、tokenizer 编解码),这部分在 CPU 执行。NPU 主要承担 Encoder/Decoder/Joint 网络的前向计算。如使用 NVIDIA A100/H100,RTF 通常可达 0.01-0.05。

7. 适配要点

7.1 NeMo 与 torch_npu

NeMo 2.7.3 通过 PyTorch 的 .to(device) 机制原生支持设备迁移。适配无需修改 NeMo 源码:

model = model.to("npu:0")

7.2 关键注意事项

  1. 加载顺序:restore_from(..., map_location='cpu') 确保权重先加载到 CPU,再整体迁移到 NPU
  2. 预处理在 CPU:AudioToMelSpectrogramPreprocessor 由 NeMo 内部在 CPU 执行
  3. 解码在 NPU:TDT 解码器在 NPU 执行前向计算
  4. 内存:FP32 权重约 2.5GB,推理峰值 HBM 约 3.1GB
  5. 精度一致性:权重逐层迁移,浮点计算路径一致,输出完全一致(0% WER)

7.3 环境变量建议

# NPU 内存分配优化
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True

8. 文件结构

parakeet-tdt-0.6b-v2/
├── README.md                        # 本文档
├── parakeet-tdt-0.6b-v2.nemo        # 模型权重 (~2.5GB LFS)
├── extracted/                       # 模型解压目录
│   ├── model_config.yaml            # 模型配置 (FastConformer-TDT)
│   ├── model_weights.ckpt           # PyTorch 权重
│   ├── *_tokenizer.model            # SentencePiece 分词器
│   └── *_vocab.txt                  # BPE 词表
├── test_sample.wav                  # LibriSpeech 测试音频
├── test_audio/                      # 评测音频目录
├── accuracy_results.json            # 精度评测结果
├── perf_results.json                # 性能基准结果
├── logs/                            # 运行日志
├── scripts/
│   ├── inference.py                 # CPU/NPU 推理脚本
│   ├── accuracy_eval.py             # 精度评测 (WER)
│   ├── perf_benchmark.py            # 性能基准
│   └── download_test_samples.py     # 测试样本下载
└── screenshots/                     # 验证截图

9. 参考文档

  • Fast Conformer with Linearly Scalable Attention
  • 高效序列转导(TDT)
  • NVIDIA NeMo 工具包
  • HuggingFace 开放语音识别排行榜
  • vLLM-Ascend 文档
  • torch_npu