# TRL

[TRL](https://huggingface.co/docs/trl/index) é um framework de pós-treinamento para modelos de fundação. Ele inclui métodos como SFT, GRPO e DPO. Cada método possui um treinador dedicado que se baseia na classe [Trainer](/docs/transformers/main/pt/main_classes/trainer#transformers.Trainer) e escala de uma única GPU para clusters multinó.

```py
from datasets import load_dataset
from trl import GRPOTrainer
from trl.rewards import accuracy_reward

dataset = load_dataset("trl-lib/DeepMath-103K", split="train")

trainer = GRPOTrainer(
    model="Qwen/Qwen2-0.5B-Instruct",
    reward_funcs=accuracy_reward,
    train_dataset=dataset,
)
trainer.train()
```

## Integração com Transformers

O TRL estende as APIs do Transformers e adiciona configurações específicas de método.

- Os treinadores do TRL são construídos sobre o [Trainer](/docs/transformers/main/pt/main_classes/trainer#transformers.Trainer). Treinadores específicos de método, como o [GRPOTrainer](https://huggingface.co/docs/trl/main/en/grpo_trainer#trl.GRPOTrainer), adicionam geração, pontuação de recompensa e cálculo de perda. As classes de configuração estendem o [TrainingArguments](/docs/transformers/main/pt/main_classes/trainer#transformers.TrainingArguments) com campos específicos de método.

- O carregamento do modelo usa [AutoConfig.from_pretrained()](/docs/transformers/main/pt/model_doc/auto#transformers.AutoConfig.from_pretrained) e, em seguida, instancia a classe do modelo a partir da configuração usando o `from_pretrained` dessa classe.

## Recursos

- Documentação do [TRL](https://huggingface.co/docs/trl/index)
- Palestra [Fine Tuning with TRL](https://huggingface.co/datasets/trl-lib/documentation-images/resolve/main/Fine%20tuning%20with%20TRL%20(Oct%2025).pdf)

