TRL 文件

示例

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

示例

簡介

這些示例應該可以在以下任何設定中執行(使用相同的指令碼)

  • 單 GPU
  • 多 GPU(使用 PyTorch 分散式模式)
  • 多 GPU(使用 DeepSpeed ZeRO-Offload 階段 1、2 和 3)
  • fp16(混合精度)、fp32(正常精度)或 bf16(bfloat16 精度)

要在這些不同的模式下執行,首先使用 accelerate config 初始化 accelerate 配置

要使用 4 位或 8 位模型進行訓練,請執行

pip install --upgrade trl[quantization]

Accelerate 配置

對於所有示例,你需要使用以下命令生成一個 🤗 Accelerate 配置檔案

accelerate config # will prompt you to define the training configuration

然後,鼓勵使用 accelerate launch 來啟動任務!

維護的示例

指令碼可用作如何使用 TRL 訓練器的示例。它們位於 trl/scripts 目錄中。此外,我們在 examples/scripts 目錄中提供示例。這些示例會定期維護和測試。

檔案 描述
examples/scripts/alignprop.py 此指令碼展示瞭如何使用 AlignPropTrainer 微調擴散模型。
examples/scripts/bco.py 此指令碼展示瞭如何使用帶有 BCO 損失的 KTOTrainer 來微調模型,以使用 openbmb/UltraFeedback 資料集提高指令遵循、真實性、誠實性和幫助性。
examples/scripts/cpo.py 此指令碼展示瞭如何使用 CPOTrainer 來微調模型,以使用 Anthropic/hh-rlhf 資料集提高幫助性和無害性。
examples/scripts/ddpo.py 此指令碼展示瞭如何使用 DDPOTrainer 透過強化學習微調穩定擴散模型。
trl/scripts/dpo.py 此指令碼展示瞭如何使用 DPOTrainer 微調模型。
examples/scripts/dpo_online.py 此指令碼展示瞭如何使用 OnlineDPOTrainer 微調模型。
examples/scripts/dpo_vlm.py 此指令碼展示瞭如何使用 DPOTrainer 微調視覺語言模型,以使用 openbmb/RLAIF-V-Dataset 資料集減少幻覺。
examples/scripts/evals/judge_tldr.py 此指令碼展示瞭如何使用 HfPairwiseJudgeOpenAIPairwiseJudge 來評判模型生成的內容。
examples/scripts/gkd.py 此指令碼展示瞭如何使用 GKDTrainer 微調模型。
trl/scripts/grpo.py 此指令碼展示瞭如何使用 GRPOTrainer 微調模型。
examples/scripts/grpo_vlm.py 此指令碼展示瞭如何使用 GRPOTrainer 微調多模態模型以進行推理,使用 lmms-lab/multimodal-open-r1-8k-verified 資料集。
examples/scripts/gspo.py 此指令碼展示瞭如何透過 GRPOTrainer 使用 GSPO 微調模型以進行推理,使用 AI-MO/NuminaMath-TIR 資料集。
examples/scripts/gspo_vlm.py 此指令碼展示瞭如何透過 GRPOTrainer 使用 GSPO 微調多模態模型以進行推理,使用 lmms-lab/multimodal-open-r1-8k-verified 資料集。
examples/scripts/kto.py 此指令碼展示瞭如何使用 KTOTrainer 微調模型。
examples/scripts/mpo_vlm.py 此指令碼展示瞭如何透過 DPOTrainer 使用 MPO,根據偏好對齊模型,使用 HuggingFaceH4/rlaif-v_formatted 資料集和一組帶權重的損失權重。
examples/scripts/nash_md.py 此指令碼展示瞭如何使用 NashMDTrainer 微調模型。
examples/scripts/orpo.py 此指令碼展示瞭如何使用 ORPOTrainer 微調模型,以使用 Anthropic/hh-rlhf 資料集提高幫助性和無害性。
examples/scripts/ppo/ppo.py 此指令碼展示瞭如何使用 PPOTrainer 微調模型,以提高其用積極情緒或物理描述性語言續寫文字的能力。
examples/scripts/ppo/ppo_tldr.py 此指令碼展示瞭如何使用 PPOTrainer 微調模型,以提高其生成 TL;DR 摘要的能力。
examples/scripts/prm.py 此指令碼展示瞭如何使用 PRMTrainer 微調過程監督獎勵模型 (PRM)。
examples/scripts/reward_modeling.py 此指令碼展示瞭如何使用 RewardTrainer 在您自己的資料集上訓練結果獎勵模型 (ORM)。
examples/scripts/rloo/rloo.py 此指令碼展示瞭如何使用 RLOOTrainer 微調模型,以提高其用積極情緒或物理描述性語言續寫文字的能力。
examples/scripts/rloo/rloo_tldr.py 此指令碼展示瞭如何使用 RLOOTrainer 微調模型,以提高其生成 TL;DR 摘要的能力。
examples/scripts/sft.py 此指令碼展示瞭如何使用 SFTTrainer 微調模型。
examples/scripts/sft_gemma3.py 此指令碼展示瞭如何使用 SFTTrainer 微調 Gemma 3 模型。
examples/scripts/sft_video_llm.py 此指令碼展示瞭如何使用 SFTTrainer 微調影片語言模型。
examples/scripts/sft_vlm.py 此指令碼展示瞭如何使用 SFTTrainer 在聊天設定中微調視覺語言模型。該指令碼僅在 LLaVA 1.5LLaVA 1.6Llama-3.2-11B-Vision-Instruct 模型上進行過測試,因此使用者在其他模型架構上可能會看到意外行為。
examples/scripts/sft_vlm_gemma3.py 此指令碼展示瞭如何使用 SFTTrainer 在視覺到文字任務上微調 Gemma 3 模型。
examples/scripts/sft_vlm_smol_vlm.py 此指令碼展示瞭如何使用 SFTTrainer 微調 SmolVLM 模型。
examples/scripts/xpo.py 此指令碼展示瞭如何使用 XPOTrainer 微調模型。

