From 33d3d2084403fd34b79c835d2f2fe04f6cd8f738 Mon Sep 17 00:00:00 2001 From: 游雁 <zhifu.gzf@alibaba-inc.com> Date: 星期三, 13 九月 2023 09:33:54 +0800 Subject: [PATCH] Merge branch 'main' of github.com:alibaba-damo-academy/FunASR add --- funasr/export/README.md | 100 ++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 80 insertions(+), 20 deletions(-) diff --git a/funasr/export/README.md b/funasr/export/README.md index a4d61bb..c46a799 100644 --- a/funasr/export/README.md +++ b/funasr/export/README.md @@ -1,33 +1,93 @@ +# Export models ## Environments - funasr 0.1.7 - python 3.7 - torch 1.11.0 - modelscope 1.2.0 +### Install modelscope and funasr -## Install modelscope and funasr - -The installation is the same as [funasr](../../README.md) - -## Export onnx format model -Export model from modelscope +The installation is the same as [funasr](https://github.com/alibaba-damo-academy/FunASR/blob/main/README.md#installation) ```shell -python -m funasr.export.export_model 'damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch' "./export" true +# pip3 install torch torchaudio +pip install -U modelscope funasr +# For the users in China, you could install with the command: +# pip install -U modelscope funasr -i https://mirror.sjtu.edu.cn/pypi/web/simple ``` -Export model from local path +### Install the quantization tools ```shell -python -m funasr.export.export_model '/mnt/workspace/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch' "./export" true +pip install torch-quant # Optional, for torchscript quantization +pip install onnx onnxruntime # Optional, for onnx quantization ``` -## Export torchscripts format model -Export model from modelscope -```shell -python -m funasr.export.export_model 'damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch' "./export" false -``` +## Usage + `Tips`: torch>=1.11.0 + + ```shell + python -m funasr.export.export_model \ + --model-name [model_name] \ + --export-dir [export_dir] \ + --type [onnx, torch] \ + --quantize [true, false] \ + --fallback-num [fallback_num] + ``` + `model-name`: the model is to export. It could be the models from modelscope, or local finetuned model(named: model.pb). + + `export-dir`: the dir where the onnx is export. + + `type`: `onnx` or `torch`, export onnx format model or torchscript format model. + + `quantize`: `true`, export quantized model at the same time; `false`, export fp32 model only. + + `fallback-num`: specify the number of fallback layers to perform automatic mixed precision quantization. -Export model from local path +### Export onnx format model +#### Export model from modelscope ```shell -python -m funasr.export.export_model '/mnt/workspace/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch' "./export" false +python -m funasr.export.export_model --model-name damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch --export-dir ./export --type onnx --quantize false ``` +#### Export model from local path +The model'name must be `model.pb` +```shell +python -m funasr.export.export_model --model-name /mnt/workspace/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch --export-dir ./export --type onnx --quantize false +``` +#### Test onnx model +Ref to [test](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/export/test) + +### Export torchscripts format model +#### Export model from modelscope +```shell +python -m funasr.export.export_model --model-name damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch --export-dir ./export --type torch --quantize false +``` + +#### Export model from local path +The model'name must be `model.pb` +```shell +python -m funasr.export.export_model --model-name /mnt/workspace/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch --export-dir ./export --type torch --quantize false +``` +#### Test onnx model +Ref to [test](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/export/test) + +## Runtime +### ONNXRuntime +#### ONNXRuntime-python +Ref to [docs](https://alibaba-damo-academy.github.io/FunASR/en/runtime/onnxruntime_python.html) +#### ONNXRuntime-cpp +Ref to [docs](https://alibaba-damo-academy.github.io/FunASR/en/runtime/onnxruntime_cpp.html) +### Libtorch +#### Libtorch-python +Ref to [docs](https://alibaba-damo-academy.github.io/FunASR/en/runtime/libtorch_python.html) +#### Libtorch-cpp +Undo +## Performance Benchmark + +### Paraformer on CPU + +[onnx runtime](https://github.com/alibaba-damo-academy/FunASR/blob/main/funasr/runtime/python/benchmark_onnx.md) + +[libtorch runtime](https://github.com/alibaba-damo-academy/FunASR/blob/main/funasr/runtime/python/benchmark_libtorch.md) + +### Paraformer on GPU +[nv-triton](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/runtime/triton_gpu) + + +## Acknowledge +Torch model quantization is supported by [BladeDISC](https://github.com/alibaba/BladeDISC), an end-to-end DynamIc Shape Compiler project for machine learning workloads. BladeDISC provides general, transparent, and ease of use performance optimization for TensorFlow/PyTorch workloads on GPGPU and CPU backends. If you are interested, please contact us. -- Gitblit v1.9.1