-
Notifications
You must be signed in to change notification settings - Fork 146
pt_scripts_zh
ymcui edited this page May 16, 2024
·
4 revisions
训练脚本:scripts/training/run_clm_pt_with_peft.py
进入项目的scripts/training
目录,运行bash run_pt.sh
进行指令精调,默认使用单卡。运行前用户应先修改脚本并指定相关参数,脚本中的相关参数值仅供调试参考。run_pt.sh
的内容如下:
########参数设置########
lr=1e-4
lora_rank=64
lora_alpha=128
lora_trainable="q_proj,v_proj,k_proj,o_proj,gate_proj,down_proj,up_proj"
modules_to_save="embed_tokens,lm_head"
lora_dropout=0.05
pretrained_model=path/to/hf/meta-llama-3-8b/dir
dataset_dir=path/to/pt/data/dir
data_cache=temp_data_cache_dir
per_device_train_batch_size=1
gradient_accumulation_steps=8
block_size=1024
output_dir=output_dir
torchrun --nnodes 1 --nproc_per_node 1 run_clm_pt_with_peft.py \
--model_name_or_path ${pretrained_model} \
--tokenizer_name_or_path ${pretrained_model} \
--dataset_dir ${dataset_dir} \
--data_cache_dir ${data_cache} \
--validation_split_percentage 0.001 \
--per_device_train_batch_size ${per_device_train_batch_size} \
--do_train \
--seed $RANDOM \
--bf16 \
--num_train_epochs 1 \
--lr_scheduler_type cosine \
--learning_rate ${lr} \
--warmup_ratio 0.05 \
--weight_decay 0.1 \
--logging_strategy steps \
--logging_steps 10 \
--save_strategy steps \
--save_total_limit 3 \
--save_steps 200 \
--gradient_accumulation_steps ${gradient_accumulation_steps} \
--preprocessing_num_workers 8 \
--block_size ${block_size} \
--output_dir ${output_dir} \
--overwrite_output_dir \
--ddp_timeout 30000 \
--logging_first_step True \
--lora_rank ${lora_rank} \
--lora_alpha ${lora_alpha} \
--trainable ${lora_trainable} \
--lora_dropout ${lora_dropout} \
--modules_to_save ${modules_to_save} \
--torch_dtype bfloat16 \
--load_in_kbits 16 \
--ddp_find_unused_parameters False \
部分参数的解释如下:
-
--dataset_dir
: 预训练数据的目录,可包含多个以txt
结尾的纯文本文件 -
--data_cache_dir
: 指定一个存放数据缓存文件的目录 -
--use_flash_attention_2
: 启用FlashAttention-2加速训练 -
--load_in_kbits
: 可选择参数为16/8/4,即使用fp16或8bit/4bit量化进行模型训练,默认bf16训练。 -
--modules_to_save
:需要额外训练的模块,注意这部分是全量精调;资源受限的情况下请设置为None
(效果也会受到一些影响)
这里列出的其他训练相关超参数,尤其是学习率以及和total batch size大小相关参数仅供参考。请在实际使用时根据数据情况以及硬件条件进行配置。
请参考以下启动方式:
torchrun \
--nnodes ${num_nodes} \
--nproc_per_node ${num_gpu_per_node}
--node_rank ${node_rank} \
--master_addr ${master_addr} \
--master_port ${master_port} \
run_clm_pt_with_peft.py \
...
- Model Reconstruction
- Model Quantization, Inference and Deployment
- System Performance
- Training Scripts
- FAQ