093_1_prompt_optimization_5_principles_of_prompting_coding - IUGO-Studio/tech-ia GitHub Wiki

Resumen general:

El video explica cómo optimizar un prompt para producción, aplicando los cinco principios de la ingeniería de prompts (de un libro que está escribiendo el presentador para O'Reilly Media). Se presenta un ejemplo práctico de generación de una publicación para redes sociales a partir de una idea ("insight") y una red social específica (LinkedIn, Twitter, etc.). Se muestra cómo mejorar progresivamente el prompt, agregando instrucciones sobre el estilo, especificando un formato/estructura (usando la estructura "bait, hook, reward"), proporcionando ejemplos y, finalmente, dividiendo la tarea en múltiples prompts (generación y evaluación) para mejorar la calidad y confiabilidad de la respuesta.

Conceptos clave:

  • Prompt Optimization (Optimización de Prompts): El proceso de refinar y mejorar un prompt para obtener mejores resultados de un modelo de lenguaje.
  • Cinco Principios de Prompting: Un conjunto de principios o directrices para crear prompts efectivos (se mencionan, pero no se enumeran todos en el video).
  • Insight: Una idea o observación original sobre un tema.
  • Red Social (Social Network): Una plataforma en línea para la interacción social (ej: LinkedIn, Twitter, Facebook, Instagram).
  • Estilo (Style): La forma en que se escribe un texto (ej: formal, informal, humorístico, técnico, etc.). En el video se usa el estilo de "Malcolm Gladwell".
  • Formato/Estructura (Format/Framework): La organización o estructura de un texto (ej: lista, tabla, JSON, YAML, etc.). En el video, se usa la estructura "bait, hook, reward" (cebo, anzuelo, recompensa).
  • Bait, Hook, Reward: Una estructura para crear contenido atractivo, donde:
    • Bait (Cebo): Algo que llama la atención del lector.
    • Hook (Anzuelo): Algo que mantiene el interés del lector.
    • Reward (Recompensa): Algo que proporciona valor al lector.
  • Ejemplos (Examples): Pares de entrada/salida que muestran al modelo cómo realizar la tarea.
  • Evaluación (Evaluation): El proceso de medir la calidad de las respuestas generadas por un modelo de lenguaje.
  • División del trabajo (Divide Labor): Dividir una tarea compleja en subtareas más pequeñas y manejables, y asignar cada subtarea a un prompt diferente.
  • Prompt Engineering: El arte de diseñar prompts.
  • LLM: Modelo de lenguaje extenso.
  • Async: Se programa de forma asíncrona para mejorar la velocidad.

Cinco principios de Prompt Engineering (mencionados en el video, no son exhaustivos):

  1. Dar dirección (Give Direction): Describir el estilo deseado o proporcionar una persona relevante.
  2. Especificar el formato (Specify the Format): Indicar el formato de salida deseado (ej: JSON, lista) o un marco de referencia (ej: "bait, hook, reward").
  3. Proporcionar ejemplos (Provide Examples): Mostrar al LLM ejemplos de la salida deseada.
  4. Evaluar (Evaluate): Se debe evaluar la calidad de las respuestas obtenidas.
  5. Dividir el trabajo (Divide Labor): Se debe dividir la tarea en partes, usando multiples prompts.

Ejemplo práctico (generación de una publicación para redes sociales):

  1. Prompt inicial (vago): "Write a social media post about [insight] for [social network]."
  2. Agregar dirección (estilo): Se agrega la instrucción "in the style of Malcolm Gladwell" al prompt.
  3. Especificar el formato (estructura "bait, hook, reward"): Se agrega un esquema en YAML que define la estructura deseada para la publicación (cebo, anzuelo, recompensa) y se le pide al modelo que primero genere los elementos de esa estructura y luego la publicación completa.
  4. Proporcionar ejemplos: Se agregan ejemplos de publicaciones escritas en el estilo deseado y con la estructura especificada.
  5. Dividir la tarea en múltiples prompts (generación y evaluación):
    • Se crea un prompt para generar múltiples publicaciones.
    • Se crea un prompt para evaluar la calidad y el atractivo de cada publicación generada, asignándole una puntuación.
    • Se utiliza programación asíncrona (asyncio) para generar y evaluar múltiples publicaciones simultáneamente.
    • Se clasifican las publicaciones según su puntuación, seleccionando las mejores.

Consejos y buenas prácticas:

  • Sé claro y específico en tus instrucciones: Proporciona al modelo toda la información que necesita para generar una respuesta de alta calidad.
  • Utiliza los cinco principios de prompting: Aplica los principios de dirección, formato, ejemplos, evaluación y división del trabajo para mejorar tus prompts.
  • Itera y experimenta: Prueba diferentes variaciones de tus prompts y evalúa los resultados para encontrar lo que funciona mejor.
  • Divide las tareas complejas en subtareas más pequeñas: Esto facilita la creación de prompts efectivos y mejora la calidad y confiabilidad de las respuestas.
  • Utiliza programación asíncrona para tareas que implican múltiples llamadas al modelo: Esto puede mejorar significativamente la velocidad de ejecución.
  • "Secret Sauce": Se refiere a la información única o perspectiva original que el usuario aporta a la tarea. No se refiere a algo secreto en el sentido de confidencial, sino a la contribución distintiva que hace que la publicación sea valiosa y diferente de lo que el LLM podría generar por sí solo.

Dudas o preguntas:

  • ¿Cuáles son los otros dos principios de prompting que no se mencionan en el video? Investigación: El video solo menciona tres de los cinco principios del libro que está escribiendo el autor. Los otros dos principios podrían estar relacionados con la gestión del contexto, la reducción de ambigüedades, o el uso de técnicas más avanzadas como el "Chain of Thought".

  • ¿Cómo se pueden adaptar estos principios para otras tareas de generación de texto, además de la creación de publicaciones para redes sociales? Investigación: Los principios se pueden aplicar a cualquier tarea de generación de texto. La clave es adaptar las instrucciones, el formato, los ejemplos y la evaluación a la tarea específica.

  • ¿Cómo se puede automatizar el proceso de evaluación de las publicaciones generadas? Investigación: Se pueden utilizar "evals" sintéticos (utilizando otro LLM como juez) o programáticos (basados en reglas), como se explica en otros videos.

  • ¿Por qué se usa YAML en el prompt?

    • Claridad y estructura: YAML es un formato de serialización de datos legible por humanos, similar a JSON, pero con una sintaxis más limpia y menos verbosa. Es más fácil de leer que JSON para un humano, especialmente dentro de un prompt.
    • Menos "ruido": YAML usa indentación para definir la estructura, en lugar de llaves y corchetes como JSON. Esto lo hace menos propenso a errores de sintaxis y más fácil de integrar en un prompt de texto.
    • Guía para el LLM: Al usar YAML, se le está dando al LLM una estructura clara que debe seguir. Esto le ayuda a entender cómo debe organizar la información y reduce la probabilidad de que genere una salida en un formato incorrecto.
    • Facilidad de análisis (opcional): Aunque el video no analiza (parse) la salida YAML en código, si se quisiera extraer la información del cebo, el anzuelo y la recompensa programáticamente, YAML sería más fácil de analizar que un bloque de texto sin formato.

    En resumen, usar YAML en este caso es una elección de diseño de prompt para:

    1. Claridad para el humano que lee el prompt.
    2. Guía para el LLM.
    3. Potencial facilidad de análisis posterior (aunque no se use en el video).
⚠️ **GitHub.com Fallback** ⚠️