TRL (Entraînement RLHF/DPO)

TRL (Transformer Reinforcement Learning) est la bibliothèque officielle de HuggingFace pour entraîner des modèles de langage avec des techniques d'apprentissage par renforcement. Avec plus de 10K d'étoiles sur GitHub, elle fournit des implémentations à la pointe de la recherche de RLHF, DPO, PPO, GRPO et d'autres algorithmes d'alignement pour les LLM.

circle-check

Qu'est-ce que TRL ?

TRL est la bibliothèque derrière bon nombre des modèles de langage les mieux alignés aujourd'hui. Elle fournit :

  • SFT (Supervised Fine-Tuning) — réglage par instruction standard au format ChatML

  • RLHF/PPO — Proximal Policy Optimization classique avec un modèle de récompense

  • DPO — Direct Preference Optimization (aucun modèle de récompense nécessaire !)

  • GRPO — Group Relative Policy Optimization (méthode de DeepSeek-R1)

  • KTO — Kahneman-Tversky Optimization (fonctionne avec des préférences non appariées)

  • Modélisation de récompense — entraîner un modèle de récompense à partir de données de préférences humaines

  • IterativeSFT — RL en ligne avec une configuration plus simple

  • ORPO — Odds Ratio Preference Optimization

TRL s'intègre nativement à l'écosystème HuggingFace : transformers, peft, datasets, accelerate, et bitsandbytes.

circle-info

Quel algorithme devriez-vous utiliser ?

  • DPO — le plus simple, le plus stable. À utiliser lorsque vous disposez de données de préférence appariées (choisi/rejeté).

  • PPO — le plus puissant mais complexe. À utiliser lorsque vous disposez d'un modèle de récompense ou d'une fonction de score.

  • GRPO — excellent pour les tâches de raisonnement/mathématiques. Méthode d'entraînement de DeepSeek-R1.

  • SFT — commencez toujours ici avant d'appliquer une méthode RL.


Exigences serveur

Composant
Minimum
Recommandé

GPU

RTX 3090 (24 Go)

A100 80 Go / H100

VRAM

16 Go (SFT/DPO 7B + LoRA)

80 Go (entraînement complet 7B)

RAM

32 Go

64 Go+

CPU

8 cœurs

16+ cœurs

Stockage

100 Go

300 Go+

OS

Ubuntu 20.04+

Ubuntu 22.04

Python

3.9+

3.11

CUDA

11.8+

12.1+

VRAM par tâche

Tâche
Modèle
Méthode
VRAM

SFT

Llama 3 8B

QLoRA 4-bit

~8 Go

DPO

Llama 3 8B

LoRA

~20 Go

PPO

Llama 3 8B

Complet

~80 Go (2×A100)

GRPO

Qwen 7B

LoRA

~24 Go

SFT

Llama 3 70B

QLoRA 4-bit

~48 Go

DPO

Llama 3 70B

LoRA

~80 Go


Ports

Port
Service
Remarques

22

SSH

Accès terminal, transfert de fichiers, surveillance

TRL est une bibliothèque d'entraînement — elle s'exécute comme une commande CLI/script Python, aucun serveur web requis.


Installation sur Clore.ai

Étape 1 — Louer un serveur

  1. Filtrer pour VRAM ≥ 24 Go (RTX 3090, A100, ou H100)

  2. Choisir une PyTorch ou CUDA 12.1 image de base

  3. Sélectionner Stockage ≥ 200 Go pour les modèles et les jeux de données

  4. Ouvrir le port 22 pour l'accès SSH

Étape 2 — Se connecter via SSH

Étape 3 — Installer TRL

Étape 4 — Authentification HuggingFace

Étape 5 — Optionnel : suivi Weights & Biases


Supervised Fine-Tuning (SFT)

SFT est toujours la première étape avant toute technique RL.

Préparez votre jeu de données

Script d'entraînement SFT


DPO (Direct Preference Optimization)

DPO est la méthode d'alignement la plus populaire — aucun modèle de récompense nécessaire, seulement des paires de préférence.

Préparer le jeu de données DPO

Script d'entraînement DPO


PPO (Proximal Policy Optimization)

PPO est l'approche RLHF classique — à utiliser lorsque vous disposez d'un signal de récompense :


GRPO (Group Relative Policy Optimization)

GRPO est utilisé dans DeepSeek-R1 pour l'entraînement au raisonnement :


Entraînement Multi-GPU

Utilisez accelerate pour l'entraînement distribué :


Utilisation du CLI TRL

TRL fournit des commandes CLI pratiques :


Surveillance de l'entraînement


Recommandations GPU Clore.ai

L'entraînement TRL est l'un des workloads les plus gourmands en VRAM. Choisissez votre GPU en fonction de la taille du modèle et de la méthode :

Tâche
GPU
Remarques

SFT / DPO sur 7–8B (QLoRA)

RTX 3090 24 Go

~8 Go pour QLoRA 4-bit ; tient confortablement ; ~0,12 $/h sur Clore.ai

SFT / DPO sur 7–8B (LoRA bf16)

RTX 4090 24 Go

Même VRAM que le 3090 mais calcul ~30 % plus rapide ; excellent pour la vitesse d'itération

SFT complet sur 7B ou DPO sur 13B

A100 40 Go

40 Go permet l'entraînement 7B en précision complète ; la mémoire ECC évite les erreurs silencieuses

PPO / fine-tune complet 7B, ou tout QLoRA 70B

A100 80 Go

PPO nécessite 2× modèle policy+ref en VRAM ; 80 Go exécute les deux sans OOM

Conseil pratique : Commencez sur RTX 3090 avec QLoRA pour l'expérimentation — entraînez Llama 3 8B en ~2 h sur 10K exemples. Une fois la pipeline validée, passez à A100 80GB pour les runs en précision complète ou les modèles 70B.

Chiffres de vitesse (Llama 3 8B SFT, QLoRA, batch=4, seq=2048) :

  • RTX 3090 : ~1 100 tokens/sec en débit d'entraînement

  • RTX 4090 : ~1 450 tokens/sec

  • A100 80GB : ~2 800 tokens/sec (bf16 complet, sans quantification)


Dépannage

Erreur CUDA Out of Memory

La perte est NaN

DPO : chosen_rewards > rejected_rewards est Faux

L'entraînement est très lent

tokenizer.pad_token avertissement

Permission refusée / HuggingFace 401


Sauvegarder et partager votre modèle


Liens utiles

Mis à jour

Ce contenu vous a-t-il été utile ?