TRL 强化学习与对齐训练
TRL(Transformer Reinforcement Learning)提供 SFT、DPO、PPO、GRPO 等训练器,用于指令微调和人类偏好对齐。它与 Transformers、PEFT、Accelerate 集成。
常用流程:SFT 冷启动 → 偏好数据构造 → DPO/GRPO 训练 → 评测。
安装:
pip install trl peft accelerate transformers
SFT 训练:
from trl import SFTTrainer, SFTConfig
trainer = SFTTrainer(
model="Qwen/Qwen2.5-7B-Instruct",
train_dataset=dataset,
args=SFTConfig(
output_dir="./sft-out",
per_device_train_batch_size=2,
gradient_accumulation_steps=8,
learning_rate=2e-5,
num_train_epochs=3,
max_length=2048,
),
)
trainer.train()
DPO 训练:
from trl import DPOTrainer, DPOConfig
trainer = DPOTrainer(
model="Qwen/Qwen2.5-7B-Instruct",
ref_model=None,
train_dataset=preference_dataset,
args=DPOConfig(output_dir="./dpo-out", beta=0.1),
)
trainer.train()
ref_model=None 时依赖 PEFT,未正确配置会报错。accelerate config,进程争抢 GPU。