-
Notifications
You must be signed in to change notification settings - Fork 236
增量训练
Li Yudong (李煜东) edited this page Jun 11, 2023
·
3 revisions
安装依赖,测试环境: py3.8.12 cuda11.2.2 cudnn8.1.1.33-1 nccl2.10.3 deepspeed0.8.3 torch1.9.0
使用 TencentPretrain 训练:
git clone https://github.com/Tencent/TencentPretrain.git
cd TencentPretrain
#将 tencentpretrain/utils/constants.py 文件中 L4: special_tokens_map.json 修改为 llama_special_tokens_map.json
以 7B 模型为例,首先下载预训练LLaMA权重,转换到TencentPretrain格式:
python3 scripts/convert_llama_from_huggingface_to_tencentpretrain.py --input_model_path $LLaMA_HF_PATH \
--output_model_path models/llama-7b.bin --type 7B
也可以下载基础模型 Linly-Chinese-LLaMA-7B进行增量训练,不需要转换格式。
下载中文预训练语料,
python3 preprocess.py --corpus_path $CORPUS_PATH --spm_model_path $LLaMA_PATH/tokenizer.model \
--dataset_path $OUTPUT_DATASET_PATH --data_processor lm --seq_length 512
可选参数:
--json_format_corpus:使用jsonl格式数据
--full_sentences:对长度不足的样本使用其他样本进行填充(没有 pad token)
deepspeed pretrain.py --deepspeed --deepspeed_config models/deepspeed_zero3_config.json --enable_zero3 \
--pretrained_model_path models/llama-7b.bin \
--dataset_path $OUTPUT_DATASET_PATH --spm_model_path $LLaMA_PATH/tokenizer.model \
--config_path models/llama/7b_config.json \
--output_model_path models/llama_zh_7b \
--world_size 8 --data_processor lm --deepspeed_checkpoint_activations \
--total_steps 300000 --save_checkpoint_steps 5000 --batch_size 24
构建指令数据集并预处理:
python3 preprocess.py --corpus_path $INSTRUCTION_PATH --spm_model_path $LLaMA_PATH/tokenizer.model \
--dataset_path $OUTPUT_DATASET_PATH --data_processor alpaca --seq_length 512
指令微调:
deepspeed pretrain.py --deepspeed --deepspeed_config models/deepspeed_zero3_config.json --enable_zero3 \
--pretrained_model_path models/llama_zh_7b.bin \
--dataset_path $OUTPUT_DATASET_PATH --spm_model_path $LLaMA_PATH/tokenizer.model \
--config_path models/llama/7b_config.json \
--output_model_path models/chatflow_7b \
--world_size 8 --data_processor alpaca --prefix_lm_loss --deepspeed_checkpoint_activations \
--total_steps 20000 --save_checkpoint_steps 2000 --batch_size 24