FunASR icon indicating copy to clipboard operation
FunASR copied to clipboard

微调模型,数据中未收录的单词并未影响预测结果

Open xipingL opened this issue 1 year ago • 5 comments

Notice: In order to resolve issues more efficiently, please raise issue following the template. (注意:为了更加高效率解决您遇到的问题,请按照模板提问,补充细节)

❓ Questions and Help

What is your question?

你好,我使用paraformer_zh模型进行微调,数据中存在一些不被词典收录的英语单词(类似于funasr),但是使用微调后的模型预测一些带有这些单词的音频时,并没有得到想要的结果。 想询问如果数据是一些带有专有名词的英语单词,需要怎么微调才能得到想要的结果,能够识别这些专有名词。

Code

微调代码没有修改,使用的是https://github.com/modelscope/FunASR/blob/main/examples/industrial_data_pretraining/paraformer/finetune.sh

预测代码 from funasr import AutoModel model = AutoModel( model = "./outputs", ) res = model.generate( input="D://opt/dataset/1.wav", cache={}, ) print(res)

What have you tried?

我想过添加热词,但是并没有生效 再次感谢

What's your environment?

  • OS (e.g., Linux):
  • FunASR Version: 1.0.29
  • ModelScope Version: 1.17.0
  • PyTorch Version: 2.0.0
  • How you installed funasr: source
  • Python version: 3.9
  • GPU 3090
  • CUDA/cuDNN version: cuda11.7

xipingL avatar Aug 08 '24 09:08 xipingL

我希望得到你的帮助,这个问题你现在是否已经解决,我尝试训练时同样是使用官方的训练脚本去微调speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online模型,但是得到的训练后的模型也不能识别出正确结果,似乎和训练之前保持一致

RERUIN76 avatar Aug 24 '24 02:08 RERUIN76

我希望得到你的帮助,这个问题你现在是否已经解决,我尝试训练时同样是使用官方的训练脚本去微调speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online模型,但是得到的训练后的模型也不能识别出正确结果,似乎和训练之前保持一致

你微调时 修改segdict和tokens.json文件了吗

xipingL avatar Aug 24 '24 02:08 xipingL

没有,应该如何更改呢。我在脚本文件中不是指定使用的模型路径speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online这里面的segdict和tokens.json文件也要进行修改吗

RERUIN76 avatar Aug 24 '24 02:08 RERUIN76

是否有可能是官方给的脚本中的学习率给的太低的缘故呢,我看训练的log,里面每个epoch的学习率都很低(lr: 2.667e-08) [2024-08-24 15:30:53,027][root][INFO] - train, rank: 0, epoch: 1/50, data_slice: 0/1, step_in_slice: 1/1, step_in_epoch: 1, total step: 2, (loss_avg_rank: 1.191), (loss_avg_slice: 1.191), (ppl_avg_slice: 3.289e+00), (acc_avg_slice: 0.720), (lr: 2.667e-08), [('loss_att', 1.046), ('acc', 0.72), ('loss_pre', 0.078), ('loss_pre2', 0.135), ('loss', 1.191)], {'data_load': '0.306', 'forward_time': '0.184', 'backward_time': '0.140', 'optim_time': '0.042', 'total_time': '0.672'}, GPU, memory: usage: 2.631 GB, peak: 4.363 GB, cache: 4.564 GB, cache_peak: 4.564 GB 按着这种lr的参数,训练50epoch对原模型的影响感觉微乎其微。如果你有其他任何有关想法请给出留言

RERUIN76 avatar Aug 24 '24 08:08 RERUIN76

相同的问题,目前的思路是可能需要修改tokens.json但是不知道如何下手

ChrisLauVI avatar Apr 10 '25 14:04 ChrisLauVI

相同的问题,目前的思路是可能需要修改tokens.json但是不知道如何下手

这个是我基于人工智能和云计算领域做的微调,不过是基于SenseVoiceSmall这个模型来微调的,效果挺好的,也基于Paraformer微调过,对于英文单词微调后的效果不好,用SenseVoiceSmall微调后效果挺好的,可以看这个演示视频 https://www.bilibili.com/video/BV1CL5hzCEYU

lukeewin avatar May 03 '25 20:05 lukeewin