這裡還有一些更易於執行的 colab notebooks,您可以使用它們來開始使用 TRL

檔案 描述
examples/notebooks/best_of_n.ipynb 此 notebook 演示了在使用 PPO 微調模型時如何使用 TRL 的“N 中選優”取樣策略。
examples/notebooks/gpt2-sentiment.ipynb 此 notebook 演示瞭如何在 jupyter notebook 上覆現 GPT2 imdb 情感微調示例。
examples/notebooks/gpt2-control.ipynb 此 notebook 演示瞭如何在 jupyter notebook 上覆現 GPT2 情感控制示例。

我們還有一些其他維護較少的示例,可以作為參考

  1. research_projects:檢視此資料夾以查詢用於某些使用 TRL 的研究專案(LM 去毒化、Stack-Llama 等)的指令碼

分散式訓練

所有指令碼都可以在多個 GPU 上執行,只需在呼叫 accelerate launch 時提供 🤗 Accelerate 配置檔案的路徑。要在一個或多個 GPU 上啟動其中一個指令碼,請執行以下命令(將 {NUM_GPUS} 替換為您的機器中的 GPU 數量,將 --all_arguments_of_the_script 替換為您的引數)。

accelerate launch --config_file=examples/accelerate_configs/multi_gpu.yaml --num_processes {NUM_GPUS} path_to_script.py --all_arguments_of_the_script

您還可以調整 🤗 Accelerate 配置檔案的引數以滿足您的需求(例如,混合精度訓練)。

使用 DeepSpeed 進行分散式訓練

大多數指令碼都可以與 DeepSpeed ZeRO-{1,2,3} 一起在多個 GPU 上執行,以實現最佳化器狀態、梯度和模型權重的有效分片。為此,請執行以下命令(將 {NUM_GPUS} 替換為您的機器中的 GPU 數量,將 --all_arguments_of_the_script 替換為您的引數,並將 --deepspeed_config 替換為 DeepSpeed 配置檔案的路徑,例如 examples/deepspeed_configs/deepspeed_zero1.yaml

accelerate launch --config_file=examples/accelerate_configs/deepspeed_zero{1,2,3}.yaml --num_processes {NUM_GPUS} path_to_script.py --all_arguments_of_the_script
< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.