📚 CLASE: Técnicas de Few-Shot Prompting en Modelos de Lenguaje
━━━━━━━━━━━━━━━━━━
🎯 IDEA PRINCIPAL
El Few-Shot Prompting consiste en mostrarle al modelo ejemplos de entradas y salidas esperadas para orientar sus respuestas sin reentrenarlo.
En LangChain puedes incorporar ejemplos fijos o seleccionar ejemplos dinámicamente para mejorar la consistencia de tareas como clasificar mensajes, extraer datos o generar respuestas con un formato específico.
━━━━━━━━━━━━━━━━━━
⚡ RESUMEN ULTRA RÁPIDO
🔵 Zero-shot: instrucciones sin ejemplos; one-shot: un ejemplo; few-shot: varios ejemplos.
🟢 Muestra ejemplos representativos de cómo debe transformar una entrada en una salida.
🟡 Los ejemplos concretos ayudan a resolver ambigüedades que las instrucciones generales no aclaran.
🔵 FewShotChatMessagePromptTemplate integra ejemplos en una plantilla de conversación de LangChain.
🟣 Seleccionar ejemplos relevantes para cada consulta puede mejorar resultados y reducir tokens innecesarios.
━━━━━━━━━━━━━━━━━━
🔑 LO IMPORTANTE
🔵 Cada ejemplo debe mostrar claramente la entrada y la salida deseada.
🟡 Los ejemplos fijos funcionan bien cuando las consultas siguen un patrón estable.
🟡 Los ejemplos dinámicos se seleccionan según la consulta, por ejemplo, usando similitud semántica.
🟢 Incluye casos normales, ambiguos y excepcionales para mostrar cómo debe comportarse el modelo.
🔴 Ejemplos contradictorios o incorrectos enseñan patrones equivocados y perjudican las respuestas.
🔴 Más ejemplos no siempre significan mejores resultados; también aumentan el consumo de tokens.
🔵 Few-shot no modifica los parámetros internos del modelo: los ejemplos se proporcionan en el contexto de la solicitud.
🟣 Para responder preguntas sobre documentos propios, combina ejemplos de formato y comportamiento con RAG cuando necesites recuperar información específica.
━━━━━━━━━━━━━━━━━━
🧩 MODELO MENTAL
🔵 Instrucción + ejemplos representativos + consulta nueva → respuesta guiada.
🟢 Define qué resultado debe producir el modelo.
🟢 Selecciona ejemplos que representen el comportamiento deseado.
🟢 Incorpora los ejemplos en la plantilla de LangChain.
🟢 Evalúa las respuestas con consultas que no aparezcan en los ejemplos.
━━━━━━━━━━━━━━━━━━
🚀 ACCIONES PARA HOY
🟢 Instala LangChain Core en tu entorno virtual:
pip install -U langchain-core
🟢 Crea un archivo Python y prepara ejemplos de clasificación de gastos:
from langchain_core.prompts import ChatPromptTemplate, FewShotChatMessagePromptTemplate
🟢 Define ejemplos de entrada y salida:
ejemplos = [{"input": "Compré gasolina para la moto", "output": "Transporte"}, {"input": "Pagué el almuerzo", "output": "Alimentación"}, {"input": "Compré un medicamento", "output": "Salud"}]
🟢 Crea la plantilla que representa cada ejemplo:
plantilla_ejemplo = ChatPromptTemplate.from_messages([("human", "{input}"), ("ai", "{output}")])
🟢 Agrupa los ejemplos en una plantilla few-shot:
few_shot = FewShotChatMessagePromptTemplate(examples=ejemplos, example_prompt=plantilla_ejemplo)
🟢 Combínala con una instrucción general y una consulta nueva:
prompt = ChatPromptTemplate.from_messages([("system", "Clasifica el gasto usando una categoría breve."), few_shot, ("human", "{input}")])
🟢 Comprueba el resultado de la plantilla sin llamar todavía a ningún modelo:
print(prompt.invoke({"input": "Pagué el cambio de aceite"}).messages)
🟢 Conecta después prompt a un modelo de chat y prueba cinco gastos que no estén en los ejemplos.
🟢 Registra los aciertos y errores para determinar si los ejemplos realmente mejoran la clasificación.
━━━━━━━━━━━━━━━━━━
🟣 VENTAJA PROFESIONAL
🟣 Aporte experto: empieza con tres a cinco ejemplos variados y añade otros solo si corrigen errores identificados.
🟣 Para reducir costes, selecciona ejemplos dinámicamente y limita su longitud antes de enviarlos al modelo.
🟣 Si tienes cientos de ejemplos, considera un selector por similitud semántica en lugar de incluirlos todos en cada solicitud.
🟣 En un chatbot empresarial, construye ejemplos para consultas frecuentes, solicitudes ambiguas y situaciones que requieren escalar a una persona.
🟣 Separa el comportamiento esperado de los hechos que deben consultarse en fuentes actualizadas; los ejemplos no sustituyen una base de conocimiento.
🟣 Compara zero-shot y few-shot con las mismas consultas para comprobar si el coste adicional produce una mejora medible.
━━━━━━━━━━━━━━━━━━
📝 CIERRE
Un principiante añade ejemplos esperando que la IA mejore; un profesional selecciona ejemplos representativos, mide los resultados y controla el coste por consulta.
🟢 Reto: crea un clasificador de gastos con tres ejemplos, evalúalo con diez descripciones nuevas y compara sus resultados con los obtenidos usando únicamente instrucciones.