Few-Shot Prompting (In-Context Learning)
Metodología de ingeniería de prompts donde el modelo se adapta a un formato, estilo o lógica específicos durante la inferencia (In-Context Learning) mediante la presentación de 2 a 5 ejemplos de referencia.
1. Visión general del concepto y problema sistémico
Uno de los desafíos más comunes al trabajar con modelos de lenguaje es la ambigüedad del lenguaje natural. Cuando un desarrollador escribe en la instrucción: “Escribe una interfaz de TypeScript concisa en el estilo de nuestro proyecto”, el modelo se ve obligado a basarse en representaciones promediadas de Internet:
- Subjetividad de las formulaciones: Conceptos como "conciso", "bonito" o "estricto" son interpretados por el modelo de manera demasiado amplia, lo que provoca inestabilidad en los resultados de una ejecución a otra.
- Imposibilidad de describir todas las reglas por texto: La descripción de las convenciones de la base de código puede ocupar 10 páginas de reglas que el modelo inevitablemente comenzará a violar.
- “Más vale ver una vez que oír mil”: Al igual que a un programador humano, a un modelo de lenguaje le resulta mucho más fácil replicar un estilo a partir de 2 a 4 ejemplos visuales que entender descripciones abstractas.
Few-Shot prompting elimina la ambigüedad a través de la demostración: se muestran al modelo de 2 a 4 pares contrastantes de “Datos de entrada -> Resultado de referencia”, estableciendo un canon de comportamiento claro.
2. Taxonomía arquitectónica y modelo mental
Gradación de métodos de aprendizaje en contexto (In-Context Learning):
- 1. Zero-Shot (Sin ejemplos): El modelo recibe una instrucción puramente textual y una nueva tarea. Adecuado para tareas rutinarias básicas, pero ofrece la mayor variabilidad en la salida.
- 2. One-Shot (Un ejemplo de referencia): Se añade un ejemplo ideal al prompt. Esto es suficiente para establecer un marco sintáctico (por ejemplo, la forma del JSON de salida).
- 3. Few-Shot (Conjunto clásico de 2 a 5 ejemplos): El equilibrio dorado. Incluye muestras de diferentes escenarios: un caso simple, un caso complicado con datos anidados y un caso extremo (Edge Case / Error Handling).
- 4. Retrieval-Augmented (Dynamic) Few-Shot: Patrón de producción avanzado: una biblioteca de 500 ejemplos se indexa en una base de datos vectorial. Para cada consulta del usuario, la búsqueda vectorial recupera los 3 ejemplos más relevantes.
3. Pipeline técnico y mecánica interna
Ciclo de vida de preparación y ejecución de un Few-Shot prompt:
- Exemplar Selection & Curation (Selección y curaduría de ejemplos): Se forma un conjunto compacto de pares que demuestran el resultado deseado sin errores ni palabrería innecesaria.
- Structural Delimitation (Delimitación estructural):
Los ejemplos se envuelven en estrictas etiquetas XML o Markdown para evitar la mezcla de instrucciones con ejemplos:
<example id="1"><input>...</input><output>...</output></example>. - Induction Head Pattern Activation (Activación de patrones de inducción):
Durante el cálculo de las capas de atención, el transformador fija la transición de la etiqueta
<input>a<output>como una transformación de datos determinista. - Target Inference Alignment (Generación de la respuesta objetivo): El modelo genera una respuesta a una nueva pregunta, copiando subconscientemente la sintaxis, longitud, convenciones de nombrado y claves utilizadas en los ejemplos.
4. Escenarios prácticos de ingeniería en producción
01. Parsing estricto de datos no estructurados a JSON
Necesitas convertir descripciones textuales de transacciones bancarias en un JSON válido. Zero-shot a menudo confunde los campos de fecha o copia centavos. Few-shot con tres ejemplos (incluyendo reembolsos y pagos multimoneda) asegura un 99.8% de estabilidad en el esquema.
02. Cumplimiento del estilo de codificación corporativo
El equipo necesita que el agente de código escriba pruebas unitarias estrictamente según el estándar interno: uso de describe.concurrent, un helper específico de fábrica de usuarios makeUser() y prohibición de mocks a través de jest.spyOn. Dos ejemplos en el prompt del sistema resuelven completamente el problema.
03. Canonización y traducción de términos técnicos
Traducción de documentación al español con la exigencia de mantener términos específicos en su forma original (por ejemplo, Checkpointer, Race condition) y traducir otros según el glosario corporativo.
5. Errores comunes, trampas y seguridad
- Sesgo de mayoría y recencia (Majority & Recency Bias): Los modelos son extremadamente sensibles al orden de los ejemplos. Si en 3 de 4 ejemplos la respuesta fue "Sí", el modelo tendrá un fuerte sesgo hacia "Sí" para cualquier nueva entrada. Siempre equilibra las clases en los ejemplos (50/50).
- Copia de errores de los ejemplos (Error Mimicry): Si en uno de los ejemplos accidentalmente omitiste un paréntesis de cierre o cometiste un error tipográfico, el modelo reproducirá este error en los nuevos resultados.
- Inflación del contexto de entrada: Diez ejemplos detallados de Few-shot pueden ocupar 15,000 tokens. Siempre utiliza Prompt Caching para prompts del sistema con ejemplos.
FAQ: Few-Shot Prompting (In-Context Learning)
Términos relacionados
Ingeniería de Prompts (Arquitectura de Contexto y Ingeniería de Prompts)
Disciplina de ingeniería que estructura directrices sistémicas, marcado XML, delimitadores semánticos y ejemplos para lograr resultados determinísticos y predecibles de modelos probabilísticos.
Instrucciones del Sistema (System Instructions & Metaprompting)
Bloque de instrucciones metacontextuales prioritarias que se transmite en la posición cero de la ventana de contexto y define el rol, las reglas de seguridad, las herramientas disponibles y los límites de comportamiento del agente.
Cadena de Pensamiento (Chain of Thought - CoT)
Metodología que impulsa a un modelo de lenguaje a generar pasos intermedios secuenciales de razonamiento antes de formular la respuesta final, convirtiendo tokens adicionales (Test-Time Compute) en calidad y precisión del resultado.
Markdown AST para Agentes (Abstract Syntax Tree)
Representación jerárquica en forma de árbol de la sintaxis Markdown (estándar mdast / Unified.js), que permite a los sistemas programáticos y agentes de IA analizar, transformar y editar contenido técnico de manera determinista y segura, sin recurrir a frágiles expresiones regulares.