Skip to content

Lección 03

Zero-shot vs few-shot: el patrón que vale más que un modelo grande

Cuándo darle ejemplos al modelo y cuándo no. La regla de oro: si puedes mostrarlo, no lo expliques.


La pregunta del millón

¿Cuándo vale la pena gastar tokens en darle ejemplos al modelo?

Respuesta corta: siempre que el formato sea raro, la tarea ambigua o el tono específico.

Respuesta larga: sigue leyendo, que sin esto no sales de la mediocridad.

Zero-shot — sin ejemplos

Le pides al modelo que haga algo sin enseñarle ningún caso. Funciona muy bien para tareas comunes que el modelo ya “ha visto” en su entrenamiento.

const res = await client.messages.create({
  model: "claude-haiku-4-5",
  max_tokens: 100,
  messages: [
    { role: "user", content: "Traduce al inglés: 'Hola, ¿qué tal?'" },
  ],
});
// → "Hello, how are you?"

Tareas donde zero-shot suele bastar:

  • Traducción entre idiomas comunes
  • Resumir texto
  • Responder preguntas factuales
  • Reescribir en otro tono

Few-shot — con 2 a 5 ejemplos

Le das varios ejemplos y luego le pides uno nuevo. El modelo aprende el patrón, no la solución concreta.

const res = await client.messages.create({
  model: "claude-haiku-4-5",
  max_tokens: 100,
  system: "Conviertes nombres de empresa en slugs URL-friendly.",
  messages: [
    {
      role: "user",
      content: `Ejemplos:
"Café & Té S.L." → cafe-te
"Mi Restaurante 24/7" → mi-restaurante-24-7
"Acme Corp." → acme-corp

Convierte: "Joyería Doña María"`,
    },
  ],
});
// → "joyeria-dona-maria"

Sin los ejemplos, podría devolverte JoyeriaDonaMaria, joyer%C3%ADa-do%C3%B1a, o cualquier otra cosa. Con tres ejemplos, fija el patrón en piedra.

La regla práctica

Si puedes mostrar la salida, no la describas.

Mira la diferencia:

Mal (zero-shot describiendo formato):

Devuélvemelo como un objeto JSON con campos nombre, edad y profesion,
todo en minúsculas, y que profesion sea siempre un array aunque tenga
un solo elemento.

Bien (few-shot mostrando formato):

Ejemplos:
"Ana, 30, ingeniera" → { "nombre": "ana", "edad": 30, "profesion": ["ingeniera"] }
"Luis, 45, abogado y profesor" → { "nombre": "luis", "edad": 45, "profesion": ["abogado", "profesor"] }

Convierte: "María, 28, médica"

El segundo prompt es más corto, más claro, y mucho más fiable.

Cuántos ejemplos

  • 1 ejemplo (one-shot) → la mayoría de casos. Suficiente para fijar formato.
  • 3-5 ejemplos → cuando hay variaciones o casos límite que mostrar.
  • >5 ejemplos → casi nunca. A partir de ahí, mejor fine-tuning o RAG.

Sesgo de ejemplos

Cuidado: el modelo copia patrones. Si todos tus ejemplos tienen longitud parecida, esperará una respuesta de esa longitud. Si todos terminan en punto, esperará un punto.

Por eso, varía deliberadamente:

"sí" → afirmativo
"NO." → negativo
"jaja claro, te creo" → negativo (sarcástico)

Tres ejemplos, tres longitudes distintas, tres tonos distintos. Le estás enseñando que la respuesta no depende de la forma, sino del fondo.

Reto

Diseña un prompt few-shot que reciba reseñas de productos y devuelva una puntuación de 1 a 5.

Compártelo en el Discord de la comunidad y otros alumnos te apuntan los puntos ciegos. En la siguiente lección, chain-of-thought: el truco que hace que el modelo razone en vez de adivinar.


NIVEL 2

Reto Pro

Reto Pro de esta lección

Misma idea, sin pistas, evaluada por tests automáticos.

Desbloquear Modo Pro · 19 € Pago único · acceso de por vida · sin suscripción
NIVEL 3

Hard Mode

Hard Mode

Variante extrema del reto. Tiempo límite y restricciones adicionales.

Desbloquear Modo Pro · 19 € Pago único · acceso de por vida · sin suscripción