Clase 06 — Adaptación, alineación y agentes
LoRA con las matrices del apunte, multiplicadas de verdad (incluida la comprobación de que fusionar da exactamente lo mismo); la pérdida DPO sin factores inventados; y un agente ReAct cuyas herramientas se ejecutan realmente.
Con \(d = k = 4\) y \(r = 1\), los números del ejemplo trabajado 6.2.2. \(W_0\) está congelada; solo \(A\) y \(B\) se entrenan (y son editables).
Memoria de entrenamiento por componente (escala logarítmica). El ahorro grande no está en los pesos —que hay que tener igual— sino en los gradientes y los estados del optimizador, que en full fine-tuning pesan varias veces el modelo entero.
Una matriz cualquiera se aproxima por su mejor versión de rango \(r\) (calculada aquí por iteración de potencia con deflación, que es lo que hace una SVD truncada). Sube el rango y mira cuánto error queda: si la matriz tiene estructura, unas pocas direcciones capturan casi todo.
Valores singulares en orden decreciente: cuánta "energía" aporta cada dirección. Una caída brusca significa que la matriz es esencialmente de rango bajo.
- SFT: ajuste supervisado sobre demostraciones.
- Reward model: se entrena un modelo escalar \(R(x,y)\) sobre pares de preferencia.
- PPO: se optimiza la política contra \(R\), con penalización KL contra el modelo base.
Elimina el reward model: la recompensa ya estaba implícita en cuánto se ha movido la política respecto de su referencia.
Pérdida en función del margen \(\hat r_w - \hat r_l\), para varios \(\beta\). El punto marca dónde estás.
El bucle razonamiento → acción → observación. La calculadora evalúa realmente la expresión y la búsqueda consulta una base de datos incluida en la página: las observaciones no están escritas de antemano. Lo que sí está simplificado es el razonamiento — aquí sigue reglas; en un agente real lo genera el LLM.
| Método | Parámetros entrenados | VRAM | Latencia extra | Cuándo |
|---|---|---|---|---|
| Prompting / few-shot | 0 % | Baja (se paga en contexto) | 0 en pesos | Prototipar, tareas puntuales, cero entrenamiento. |
| LoRA / PEFT | < 0.1 % | Reducción típica de 3–4× | 0 si se fusiona | Adaptar a un dominio o formato (JSON, SQL, jerga técnica). |
| Full fine-tuning | 100 % | Muy alta (~4× los pesos) | 0 | Idioma o dominio realmente nuevo, con muchos datos. |
| Alineación (DPO/RLHF) | 100 % o adapters | Moderada (DPO) / muy alta (RLHF) | 0 | Ajustar tono, seguridad y seguimiento de instrucciones. |
- En la 1, pulsa "B = 0": \(\Delta W\) se anula y \(W' = W_0\) exactamente. Por eso LoRA arranca sin perturbar el modelo — y por eso \(A\) no puede ser también cero.
- En la 2, elige "ruido puro" y sube el rango: el error casi no baja. La apuesta de LoRA solo funciona si la actualización tiene estructura.
- En la 3, carga el escenario mal alineado: la pérdida sube a 0.750 y el peso del gradiente pasa de 0.4651 a 0.5275. DPO se concentra solo en lo que aún falla.
- En la 3, sube \(\beta\) a 0.5: la curva se vuelve mucho más abrupta. \(\beta\) controla cuánto se permite alejarse de la referencia.
- En la 4, pulsa "romper una herramienta" y vuelve a ejecutar: mira qué hace el agente cuando la observación no es la esperada.