Desarrollo de páginas web y software a medida en Ecuador

jivsoft@hotmail.com +593 97 876 6762
Publicado: /

In-context learning en serio: enseñando a tu modelo con pocos ejemplos

Cómo escoger y escribir buenos ejemplos para que el modelo generalice: selección de casos, orden, formato, anti-patrones y un micro-workflow en n8n que recupera ejemplos del “banco” según la consulta.

In-context learning en serio: enseñando a tu modelo con pocos ejemplos

In-context learning en serio: enseñando a tu modelo con pocos ejemplos

El modelo aprende del contexto que le das en cada petición. Con pocos ejemplos bien curados puedes guiar su comportamiento sin entrenar nada.

En el post anterior vimos cómo comparar prompts con justicia. Hoy damos el salto a in-context learning (ICL): el arte de elegir y escribir pocos ejemplos para que el modelo generalice correctamente. Es la herramienta más barata para subir calidad sin tocar pesos.

¿Qué es ICL (y qué no)?

  • Es mostrar demostraciones (entrada → salida) dentro del prompt para que el modelo imite el patrón.
  • No es reentrenar el modelo ni hacer fine-tuning.
  • Clave: la calidad y representatividad de tus ejemplos importa más que su cantidad.

Cómo seleccionar buenos ejemplos

  1. Cobertura: incluye casos típicos, bordes y contrajemplos.
  2. Proximidad: que se parezcan al caso actual (dominio, idioma, estructura).
  3. Frescura: si tu dominio cambia, rota el banco de ejemplos periódicamente.
  4. Balance: evita sesgos (solo casos “bonitos” da resultados engañosos).

Tip Laravel: mantén un “banco de ejemplos” en DB con slug, input, output, tags, idioma, score y updated_at.

Formato que ayuda al modelo

  • Delimita con etiquetas claras (p. ej., ### Ejemplo, Entrada:, Salida:).
  • Homogeneidad: todos los ejemplos con la misma estructura y estilo.
  • Contrato de salida: si quieres JSON, muestra JSON válido en los ejemplos.
  • Brevity wins: ejemplos cortos y precisos > ejemplos largos con ruido.

¿Cuántos ejemplos usar?

No hay número mágico, pero como regla práctica:

  • 1–2 (one/few-shot): tareas simples o muy bien definidas.
  • 3–5: clasificación/transformación con variación moderada.
  • 6–8: solo si cada ejemplo aporta un patrón distinto y tienes contexto de sobra.

Recuerda: más ejemplos consumen tokens y pueden diluir la instrucción principal.

Orden y señal

  • Del general al caso: pon primero las reglas y el contrato de salida.
  • Ejemplos → tarea: ejemplos antes de la entrada real, con el mismo formato.
  • Ejemplo “negativo”: uno que muestre qué no hacer puede ser muy útil.

Plantillas de ICL

1) Extracción estructurada (JSON)

Rol: Eres un extractor estricto. Devuelve SOLO JSON válido.
Esquema:
{"nombre":"string","fecha_iso":"YYYY-MM-DD|null","monto":"number|null"}

### Ejemplo 1
Entrada:
"Factura ACME emitida el 2024-11-03 por 129,50 USD para Juan Pérez."
Salida:
{"nombre":"Juan Pérez","fecha_iso":"2024-11-03","monto":129.5}

### Ejemplo 2 (sin monto explícito)
Entrada:
"Orden de compra de Ana García, 3 de mayo de 2025."
Salida:
{"nombre":"Ana García","fecha_iso":"2025-05-03","monto":null}

### Tarea
Entrada:
{TEXTO_REAL}
Salida:

2) Clasificación multietiqueta

Rol: Clasificador. Devuelve {"labels":["..."]} usando solo etiquetas permitidas.

Etiquetas permitidas: ["soporte","factura","legal","marketing"]

### Ejemplo
Entrada: "No llegó mi pedido, ayuda urgente."
Salida: {"labels":["soporte"]}

### Tarea
Entrada: {TEXTO}
Salida:

3) Normalización de estilo

Rol: Editor. Reescribe el texto con tono profesional, 120-150 palabras, sin adjetivos superfluos.

### Ejemplo
Entrada: "Esto es super genial y cambia todo!"
Salida: "Este enfoque aporta mejoras concretas y medibles..."
### Tarea
Entrada: {PARRAFO}
Salida:

Anti-patrones frecuentes

  • Ejemplos inconsistentes (formatos distintos entre sí).
  • Relleno (historias largas irrelevantes).
  • Mezclar idiomas sin aclararlo.
  • Casos irrelevantes para la consulta actual (baja proximidad).
  • Olvidar el “no sé” cuando falta evidencia.

Micro-workflow en n8n: “Banco de ejemplos dinámico”

  1. Webhook → recibe {task, query, lang}.
  2. Function → deriva tags a partir de task (ej. "extraccion", "facturas").
  3. HTTP Request → consulta tu API/DB de ejemplos con tags, lang y orden por score y updated_at.
  4. Function → compone el prompt: reglas + 3–5 ejemplos + tarea.
  5. LLM → ejecuta y devuelve respuesta.
  6. Database → guarda costo, latencia, éxito y ejemplos usados (para feedback y rotación).

Tip: si el output falla validación, reintenta con menos ejemplos o con los de mayor score.

Conclusión

ICL bien hecho = ejemplos breves, consistentes y cercanos al caso real, con contrato de salida claro. Construye un banco curado, selecciona dinámicamente y mide. Es la vía rápida para mejorar sin reentrenar.

  • In-context learning
  • Few-shot
  • Plantillas
  • n8n
  • Laravel