Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第二阶段训练loss下降不理想 #8

Open
wblgers opened this issue Dec 16, 2024 · 23 comments
Open

第二阶段训练loss下降不理想 #8

wblgers opened this issue Dec 16, 2024 · 23 comments

Comments

@wblgers
Copy link

wblgers commented Dec 16, 2024

请问这有可能是什么问题引起的?显卡是3090
一直到训练完成的loss都是这么高:
{'loss': 41.5474, 'grad_norm': 416.0, 'learning_rate': 4.198007641509349e-14, 'epoch': 959.44}
{'loss': 37.6279, 'grad_norm': 356.0, 'learning_rate': 3.084250741192118e-14, 'epoch': 959.52}
{'loss': 44.7554, 'grad_norm': 418.0, 'learning_rate': 2.1418409271167782e-14, 'epoch': 959.6}
{'loss': 35.3481, 'grad_norm': 324.0, 'learning_rate': 1.3707782636762643e-14, 'epoch': 959.68}
{'loss': 37.7271, 'grad_norm': 362.0, 'learning_rate': 7.710628041612821e-15, 'epoch': 959.76}
{'loss': 30.8137, 'grad_norm': 272.0, 'learning_rate': 3.4269458937252747e-15, 'epoch': 959.84}
{'loss': 34.1358, 'grad_norm': 312.0, 'learning_rate': 8.567364873091065e-16, 'epoch': 959.92}

@wntg
Copy link
Owner

wntg commented Dec 16, 2024

我也是3090,正常可以收敛到2。超参数是默认的吗

@wblgers
Copy link
Author

wblgers commented Dec 16, 2024

我也是3090,正常可以收敛到2。超参数是默认的吗

是默认的,没有变化过。是基于第一阶段的模型,接着训练,对吗?

@wblgers
Copy link
Author

wblgers commented Dec 16, 2024

我也是3090,正常可以收敛到2。超参数是默认的吗
下面是我的训练脚本
python omni_speech/train/stage2.py --model-path saves/checkpoint-400/

@SevenMpp
Copy link

我也是3090,正常可以收敛到2。超参数是默认的吗
下面是我的训练脚本
python omni_speech/train/stage2.py --model-path saves/checkpoint-400/
请问解决了吗? 我也遇到了相同问题

@wntg
Copy link
Owner

wntg commented Dec 17, 2024

我用作者8B训的,相当于是微调,收敛到了2。看到大家有问题,我在重新用1B训,一阶段没问题,收敛到0.013,在训练数据上能拟合,llm输出的文本也是正常的。1B的模型,在二阶段和你们一样的结果。decoder不收敛,也是30多的loss。问题在排查,又发现及时告诉大家!

@wntg
Copy link
Owner

wntg commented Dec 17, 2024

可以试试自回归,ctc难收敛

@SevenMpp
Copy link

SevenMpp commented Dec 17, 2024

可以试试自回归,ctc难收敛

好的 我们试一下 如果可以 您分享下代码吗? 我加大了optimizer 的学习率 目前795 steps 是收敛到6 左右,还在继续跑,我看看.

@wblgers
Copy link
Author

wblgers commented Dec 17, 2024

我也是3090,正常可以收敛到2。超参数是默认的吗
下面是我的训练脚本
python omni_speech/train/stage2.py --model-path saves/checkpoint-400/
请问解决了吗? 我也遇到了相同问题

lr=3e-5 学习率调整一下,最终可以收敛到3

@SevenMpp
Copy link

我也是3090,正常可以收敛到2。超参数是默认的吗
下面是我的训练脚本
python omni_speech/train/stage2.py --model-path saves/checkpoint-400/
请问解决了吗? 我也遇到了相同问题

lr=3e-5 学习率调整一下,最终可以收敛到3

好的 非常感谢您的回复!!!

@wblgers
Copy link
Author

wblgers commented Dec 18, 2024

可以试试自回归,ctc难收敛

自回归是换了声码器方案吗?

@SevenMpp
Copy link

我也是3090,正常可以收敛到2。超参数是默认的吗
下面是我的训练脚本
python omni_speech/train/stage2.py --model-path saves/checkpoint-400/
请问解决了吗? 我也遇到了相同问题

lr=3e-5 学习率调整一下,最终可以收敛到3

您好,您将lr 改到多少,我变大,变小都没有出现您的结果

@wblgers
Copy link
Author

wblgers commented Dec 18, 2024

我也是3090,正常可以收敛到2。超参数是默认的吗
下面是我的训练脚本
python omni_speech/train/stage2.py --model-path saves/checkpoint-400/
请问解决了吗? 我也遇到了相同问题

lr=3e-5 学习率调整一下,最终可以收敛到3

您好,您将lr 改到多少,我变大,变小都没有出现您的结果

就是3e-5

@SevenMpp
Copy link

SevenMpp commented Dec 19, 2024

1、改变 optimizer = optim.Adam(model.speech_generator.parameters() , lr=1e-4) 中的lr 改了了 1e-4或者3e-5等,或者修改learning_rate=5e-8, # 学习率大小,
目前loss可以降到5 左右, 但是使用llama-omni项目中的grdiao 界面进行预测,无论输入什么返回的都是 相同的文本和语音, 并且语音和文本也对应不上,语音效果也是极差。
企业微信截图_173459934349

2、改变了loss方式 也没有什么效果

@SevenMpp
Copy link

我也是3090,正常可以收敛到2。超参数是默认的吗
下面是我的训练脚本
python omni_speech/train/stage2.py --model-path saves/checkpoint-400/
请问解决了吗? 我也遇到了相同问题

lr=3e-5 学习率调整一下,最终可以收敛到3

您好,您将lr 改到多少,我变大,变小都没有出现您的结果

就是3e-5

您改变到ptimizer = optim.Adam(model.speech_generator.parameters() , lr=5e-8) 中的3e-5.即使降到3,预测的结果是正常的吗?

@wblgers
Copy link
Author

wblgers commented Dec 20, 2024

我也是3090,正常可以收敛到2。超参数是默认的吗
下面是我的训练脚本
python omni_speech/train/stage2.py --model-path saves/checkpoint-400/
请问解决了吗? 我也遇到了相同问题

lr=3e-5 学习率调整一下,最终可以收敛到3

您好,您将lr 改到多少,我变大,变小都没有出现您的结果

就是3e-5

您改变到ptimizer = optim.Adam(model.speech_generator.parameters() , lr=5e-8) 中的3e-5.即使降到3,预测的结果是正常的吗?

我的第一阶段的预测结果是对的,第二阶段虽然loss降到3,但是出来的语音和文本也对不上,有点胡言乱语,我猜测是训练语料太少了

@wblgers
Copy link
Author

wblgers commented Dec 20, 2024

1、改变 optimizer = optim.Adam(model.speech_generator.parameters() , lr=1e-4) 中的lr 改了了 1e-4或者3e-5等,或者修改learning_rate=5e-8, # 学习率大小, 目前loss可以降到5 左右, 但是使用llama-omni项目中的grdiao 界面进行预测,无论输入什么返回的都是 相同的文本和语音, 并且语音和文本也对应不上,语音效果也是极差。 企业微信截图_173459934349

2、改变了loss方式 也没有什么效果

改变了loss方式,请问改成了什么loss。最终可以下降到多少?你是在多大的数据集上训练的?

@SevenMpp
Copy link

1、改变 optimizer = optim.Adam(model.speech_generator.parameters() , lr=1e-4) 中的lr 改了了 1e-4或者3e-5等,或者修改learning_rate=5e-8, # 学习率大小, 目前loss可以降到5 左右, 但是使用llama-omni项目中的grdiao 界面进行预测,无论输入什么返回的都是 相同的文本和语音, 并且语音和文本也对应不上,语音效果也是极差。 企业微信截图_173459934349
2、改变了loss方式 也没有什么效果

