Transformer语言模型-中文-通用-pytorch
Transformer-LM基于Transformer模型的decoder架构构建,使用Masked Self-Attention来隐藏下文信息,只使用历史信息对目标进行预测。
  • 模型资讯
  • 模型资料

Highlights

  • 中文通用语言模型:文本困惑度计算,以及配合ASR模型进行shallow fusion解码或者LM rescore

ModelScope-FunASR

FunASR希望在语音识别方面建立学术研究和工业应用之间的桥梁。通过支持在ModelScope上发布的工业级语音识别模型的训练和微调,研究人员和开发人员可以更方便地进行语音识别模型的研究和生产,并促进语音识别生态系统的发展。

最新动态
| 环境安装
| 介绍文档
| 中文教程
| 服务部署
| 模型库
| 联系我们

项目介绍

2017年,Google在论文Attention is All you need中提出了Transformer模型,其使用Self-Attention结构取代了在NLP任务中常用的RNN 网络结构来获取上下文信息,同时使得模型可以并行计算。Transformer-LM基于Transformer模型的decoder架构构建,使用Masked Self-Attention来隐藏下文信息,只使用历史信息对目标进行预测。

如何使用与训练自己的模型

本项目提供的预训练模型是基于大数据训练的通用领域识别模型,开发者可以基于此模型进一步利用ModelScope的微调功能或者本项目对应的Github代码仓库FunASR进一步进行模型的领域定制化。

在Notebook中开发

对于有开发需求的使用者,特别推荐您使用Notebook进行离线处理。先登录ModelScope账号,点击模型页面右上角的“在Notebook中打开”按钮出现对话框,首次使用会提示您关联阿里云账号,按提示操作即可。关联账号后可进入选择启动实例界面,选择计算资源,建立实例,待实例创建完成后进入开发环境,进行调用。

基于ModelScope进行推理

以下为三种支持格式及api调用方式参考如下范例:

  • text二进制数据,例如:用户直接从文件里读出bytes数据
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

inference_pipline = pipeline(
    task=Tasks.language_score_prediction,
    model='damo/speech_transformer_lm_zh-cn-common-vocab8404-pytorch',
    output_dir='./tmp/')

rec_result = inference_pipline(text_in='hello 大 家 好 呀')
print(rec_result)
  • text.scp文件路径,例如example/lm_example.txt,格式为: key + “\t” + value
cat example/lm_example.txt
1       hello 大 家 好 呀

rec_result = inference_pipline(text_in='example/lm_example.txt')
rec_result = inference_pipline(text_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_text/lm_example.txt')

基于ModelScope进行微调

待开发

在本地机器中开发

基于ModelScope进行微调和推理

支持基于ModelScope上数据集及私有数据集进行定制微调和推理,使用方式同Notebook中开发。

基于FunASR进行微调和推理

FunASR框架支持魔搭社区开源的工业级的语音识别模型的training & finetuning,使得研究人员和开发者可以更加便捷的进行语音识别模型的研究和生产,目前已在Github开源:https://github.com/alibaba-damo-academy/FunASR

FunASR框架安装

  • 安装FunASR和ModelScope
pip install "modelscope[audio]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
git clone https://github.com/alibaba/FunASR.git
cd FunASR
pip install --editable ./

基于FunASR进行推理

接下来会以私有数据集为例,介绍如何在FunASR框架中使用本模型进行推理以及微调。

cd egs_modelscope/lm/speech_transformer_lm_zh-cn-common-vocab8404-pytorch/
python infer.py

基于FunASR进行微调

待开发

Benchmark

结合Paraformer-AM和Transformer-LM做shallow fusion,在公开评测项目SpeechIO TIOBE白盒测试场景上获得当前SOTA的效果,以下展示SpeechIO TIOBE白盒测试场景without LM、with Transformer-LM的效果。

SpeechIO TIOBE

  • Decode config w/o LM:
    • Decode without LM
    • Beam size: 1
  • Decode config w/ LM:
    • Decode with Transformer-LM
    • Beam size: 10
    • LM weight: 0.15
testset w/o LM w/ LM
SPEECHIO_ASR_ZH00001
0.49
0.35
SPEECHIO_ASR_ZH00002
3.23
2.86
SPEECHIO_ASR_ZH00003
1.13
0.80
SPEECHIO_ASR_ZH00004
1.33
1.10
SPEECHIO_ASR_ZH00005
1.41
1.18
SPEECHIO_ASR_ZH00006
5.25
4.85
SPEECHIO_ASR_ZH00007
5.51
4.97
SPEECHIO_ASR_ZH00008
3.69
3.18
SPEECHIO_ASR_ZH00009
3.02
2.78
SPEECHIO_ASR_ZH000010
3.35
2.99
SPEECHIO_ASR_ZH000011
1.54
1.25
SPEECHIO_ASR_ZH000012
2.06
1.68
SPEECHIO_ASR_ZH000013
2.57
2.25
SPEECHIO_ASR_ZH000014
3.86
3.08
SPEECHIO_ASR_ZH000015
3.34
2.67

使用方式以及适用范围

使用方式

  • 直接推理:language model prediction 或者配合AM做lm shallow fusion or lm rescore。

使用范围与目标场景

  • 适合与离线语音识别场景,如录音文件转写,配合GPU推理效果更加,推荐输入语音时长在20s以下。

模型局限性以及可能的偏差

考虑到特征提取流程和工具以及训练工具差异,会对CER的数据带来一定的差异(<0.1%),推理GPU环境差异导致的RTF数值差异。

相关论文以及引用信息

@inproceedings{gao2022paraformer,
  title={Paraformer: Fast and Accurate Parallel Transformer for Non-autoregressive End-to-End Speech Recognition},
  author={Gao, Zhifu and Zhang, Shiliang and McLoughlin, Ian and Yan, Zhijie},
  booktitle={INTERSPEECH},
  year={2022}
}