ArquitecturaExperto45 min
Fine-tuning vs Prompting
Cuándo entrenar · cuándo promptear · costes reales · casos de uso
Fine-tuningPromptingTraining
✓ Guía gratuita · Acceso completo
Mapa rápido · salta al paso que te interese
01
Árbol de decisión: cuándo fine-tune
Fine-tuning tiene sentido cuando necesitas consistencia extrema en formato/estilo, o cuando el conocimiento requerido no está en el modelo base.
| Situación | Recomendación | Por qué |
|---|---|---|
| Quiero que responda en cierto tono | Prompting | Few-shot examples en system prompt |
| Necesito formato JSON específico | Prompting | JSON mode + schema en prompt |
| Dominio muy técnico (legal, médico) | Fine-tune + RAG | Conocimiento especializado |
| Consistencia 99.9% en formato | Fine-tune | Prompting tiene variabilidad |
| Latencia crítica (menos tokens) | Fine-tune | System prompt largo = lento |
| Presupuesto limitado | Prompting | Fine-tune requiere datos + compute |
⚠ Advertencia
El 90% de casos se resuelven con better prompting. Fine-tune es caro y requiere mantenimiento. Agota prompting primero.
02
Preparar datos para fine-tuning
El formato estándar es JSONL con pares de mensajes. Necesitas mínimo 50-100 ejemplos de calidad, idealmente 500+.
training_data.jsonl
{"messages": [{"role": "system", "content": "Eres un asistente legal español."}, {"role": "user", "content": "¿Qué es una cláusula abusiva?"}, {"role": "assistant", "content": "Una cláusula abusiva es aquella que, en contra de las exigencias de la buena fe, causa un desequilibrio importante en los derechos y obligaciones de las partes. Según el artículo 82 del TRLGDCU..."}]}
{"messages": [{"role": "system", "content": "Eres un asistente legal español."}, {"role": "user", "content": "¿Puedo reclamar gastos de hipoteca?"}, {"role": "assistant", "content": "Sí, según la jurisprudencia del Tribunal Supremo (STS 705/2015), los gastos de formalización de hipoteca que corresponden al banco son reclamables..."}]}Tip Pro
La calidad de los datos es 10x más importante que la cantidad. 100 ejemplos perfectos superan a 1000 mediocres.
03
Ejecutar fine-tuning con OpenAI
scripts/fine-tune.ts
import OpenAI from 'openai'
import fs from 'fs'
const openai = new OpenAI()
async function fineTune() {
// 1. Subir archivo de training
const file = await openai.files.create({
file: fs.createReadStream('training_data.jsonl'),
purpose: 'fine-tune',
})
console.log('File uploaded:', file.id)
// 2. Crear job de fine-tuning
const job = await openai.fineTuning.jobs.create({
training_file: file.id,
model: 'gpt-4o-mini-2024-07-18', // Base model
hyperparameters: {
n_epochs: 3,
},
})
console.log('Fine-tuning job created:', job.id)
// 3. Monitorear progreso
let status = job.status
while (status !== 'succeeded' && status !== 'failed') {
await new Promise(r => setTimeout(r, 30000))
const updated = await openai.fineTuning.jobs.retrieve(job.id)
status = updated.status
console.log('Status:', status)
}
// 4. Usar el modelo
if (status === 'succeeded') {
const updated = await openai.fineTuning.jobs.retrieve(job.id)
console.log('Fine-tuned model:', updated.fine_tuned_model)
// Usar con: model: updated.fine_tuned_model
}
}
fineTune()¿Quieres el sistema completo?
500+ páginas, 25 capítulos, código de producción, acceso a todas las guías del Arsenal.
Curso Completo · €29PayPal · Acceso inmediato