trl-training

GitHub

提供使用TRL库进行大语言模型训练与微调的技能,支持SFT、DPO、GRPO等算法。通过CLI命令指导用户完成指令微调、偏好对齐及奖励模型训练,集成Hugging Face生态。

skills/trl-training/SKILL.md waybarrios/opencode-power-pack

Trigger Scenarios

需要进行大语言模型的监督微调(SFT) 需要执行直接偏好优化(DPO)或强化学习对齐 需要训练奖励模型以支持RLHF流程

Install

npx skills add waybarrios/opencode-power-pack --skill trl-training -g -y
More Options

Use without installing

npx skills use waybarrios/opencode-power-pack@trl-training

指定 Agent (Claude Code)

npx skills add waybarrios/opencode-power-pack --skill trl-training -a claude-code -g -y

安装 repo 全部 skill

npx skills add waybarrios/opencode-power-pack --all -g -y

预览 repo 内 skill

npx skills add waybarrios/opencode-power-pack --list

SKILL.md

Frontmatter
{
    "name": "trl-training",
    "license": "Apache-2.0 (modified; see UPSTREAMS.json)",
    "description": "Train and fine-tune transformer language models using TRL (Transformers Reinforcement Learning). Supports SFT, DPO, GRPO, KTO, RLOO and Reward Model training via CLI commands."
}

TRL Training Skill

You are an expert at using the TRL (Transformers Reinforcement Learning) library to train and fine-tune large language models.

Overview

TRL provides CLI commands for post-training foundation models using state-of-the-art techniques:

  • SFT (Supervised Fine-Tuning): Fine-tune models on instruction-following or conversational datasets
  • DPO (Direct Preference Optimization): Align models using preference data
  • GRPO (Group Relative Policy Optimization): Train models by ranking multiple sampled outputs relative to each other and optimizing based on their comparative rewards.
  • RLOO (Reinforce Leave One Out): Online RL training with generation-based rewards
  • Reward Model Training: Train reward models for RLHF

TRL is built on top of Hugging Face Transformers and Accelerate, providing seamless integration with the Hugging Face ecosystem.

Core Commands

trl sft - Supervised Fine-Tuning

Fine-tune language models on instruction-following or conversational datasets.

Full training:

trl sft \
  --model_name_or_path Qwen/Qwen2-0.5B \
  --dataset_name trl-lib/Capybara \
  --learning_rate 2.0e-5 \
  --num_train_epochs 1 \
  --packing \
  --per_device_train_batch_size 2 \
  --gradient_accumulation_steps 8 \
  --eos_token '<|im_end|>' \
  --eval_strategy steps \
  --eval_steps 100 \
  --output_dir Qwen2-0.5B-SFT \
  --push_to_hub

Train with LoRA adapters:

trl sft \
  --model_name_or_path Qwen/Qwen2-0.5B \
  --dataset_name trl-lib/Capybara \
  --learning_rate 2.0e-4 \
  --num_train_epochs 1 \
  --packing \
  --per_device_train_batch_size 2 \
  --gradient_accumulation_steps 8 \
  --eos_token '<|im_end|>' \
  --eval_strategy steps \
  --eval_steps 100 \
  --use_peft \
  --lora_r 32 \
  --lora_alpha 16 \
  --output_dir Qwen2-0.5B-SFT \
  --push_to_hub

trl dpo - Direct Preference Optimization

Align models using preference data (chosen/rejected pairs).

Full training:

trl dpo \
  --dataset_name trl-lib/ultrafeedback_binarized \
  --model_name_or_path Qwen/Qwen2-0.5B-Instruct \
  --learning_rate 5.0e-7 \
  --num_train_epochs 1 \
  --per_device_train_batch_size 2 \
  --max_steps 1000 \
  --gradient_accumulation_steps 8 \
  --eval_strategy steps \
  --eval_steps 50 \
  --output_dir Qwen2-0.5B-DPO \
  --no_remove_unused_columns

Train with LoRA adapters:

