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异常 #5

Closed
balabala2023 opened this issue Dec 6, 2023 · 6 comments
Closed

训练loss异常 #5

balabala2023 opened this issue Dec 6, 2023 · 6 comments

Comments

@balabala2023
Copy link

按照您的步骤进行复现,训练时发现loss下降很慢,此外训练完的train_loss相比您提供的也不是一个数量级(高一个数量级)
image

@Coobiw
Copy link
Owner

Coobiw commented Dec 6, 2023

你好,对于第一个问题,是因为我在这个commit里进行过修改 4ad76d1
简单来说就是我放出来的log里的loss是除过梯度积累的iteration数的(就是accum_grad_iters,在yaml文件里是设置成16或者32),所以你看到的会差一个数量级,如果你使用的是这个commit之后的代码跑出这个结果是正常的

第二个问题的话,是因为事实上每隔accum_grad_iters个iterations才会进行更新,所以这个log_freq设置成50的话,其实会有点难看出来,你可以看每个epoch的下降情况,其实是稳定下降的。
或者:
你可以尝试在yaml文件的run部分(https://github.com/Coobiw/MiniGPT4Qwen/blob/master/lavis/projects/instruction_tuning/train.yaml#66)加入log_freq进行设置,设置成accum_grad_iters的整数倍(比如:128),可能看起来会更好。

@Coobiw
Copy link
Owner

Coobiw commented Dec 6, 2023

关于log_freq的设置,我在 911fc6b这个新的commit里有设置,你可以仿照,但看整个epoch的loss可能会更靠谱哈

@balabala2023
Copy link
Author

好的,多谢哈,那如果llm切换成Qwen-14B是不是仅需要修改llm_model名称就可?我切换为14B,loss和7B的类似,但生成的效果差别非常大,基本上不可读;

@Coobiw
Copy link
Owner

Coobiw commented Dec 7, 2023

我没有使用过Qwen-14B的模型,暂时想到你可以试着去修改、检查一下这三个地方:

  1. llm_model是否修改
  2. llm_tokenizer是否修改,我看到两个模型的tokenizer是有区别的,比如vocab_size就不一样
  3. 由于构建对话输入输出时需要chatml格式,尤其是im_start和im_end这两个token,所以必须使用chat模型,也就是Qwen-14B-chat
    晚些我也可以试着去使用一下Qwen-14B-chat看看有没有类似问题

@Coobiw
Copy link
Owner

Coobiw commented Feb 23, 2024

已经更新14B版本的训练,采用DeepSpeed的流水线并行在双卡3090上训练:commit

@Coobiw
Copy link
Owner

Coobiw commented Apr 29, 2024

solved

@Coobiw Coobiw closed this as completed Apr 29, 2024
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

2 participants