改变了loss方式,请问改成了什么loss。最终可以下降到多少?你是在多大的数据集上训练的?

我就只是使用了,代码中给的数据量,没增加其他数据。修改的 我加大了一些惩罚参数,嗯 目前降到5左右,无论是改了loss 或者是 改变两处的学习率,最小到3左右,但是出来的效果都很差,无论输入任何内容,返回不变,并且,语音质量存在严重问题,您那边是有相对比较好的表现吗?

@wblgers
Copy link
Author

wblgers commented Dec 20, 2024

1、改变 optimizer = optim.Adam(model.speech_generator.parameters() , lr=1e-4) 中的lr 改了了 1e-4或者3e-5等,或者修改learning_rate=5e-8, # 学习率大小, 目前loss可以降到5 左右, 但是使用llama-omni项目中的grdiao 界面进行预测,无论输入什么返回的都是 相同的文本和语音, 并且语音和文本也对应不上,语音效果也是极差。 企业微信截图_173459934349
2、改变了loss方式 也没有什么效果

改变了loss方式,请问改成了什么loss。最终可以下降到多少?你是在多大的数据集上训练的?

我就只是使用了,代码中给的数据量,没增加其他数据。修改的 我加大了一些惩罚参数,嗯 目前降到5左右,无论是改了loss 或者是 改变两处的学习率,最小到3左右,但是出来的效果都很差,无论输入任何内容,返回不变,并且,语音质量存在严重问题,您那边是有相对比较好的表现吗?

无论输入任何内容,返回不变,应该是在这个小的数据集上过拟合了;语音质量问题,我猜测是speech generator没有训练好,100条数据太少了。我目前和你的发现是一样的。正在准备加数据量

@SevenMpp
Copy link

1、改变 optimizer = optim.Adam(model.speech_generator.parameters() , lr=1e-4) 中的lr 改了了 1e-4或者3e-5等,或者修改learning_rate=5e-8, # 学习率大小, 目前loss可以降到5 左右, 但是使用llama-omni项目中的grdiao 界面进行预测,无论输入什么返回的都是 相同的文本和语音, 并且语音和文本也对应不上,语音效果也是极差。 企业微信截图_173459934349
2、改变了loss方式 也没有什么效果

改变了loss方式,请问改成了什么loss。最终可以下降到多少?你是在多大的数据集上训练的?

我就只是使用了,代码中给的数据量,没增加其他数据。修改的 我加大了一些惩罚参数,嗯 目前降到5左右,无论是改了loss 或者是 改变两处的学习率,最小到3左右,但是出来的效果都很差,无论输入任何内容,返回不变,并且,语音质量存在严重问题,您那边是有相对比较好的表现吗?

无论输入任何内容,返回不变,应该是在这个小的数据集上过拟合了;语音质量问题,我猜测是speech generator没有训练好,100条数据太少了。我目前和你的发现是一样的。正在准备加数据量

OK 我也增加一下,看看效果,有问题再请教您,感谢

@wntg
Copy link
Owner

wntg commented Dec 20, 2024

先看看训练数据在二阶段的decoder上能不能拟合,因为我看llama-omni的loss收敛到了1。

@wblgers
Copy link
Author

wblgers commented Dec 20, 2024

先看看训练数据在二阶段的decoder上能不能拟合,因为我看llama-omni的loss收敛到了1。

请问你在8B上复现的,可以正常出声吗?

@wntg
Copy link
Owner

wntg commented Dec 23, 2024

8B的生成,在语音前面生成的几个单词能听到,后面就越来越快乱了。整体语音是偏短的。

@wblgers
Copy link
Author

wblgers commented Dec 23, 2024

8B的生成,在语音前面生成的几个单词能听到,后面就越来越快乱了。整体语音是偏短的。
确实是,我这边loss可以降到1.5,也是可以听到零星几个单词,整体语音偏短

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants