# TRL

[TRL](https://huggingface.co/docs/trl/index)は、基盤モデル向けのポストトレーニングフレームワークです。SFT、GRPO、DPOなどの手法が含まれており、各手法には専用のトレーナーが用意されています。これらのトレーナーは[Trainer](/docs/transformers/main/ja/main_classes/trainer#transformers.Trainer)クラスを基盤として構築されており、単一GPUからマルチノードクラスタまでスケールします。

```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()
```

## Transformers の統合

TRLはTransformersのAPIを拡張し、メソッド固有の設定を追加します。

- TRLのトレーナーは[Trainer](/docs/transformers/main/ja/main_classes/trainer#transformers.Trainer)を基盤としています。[GRPOTrainer](https://huggingface.co/docs/trl/main/en/grpo_trainer#trl.GRPOTrainer)のようなメソッド固有のトレーナーは、生成、報酬スコアリング、損失計算を追加します。設定クラスは、メソッド固有のフィールドを[TrainingArguments](/docs/transformers/main/ja/main_classes/trainer#transformers.TrainingArguments)に拡張します。

- モデルの読み込みでは、まず [AutoConfig.from_pretrained()](/docs/transformers/main/ja/model_doc/auto#transformers.AutoConfig.from_pretrained) を使用し、その後、その設定から該当クラスの `from_pretrained` を用いてモデルクラスをインスタンス化します。

## リソース

- [TRL](https://huggingface.co/docs/trl/index) ドキュメント
- [TRLによるファインチューニング](https://huggingface.co/datasets/trl-lib/documentation-images/resolve/main/Fine%20tuning%20with%20TRL%20(Oct%2025).pdf)のトーク

