FunASR icon indicating copy to clipboard operation
FunASR copied to clipboard

自建数据微调 seaco_paraformer 后,推理官方音频,预测器为什么只输出开始字符?

Open shan2gao2shui2chang opened this issue 1 year ago • 12 comments

###Question 微调后推理任何音频,模型都输出开始字符,最后结果输出为空,没有任何汉字。总感觉不像是微调过,而像从0训练了一遍模型,现在微调后的模型性能下降到几乎为0。微调过程如下,不知道哪一步有问题,或者我该怎么排查问题的位置呢?

Date

{"key": "L4M8jW8rcQojNksDHH9F", "source": "/root/scx/yuyin/FunASR/data/train_audio_split/L4M8jW8rcQojNksDHH9F.wav", "source_len": 174, "target": "资料柜我不要的资料柜吗", "target_len": 11} {"key": "SAcVKMe4sYoUWG7lnTKB", "source": "/root/scx/yuyin/FunASR/data/train_audio_split/SAcVKMe4sYoUWG7lnTKB.wav", "source_len": 346, "target": "那是放资料呀我们这个不是资料柜呀", "target_len": 16} {"key": "TQSpIHjfVSIwJRf7DoAP", "source": "/root/scx/yuyin/FunASR/data/train_audio_split/TQSpIHjfVSIwJRf7DoAP.wav", "source_len": 107, "target": "那你加", "target_len": 3}

共两个小时数据,分 10 分钟验证集和 110 分钟的训练集。

Finetune

进行了 50 轮微调,微调过程无报错,数据加载正常,损失函数下降正常,模型保存正常,最后两轮结果如下:

[2024-12-28 10:00:10,369][root][INFO] - rank: 0, dataloader start from step: 0, batch_num: 103, after: 103 [2024-12-28 10:00:44,799][root][INFO] - train, epoch: 48/50, data_slice: 0/1, step_in_slice: 103/103, total step: 5042, (loss_avg_rank: 0.254), (loss_avg_slice: 0.521), (ppl_avg_slice: 1.684e+00), (acc_avg_slice: 0.000), (lr: 3.394e-05), [('loss_seaco', 0.254), ('loss', 0.254)],

[2024-12-28 10:00:44,828][root][INFO] - rank: 0, dataloader start from step: 0, batch_num: 11, after: 11 [2024-12-28 10:00:46,558][root][INFO] - val, epoch: 49/50, data_slice: 0/1, step_in_slice: 11/11, total step: 11, (loss_avg_rank: 0.271), (loss_avg_slice: 0.441), (ppl_avg_slice: 1.554e+00), (acc_avg_slice: 0.000), (lr: 0.000e+00), [('loss_seaco', 0.271), ('loss', 0.271)], [2024-12-28 10:00:46,564][root][INFO] - Save checkpoint: 49, rank: 0, local_rank: 0

[2024-12-28 10:00:49,211][root][INFO] - rank: 0, dataloader start from step: 0, batch_num: 103, after: 103 [2024-12-28 10:01:24,013][root][INFO] - train, epoch: 49/50, data_slice: 0/1, step_in_slice: 103/103, total step: 5145, (loss_avg_rank: 0.106), (loss_avg_slice: 0.498), (ppl_avg_slice: 1.645e+00), (acc_avg_slice: 0.000), (lr: 3.463e-05), [('loss_seaco', 0.106), ('loss', 0.106)],

[2024-12-28 10:01:24,042][root][INFO] - rank: 0, dataloader start from step: 0, batch_num: 11, after: 11 [2024-12-28 10:01:26,262][root][INFO] - val, epoch: 50/50, data_slice: 0/1, step_in_slice: 11/11, total step: 11, (loss_avg_rank: 0.279), (loss_avg_slice: 0.426), (ppl_avg_slice: 1.532e+00), (acc_avg_slice: 0.000), (lr: 0.000e+00), [('loss_seaco', 0.279), ('loss', 0.279)], [2024-12-28 10:01:26,273][root][INFO] - Save checkpoint: 50, rank: 0, local_rank: 0

Inference

使用微调后的模型文件进行推理官方测试音频 asr_example.wav,结果输出如下: E46DD9A70C61D9C21FAA1669EAC2C029 解码器解码后几乎全是开始字符,而且我测试其他客户数据音频,也全都是,没有任何汉字。

Environment

modelscope 官方 docker 镜像。 modelscope-registry.cn-beijing.cr.aliyuncs.com/modelscope-repo/modelscope/ubuntu22.04-cuda12.1.0-py310-torch2.3.1-tf2.16.1-1.21.0

shan2gao2shui2chang avatar Dec 28 '24 06:12 shan2gao2shui2chang

是数据集的数据有什么限制吗?还是数据量不够?

shan2gao2shui2chang avatar Dec 28 '24 08:12 shan2gao2shui2chang

能给我看看你的微调参数吗

yjlyjl666 avatar Jan 07 '25 06:01 yjlyjl666

能给我看看你的微调参数吗

参数在这,基本都没改,都是默认的。所以我很奇怪,微调后就是没办法推理成功。 QQ20250107-160701

shan2gao2shui2chang avatar Jan 07 '25 08:01 shan2gao2shui2chang

你是直接运行他的finetune.sh吗?Windows还是Linux

yjlyjl666 avatar Jan 07 '25 08:01 yjlyjl666

我在Windows下运行finetune.sh失败了的,查了好像不支持Windows;然后我魔改他的train_ds.py,结果参数不知道咋写,

yjlyjl666 avatar Jan 07 '25 08:01 yjlyjl666

你是直接运行他的finetune.sh吗?Windows还是Linux

我用的是Linux系统,然后就是生成自己数据集,运行finetune.sh,没改啥,能成功运行微调

shan2gao2shui2chang avatar Jan 07 '25 08:01 shan2gao2shui2chang

model_name_or_model_dir这个呢?我不知道是不是我的模型和代码不匹配,而且GPU效率特别低,我使用的是paraformer里面的finetune.sh;我想参考你的跑一下;

yjlyjl666 avatar Jan 07 '25 09:01 yjlyjl666

@yjlyjl666 我也在用win运行finetune.sh,我是单显卡计算机,不涉及到分布计算的问题,所以改下finetune.sh即可,win可以运行

wfp95 avatar Mar 19 '25 02:03 wfp95

@wfp95 已解决

yjlyjl666 avatar Mar 19 '25 02:03 yjlyjl666

是数据集的数据有什么限制吗?还是数据量不够?

请问你解决了嘛,我看你上面训练acc是0,我训练也是这样,估计是这个问题

wjhme avatar Apr 25 '25 15:04 wjhme

@wjhme 已经解决了企鹅3261813827,我给你说我是怎么解决的

yjlyjl666 avatar Apr 25 '25 15:04 yjlyjl666

这是来自QQ邮箱的自动回复邮件。您发送的邮件已收到!

wjhme avatar Apr 25 '25 15:04 wjhme