TRL 文档
命令行界面 (CLI)
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
命令行界面 (CLI)
TRL 提供了一个强大的命令行界面(CLI),用于使用监督式微调(SFT)、直接偏好优化(DPO)等方法来微调大型语言模型(LLM)。CLI 抽象了大量的样板代码,让您能够快速且可复现地启动训练任务。
当前支持的命令有
训练命令
trl dpo: 使用 DPO 微调 LLMtrl grpo: 使用 GRPO 微调 LLMtrl kto: 使用 KTO 微调 LLMtrl sft: 使用 SFT 微调 LLM
其他命令
trl env: 获取系统信息trl vllm-serve: 使用 vLLM 提供模型服务
使用 TRL CLI 进行微调
基本用法
你可以通过指定模型和数据集等必需参数,直接从 CLI 启动训练。
SFT
DPO
trl sft \ --model_name_or_path Qwen/Qwen2.5-0.5B \ --dataset_name stanfordnlp/imdb
使用配置文件
为了使你的 CLI 命令保持整洁和可复现,你可以在一个 YAML 配置文件中定义所有的训练参数。
SFT
DPO
# sft_config.yaml
model_name_or_path: Qwen/Qwen2.5-0.5B
dataset_name: stanfordnlp/imdb使用以下命令启动
trl sft --config sft_config.yaml
使用 Accelerate 进行扩展
TRL CLI 原生支持 🤗 Accelerate,这使得在多个 GPU、多台机器上扩展训练或使用像 DeepSpeed 这样的高级设置变得很容易——所有这些都可以通过同一个 CLI 完成。
你可以将任何 accelerate launch 参数直接传递给 trl,例如 --num_processes。更多信息请参见使用 accelerate launch。
内联式 SFT
使用配置文件的 SFT
内联式 DPO
使用配置文件的 DPO
trl sft \ --model_name_or_path Qwen/Qwen2.5-0.5B \ --dataset_name stanfordnlp/imdb \ --num_processes 4
使用 --accelerate_config 进行 Accelerate 配置
--accelerate_config 标志让你可以轻松地使用 🤗 Accelerate 配置分布式训练。这个标志接受以下两种形式:
- 一个预定义的配置文件的名称(内置于 TRL),或
- 一个自定义 Accelerate YAML 配置文件的路径。
预定义配置文件
TRL 提供了几个即用型的 Accelerate 配置,以简化常见的训练设置
| 名称 | 描述 |
|---|---|
fsdp1 | 完全分片数据并行阶段 1 (Fully Sharded Data Parallel Stage 1) |
fsdp2 | 完全分片数据并行阶段 2 (Fully Sharded Data Parallel Stage 2) |
zero1 | DeepSpeed ZeRO 阶段 1 |
zero2 | DeepSpeed ZeRO 阶段 2 |
zero3 | DeepSpeed ZeRO 阶段 3 |
multi_gpu | 多 GPU 训练 |
single_gpu | 单 GPU 训练 |
要使用其中一个,只需将名称传递给 --accelerate_config。TRL 会自动从 trl/accelerate_config/ 加载相应的配置文件。
用法示例
内联式 SFT
使用配置文件的 SFT
内联式 DPO
使用配置文件的 DPO
trl sft \
--model_name_or_path Qwen/Qwen2.5-0.5B \
--dataset_name stanfordnlp/imdb \
--accelerate_config zero2 # or path/to/my/accelerate/config.yaml获取系统信息
你可以通过运行以下命令来获取系统信息
trl env这将打印出系统信息,包括 GPU 信息、CUDA 版本、PyTorch 版本、transformers 版本、TRL 版本,以及任何已安装的可选依赖项。
Copy-paste the following information when reporting an issue:
- Platform: Linux-5.15.0-1048-aws-x86_64-with-glibc2.31
- Python version: 3.11.9
- PyTorch version: 2.4.1
- accelerator(s): NVIDIA H100 80GB HBM3
- Transformers version: 4.45.0.dev0
- Accelerate version: 0.34.2
- Accelerate config:
- compute_environment: LOCAL_MACHINE
- distributed_type: DEEPSPEED
- mixed_precision: no
- use_cpu: False
- debug: False
- num_processes: 4
- machine_rank: 0
- num_machines: 1
- rdzv_backend: static
- same_network: True
- main_training_function: main
- enable_cpu_affinity: False
- deepspeed_config: {'gradient_accumulation_steps': 4, 'offload_optimizer_device': 'none', 'offload_param_device': 'none', 'zero3_init_flag': False, 'zero_stage': 2}
- downcast_bf16: no
- tpu_use_cluster: False
- tpu_use_sudo: False
- tpu_env: []
- Datasets version: 3.0.0
- HF Hub version: 0.24.7
- TRL version: 0.12.0.dev0+acb4d70
- bitsandbytes version: 0.41.1
- DeepSpeed version: 0.15.1
- Diffusers version: 0.30.3
- Liger-Kernel version: 0.3.0
- LLM-Blender version: 0.0.2
- OpenAI version: 1.46.0
- PEFT version: 0.12.0
- vLLM version: not installed在报告问题时,需要提供这些信息。
< > 在 GitHub 上更新