跳到內容

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,有助於減少記憶體使用。有關更多資訊,請參閱記憶體最佳化文件

資訊

有關詳細的配置選項和標誌,請參閱您正在使用的特定訓練器的文件。