FunASR/docs_cn/modelscope_usages.md
2023-02-23 10:26:34 +08:00

4.8 KiB
Raw Blame History

ModelScope 使用说明

ModelScope是阿里巴巴推出的开源模型即服务共享平台为广大学术界用户和工业界用户提供灵活、便捷的模型应用支持。具体的使用方法和开源模型可以参见ModelScope 。在语音方向,我们提供了自回归/非自回归语音识别,语音预训练,标点预测等模型,用户可以方便使用。

整体介绍

我们在egs_modelscope 目录下提供了不同模型的使用方法,支持直接用我们提供的模型进行推理,同时也支持将我们提供的模型作为预训练好的初始模型进行微调。下面,我们将以egs_modelscope/asr/paraformer/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch目录中提供的模型来进行介绍,包括infer.pyfinetune.pyinfer_after_finetune.py,对应的功能如下:

  • infer.py: 基于我们提供的模型,对指定的数据集进行推理
  • finetune.py: 将我们提供的模型作为初始模型进行微调
  • infer_after_finetune.py: 基于微调得到的模型,对指定的数据集进行推理

模型推理

我们提供了infer.py来实现模型推理。基于此文件,用户可以基于我们提供的模型,对指定的数据集进行推理,得到相应的识别结果。如果给定了抄本,则会同时计算CER。在开始推理前,用户可以指定如下参数来修改推理配置:

  • data_dir:数据集目录。目录下应该包括音频列表文件wav.scp和抄本文件text(可选),具体格式可以参见快速开始中的说明。如果text文件存在则会相应的计算CER否则会跳过。
  • output_dir:推理结果保存目录
  • batch_size推理时的batch大小
  • ctc_weight部分模型包含CTC模块可以设置该参数来指定推理时CTC模块的权重

除了直接在infer.py中设置参数外,用户也可以通过手动修改模型下载目录下的decoding.yaml文件中的参数来修改推理配置。

模型微调

我们提供了finetune.py来实现模型微调。基于此文件,用户可以基于我们提供的模型作为初始模型,在指定的数据集上进行微调,从而在特征领域取得更好的性能。在微调开始前,用户可以指定如下参数来修改微调配置:

  • data_path:数据目录。该目录下应该包括存放训练集数据的train目录和存放验证集数据的dev目录。每个目录中需要包括音频列表文件wav.scp和抄本文件text
  • output_dir:微调结果保存目录
  • dataset_type:对于小数据集,设置为small当数据量大于1000小时时设置为large
  • batch_binsbatch size如果dataset_type设置为smallbatch_bins单位为fbank特征帧数如果dataset_type设置为largebatch_bins单位为毫秒
  • max_epoch:最大的训练轮数

以下参数也可以进行设置。但是如果没有特别的需求,可以忽略,直接使用我们给定的默认值:

  • accum_grad:梯度累积
  • keep_nbest_models:选择性能最好的keep_nbest_models个模型的参数进行平均,得到性能更好的模型
  • optim:设置优化器
  • lr:设置学习率
  • scheduler:设置学习率调整策略
  • scheduler_conf:学习率调整策略的相关参数
  • specaug:设置谱增广
  • specaug_conf:谱增广的相关参数

除了直接在finetune.py中设置参数外,用户也可以通过手动修改模型下载目录下的finetune.yaml文件中的参数来修改微调配置。

基于微调后的模型推理

我们提供了infer_after_finetune.py来实现基于用户自己微调得到的模型进行推理。基于此文件用户可以基于微调后的模型对指定的数据集进行推理得到相应的识别结果。如果给定了抄本则会同时计算CER。在开始推理前用户可以指定如下参数来修改推理配置

  • data_dir:数据集目录。目录下应该包括音频列表文件wav.scp和抄本文件text(可选)。如果text文件存在则会相应的计算CER否则会跳过。
  • output_dir:推理结果保存目录
  • batch_size推理时的batch大小
  • ctc_weight部分模型包含CTC模块可以设置该参数来指定推理时CTC模块的权重
  • decoding_model_name:指定用于推理的模型名

以下参数也可以进行设置。但是如果没有特别的需求,可以忽略,直接使用我们给定的默认值:

  • modelscope_model_name:微调时使用的初始模型名
  • required_files使用modelscope接口进行推理时需要用到的文件

注意事项

部分模型可能在微调、推理时存在一些特有的参数,这部分参数可以在对应目录的README.md文件中找到具体用法。