trl dpo \
  --dataset_name trl-lib/ultrafeedback_binarized \
  --model_name_or_path Qwen/Qwen2-0.5B-Instruct \
  --learning_rate 5.0e-6 \
  --num_train_epochs 1 \
  --per_device_train_batch_size 2 \
  --max_steps 1000 \
  --gradient_accumulation_steps 8 \
  --eval_strategy steps \
  --eval_steps 50 \
  --output_dir Qwen2-0.5B-DPO \
  --no_remove_unused_columns \
  --use_peft \
  --lora_r 32 \
  --lora_alpha 16

trl grpo - Group Relative Policy Optimization

Train models using reward functions or LLM-as-a-judge for evaluating generations and providing rewards.

Basic usage:

trl grpo \
  --model_name_or_path Qwen/Qwen2.5-0.5B \
  --dataset_name trl-lib/gsm8k \
  --reward_funcs accuracy_reward \
  --output_dir Qwen2-0.5B-GRPO \
  --push_to_hub

trl rloo - Reinforce Leave One Out

Online RL training where the model generates text and receives rewards based on custom criteria.

Basic usage:

trl rloo \
  --model_name_or_path Qwen/Qwen2.5-0.5B \
  --dataset_name trl-lib/tldr \
  --reward_model_name_or_path sentiment-analysis:nlptown/bert-base-multilingual-uncased-sentiment \
  --output_dir Qwen2-0.5B-RLOO \
  --push_to_hub

trl reward - Reward Model Training

Train a reward model to score text quality for RLHF.

Full training:

trl reward \
  --model_name_or_path Qwen/Qwen2-0.5B-Instruct \
  --dataset_name trl-lib/ultrafeedback_binarized \
  --output_dir Qwen2-0.5B-Reward \
  --per_device_train_batch_size 8 \
  --num_train_epochs 1 \
  --learning_rate 1.0e-5 \
  --eval_strategy steps \
  --eval_steps 50 \
  --max_length 2048

Train with LoRA adapters:

trl reward \
  --model_name_or_path Qwen/Qwen2-0.5B-Instruct \
  --dataset_name trl-lib/ultrafeedback_binarized \
  --output_dir Qwen2-0.5B-Reward-LoRA \
  --per_device_train_batch_size 8 \
  --num_train_epochs 1 \
  --learning_rate 1.0e-4 \
  --eval_strategy steps \
  --eval_steps 50 \
  --max_length 2048 \
  --use_peft \
  --lora_task_type SEQ_CLS \
  --lora_r 32 \
  --lora_alpha 16

Configuration Files

TRL supports YAML configuration files for reproducible training. All CLI arguments can be specified in a config file.

Example config (sft_config.yaml):

model_name_or_path: Qwen/Qwen2.5-0.5B
dataset_name: trl-lib/Capybara
learning_rate: 2.0e-5
num_train_epochs: 1
per_device_train_batch_size: 8
gradient_accumulation_steps: 2
output_dir: ./sft_output
use_peft: true
lora_r: 16
lora_alpha: 16
report_to: trackio

Launch with config:

trl sft --config sft_config.yaml

Override config values:

trl sft --config sft_config.yaml --learning_rate 1.0e-5

Distributed Training

TRL integrates with Accelerate for multi-GPU and multi-node training.

Multi-GPU training:

trl sft \
  --config sft_config.yaml \
  --num_processes 4

Use predefined Accelerate configs:

TRL provides predefined configs: single_gpu, multi_gpu, fsdp1, fsdp2, zero1, zero2, zero3

trl sft \
  --config sft_config.yaml \
  --accelerate_config zero2

Custom Accelerate config:

# Generate custom config
accelerate config

# Use custom config
trl sft --config sft_config.yaml --config_file ~/.cache/huggingface/accelerate/default_config.yaml

Fully Sharded Data Parallel (FSDP):

trl sft --config sft_config.yaml --accelerate_config fsdp2

DeepSpeed ZeRO:

trl sft --config sft_config.yaml --accelerate_config zero3

Troubleshooting

CUDA Out of Memory

  • Reduce --per_device_train_batch_size and increase --gradient_accumulation_steps
  • Enable --use_peft for LoRA training
  • Use --gradient_checkpointing to save memory
  • Try smaller model or longer sequence truncation

Dataset Loading Issues

  • Verify dataset exists: check Hugging Face Hub or local path
  • Check dataset format matches expected columns
  • Use --dataset_config for multi-config datasets
  • Inspect dataset: from datasets import load_dataset; ds = load_dataset(name)

