trl-training
Skill547 starsChanged 3 months agoMITView on GitHub
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.
We split this skill into the rules it gives an agent
20 rules. About 0 are common, 13 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 259
Use --gradient_checkpointing to save memory
- Distinctive: line 264
Verify dataset exists: check Hugging Face Hub or local path
- Distinctive: line 265
Check dataset format matches expected columns
- Very specific: line 266
Use --dataset_config for multi-config datasets
- Distinctive: line 271
Verify model exists on Hugging Face Hub
- Very specific: line 272
Check if gated model requires authentication: hf auth login
- Distinctive: line 274
Ensure sufficient disk space and memory
- Very specific: line 279
Use larger --per_device_train_batch_size if memory allows
- Very specific: line 281
Use --bf16 on supported hardware
- Very specific: line 282
Consider multi-GPU training with --num_processes
- Distinctive: line 286
Check prompt format in dataset
- Distinctive: line 288
Verify the reward function (for GRPO/RLOO)
- Distinctive: line 298
Start with SFT: Always fine-tune base models with SFT before preference alignment
- Very specific: line 300
Monitor training: Use --report_to trackio (or --report_to wandb or --report_to tensorboard) for tracking
- Distinctive: line 302
Test on small datasets first: Verify pipeline works before full training
- Distinctive: line 303
Use configuration files: Create YAML configs for reproducibility
- Distinctive: line 304
Leverage Accelerate: Use multi-GPU training for faster iteration
- Distinctive: line 306
When helping users with TRL:
- Distinctive: line 307
Always check which training method is appropriate for their use case
- Distinctive: line 308
Verify dataset format matches the expected schema
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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_hubTrain 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_hubtrl 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_columnsTrain 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 16trl 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_hubtrl 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_hubtrl 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 2048Train 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 16Configuration 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: trackioLaunch with config:
trl sft --config sft_config.yamlOverride config values:
trl sft --config sft_config.yaml --learning_rate 1.0e-5Distributed Training
TRL integrates with Accelerate for multi-GPU and multi-node training.
Multi-GPU training:
trl sft \
--config sft_config.yaml \
--num_processes 4Use predefined Accelerate configs:
TRL provides predefined configs: single_gpu, multi_gpu, fsdp1, fsdp2, zero1, zero2, zero3
trl sft \
--config sft_config.yaml \
--accelerate_config zero2Custom Accelerate config:
# Generate custom config
accelerate config
# Use custom config
trl sft --config sft_config.yaml --config_file ~/.cache/huggingface/accelerate/default_config.yamlFully Sharded Data Parallel (FSDP):
trl sft --config sft_config.yaml --accelerate_config fsdp2DeepSpeed ZeRO:
trl sft --config sft_config.yaml --accelerate_config zero3Troubleshooting
CUDA Out of Memory
- Reduce
--per_device_train_batch_sizeand increase--gradient_accumulation_steps - Enable
--use_peftfor LoRA training - Use
--gradient_checkpointingto 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_configfor 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
--packingfor short sequences - Use larger
--per_device_train_batch_sizeif memory allows - Enable
--tf32for faster computation on Ampere GPUs - Use
--bf16on supported hardware - Consider multi-GPU training with
--num_processes
Generation Issues (GRPO/RLOO)
- Check prompt format in dataset
- Adjust
--temperatureand--top_pfor generation - Verify the reward function (for GRPO/RLOO)
Additional Resources
- Documentation: https://huggingface.co/docs/trl
- GitHub: https://github.com/huggingface/trl
- Examples: https://github.com/huggingface/trl/tree/main/examples
Best Practices
- Start with SFT: Always fine-tune base models with SFT before preference alignment
- Use LoRA for efficiency: Enable
--use_peftfor faster training and lower memory - Monitor training: Use
--report_to trackio(or--report_to wandbor--report_to tensorboard) for tracking - Save checkpoints: TRL automatically saves checkpoints in
--output_dir - Test on small datasets first: Verify pipeline works before full training
- Use configuration files: Create YAML configs for reproducibility
- 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
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- Adhamxon/claude-code-skills★ 295% same
Wrote their own version · 3
- huggingface/trl★ 20ksame name
- huggingface/skills★ 11ksame name
- PracticalSwan/agent-skills★ 22same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository54 other files it gives its agents.
- agentic-actions-auditorSkill
- agents-md-improverSkill
- agents-md-reviseSkill
- ai-slopSkill
- code-architectSkill
- code-explorerSkill
- codeqlSkill
- code-qualitySkill
- code-reviewerSkill
- code-reviewSkill
- design-patternsSkill
- differential-reviewSkill
- feature-devSkill
- fp-checkSkill
- frontend-designSkill
- hf-cliSkill
- hf-cloud-aws-context-discoverySkill
- hf-cloud-python-env-setupSkill
- hf-cloud-sagemaker-deployment-plannerSkill
- hf-cloud-sagemaker-iam-preflightSkill
- hf-cloud-sagemaker-production-defaultsSkill
- hf-cloud-serving-image-selectionSkill
- hf-memSkill
- huggingface-bestSkill
- huggingface-community-evalsSkill
- huggingface-datasetsSkill
- huggingface-gradioSkill
- huggingface-llm-trainerSkill
- huggingface-local-modelsSkill
- huggingface-lora-space-builderSkill
- huggingface-paper-publisherSkill
- huggingface-papersSkill
- huggingface-spacesSkill
- huggingface-tool-builderSkill
- huggingface-trackioSkill
- huggingface-vision-trainerSkill
- huggingface-zerogpuSkill
- humanizerSkill
- insecure-defaultsSkill
- mcp-builderSkill
- paper-summarizerSkill
- sarif-parsingSkill
- security-reviewSkill
- security-threat-modelSkill
- semgrep-rule-creatorSkill
- semgrep-rule-variant-creatorSkill
- semgrepSkill
- sharp-edgesSkill
- skill-creatorSkill
- supply-chain-risk-auditorSkill
- train-sentence-transformersSkill
- transformers-jsSkill
- variant-analysisSkill
- vuln-reportSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

