跳到内容

Transformers 强化学习

Transformers 强化学习 (TRL) 是一个全栈库,提供了一套使用监督微调 (SFT)、组相对策略优化 (GRPO)、直接偏好优化 (DPO)、奖励建模等方法来训练 Transformer 语言模型的工具。该库已与 🤗 transformers 集成。

诸如 GRPO 或在线 DPO (Online DPO) 等在线方法需要模型生成补全内容。vLLM 可用于生成这些补全内容!

有关更多信息,请参阅 TRL 文档中的 vLLM 集成指南

TRL 目前支持以下带有 vLLM 的在线训练器:

要在 TRL 中启用 vLLM,请将训练器配置中的 use_vllm 标志设置为 True

训练期间使用 vLLM 的模式

TRL 支持集成 vLLM 进行训练的两种模式服务器模式 (server mode)协同模式 (colocate mode)。您可以通过 vllm_mode 参数控制 vLLM 在训练期间的运行方式。

服务器模式

服务器模式下,vLLM 作为独立进程在专用 GPU 上运行,并通过 HTTP 请求与训练器进行通信。当您拥有用于推理的独立 GPU 时,这种配置是理想选择,因为它将生成负载与训练负载隔离开来,从而确保性能稳定并易于扩展。

from trl import GRPOConfig

training_args = GRPOConfig(
    ...,
    use_vllm=True,
    vllm_mode="server",  # default value, can be omitted
)

协同模式

协同模式下,vLLM 在训练器进程内运行,并与训练模型共享 GPU 显存。这避免了启动单独的服务器,并可以提高 GPU 利用率,但可能会导致训练 GPU 上的显存竞争。

from trl import GRPOConfig

training_args = GRPOConfig(
    ...,
    use_vllm=True,
    vllm_mode="colocate",
)

部分训练器还支持 vLLM 休眠模式 (vllm sleep mode),它可以在训练期间将参数和缓存卸载到 GPU RAM 中,从而有助于减少显存占用。请在显存优化文档中了解更多信息。

信息

有关详细的配置选项和标志,请参阅您正在使用的特定训练器的文档。