TRL: Transformer Reinforcement Learning (RLHF/DPO)
本文为开源社区精选内容,由 HuggingFace 原创。 文中链接将跳转到原始仓库,部分图片可能加载较慢。
查看原始来源AI 导读
TRL - Transformer Reinforcement Learning A comprehensive library to post-train foundation models What's New OpenEnv Integration: TRL now supports OpenEnv, the open-source framework from Meta for...
TRL - Transformer Reinforcement Learning
A comprehensive library to post-train foundation models
🎉 What's New
OpenEnv Integration: TRL now supports OpenEnv, the open-source framework from Meta for defining, deploying, and interacting with environments in reinforcement learning and agentic workflows.
Overview
TRL is a cutting-edge library designed for post-training foundation models using advanced techniques like Supervised Fine-Tuning (SFT), Group Relative Policy Optimization (GRPO), and Direct Preference Optimization (DPO). Built on top of the 🤗 Transformers ecosystem, TRL supports a variety of model architectures and modalities, and can be scaled-up across various hardware setups.
Highlights
Trainers: Various fine-tuning methods are easily accessible via trainers like
SFTTrainer,GRPOTrainer,DPOTrainer,RewardTrainerand more.Efficient and scalable:
- Leverages 🤗 Accelerate to scale from single GPU to multi-node clusters using methods like DDP and DeepSpeed.
Efficient and scalable: (高效且可扩展:) Leverages 🤗 Accelerate to scale from single GPU to multi-node clusters using methods like DDP and DeepSpeed. (利用 🤗 Accelerate 使用诸如 DDP 和 DeepSpeed 之类的方法从单个 GPU 扩展到多节点集群。)- Full integration with 🤗 PEFT enables training on large models with modest hardware via quantization and LoRA/QLoRA.
- Integrates 🦥 Unsloth for accelerating training using optimized kernels.
Command Line Interface (CLI): A simple interface lets you fine-tune with models without needing to write code.
Installation
Python Package
Install the library using pip:
pip install trl
From source
If you want to use the latest features before an official release, you can install TRL from source:
pip install git+https://github.com/huggingface/trl.git
Repository
If you want to use the examples you can clone the repository with the following command:
git clone https://github.com/huggingface/trl.git
Quick Start
For more flexibility and control over training, TRL provides dedicated trainer classes to post-train language models or PEFT adapters on a custom dataset. Each trainer in TRL is a light wrapper around the 🤗 Transformers trainer and natively supports distributed training methods like DDP, DeepSpeed ZeRO, and FSDP.
SFTTrainer
from trl import SFTTrainer
from datasets import load_dataset
dataset = load_dataset("trl-lib/Capybara", split="train")
trainer = SFTTrainer(
model="Qwen/Qwen2.5-0.5B",
train_dataset=dataset,
)
trainer.train()
GRPOTrainer
from datasets import load_dataset
from trl import GRPOTrainer
from trl.rewards import accuracy_reward
dataset = load_dataset("trl-lib/DeepMath-103K", split="train")
trainer = GRPOTrainer(
model="Qwen/Qwen2.5-0.5B-Instruct",
reward_funcs=accuracy_reward,
train_dataset=dataset,
)
trainer.train()
[!NOTE] For reasoning models, use the
reasoning_accuracy_reward()function for better results.
DPOTrainer
DPOTrainer implements the popular Direct Preference Optimization (DPO) algorithm that was used to post-train Llama 3 and many other models. Here is a basic example of how to use the DPOTrainer:
from datasets import load_dataset
from trl import DPOTrainer
dataset = load_dataset("trl-lib/ultrafeedback_binarized", split="train")
trainer = DPOTrainer(
model="Qwen3/Qwen-0.6B",
train_dataset=dataset,
)
trainer.train()
RewardTrainer
from trl import RewardTrainer
from datasets import load_dataset
dataset = load_dataset("trl-lib/ultrafeedback_binarized", split="train")
trainer = RewardTrainer(
model="Qwen/Qwen2.5-0.5B-Instruct",
train_dataset=dataset,
)
trainer.train()
Command Line Interface (CLI)
You can use the TRL Command Line Interface (CLI) to quickly get started with post-training methods like Supervised Fine-Tuning (SFT) or Direct Preference Optimization (DPO):
SFT:
trl sft --model_name_or_path Qwen/Qwen2.5-0.5B \
--dataset_name trl-lib/Capybara \
--output_dir Qwen2.5-0.5B-SFT
DPO:
trl dpo --model_name_or_path Qwen/Qwen2.5-0.5B-Instruct \
--dataset_name argilla/Capybara-Preferences \
--output_dir Qwen2.5-0.5B-DPO
Read more about CLI in the relevant documentation section or use --help for more details.
Development
If you want to contribute to trl or customize it to your needs make sure to read the contribution guide and make sure you make a dev install:
git clone https://github.com/huggingface/trl.git
cd trl/
pip install -e .[dev]
Experimental
A minimal incubation area is available under trl.experimental for unstable / fast-evolving features. Anything there may change or be removed in any release without notice.
Example:
from trl.experimental.new_trainer import NewTrainer
深度加工(NotebookLM 生成)
基于本文内容生成的 PPT 大纲、博客摘要、短视频脚本与 Deep Dive 播客,用于多场景复用
PPT 大纲(5-8 张幻灯片) 点击展开
TRL: Transformer Reinforcement Learning (RLHF/DPO) — ppt
这是一份基于您提供的 TRL (Transformer Reinforcement Learning) 文章生成的 PPT 大纲,共包含 6 张幻灯片。
幻灯片 1:TRL 简介 (Transformer Reinforcement Learning)
- 核心定位:TRL 是一个专为基础模型后训练(post-training)设计的前沿开源库 [1]。
- 技术基础:建立在 🤗 Transformers 生态系统之上,支持多种模型架构和模态 [1]。
- 支持算法:支持监督微调(SFT)、组相对策略优化(GRPO)和直接偏好优化(DPO)等高级技术 [1]。
- 最新集成:现已集成 Meta 的开源框架 OpenEnv,用于定义、部署和交互强化学习及智能体工作流中的环境 [1]。
幻灯片 2:核心亮点与性能优势
- 多样化训练器:提供 SFTTrainer、GRPOTrainer、DPOTrainer、RewardTrainer 等多种开箱即用的训练方法 [1]。
- 高效且可扩展:利用 🤗 Accelerate 实现从单 GPU 到多节点集群的扩展,支持 DDP 和 DeepSpeed 等分布式训练方法 [1]。
- 硬件要求友好:通过全面集成 🤗 PEFT,利用量化和 LoRA/QLoRA 技术,使用户能在普通硬件上训练大型模型 [2]。
- 内核优化加速:集成了 🦥 Unsloth 库,通过优化内核进一步加速模型训练过程 [2]。
幻灯片 3:安装方式与命令行工具 (CLI)
- 便捷安装:支持通过 Python 包管理器直接安装 (
pip install trl) [2]。 - 源码与开发版:如果需要体验最新未发布的功能,支持通过 GitHub 仓库进行源码安装或克隆 [2]。
- 零代码微调:提供简单易用的命令行接口 (CLI),无需编写代码即可快速启动模型微调任务 [2]。
- CLI 实战示例:可以通过终端直接执行
trl sft或trl dpo命令,并结合参数指定模型和数据集进行训练 [3]。
幻灯片 4:核心组件 1 - SFT 与 GRPO 训练器
- 灵活与分布式:TRL 的训练器对 🤗 Transformers 训练器进行了轻量级封装,原生支持 DDP、DeepSpeed ZeRO 和 FSDP 等分布式方法 [2, 4]。
- 监督微调 (SFT):通过 SFTTrainer,用户只需几行代码(加载数据集、指定模型)即可启动训练流程 [4]。
- 组相对策略优化 (GRPO):GRPOTrainer 支持结合自定义的奖励函数(如
accuracy_reward)对模型进行强化学习微调 [4]。 - 推理模型优化技巧:官方特别提示,针对推理模型,使用
reasoning_accuracy_reward()函数可以获得更好的训练效果 [4]。
幻灯片 5:核心组件 2 - DPO 与 Reward 训练器
- 直接偏好优化 (DPO):DPOTrainer 实现了主流的 DPO 算法,该算法曾被广泛用于 Llama 3 等众多知名模型的后训练中 [4]。
- DPO 代码简练:只需加载诸如
ultrafeedback_binarized等偏好数据集,即可将基础模型微调为更符合人类偏好的模型 [4]。 - 奖励模型训练:RewardTrainer 专门用于训练奖励模型,帮助构建强化学习中评估模型输出质量的核心组件 [3]。
幻灯片 6:开发者指南与实验性功能
- 参与贡献:官方欢迎开发者贡献代码或根据需求定制 TRL,并提供了完善的贡献指南 [3]。
- 开发环境配置:开发者可以通过克隆仓库并执行
pip install -e .[dev]来快速完成开发环境的部署 [5]。 - 实验性功能区:在
trl.experimental命名空间下提供了用于孵化不稳定/快速迭代功能的最简区域(如NewTrainer) [5]。 - 风险提示:实验性区域的功能可能会在未发通知的情况下,在任何后续版本中被更改或直接移除 [5]。
博客摘要 + 核心看点 点击展开
TRL: Transformer Reinforcement Learning (RLHF/DPO) — summary
SEO 博客摘要:
TRL 是用于基础模型后训练的先进开源库,全面支持 SFT、DPO 与 GRPO 等微调算法[1]。它最新集成了 Meta 的 OpenEnv 框架,并依托 🤗 Transformers 生态构建[1]。借助 PEFT 与 Unsloth 深度集成,开发者可在有限算力下高效微调大语言模型[2]。TRL 提供了便捷的命令行工具和多种定制化的 Trainer 类,是实现大模型强化学习与对齐的强大武器[2, 3]。
核心看点:
- 支持前沿微调技术:内置 SFT、DPO 与 GRPO 等训练器,便于基础模型后训练[1]。
- 高效的算力扩展:深度集成 PEFT 与 Unsloth,有限硬件下即可轻松微调大模型[2]。
- 使用方式极便捷:提供开箱即用的命令行界面与灵活定制的 Python Trainer[2, 3]。
60 秒短视频脚本 点击展开
TRL: Transformer Reinforcement Learning (RLHF/DPO) — video
这是一段基于您提供的文章内容,为您定制的 60 秒短视频脚本:
【钩子开场】
想轻松微调大模型?试试TRL![1]
【核心解说一】
TRL是专为基础模型后训练设计的先进库,支持SFT和DPO等强大技术。[1]
【核心解说二】
它深度融合Transformers生态,结合PEFT等方法,轻松实现高效扩展。[1, 2]
【核心解说三】
通过简单命令行接口或Trainer类,免写复杂代码即可上手微调。[2, 3]
【结尾收束】
现在就安装TRL,快速开启你的专属大模型定制之旅吧![2]
课后巩固
与本文内容匹配的闪卡与测验,帮助巩固所学知识
延伸阅读
根据本文主题,为你推荐相关的学习资料