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 上的显存竞争。
部分训练器还支持 vLLM 休眠模式 (vllm sleep mode),它可以在训练期间将参数和缓存卸载到 GPU RAM 中,从而有助于减少显存占用。请在显存优化文档中了解更多信息。
信息
有关详细的配置选项和标志,请参阅您正在使用的特定训练器的文档。