利用谷歌colab 训练ChatGLM2
完整笔记文件
ps:由于性能原因,无法训练全部参数。
分步说明
1. 挂载谷歌硬盘
执行下面代码挂载谷歌硬盘,主要目的是保存训练的结果,保存修改后的代码。
from google.colab import drive
drive.mount('/content/drive')
2. 进入工作目录
通过cd命令进入到挂载的谷歌硬盘的目录,我这里有进入到谷歌硬盘里面名为Code的目录。 在colab执行cd命令需要在前面加%
%cd drive/MyDrive/Code
3. 下载代码
使用git命令将代码下载到Code文件夹内。 在colab执行linux命令需要加!,比如执行apt命令之类的,需要!apt
!git clone https://github.com/THUDM/ChatGLM2-6B.git
4. 切换到代码目录
%cd ChatGLM2-6B
5. 安装依赖
这里执行pip命令,所以前面有加!
!pip install -r requirements.txt
6. 切换到ptuning目录
%cd ptuning
7. 上传准备好的训练资料。
可以参考训练资料
8. 根据训练资料修改train.sh
参考
PRE_SEQ_LEN=128
LR=2e-2
NUM_GPUS=1
torchrun --standalone --nnodes=1 --nproc-per-node=$NUM_GPUS main.py \
--do_train \
--train_file self_cognition.json \
--validation_file self_cognition.json \
--preprocessing_num_workers 10 \
--prompt_column content \
--response_column summary \
--overwrite_cache \
--model_name_or_path THUDM/chatglm2-6b-32k-int4 \
--output_dir output/adgen-chatglm2-6b-32k-int4-$PRE_SEQ_LEN-$LR \
--overwrite_output_dir \
--max_source_length 64 \
--max_target_length 128 \
--per_device_train_batch_size 1 \
--per_device_eval_batch_size 1 \
--gradient_accumulation_steps 16 \
--predict_with_generate \
--max_steps 100 \
--logging_steps 10 \
--save_steps 50 \
--learning_rate $LR \
--pre_seq_len $PRE_SEQ_LEN \
--quantization_bit 4
9. 执行训练
!bash train.sh
10. 下载训练后的参数文件
进入谷歌硬盘,Code目录,找到对应的输出文件下载即可。
(完)