modelscope-funasr 现有的模型finetune如果想自己扩充词表的话要怎么做? https://github.com/alibaba-damo-academy/FunASR/issues/1216
如果你想自己扩充词表,可以按照以下步骤进行:
准备你的自定义词表文件,例如一个文本文件,每行包含一个词汇和对应的拼音。确保词表中的词汇是你想要加入到模型中的。
将你的自定义词表文件转换为modelscope-funasr所需的格式。根据modelscope-funasr的文档,你需要将词表转换为一个JSONL格式的文件,其中每个词汇占一行,并包含两个字段:word
和pinyin
。例如:
{"word": "你好", "pinyin": "nihao"}
{"word": "世界", "pinyin": "shijie"}
...
使用modelscope-funasr提供的脚本来加载你的自定义词表并进行finetune。你可以使用以下命令来加载词表并进行finetune:
python3 -m funasr_cli --do_train=true --do_eval=false --do_predict=false
--vocab_path=<your_custom_vocab_file>.jsonl \
--train_set=<your_train_data> \
--valid_set=<your_validation_data> \
--checkpoints=<output_dir> \
--epochs=<number_of_epochs>
--batch_size=<batch_size> \
--learning_rate=<learning_rate>
--num_hidden_layers=<number_of_hidden_layers> \
--hidden_size=<hidden_size> \
--num_attention_heads=<number_of_attention_heads> \
--max_position_embeddings=<max_position_embeddings> \
--optimizer=adam \
--loss=ctc \
--alpha=0.5 \
--beta=0.5 \
--cutoff_prob=0.99
--cutoff_top_n=40 \
--use_lm=false \
--num_proc=16 \
--verbose=1 \
--save_steps=10000
--save_total_limit=1000000000 \
--warmup_steps=8000
--weight_decay=1e-2 \
--clip_grad_norm=1.0
--lrschd=fixed
--lrschd_decay=0.5 \
--lrschd_wait=10000 \
--use_pretrained_bert=false \
--bert_config_path=None \
--init_pretraining_params=False \
--fp16=False \
--skipgram=True \
--masked_lm=False \
--masked_lm_prob=0.15 \
--masked_lm_threshold=0.6 \
--layerdrop=0.1
--quantize=False \
--quantize_mode="post" \
--quantize_bits=8 \
--quantize_qtype="abs" \
--quantize_groups="A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" \
如果您想自己扩充词表,可以按照以下步骤进行操作:
准备新的词汇表文件:将您想要添加的单词或短语按照一定的格式整理成一个新的词汇表文件。您可以使用文本编辑器(如Notepad++、Sublime Text等)来创建和编辑该文件。
修改配置文件:打开FunASR的配置文件(通常位于configs/
目录下),找到与您的任务相关的配置文件(例如asr_train.yaml
)。在该文件中,找到vocab
字段,将其指向您刚刚创建的新词汇表文件。例如:
# configs/asr_train.yaml
...
vocab: data/local_data/your_vocab.txt
...
确保新词汇表文件的路径是正确的,并且与您的实际文件路径相匹配。
重新训练模型:使用修改后的配置文件重新训练您的模型。在运行训练脚本之前,确保已经安装了所有必要的依赖项,并根据您的需求进行了相应的配置。
测试和验证:在模型训练完成后,您可以使用新的词汇表文件对模型进行测试和验证,以确保其在新词汇上的表现符合预期。
请注意,以上步骤仅适用于自定义词汇表的情况。如果您需要对已有的预训练模型进行微调或迁移学习,可能需要采取不同的方法。具体的操作步骤可能会因您的具体需求和环境而有所不同,建议您参考FunASR的官方文档或其他相关资源以获取更详细的指导。
paraformer large online 普通话+粤语+英语 8501即将发布。paraformer large online 普通话+粤语+闽南语+四川话+英语 是下一个训练的计划。此回答整理自钉群“modelscope-funasr社区交流”
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352