TRL (Entrenamiento RLHF/DPO)

TRL (Transformer Reinforcement Learning) es la biblioteca oficial de HuggingFace para entrenar modelos de lenguaje con técnicas de aprendizaje por refuerzo. Con más de 10K estrellas en GitHub, ofrece implementaciones de vanguardia de RLHF, DPO, PPO, GRPO y otros algoritmos de alineación para LLMs.

circle-check

¿Qué es TRL?

TRL es la biblioteca detrás de muchos de los modelos de lenguaje mejor alineados hoy en día. Proporciona:

  • SFT (Ajuste fino supervisado) — afinamiento de instrucciones estándar con formato ChatML

  • RLHF/PPO — Proximal Policy Optimization clásico con un modelo de recompensa

  • DPO — Optimización Directa por Preferencias (¡no se necesita modelo de recompensa!)

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

  • KTO — Kahneman-Tversky Optimization (funciona con preferencias no emparejadas)

  • Modelado de Recompensas — entrenar un modelo de recompensa a partir de datos de preferencias humanas

  • IterativeSFT — RL en línea con una configuración más simple

  • ORPO — Odds Ratio Preference Optimization

TRL se integra de forma nativa con el ecosistema HuggingFace: transformers, peft, datasets, accelerate, y bitsandbytes.

circle-info

¿Qué algoritmo deberías usar?

  • DPO — el más simple y estable. Úsalo cuando tengas datos de preferencias emparejadas (elegido/rechazado).

  • PPO — el más poderoso pero complejo. Úsalo cuando tengas un modelo de recompensa o una función de puntuación.

  • GRPO — excelente para tareas de razonamiento/matemáticas. Método de entrenamiento de DeepSeek-R1.

  • SFT — comienza siempre aquí antes de aplicar cualquier método de RL.


Requisitos del servidor

Componente
Mínimo
Recomendado

GPU

RTX 3090 (24 GB)

A100 80 GB / H100

VRAM

16 GB (SFT/DPO 7B + LoRA)

80 GB (afinamiento completo 7B)

RAM

32 GB

64 GB+

CPU

8 núcleos

16+ núcleos

Almacenamiento

100 GB

300 GB+

SO

Ubuntu 20.04+

Ubuntu 22.04

Python

3.9+

3.11

CUDA

11.8+

12.1+

VRAM por tarea

Tarea
Modelo
Método
VRAM

SFT

Llama 3 8B

QLoRA 4-bit

~8 GB

DPO

Llama 3 8B

LoRA

~20 GB

PPO

Llama 3 8B

Completo

~80 GB (2×A100)

GRPO

Qwen 7B

LoRA

~24 GB

SFT

Llama 3 70B

QLoRA 4-bit

~48 GB

DPO

Llama 3 70B

LoRA

~80 GB


Puertos

Puerto
Servicio
Notas

22

SSH

Acceso al terminal, transferencia de archivos, monitorización

TRL es una biblioteca de entrenamiento — se ejecuta como un script CLI/Python, no se requiere servidor web.


Instalación en Clore.ai

Paso 1 — Alquilar un servidor

  1. Filtrar por VRAM ≥ 24 GB (RTX 3090, A100 o H100)

  2. Elige una PyTorch o CUDA 12.1 imagen base

  3. Seleccionar Almacenamiento ≥ 200 GB para modelos y conjuntos de datos

  4. Abrir puerto 22 para acceso SSH

Paso 2 — Conectar vía SSH

Paso 3 — Instalar TRL

Paso 4 — Autenticación en HuggingFace

Paso 5 — Opcional: Seguimiento con Weights & Biases


Ajuste fino supervisado (SFT)

SFT es siempre el primer paso antes de cualquier técnica de RL.

Prepara tu conjunto de datos

Script de entrenamiento SFT


DPO (Optimización Directa por Preferencias)

DPO es el método de alineación más popular — no se necesita modelo de recompensa, solo pares de preferencias.

Preparar dataset para DPO

Script de entrenamiento DPO


PPO (Proximal Policy Optimization)

PPO es el enfoque clásico de RLHF — úsalo cuando tengas una señal de recompensa:


GRPO (Group Relative Policy Optimization)

GRPO se usa en DeepSeek-R1 para entrenamiento de razonamiento:


Entrenamiento multi-GPU

Usa accelerate para entrenamiento distribuido:


Usando la CLI de TRL

TRL proporciona comandos CLI convenientes:


Monitorización del entrenamiento


Recomendaciones de GPU de Clore.ai

El entrenamiento con TRL es una de las cargas de trabajo más intensivas en VRAM. Elige tu GPU según el tamaño del modelo y el método:

Tarea
GPU
Notas

SFT / DPO en 7–8B (QLoRA)

RTX 3090 24 GB

~8 GB para QLoRA 4-bit; cabe cómodamente; ~ $0.12/h en Clore.ai

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

RTX 4090 24 GB

Misma VRAM que la 3090 pero 30% más rápida en cómputo; ideal para velocidad de iteración

SFT completo en 7B o DPO en 13B

A100 40 GB

40 GB alberga entrenamiento 7B en precisión completa; la memoria ECC evita errores silenciosos

PPO / afinamiento completo 7B, o cualquier QLoRA de 70B

A100 80 GB

PPO necesita 2× modelo de política+referencia en VRAM; 80 GB ejecuta ambos sin OOM

Consejo práctico: Comienza en RTX 3090 con QLoRA para experimentar — entrena Llama 3 8B en ~2 hrs con 10K ejemplos. Una vez validada la canalización, pasa a A100 80GB para ejecuciones en precisión completa o modelos de 70B.

Números de velocidad (Llama 3 8B SFT, QLoRA, batch=4, seq=2048):

  • RTX 3090: ~1,100 tokens/seg de rendimiento de entrenamiento

  • RTX 4090: ~1,450 tokens/seg

  • A100 80GB: ~2,800 tokens/seg (bf16 completo, sin cuantización)


Solución de problemas

CUDA Out of Memory

La pérdida es NaN

DPO: chosen_rewards > rejected_rewards es False

El entrenamiento es muy lento

tokenizer.pad_token advertencia

Permiso denegado / HuggingFace 401


Guardar y Compartir Tu Modelo


Enlaces Útiles

Última actualización

¿Te fue útil?