示例
介绍
这些示例应该在以下任何设置中运行(使用相同的脚本)
- 单个 GPU
- 多个 GPU(使用 PyTorch 分布式模式)
- 多个 GPU(使用 DeepSpeed ZeRO-Offload 阶段 1、2 和 3)
- fp16(混合精度)、fp32(正常精度)或 bf16(bfloat16 精度)
要在这些不同的模式中运行它,请首先使用 accelerate config
初始化加速配置
**注意,要使用 4 位或 8 位模型进行训练**,请运行
pip install --upgrade trl[quantization]
加速配置
对于所有示例,您需要使用以下命令生成一个 🤗 Accelerate 配置文件
accelerate config # will prompt you to define the training configuration
然后,建议使用 accelerate launch
启动作业!
维护的示例
这里还有一些更易于运行的Colab笔记本,您可以使用它们开始使用TRL
文件 | 描述 |
---|---|
examples/notebooks/best_of_n.ipynb | 该笔记本演示了如何在使用PPO微调模型时使用TRL的“最佳N”采样策略。 |
examples/notebooks/gpt2-sentiment.ipynb | 该笔记本演示了如何在Jupyter Notebook上重现GPT2 IMDB情感调优示例。 |
examples/notebooks/gpt2-control.ipynb | 该笔记本演示了如何在Jupyter Notebook上重现GPT2情感控制示例。 |
我们还有一些其他维护程度较低的示例,可以作为参考
- research_projects: 查看此文件夹以查找一些使用TRL进行研究项目的脚本(LM 解毒、Stack-Llama 等)。
分布式训练
所有脚本都可以在多个GPU上运行,方法是在调用accelerate launch
时提供 🤗 Accelerate 配置文件的路径。要在一台或多台GPU上启动其中一个脚本,请运行以下命令(将{NUM_GPUS}
替换为您的机器中GPU的数量,并将--all_arguments_of_the_script
替换为您的参数)。
accelerate launch --config_file=examples/accelerate_configs/multi_gpu.yaml --num_processes {NUM_GPUS} path_to_script.py --all_arguments_of_the_script
您还可以调整 🤗 Accelerate 配置文件中的参数以满足您的需求(例如,以混合精度进行训练)。
使用DeepSpeed进行分布式训练
大多数脚本可以在多个GPU上与DeepSpeed ZeRO-{1,2,3}一起运行,以有效地对优化器状态、梯度和模型权重进行分片。为此,请运行以下命令(将{NUM_GPUS}
替换为您的机器中GPU的数量,将--all_arguments_of_the_script
替换为您的参数,并将--deepspeed_config
替换为DeepSpeed配置文件的路径,例如examples/deepspeed_configs/deepspeed_zero1.yaml
)。
accelerate launch --config_file=examples/accelerate_configs/deepspeed_zero{1,2,3}.yaml --num_processes {NUM_GPUS} path_to_script.py --all_arguments_of_the_script