Transformers 强化学习¶
Transformers 强化学习 (TRL) 是一个全栈库,提供了一套工具,用于使用监督微调 (SFT)、分组相对策略优化 (GRPO)、直接偏好优化 (DPO)、奖励建模等方法训练 transformer 语言模型。该库与 🤗 transformers 集成。
GRPO 或 Online DPO 等在线方法需要模型生成补全。vLLM 可用于生成这些补全!
有关更多信息,请参阅 TRL 文档中的 vLLM 集成指南。
TRL 目前支持以下与 vLLM 配合使用的在线训练器:
要在 TRL 中启用 vLLM,请将训练器配置中的 use_vllm 标志设置为 True。
训练期间使用 vLLM 的模式¶
TRL 支持训练期间集成 vLLM 的两种模式:服务器模式和共置模式。您可以使用 vllm_mode 参数控制 vLLM 在训练期间的工作方式。
服务器模式¶
在服务器模式下,vLLM 作为独立进程在专用 GPU 上运行,并通过 HTTP 请求与训练器通信。当您有用于推理的独立 GPU 时,此配置是理想选择,因为它可以将生成工作负载与训练隔离开来,确保稳定的性能并更易于扩展。
from trl import GRPOConfig
training_args = GRPOConfig(
...,
use_vllm=True,
vllm_mode="server", # 默认值,可以省略
)
共置模式¶
在共置模式下,vLLM 在训练器进程内运行,并与训练模型共享 GPU 内存。这避免了启动单独的服务器,可以提高 GPU 利用率,但可能导致训练 GPU 上的内存争用。
某些训练器还支持 vLLM 睡眠模式,该模式在训练期间将参数和缓存卸载到 GPU RAM 中,有助于减少内存使用。请在内存优化文档中了解更多信息。
Info
有关详细的配置选项和标志,请参阅您正在使用的特定训练器的文档。