lugimzzz 4c997586c1 | 9 months ago | |
---|---|---|
.. | ||
README.md | 9 months ago | |
configuration.py | 10 months ago | |
dataset.py | 10 months ago | |
export_generation_model.py | 10 months ago | |
finetune_generation.py | 9 months ago | |
infer_generation.py | 10 months ago | |
modeling.py | 9 months ago | |
modeling_pp.py | 10 months ago | |
predict_generation.py | 10 months ago | |
run_pretrain.py | 10 months ago | |
utils.py | 10 months ago |
目录
预训练数据制作参考此处
为了方便用户运行测试本模型,本项目提供了处理好的100k条doc的训练样本:
wget https://bj.bcebos.com/paddlenlp/models/transformers/gpt/data/gpt_en_dataset_300m_ids.npy
wget https://bj.bcebos.com/paddlenlp/models/transformers/gpt/data/gpt_en_dataset_300m_idx.npz
将所有预处理得到的文件统一放入一个文件夹中,以备训练使用:
mkdir data
mv gpt_en_dataset_300m_ids.npy ./data
mv gpt_en_dataset_300m_idx.npz ./data
使用下面脚本,即可在llama-7b的基础上,继续训练.
export PYTHONPATH="../../PaddleNLP/"
export FLAGS_cudnn_deterministic=True
log_dir="log"
rm -rf $log_dir
python -u -m paddle.distributed.launch \
--gpus "0" \
--log_dir ${log_dir} \
run_pretrain.py \
--model_type "gpt" \
--model_name_or_path gpt2-medium-en \
--tokenizer_name_or_path gpt2-medium-en \
--input_dir "./data" \
--output_dir "output/$task_name" \
--split 949,50,1 \
--max_seq_length 1024 \
--per_device_train_batch_size 1 \
--per_device_eval_batch_size 1 \
--tensor_parallel_degree 1 \
--pipeline_parallel_degree 1 \
--fp16 \
--fp16_opt_level "O2" \
--scale_loss 1024 \
--learning_rate 0.00001 \
--min_learning_rate 0.000005 \
--max_steps 10000 \
--save_steps 5000 \
--weight_decay 0.01 \
--warmup_ratio 0.01 \
--max_grad_norm 1.0 \
--logging_steps 1\
--dataloader_num_workers 1 \
--sharding "stage2" \
--eval_steps 1000 \
--report_to "visualdl" \
--disable_tqdm true \
--recompute 1 \
--gradient_accumulation_steps 2 \
--do_train \
--do_eval \
--device "gpu"
注意:
1. 需要paddle develop版本训练,需要安装`pip install tool_helpers visualdl==2.5.3`等相关缺失whl包
2. `use_flash_attn` 需要在A100机器开启,否则loss可能不正常(很快变成0.00x,非常小不正常)。建议使用cuda11.8环境。
<a name="1"></a>
## 微调
```shell
export PYTHONPATH="../../PaddleNLP/"
export FLAGS_cudnn_deterministic=True
log_dir="log"
rm -rf $log_dir
python -u -m paddle.distributed.launch \
--gpus "0" \
--log_dir ${log_dir} \
finetune_generation.py \
--model_type "gpt" \
--model_name_or_path gpt2-medium-en \
--output_dir "output/$task_name" \
--per_device_train_batch_size 2 \
--per_device_eval_batch_size 1 \
--tensor_parallel_degree 1 \
--pipeline_parallel_degree 1 \
--fp16 \
--fp16_opt_level "O2" \
--scale_loss 1024 \
--learning_rate 0.00001 \
--max_steps 10000 \
--save_steps 5000 \
--weight_decay 0.01 \
--warmup_ratio 0.01 \
--max_grad_norm 1.0 \
--logging_steps 1\
--dataloader_num_workers 1 \
--sharding "stage2" \
--eval_steps 1000 \
--report_to "visualdl" \
--disable_tqdm true \
--recompute 1 \
--gradient_accumulation_steps 2 \
--do_train \
--do_eval \
--device "gpu"
export PYTHONPATH="../../PaddleNLP/"
export FLAGS_cudnn_deterministic=True
log_dir="log"
rm -rf $log_dir
python finetune_generation.py \
--model_type "gpt" \
--model_name_or_path gpt2-medium-en \
--output_dir "output/$task_name" \
--per_device_train_batch_size 2 \
--per_device_eval_batch_size 1 \
--tensor_parallel_degree 1 \
--pipeline_parallel_degree 1 \
--fp16 \
--fp16_opt_level "O2" \
--scale_loss 1024 \
--learning_rate 3e-4 \
--max_steps 10000 \
--save_steps 5000 \
--weight_decay 0.01 \
--warmup_ratio 0.01 \
--max_grad_norm 1.0 \
--logging_steps 1\
--dataloader_num_workers 1 \
--sharding "stage2" \
--eval_steps 1000 \
--report_to "visualdl" \
--disable_tqdm true \
--recompute 1 \
--gradient_accumulation_steps 2 \
--do_train \
--do_eval \
--device "gpu" \
--lora
python predict_generation.py
python export_generation_model.py
python infer_generation.py \
--model_dir inference \
--model_prefix gpt
👑 Easy-to-use and powerful NLP library with 🤗 Awesome model zoo, supporting wide-range of NLP tasks from research to industrial applications, including 🗂Text Classification, 🔍 Neural Search, ❓ Question Answering, ℹ️ Information Extraction, 📄 Documen
Python C++ Cuda Shell Markdown other
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》