Model Loading Issues

  • Verify model exists on Hugging Face Hub
  • Check if gated model requires authentication: hf auth login
  • For local models, provide absolute path
  • Ensure sufficient disk space and memory

Slow Training

  • Enable dataset --packing for short sequences
  • Use larger --per_device_train_batch_size if memory allows
  • Enable --tf32 for faster computation on Ampere GPUs
  • Use --bf16 on supported hardware
  • Consider multi-GPU training with --num_processes

Generation Issues (GRPO/RLOO)

  • Check prompt format in dataset
  • Adjust --temperature and --top_p for generation
  • Verify the reward function (for GRPO/RLOO)

Additional Resources

Best Practices

  1. Start with SFT: Always fine-tune base models with SFT before preference alignment
  2. Use LoRA for efficiency: Enable --use_peft for faster training and lower memory
  3. Monitor training: Use --report_to trackio (or --report_to wandb or --report_to tensorboard) for tracking
  4. Save checkpoints: TRL automatically saves checkpoints in --output_dir
  5. Test on small datasets first: Verify pipeline works before full training
  6. Use configuration files: Create YAML configs for reproducibility
  7. Leverage Accelerate: Use multi-GPU training for faster iteration

When helping users with TRL:

  • Always check which training method is appropriate for their use case
  • Verify dataset format matches the expected schema
  • Recommend starting with smaller models for testing
  • Suggest LoRA for resource-constrained environments
  • Point to specific documentation sections for advanced features

Version History

  • f198a18 Current 2026-08-16 09:13

Same Skill Collection

skills/agentic-actions-auditor/SKILL.md
skills/agents-md-revise/SKILL.md
skills/ai-slop/SKILL.md
skills/code-architect/SKILL.md
skills/code-explorer/SKILL.md
skills/code-quality/SKILL.md
skills/code-review/SKILL.md
skills/code-reviewer/SKILL.md
skills/codeql/SKILL.md
skills/design-patterns/SKILL.md
skills/differential-review/SKILL.md
skills/feature-dev/SKILL.md
skills/fp-check/SKILL.md
skills/frontend-design/SKILL.md
skills/hf-cli/SKILL.md
skills/hf-cloud-aws-context-discovery/SKILL.md
skills/hf-cloud-python-env-setup/SKILL.md
skills/hf-cloud-sagemaker-deployment-planner/SKILL.md
skills/hf-cloud-sagemaker-iam-preflight/SKILL.md
skills/hf-cloud-sagemaker-production-defaults/SKILL.md
skills/hf-cloud-serving-image-selection/SKILL.md
skills/hf-mem/SKILL.md
skills/huggingface-best/SKILL.md
skills/huggingface-community-evals/SKILL.md
skills/huggingface-datasets/SKILL.md
skills/huggingface-gradio/SKILL.md
skills/huggingface-llm-trainer/SKILL.md
skills/huggingface-local-models/SKILL.md
skills/huggingface-lora-space-builder/SKILL.md
skills/huggingface-paper-publisher/SKILL.md
skills/huggingface-papers/SKILL.md
skills/huggingface-spaces/SKILL.md
skills/huggingface-tool-builder/SKILL.md
skills/huggingface-trackio/SKILL.md
skills/huggingface-vision-trainer/SKILL.md
skills/huggingface-zerogpu/SKILL.md
skills/insecure-defaults/SKILL.md
skills/mcp-builder/SKILL.md
skills/paper-summarizer/SKILL.md
skills/sarif-parsing/SKILL.md
skills/security-review/SKILL.md
skills/security-threat-model/SKILL.md
skills/semgrep-rule-creator/SKILL.md
skills/semgrep-rule-variant-creator/SKILL.md
skills/semgrep/SKILL.md
skills/sharp-edges/SKILL.md
skills/skill-creator/SKILL.md
skills/supply-chain-risk-auditor/SKILL.md
skills/train-sentence-transformers/SKILL.md
skills/transformers-js/SKILL.md

Metadata

Files
0
Version
b62fb2f
Hash
3a0858fb
Indexed
2026-08-16 09:13

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-30 02:17
浙ICP备14020137号-1 $Map of visitor$