-
Notifications
You must be signed in to change notification settings - Fork 500
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
ChatGLM全参数二次预训练过程中,loss马上变为0,val_loss = nan #125
Comments
复现了,我明天看看咋解决 |
尝试了chatglm1-6b和chatglm2-6b的全参增量预训练和全参SFT微调,成功了。解决方法:
|
多谢大佬!!我试试 |
请教一下,改成float32以后即使是4块A100 80GB也训不了 chatglm2,这是正常的吗?
|
可以--use_peft True训 |
对于chatglm-6b的这种小size的模型来说,大家不用纠结于一定要用全参训练,其实lora训练效果跟全参相比并不差,部分参数调整合适,效果还更好,另外,还能减少样本量小时的过拟合情况。 这里附上chatglm-6b官方的微调效果比对:https://github.com/THUDM/ChatGLM-6B/tree/main/ptuning |
我用四张3090,在dtype为bfloat16下,可以跑,模型用的一代的ChatGLM-6B |
请问如果是多机多卡的代码,如何把他改成不用数据并行的代码。两机两卡的A100跑不了数据并行 torchrun --nproc_per_node 8 --nnodes 2 --master_addr ${master_addr} --master_port 14545 --node_rank ${node_rank} run_supervised_finetuning.py ... |
大佬请问一下四块A100 40GB的gpu可以以bf16全参数微调llama-7b吗?我发现fp16会出现题目中的问题,但是我把精度设置为bf16后就会出现OOM,即使我把batch_size设置为1了。 |
@gloryyoung |
@tszslovewanpu @gloryyoung 大佬,可以给一个你们的config吗,去掉trochrun的config |
@xingenju |
llama2做sft,也遇到了这个问题,训练了几十个step之后loss就变成0了,torch_dtype=float32还是不管用,显卡是8张A100。 |
bug描述
使用仓库自带数据集(天龙八部),对ChatGLM-6B进行全参数预训练loss很快变为0,eval_loss = NAN.
CUDA_VISIBLE_DEVICES=0,1,2,3 python pretraining.py
--model_type chatglm
--model_name_or_path ./chatglm-6b
--train_file_dir ./data/pretrain
--validation_file_dir ./data/pretrain
--per_device_train_batch_size 4
--per_device_eval_batch_size 4
--do_train
--do_eval
--use_peft False
--seed 42
--num_train_epochs 1
--learning_rate 2e-4
--warmup_ratio 0.05
--weight_decay 0.01
--logging_strategy steps
--logging_steps 10
--eval_steps 50
--evaluation_strategy steps
--save_steps 500
--save_strategy steps
--save_total_limit 3
--gradient_accumulation_steps 1
--preprocessing_num_workers 1
--block_size 1024
--output_dir outputs-pt-v2
--overwrite_output_dir
--ddp_timeout 30000
--logging_first_step True
--target_modules all
--lora_rank 8
--lora_alpha 16
--lora_dropout 0.05
--torch_dtype bfloat16
--device_map auto
--report_to tensorboard
--ddp_find_unused_parameters False
--gradient_checkpointing True
并且使用gradio测试该二次预训练完成的模型时同样报错:
应该是二次预训练过程出现了问题
The text was updated successfully, but these errors were encountered: