- Crear ejemplos de instrucción útiles para SFT.
- Separar train, validation y test sin contaminar resultados.
- Eliminar datos sensibles, duplicados y respuestas mediocres.
Formato simple
{"instruction":"Clasifica el email","input":"Hola, quiero cambiar mi factura...","output":"categoria: facturacion\nprioridad: media\naccion: pedir numero de factura"}
{"instruction":"Redacta respuesta breve","input":"Cliente pide plazo de entrega","output":"Hola, gracias por escribir. El plazo estimado es..."}
{"instruction":"Extrae campos","input":"Presupuesto para 3 licencias anuales","output":"{"producto":"licencia anual","cantidad":3}"}Checklist de limpieza
- Sin emails, teléfonos, DNI, claves ni nombres reales si no hay base legal.
- Sin ejemplos duplicados entre train y test.
- Sin respuestas contradictorias para la misma instrucción.
- Con errores reales del dominio, no solo casos perfectos.
- Con ejemplos donde el modelo debe rechazar o pedir aclaración.
dataset/ train.jsonl validation.jsonl test.jsonl README.md data_card.md redactions.log
Datos sintéticos con control
Generar ejemplos con otro modelo puede acelerar mucho, pero debes tratarlo como borrador. Cada lote sintético necesita objetivo, distribución deseada, revisión y una forma de detectar duplicados o frases demasiado parecidas.
synthetic_batch:
objetivo: "emails de soporte para facturación"
cantidad: 200
variacion:
- tono_enfadado
- datos_incompletos
- factura_rectificativa
- solicitud_fuera_de_alcance
controles:
pii_real: false
revisar_muestra: 50
deduplicar_por_similitud: true
incluir_rechazos: trueSi has guardado la evidencia de esta lección, continúa con «LoRA y QLoRA». Si no, repite la comprobación antes de avanzar.