К основному содержанию
скилл CX Codex

trl-training — скилл для Claude Code: обучение LLM и установка

Помогает писать и отлаживать постобучение языковых моделей через TRL: SFT, DPO, GRPO, KTO и обучение модели награды.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add huggingface/skills --skill trl-training -a claude-code
Открыть на GitHub

Что делает trl-training

Скилл направляет работу с Python API и CLI TRL при постобучении языковых моделей. Он охватывает SFTTrainer, DPOTrainer, GRPOTrainer, DistillationTrainer, KTOTrainer и RewardTrainer; конфигурации этих тренеров расширяют transformers.TrainingArguments.

Он помогает выбрать формат датасета для метода обучения: пары выбранного и отклонённого ответов для DPO, промпты и функцию награды для GRPO, отдельные метки предпочтений для KTO. Для диалоговых данных шаблон чата применяется автоматически, поэтому вручную добавлять его не следует. Экспериментальные тренеры из trl.experimental имеют нестабильный API — это повод не рассчитывать на неизменность их интерфейса.

Для SFT разбираются max_length, упаковка последовательностей, padding_free, Liger kernels и расчёт потерь только по ответам ассистента. В GRPO функция награды должна вернуть list[float] для завершений; размер пакета генерации делится на num_generations, значение по умолчанию — 8. Скилл также учитывает запуск через trl sft, YAML-конфигурацию и accelerate.

Какие задачи решает

  • написать код SFT с SFTTrainer и SFTConfig
  • подготовить датасет пар предпочтений для DPOTrainer
  • реализовать функцию награды для GRPOTrainer
  • настроить LoRA через peft_config=LoraConfig(...)
  • запустить обучение командой trl sft

Примеры запросов агенту

  • Помоги написать обучение SFT на SFTTrainer для моего датасета.
  • Проверь функцию награды для GRPOTrainer: почему она получает диалоговые завершения?
  • Собери команду trl sft с YAML-конфигурацией и --accelerate_config zero3.

Как установить trl-training

1Через Skills CLI (Vercel)

npx skills add huggingface/skills --skill trl-training -a claude-code

2Вручную: положить файлы

~/.claude/skills/trl-training/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/trl-training/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о trl-training

Как установить trl-training в Claude Code?

Выполните npx skills add huggingface/skills --skill trl-training -a claude-code. Скилл будет доступен в ~/.claude/skills/trl-training/SKILL.md.

Что делает trl-training?

Это скилл для написания и отладки кода постобучения моделей с TRL. Он охватывает SFT, DPO, GRPO, KTO, дистилляцию и обучение модели награды.

Что нужно учитывать при работе с GRPO?

Функции награды возвращают list[float], по одному значению на завершение. Пакет генерации должен делиться на num_generations; для генерации можно включить vLLM через use_vllm=True.

Исходный текст

SKILL.md · Apache-2.0
---
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
---

# 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`).

© huggingface · Apache-2.0 · huggingface/skills

Похожие скиллы

Всё по теме «ИИ и ML» →
grpo-rlvr-training Seth Hobson Скилл помогает настроить обучение моделей рассуждениям через GRPO и RLVR с проверяемыми наградами. Пригодится для задач с тестами, схемами и точными ответами. CX Codex 2 600установок fine-tuning-with-trl Orchestra Research Скилл для пост-тренировки языковых моделей через библиотеку TRL: SFT, DPO, PPO и GRPO с готовыми рецептами запуска. CX Codex +1 969установок torchforge-rl-training Orchestra Research Скилл объясняет обучение агентных RL-моделей на PyTorch через torchforge. Пригодится для GRPO, SFT и экспериментов с распределённым обучением. CX Codex +1 946установок finetuning-method-selection Seth Hobson Скилл решает, нужен ли fine-tuning, и выбирает метод по типу задачи и данным. Пригодится перед запуском обучения модели. CX Codex 2 600установок nv-reason-cxr NVIDIA MedTech Team Скилл запускает смоук-тесты модели NV-Reason-CXR-3B для анализа рентгенограмм грудной клетки. Пригодится инженерам для валидации пайплайнов и проверки форматов JSON. CX Codex +1 1 800установок transformers-huggingface Mindrally Скилл для работы с библиотекой Hugging Face Transformers: загрузка моделей, токенизация, файнтюнинг через Trainer и оптимизация инференса. CX Codex +1 758установок

Из того же набора25

huggingface-tool-builder Скилл для создания переиспользуемых скриптов, которые работают с Hugging Face API. Пригодится, если нужно автоматизировать поиск моделей, обогащать данные или объединять несколько API-запросов в одну цепочку. CX Codex +1 1 600установок train-sentence-transformers Скилл для Claude Code и других агентов: проводит по обучению sentence-transformers — от выбора типа энкодера до выгрузки весов на Hugging Face Hub. CX Codex +1 1 500установок huggingface-zerogpu Скилл для демо на Gradio Spaces с ZeroGPU: где ставить @spaces.GPU, как выбрать duration и что ломается на границе воркера. CX Codex +1 1 300установок huggingface-spaces Скилл помогает создавать, развёртывать и чинить приложения в Hugging Face Spaces. Пригодится для Gradio, Docker, Static SDK и ZeroGPU. CX Codex +1 1 100установок hf-mem Считает, сколько памяти займёт модель с Hugging Face Hub при инференсе, и не скачивает веса. Пригодится, когда надо понять, влезет ли модель в GPU. CX Codex +1 858установок huggingface-lora-space-builder Создаёт и публикует веб-демо на Gradio в Hugging Face Spaces для весов LoRA. Подбирает пайплайн diffusers и интерфейс под задачу генерации на ZeroGPU. CX Codex +1 810установок hf-cloud-sagemaker-production-defaults Скилл создаёт SageMaker endpoint с автоскейлингом, CloudWatch-алармами и тегами. Он нужен для финального шага деплоя модели. CX Codex +1 549установок hf-cloud-python-env-setup Скилл разворачивает изолированное окружение Python для работы с AWS и SageMaker. Он помогает избежать сбоев из-за несовместимых версий Python и устаревшего SDK boto3. CX Codex +1 548установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой