Prompt y contexto
Prompt y contexto son conceptos fundamentales en la ingeniería de prompts para los modelos de lenguaje grandes (LLM).
El contexto es un componente de importancia crítica en un prompt, ya que determina la capacidad de un LLM para generar respuestas precisas, relevantes y útiles. La ingeniería de prompts eficaz consiste en gran medida en el arte de recopilar, filtrar, estructurar y presentar el contexto correcto al modelo en el momento adecuado, superando al mismo tiempo las limitaciones de los LLM modernos.
Definición de Prompt
Un prompt (del inglés prompt) es el conjunto completo de datos de entrada que se proporciona a un LLM para generar una respuesta. No es simplemente una pregunta o un comando, sino un texto estructurado que puede incluir:
- Instrucciones: Indicaciones directas al modelo sobre qué hacer, en qué formato, estilo o tono.
- Consulta principal (Query): La pregunta directa del usuario o la descripción de la tarea principal.
- Contexto: Información adicional necesaria para ejecutar correctamente la consulta.
- Ejemplos (Few-shot examples): Demostraciones del formato o estilo de respuesta deseado en tareas similares.
La calidad y la integridad del prompt determinan directamente la relevancia, precisión y utilidad de la respuesta del LLM.
Definición de Contexto
El contexto en el marco de la ingeniería de prompts es cualquier información dentro del prompt que ayuda al modelo a comprender mejor la tarea, las especificidades de la situación o las expectativas del usuario, pero que no forma parte de sus datos de entrenamiento originales. El contexto proporciona los detalles situacionales necesarios para generar una respuesta adecuada.
El contexto puede incluir:
- El historial de la conversación anterior (en chatbots).
- Datos extraídos de fuentes externas (documentos, bases de datos, páginas web), que es la base de la RAG.
- Información sobre el usuario (perfil, preferencias).
- Detalles específicos de la tarea o situación actual.
- Ejemplos de cómo realizar tareas similares (como parte del few-shot prompting).
Es importante distinguir el contexto proporcionado en el prompt del conocimiento general que el modelo adquirió durante su preentrenamiento. La ingeniería de prompts se centra en proporcionar eficazmente el contexto situacional.
Interrelación e Influencia
El prompt y el contexto son conceptos fundamentales en el funcionamiento de los transformadores, que determinan cómo el modelo percibe los datos de entrada y en qué se basa para generar un resultado. Arquitectónicamente, un transformador no distingue específicamente entre "prompt" y "contexto"; ambos son partes de la secuencia de entrada de tokens que se convierten en embeddings, se enriquecen con información posicional y se procesan conjuntamente por las capas de autoatención.
El prompt y el contexto están intrínsecamente vinculados: el contexto es una parte integral del prompt.
- El contexto da forma al prompt: El ingeniero selecciona y estructura el contexto relevante para incluirlo en el prompt.
- El contexto guía al modelo: La información proporcionada permite al LLM reducir el espacio de posibles respuestas, centrarse en los aspectos relevantes y evitar alucinaciones.
- La calidad del contexto determina la calidad de la respuesta: Un contexto insuficiente, irrelevante o contradictorio conduce a respuestas imprecisas, generales o erróneas. Un contexto preciso y completo aumenta la especificidad y la utilidad de la generación.
- Influencia en la interpretación de las instrucciones: El contexto puede aclarar o modificar la interpretación de las instrucciones generales en el prompt.
La eficacia de un prompt depende en gran medida de cuán exitosamente el ingeniero haya podido recopilar, filtrar y presentar el contexto relevante al modelo.
Tipos de Contexto
El contexto se puede clasificar según diferentes criterios:
Por fuente:
- Proporcionado por el usuario: La entrada explícita del usuario, su pregunta o la descripción de la tarea.
- Del historial de la conversación: Mensajes anteriores del usuario y del asistente (memoria a corto plazo).
- Extraído (Retrieved): Datos de fuentes externas (documentos, bases de datos, web) mediante RAG.
- Del perfil/base de conocimientos: Información a largo plazo sobre el usuario o el dominio.
- Estático/Instructivo: Información incorporada por el ingeniero en la plantilla del prompt (instrucciones, ejemplos, definición de roles).
Por dinamicidad:
- Contexto estático: Parte invariable del prompt (instrucciones, definiciones, ejemplos). Define la tarea general.
- Contexto dinámico: Información que cambia de una consulta a otra (datos del usuario, resultados de RAG, hora actual). Proporciona detalles específicos.
Por tiempo de almacenamiento (Memoria):
- Contexto a corto plazo: Historial de la sesión de conversación actual.
- Contexto a largo plazo: Datos guardados sobre el usuario o interacciones anteriores que requieren mecanismos de almacenamiento y recuperación.
Gestión del Contexto
La gestión eficaz del contexto es una tarea clave en la ingeniería de prompts, especialmente dadas las limitaciones de la ventana de contexto de los LLM. Los métodos principales son:
- RAG: El método más común para trabajar con grandes volúmenes de información. Permite encontrar e incluir dinámicamente en el prompt solo los fragmentos más relevantes de una amplia base de conocimientos. Requiere una base de datos vectorial y mecanismos de búsqueda eficientes (léxicos o semánticos).
- Fragmentación (Chunking): División de documentos grandes en partes semánticamente relacionadas o de tamaño fijo para su indexación y posterior recuperación a través de RAG.
- Resumen: Compresión de un largo historial de conversación o documentos voluminosos para transmitir el significado principal dentro de una ventana de contexto limitada.
- Gestión de la Memoria (Memory Management): Uso de diversas estrategias para almacenar y recuperar el historial de conversaciones en chatbots y agentes (por ejemplo, ConversationBufferMemory, ConversationSummaryBufferMemory en LangChain).
- Ventana deslizante (Sliding Window): Mantener solo los N últimos mensajes de la conversación en el contexto.
- Filtrado y Priorización: Selección de los fragmentos de contexto más relevantes en función de su importancia (por ejemplo, mediante puntuaciones de relevancia obtenidas en la búsqueda) antes de ensamblar el prompt final.
Rol del Contexto en la Ingeniería de Prompts
- Aumento de la Relevancia: El contexto permite al modelo generar respuestas que se ajustan con precisión a la consulta y la situación del usuario.
- Reducción de Alucinaciones: Proporcionar información fáctica (a través de RAG) obliga al modelo a basarse en ella en lugar de inventar hechos.
- Personalización: El contexto sobre el usuario (preferencias, historial) permite adaptar las respuestas.
- Gestión del Estado: En diálogos y procesos de varios pasos, el contexto (historial) garantiza la continuidad y la conciencia del modelo sobre los pasos anteriores.
- Superación de las Limitaciones de Conocimiento del Modelo: RAG permite al modelo responder preguntas sobre eventos ocurridos después de su entrenamiento o sobre datos específicos/privados.
Limitaciones
- Límite de la Ventana de Contexto: A pesar de haber aumentado a 1-2 millones de tokens en los modelos modernos, procesar tales volúmenes puede ser costoso y lento. Requiere estrategias eficientes de compresión y selección (RAG, resumen).
- Búsqueda de Contexto Relevante: La eficacia de RAG depende de la calidad de la búsqueda. Un contexto extraído incorrectamente puede confundir al modelo ("basura entra, basura sale").
- "Valle de la Indiferencia" (Valley of Meh): La información ubicada en el medio de un prompt muy largo puede ser ignorada por el modelo. Esto requiere estructurar el prompt (por ejemplo, con la "técnica del sándwich").
- Riesgo de Inyección de Contexto: Si el contexto se extrae de fuentes no confiables (como páginas web), puede contener instrucciones maliciosas (inyecciones de prompt).
Bibliografía
- Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
- Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
- Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
- Chen, S. et al. (2023). Extending Context Window of Large Language Models via Positional Interpolation. arXiv:2306.15595.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Besta, M. et al. (2023). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
- Packer, C. et al. (2023). MemGPT: Towards LLMs as Operating Systems. arXiv:2310.08560.
- Wang, Y. et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
- Sahoo, P. et al. (2024). A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications. arXiv:2402.07927.
- Kim, S. H. et al. (2024). Theanine: Revisiting Memory Management in Long-term Conversations with Timeline-augmented Response Generation. arXiv:2406.10996.
- Chen, S. et al. (2024). StruQ: Defending Against Prompt Injection with Structured Queries. arXiv:2402.06363.
- Zhong, M. et al. (2024). Understanding the RoPE Extensions of Long-Context LLMs: An Attention Perspective. arXiv:2406.13282.
- Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.
- Self-Instruct (2025). Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
Véase también
- Modelos de lenguaje grandes
- Ventana de contexto
- Bases de datos vectoriales
- LangChain