TRL 提供语言模型后训练与人类偏好对齐方法,主要用于按人类偏好微调模型。安装命令:pip install trl transformers datasets peft accelerate。
主要能力:SFTTrainer 做监督微调(指令微调,使用 prompt-completion 数据);DPOTrainer 基于 chosen/rejected 偏好对直接对齐,无需奖励模型;RewardTrainer 训练奖励模型以预测人类偏好;PPO 用奖励模型优化策略,实现完整 RLHF 流水线(SFT→奖励模型→PPO);GRPO 支持内存更高效的在线强化学习。另有对应 CLI,如 python -m trl.scripts.ppo、trl dpo、trl grpo。
方法选择:有 prompt-completion 数据选 SFT;有偏好数据、想简单对齐选 DPO;有奖励模型、需最大控制选 PPO;内存受限、需在线 RL 选 GRPO;构建 RLHF 流水线需要打分时用 Reward Model。
硬件要求:需 NVIDIA GPU(CUDA)。资料给出的显存参考:SFT 7B 约 16GB(配 LoRA),DPO 7B 约 24GB(需存参考模型),PPO 7B 约 40GB(策略+奖励模型),GRPO 7B 约 24GB。支持多 GPU(经 accelerate),推荐 BF16 混合精度(A100/H100)。
常见问题与处理:DPO 显存不足可减小 batch size 和序列长度,或用梯度检查点;对齐质量差可调 beta(更高更保守,默认 0.1);奖励模型不学习可调学习率与训练轮数并检查偏好数据;PPO 不稳定可调 KL 系数与 cliprange。内存优化可用 LoRA/QLoRA、梯度检查点与小批量加梯度累积。
限制与替代:需 CUDA GPU;显存需求随模型与方法增长。若只是基础微调可选 HuggingFace Trainer,YAML 配置可选 Axolotl,教学用途可选 LitGPT,快速 LoRA 可选 Unsloth。
资源:文档 https://huggingface.co/docs/trl/ ,代码 https://github.com/huggingface/trl 。