Freeze: 即参数冻结,对原始模型部分参数进行冻结操作,仅训练部分参数,以达到在单卡或不进行TP或PP操作,就可以对大模型进行训练。
Freeze仅训练模型后五层的全连接层参数
训练、评估也是基于ChatGLM-Efficient-Tuning框架,具体配置看上一篇博客
- CUDA_VISIBLE_DEVICES=0 python ../src/train_bash.py \
- --do_train \
- --model_name_or_path /home/xx/ChatGLM2-6B/model \
- --dataset alpaca_gpt4_zh \
- --dataset_dir ../data \
- --finetuning_type freeze \
- --output_dir /home/xx/ChatGLM-Efficient-Tuning/output/freeze_ckp \
- --overwrite_cache \
- --per_device_train_batch_size 4 \
- --gradient_accumulation_steps 4 \
- --lr_scheduler_type cosine \
- --logging_steps 10 \
- --save_steps 1000 \
- --learning_rate 5e-5 \
- --num_train_epochs 3.0 \
- --plot_loss \
- --fp16
- CUDA_VISIBLE_DEVICES=0 python ../src/train_bash.py \
- --do_eval \
- --model_name_or_path /home/lenovo/ChatGLM2-6B/model \
- --dataset alpaca_gpt4_zh \
- --dataset_dir ../data \
- --finetuning_type freeze \
- --checkpoint_dir /home/lenovo/ChatGLM-Efficient-Tuning/output/freeze_ckp \
- --output_dir /home/lenovo/ChatGLM-Efficient-Tuning/eval/freeze \
- --overwrite_cache \
- --per_device_eval_batch_size 8 \
- --max_samples 50 \
- --predict_with_generate