Ingeniería de prompts

From Systems analysis wiki
Jump to navigation Jump to search

La ingeniería de prompts es la disciplina de diseñar y optimizar prompts (instrucciones o peticiones) para interactuar eficazmente con modelos de lenguaje grandes (LLM). La calidad de un prompt determina directamente la precisión, relevancia y seguridad de la respuesta del modelo. Este campo está evolucionando rápidamente, pasando de la selección manual de instrucciones a la creación de sistemas de agentes complejos y el uso de modelos con mecanismos de razonamiento integrados.

Principios básicos y estructura de un prompt

Aunque no existe un estándar único, los prompts efectivos se basan en enfoques comunes propuestos por diferentes investigadores y empresas (por ejemplo, las 6 estrategias de OpenAI o las guías prácticas de Anthropic).

  • Un prompt efectivo a menudo incluye los siguientes componentes:
    • Rol (Persona): Establece el contexto y el estilo de comportamiento del modelo ("Eres un investigador sénior...").
    • Instrucciones (Instructions): Indicaciones claras y paso a paso sobre lo que se debe hacer.
    • Contexto (Context): Información necesaria para completar la tarea.
    • Ejemplos (Examples): Demostración del formato o estilo deseado (prompting de pocos ejemplos o few-shot prompting).
    • Formato de salida (Output Format): Especificación de la estructura de la respuesta (por ejemplo, JSON, Markdown).

Técnicas para mejorar el razonamiento (Reasoning)

Estas técnicas hacen que el modelo "piense" de manera más estructurada.Nota importante (Emergencia): La efectividad de la técnica `Chain‑of‑Thought` solo se manifiesta en modelos grandes (aproximadamente 100 mil millones de parámetros o más); los modelos más pequeños muestran un efecto insignificante o incluso un empeoramiento de los resultados.

  • Cadena de pensamiento (Chain-of-Thought, CoT): Instruir al modelo para que genere un razonamiento paso a paso antes de dar la respuesta final ("Piensa paso a paso").
  • Variaciones y alternativas a CoT:
    • Autoconsistencia (Self-Consistency): Generar múltiples cadenas de razonamiento y elegir la respuesta más frecuente mediante "votación".
    • Árbol de pensamientos (Tree-of-Thoughts, ToT): Explorar múltiples rutas de razonamiento en forma de árbol, con evaluación y retroceso a pasos anteriores.
    • Grafo de pensamientos (Graph-of-Thought, GoT): Una técnica avanzada con dos implementaciones principales: una modela el razonamiento como un grafo para flujos lógicos más flexibles (Besta et al.), mientras que la otra se centra en fusionar rutas de razonamiento (Yao et al.).
  • Mecanismos de razonamiento integrados (Reasoning Models): Se ha informado sobre el desarrollo de una nueva generación de modelos (como o1 y o3 de OpenAI) que se entrenan desde el principio con cadenas de razonamiento internas. Esto les permite realizar tareas complejas sin necesidad de un prompt explícito de tipo CoT.

Gestión del contexto y la memoria

Con el aumento de las ventanas de contexto, surgen nuevos desafíos y soluciones.

  • Ventanas de contexto (2024-2025):
Modelo Ventana de contexto máxima
Google Gemini 2.0 Pro 2 millones de tokens
Google Gemini 1.5 Pro 2 millones de tokens
Anthropic Claude 3.5 Sonnet ~200 mil tokens
OpenAI GPT-4o ~128 mil tokens

A partir de marzo de 2025, se presenta Google Gemini 2.5 Pro con una ventana de contexto de 1 millón de tokens, y la versión Pro-Experimental promete 2 millones de tokens en mayo de 2025.

  • Generación aumentada por recuperación (Retrieval-Augmented Generation, RAG): El RAG clásico complementa el prompt con información de bases de datos externas. Las implementaciones modernas incluyen:
    • GraphRAG: Utiliza grafos de conocimiento para extraer datos semánticamente más relacionados.
    • RAG multimodal: Funciona no solo con texto, sino también con imágenes, audio y video.
    • RAG agéntico: Integra RAG en ciclos de agentes, donde un agente decide de forma autónoma cuándo y qué información buscar.
  • Técnicas para contextos largos: Para trabajar eficazmente con ventanas grandes, se utilizan técnicas avanzadas, a menudo propietarias, como Cascading KV Cache e Infinite Retrieval.

Técnicas avanzadas: agentes y herramientas

  • Uso de herramientas (Tool Usage):
    • Llamada a funciones (Function Calling): Capacidad integrada en los modelos (GPT-4, Claude 3.5) para invocar API externas.
    • Protocolo de Contexto de Modelo (Model Context Protocol, MCP): Según algunos informes preliminares (requiere confirmación), se está desarrollando un nuevo estándar para unificar las API de herramientas, respaldado por Microsoft.
  • Agentes y frameworks (2024-2025):
    • LangChain (v0.3): Con el lanzamiento de LangChain v0.3 (septiembre de 2024), el framework migró completamente a Pydantic 2 y finalizó el soporte para Python 3.8, coincidiendo con su fecha de fin de vida (EOL) en octubre de 2024.[1]
    • AutoGen: Ha migrado completamente a una arquitectura asíncrona y orientada a eventos (modelo de actor).
    • CrewAI: Un framework de alto rendimiento que está ganando popularidad rápidamente para la orquestación de sistemas multiagente.
  • Plataformas sin código (no-code): Herramientas como AutoGen Studio permiten crear y configurar agentes complejos sin escribir código.

Técnicas para reducir las alucinaciones

Las alucinaciones (la generación de información objetivamente incorrecta) siguen siendo un problema clave. Según datos de 2024, su tasa varía entre el 3% y el 16% en los modelos líderes, y el daño económico que causan se estima en decenas de miles de millones de dólares.

  • Métodos clásicos: RAG, solicitud de citas, ajuste de parámetros de generación (temperatura, top-p).
  • Enfoques modernos de alineación (Alignment):
    • IA Constitucional (Constitutional AI, CAI): Un método propuesto por Anthropic donde el modelo aprende a seguir un conjunto de principios (una "constitución"), utilizando retroalimentación generada por IA.
    • Optimización Directa de Preferencias (Direct Preference Optimization, DPO): Una alternativa más simple y eficiente que RLHF. Las investigaciones sobre DPO en modelos de lenguaje y visión multimodales (VLMs), por ejemplo, para informes radiológicos, registran una reducción de las alucinaciones de 3 a 4.8 veces.

Patrones de prompts: estado actual

Muchos patrones (Persona, Output Customization) siguen siendo relevantes.

  • Requieren ser reconsiderados:
    • Patrón de lista de verificación de hechos (Fact Check List Pattern): Considerado poco fiable. Los modelos tienen dificultades para autoverificar hechos a través de prompts y requieren integración con sistemas de verificación externos.
  • Nuevos patrones (2024-2025):
    • Meta-prompting: El uso de un LLM para generar y optimizar prompts para otro LLM.
    • Prompts de Mezcla de Expertos (Mixture-of-Experts, MoE): Creación de prompts que se dirigen dinámicamente a diferentes partes "expertas" del modelo.
    • Patrones multimodales: Estructuras de prompts que incluyen texto, imágenes y otros tipos de datos para consultas complejas.

Enlaces

Bibliografía

  • Radford, A. et al. (2019). Language Models are Unsupervised Multitask Learners. PDF.
  • Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
  • Li, X. L.; Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. arXiv:2101.00190.
  • Liu, Y. et al. (2021). Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity. arXiv:2104.08786.
  • Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
  • Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Wei, J. et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Zhang, Z. et al. (2022). Automatic Chain of Thought Prompting in Large Language Models. arXiv:2210.03493.
  • Zhou, D. et al. (2022). Least-to-Most Prompting Enables Complex Reasoning in Large Language Models. arXiv:2205.10625.
  • Besta, M. et al. (2023). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
  • Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
  • Rafailov, R. et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Wang, Y. et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
  • Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
  • Chang, K. et al. (2024). Efficient Prompting Methods for Large Language Models: A Survey. arXiv:2404.01077.
  • Genkina, D. (2024). AI Prompt Engineering Is Dead. IEEE Spectrum. [2].
  • Li, Z. et al. (2024). Prompt Compression for Large Language Models: A Survey. arXiv:2410.12388.
  • Liang, X. et al. (2024). Internal Consistency and Self-Feedback in Large Language Models: A Survey. arXiv:2407.14507.
  • Li, W. et al. (2025). A Survey of Automatic Prompt Engineering: An Optimization Perspective. arXiv:2502.11560.
  • Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. EMNLP 2025. PDF.
  • Yang, B. et al. (2025). Hallucination Detection in Large Language Models with Metamorphic Relations. arXiv:2502.15844.

Notas

  1. «LangChain v0.3». https://python.langchain.com/docs/versions/v0_3/.[1]