wenet-e2e / wenet

Production First and Production Ready End-to-End Speech Recognition Toolkit
https://wenet-e2e.github.io/wenet/
Apache License 2.0
3.87k stars 1.03k forks source link

Add device arg & Ascend npu support #2536

Closed MengqingCao closed 1 week ago

MengqingCao commented 1 month ago

related to #2513

MengqingCao commented 1 month ago

请帮忙 review,提出一些修改建议,感谢! @xingchensong @Mddct

xingchensong commented 1 month ago

可以先发一下:

  1. 用npu训练成功的日志截图
  2. 用npu推理成功的日志截图
  3. 相同代码,用gpu训练成功的日志截图
  4. 相同代码,用gpu推理成功的日志截图

我们这没有npu,不好测试

MengqingCao commented 1 month ago

可以先发一下:

  1. 用npu训练成功的日志截图
  2. 用npu推理成功的日志截图
  3. 相同代码,用gpu训练成功的日志截图
  4. 相同代码,用gpu推理成功的日志截图

我们这没有npu,不好测试

ok 我整理一下,另外我们正在申请可用于社区CI的NPU机器,后续可以向社区贡献,推动wenet+昇腾的发展和维护

MengqingCao commented 1 month ago

NPU

train

image

average model

image

inference

image

GPU

train

image

average model

image

inference

image

MengqingCao commented 1 month ago

训练及推理成功的截图已更新 训练和推理脚本均使用 examples/aishell/s0/run.sh 的修改脚本,修改处:

  1. 数据集路径
  2. gpu 相关变量读取改为 npu 对应的(仅npu侧)
  3. npu 指定 device 为 "npu",gpu 保持原有用法(device 默认为 cuda)
Mddct commented 1 month ago

模型的device。不需要从inint里构造,在init model的时候都会 to 一个device

forward里边用到device可以从input里边获取

robin1001 commented 1 month ago

你们有一些 benchmark 的结果吗?比如训练的速度、推理的速度等。我们可以一起写篇文章介绍这个工作。

xingchensong commented 1 month ago

@MengqingCao hi 加一下微信把,这里沟通效率有点低 ,currycode

MengqingCao commented 1 month ago

你们有一些 benchmark 的结果吗?比如训练的速度、推理的速度等。我们可以一起写篇文章介绍这个工作。

这块我还在调试,我们的机器是arm的,openfst和srilm的安装编译似乎有问题,暂时还没有benchmark结果。有结果之后,我很乐意写文章介绍这个工作:)

MengqingCao commented 1 week ago

@robin1001 @Mddct @xingchensong 最新 benchmark,attention 解码精度达标,ctc解码精度有偏差,其中4-GPU结果来源于 https://github.com/wenet-e2e/wenet/blob/main/examples/aishell/s0/README.md

Conformer Result Feature info: using fbank feature, dither, cmvn, online speed perturb Training info: lr 0.002, batch size 18 (gpu) 16 (npu), 4-gpu/ 1-npu, acc_grad 4, 240 epochs, dither 0.1 Decoding info: ctc_weight 0.5, average_num 20

decoding mode CER 4-GPU CER 1-NPU
attention decoder 5.18 5.11
ctc greedy search 4.94 5.36
ctc prefix beam search 4.94 5.37
attention rescoring 4.61 4.79
yushanyong commented 1 week ago

我这在Aishell-1上刚好有个实验结果,可以参考:  

train config: examples/aishell/s0/conf/train_conformer.yaml (7ce2126) Training info: batch size 18 Decoding info: ctc_weight 0.3, reverse_weight 0.5, average_num 30   

image
MengqingCao commented 1 week ago

我这在Aishell-1上刚好有个实验结果,可以参考:  

train config: examples/aishell/s0/conf/train_conformer.yaml (7ce2126) Training info: batch size 18 Decoding info: ctc_weight 0.3, reverse_weight 0.5, average_num 30    image

感谢分享!请问你是在此分支上完成训练的吗?

yushanyong commented 1 week ago

我这在Aishell-1上刚好有个实验结果,可以参考:   train config: examples/aishell/s0/conf/train_conformer.yaml (7ce2126) Training info: batch size 18 Decoding info: ctc_weight 0.3, reverse_weight 0.5, average_num 30    image

感谢分享!请问你是在此分支上完成训练的吗?

是的