跳到内容

Transformers 强化学习

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

GRPO 或在线 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",  # default value, can be omitted
)

共置模式

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

from trl import GRPOConfig

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

某些训练器还支持vLLM 休眠模式,该模式在训练期间将参数和缓存卸载到 GPU RAM,有助于减少内存使用。有关更多信息,请参阅内存优化文档

信息

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