trl-training
Post-train LLMs with TRL (Transformers Reinforcement Learning) — SFT, DPO, GRPO, KTO, and reward-model training.
Skill by huggingfaceOfficial
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/huggingface-trl-training
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, ml, writing, code-generation, debugging
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/trl-training
What's inside
- Skill name
trl-training- Description
- Post-train LLMs with TRL (Transformers Reinforcement Learning) — SFT, DPO, GRPO, KTO, and reward-model training. Use when writing or debugging training code with the TRL Python API or the trl CLI.
- License
- Apache-2.0
- Metadata
- author: huggingface · documentation: https://huggingface.co/docs/trl
- Instructions
- 70 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# TRL
Each method pairs a `*Trainer` class with a `*Config` dataclass. Configs extend `transformers.TrainingArguments`, so all of its arguments work in any trainer config.
| Trainer | Dataset type |
|---|---|
| `SFTTrainer` | language modeling or prompt-completion |
| `DPOTrainer` | preference (chosen/rejected pairs) |
| `GRPOTrainer` | prompt-only + reward function(s) |
| `DistillationTrainer` | prompt-only + a teacher model (on-policy distillation) |
| `KTOTrainer` | unpaired preference (per-sample bool label) |
| `RewardTrainer` | preference (chosen/rejected pairs); trains a scalar reward model, not a policy |
Many more trainers (OnlineDPO, ORPO, CPO, GKD, …) live in `trl.experimental` with unstable APIs: https://huggingface.co/docs/trl/experimental_overview
```python
from datasets import load_dataset
from trl import SFTConfig, SFTTrainer
trainer = SFTTrainer(
model="Qwen/Qwen2.5-0.5B", # model ID or a PreTrainedModel instance
args=SFTConfig(output_dir="Qwen2.5-0.5B-SFT"),
train_dataset=load_dataset("trl-lib/Capybara", split="train"),
)
trainer.train()
```
Pass `model` as a string and route loading kwargs through `model_init_kwargs` (e.g. `{"dtype": "bfloat16", "attn_implementation": "kernels-community/flash-attn2"}`) instead of calling `from_pretrained` yourself. The tokenizer/processor is inferred from the model; pass `processing_class` only when it differs. For LoRA, pass `peft_config=LoraConfig(...)`.
## Dataset formats
Conversational: `{"messages": [{"role": ..., "content": ...}]}` (language modeling) or `{"prompt": [...], "completion": [...]}`. The chat template is applied automatically — never apply it yourself. Extra columns are allowed; GRPO forwards them to reward functions. Reference: https://huggingface.co/docs/trl/dataset_formats
## SFT: the fields that matter
```python
SFTConfig(
max_length=1024, # truncation length; None disables truncation
packing=True, # pack sequences into max_length blocks: fewer pad tokens, higher throughput
padding_free=True, # flatten batch, no padding; requires FlashAttention; implied by packing
use_liger_kernel=True, # fused Liger kernels, reduces peak memory
assistant_only_loss=True, # loss only on assistant turns (conversational datasets)
)
```
## GRPO: online RL
```python
def reward_len(completions, **kwargs):
return [-abs(20 - len(c[0]["content"])) for c in completions]
trainer = GRPOTrainer(
model="Qwen/Qwen2.5-0.5B-Instruct",
reward_funcs=reward_len, # or a list; rewards are summed
args=GRPOConfig(output_dir="Qwen2.5-0.5B-GRPO", max_completion_length=512),
train_dataset=load_dataset("trl-lib/DeepMath-103K", split="train"),
)
```
Reward functions are called with keyword arguments `prompts`, `completions`, `completion_ids`, `trainer_state`, plus every extra dataset column — accept `**kwargs` for the ones you ignore. Return `list[float]`, one reward per completion. With conversational data, `completions` is a list of message lists, not strings.
The generation batch is `per_device_train_batch_size × num_processes × steps_per_generation` (or set `generation_batch_size` directly) and must be divisible by `num_generations` (default 8). Generation is the usual bottleneck — enable vLLM with `use_vllm=True`: `vllm_mode="colocate"` shares the training GPUs (size with `vllm_gpu_memory_utilization`); `vllm_mode="server"` uses a separate `trl vllm-serve --model <model_id>`.
`AsyncGRPOTrainer` (`trl.experimental.async_grpo`) implements the same algorithm with generation decoupled from training: a background worker streams completions from a vLLM server while the training loop consumes them, so the two overlap instead of alternating.
## CLI
Flags mirror the config fields: `trl sft --model_name_or_path Qwen/Qwen2.5-0.5B --dataset_name trl-lib/Capybara`. YAML via `--config`; distributed presets via `--accelerate_config zero3` (Python scripts: `accelerate launch train.py`).From huggingface/skills, Apache-2.0.
More from huggingface/skills
- 0.856score
hf-cli
huggingfaceOfficial
Hugging Face Hub CLI (`hf`) for downloading, uploading, and managing models, datasets, spaces, buckets, repos, papers, jobs, and more on the Hugging Face Hub.
SkillAFreshness: A★ 11.2KClaude Code +9 - 0.815score
hf-cloud-sagemaker-production-defaults
huggingfaceOfficial
Create a SageMaker endpoint (real-time, real-time scale-to-zero, or async) with autoscaling, CloudWatch alarms, and tagging enabled by default.
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.815score
huggingface-spaces
huggingfaceOfficial
Build, deploy, and maintain applications on Hugging Face Spaces — Gradio / Docker / Static SDKs, ZeroGPU and dedicated hardware, model loading, debugging…
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.815score
hf-cloud-serving-image-selection
huggingfaceOfficial
Pick the right serving container for a SageMaker model deployment and find its current image URI.
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.815score
train-sentence-transformers
huggingfaceOfficial
Train or fine-tune sentence-transformers models across `SentenceTransformer` (bi-encoder, dense or static embedding model for retrieval, similarity…
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.815score
hf-cloud-sagemaker-iam-preflight
huggingfaceOfficial
Ensure a usable SageMaker execution role exists before deploying or training.
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.809score
hf-cloud-sagemaker-deployment-planner
huggingfaceOfficial
Plan and coordinate the deployment of a model to Amazon SageMaker AI.
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.781score
huggingface-best
huggingfaceOfficial
Use when the user asks about finding the best, top, or recommended model for a task, wants to know what AI model to use, or wants to compare models by…
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.758score
huggingface-trackio
huggingfaceOfficial
Track and visualize ML training experiments with Trackio.
SkillCFreshness: C★ 11.2KClaude Code +9 - 0.758score
hf-cloud-python-env-setup
huggingfaceOfficial
Set up an isolated Python environment for SageMaker / AWS work, with the right Python version and current boto3.
SkillCFreshness: C★ 11.2KClaude Code +9 - 0.758score
huggingface-lora-space-builder
huggingfaceOfficial
Build and publish a Gradio demo on Hugging Face Spaces for a user-provided LoRA.
SkillCFreshness: C★ 11.2KClaude Code +9 - 0.758score
huggingface-zerogpu
huggingfaceOfficial
AI demos and GPU compute with Gradio Spaces and Hugging Face Spaces ZeroGPU.
SkillCFreshness: C★ 11.2KClaude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 11,208
- Forks
- 778
- Open issues
- 13
- Contributors
- 43
- Last commit (this folder)
- Oct 1, 2026 (26 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/huggingface/skills
- Website
- huggingface.co
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from huggingface
- 0.856score
hf-cli
huggingfaceOfficial
Hugging Face Hub CLI (`hf`) for downloading, uploading, and managing models, datasets, spaces, buckets, repos, papers, jobs, and more on the Hugging Face Hub.
SkillAFreshness: A★ 11.2KClaude Code +9 - 0.815score
hf-cloud-sagemaker-production-defaults
huggingfaceOfficial
Create a SageMaker endpoint (real-time, real-time scale-to-zero, or async) with autoscaling, CloudWatch alarms, and tagging enabled by default.
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.815score
hf-cloud-serving-image-selection
huggingfaceOfficial
Pick the right serving container for a SageMaker model deployment and find its current image URI.
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.815score
huggingface-spaces
huggingfaceOfficial
Build, deploy, and maintain applications on Hugging Face Spaces — Gradio / Docker / Static SDKs, ZeroGPU and dedicated hardware, model loading, debugging…
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.815score
train-sentence-transformers
huggingfaceOfficial
Train or fine-tune sentence-transformers models across `SentenceTransformer` (bi-encoder, dense or static embedding model for retrieval, similarity…
SkillBFreshness: B★ 11.2KClaude Code +9 - 0.815score
hf-cloud-sagemaker-iam-preflight
huggingfaceOfficial
Ensure a usable SageMaker execution role exists before deploying or training.
SkillBFreshness: B★ 11.2KClaude Code +9
Cite this page
trl-training skill. Agent Mart. https://agentmart.dev/skills/huggingface-trl-training (last updated 2026-10-24)