A medida que abordamos más y más ejemplos y posibles aplicaciones con la ingeniería de prompt, notarás que hay ciertos elementos que componen un prompt.
Un prompt puede contener cualquiera de los siguientes componentes:
Instrucción - una tarea o instrucción específica que deseas que el modelo ejecute.
Contexto - puede involucrar información externa o contexto adicional que puede guiar al modelo hacia mejores respuestas.
Datos de entrada - es la entrada o pregunta para la que estamos interesados en encontrar una respuesta.
Indicador de salida - indica el tipo o formato de la salida.
No todos los componentes son necesarios para un prompt y el formato depende de la tarea en cuestión. Abordaremos ejemplos más concretos en las próximas guías.
CONSEJO:
Comienza Simple
Al comenzar a crear prompts, debes tener en cuenta que es realmente un proceso iterativo que requiere mucha experimentación para obtener los mejores resultados. Usar un entorno simple como OpenAI o Cohere's es un buen punto de partida.
Puedes comenzar con prompts simples y continuar agregando más elementos y contexto a medida que buscas mejores resultados. El control de versiones de tu prompt a lo largo del camino es vital por esta razón. Al leer la guía, verás muchos ejemplos donde la especificidad, la simplicidad y la concisión generalmente te darán mejores resultados.
Cuando tienes una gran tarea que implica muchas subtareas diferentes, puedes intentar descomponer la tarea en subtareas más simples y continuar aumentando a medida que obtienes mejores resultados. Esto evita agregar demasiada complejidad al proceso de diseño del prompt en un inicio.
Puedes crear prompts efectivos para varias tareas simples usando comandos para instruir al modelo sobre lo que deseas lograr, como "Escribir", "Clasificar", "Resumir", "Traducir", "Ordenar", etc.
Ten en cuenta que también necesitas experimentar mucho para ver qué funciona mejor. Prueba diferentes instrucciones con palabras clave, contextos y datos diferentes y observa qué funciona mejor para tu caso de uso y tarea específicos. Generalmente, cuanto más específico y relevante sea el contexto para la tarea que estás intentando ejecutar, mejor. Abordaremos la importancia de la muestreo y la adición de más contexto en las próximas guías.
Otros recomiendan que las instrucciones se coloquen al principio del prompt. También se recomienda usar un separador claro como "###" para separar la instrucción y el contexto.
Por ejemplo:
Prompt:
### Instrucción ###
Traduce el texto siguiente al español:
Texto: "¡hola!"
Salida:
¡Hola!
Sé muy específico sobre la instrucción y la tarea que deseas que el modelo ejecute. Cuanto más descriptivo y detallado sea el prompt, mejores serán los resultados. Esto es particularmente importante cuando tienes un resultado deseado o estilo de generación que estás buscando. No hay tokens o palabras clave específicas que lleven a mejores resultados. Es más importante tener un buen formato y un prompt descriptivo. De hecho, proporcionar ejemplos en el prompt es muy eficaz para obtener la salida deseada en formatos específicos.
Al crear prompts, también debes tener en cuenta el tamaño del prompt, ya que hay limitaciones sobre cuán grande puede ser. Pensar en cuán específico y detallado debes ser es algo a considerar. Incluir demasiados detalles innecesarios no es necesariamente un buen enfoque. Los detalles deben ser relevantes y contribuir a la tarea en mano. Esto es algo que necesitarás experimentar mucho. Fomentamos mucha experimentación e iteración para optimizar los prompts de tus aplicaciones.
Como ejemplo, intentemos un prompt simple para extraer información específica de un texto.
Prompt:
Extrae los nombres de los lugares en el siguiente texto.
Formato deseado: Local: <lista_de_nombres_de_lugares_separados_por_comas>
Input: "Aunque estos desarrollos son alentadores para los investigadores, mucho sigue siendo un misterio.
“A menudo tenemos una caja negra entre el cerebro y el efecto que vemos en la periferia”, dice Henrique Veiga-Fernandes, neuroinmunólogo del Centro Champalimaud para lo Desconocido en Lisboa.
“Si queremos usarlo en un contexto terapéutico, realmente necesitamos comprender el mecanismo."
Salida:
Local: Centro Champalimaud para lo Desconocido, Lisboa
El texto de entrada se obtiene de este artículo de Nature(opens in a new tab).
Dadas las recomendaciones anteriores sobre cómo ser detallado y mejorar el formato, es fácil caer en la trampa de querer ser demasiado inteligente sobre los prompts y potencialmente crear descripciones imprecisas. Generalmente, es mejor ser específico y directo. La analogía aquí es muy similar a la comunicación efectiva: cuanto más directa, más efectiva es la comunicación.
Por ejemplo, puede que estés interesado en aprender el concepto de ingeniería de prompts. Podrías intentar algo como:
Explica el concepto de ingeniería de prompts. Mantén la explicación corta, solo unas frases, y no seas demasiado descriptivo.
No está claro en el prompt anterior cuántas frases usar y qué estilo. Aún puedes obtener una buena respuesta con el prompt anterior, pero el mejor prompt sería aquel que es muy específico, conciso y directo al grano. Algo como:
Usa de 2 a 3 frases para explicar el concepto de ingeniería de prompts a un estudiante de secundaria.
Otro consejo común al crear prompts es evitar decir lo que no hacer, pero decir lo que hacer. Esto fomenta más especificidad y se centra en los detalles que conducen a buenas respuestas del modelo.
Aquí hay un ejemplo de un chatbot de recomendación de películas fallando exactamente en lo que no quiero que haga debido a cómo escribí la instrucción, enfocándome en lo que no hacer.
Prompt:
El siguiente agente recomienda películas para un cliente. NO PREGUNTES SOBRE INTERESES. NO PREGUNTES INFORMACIÓN PERSONAL.Cliente: Por favor, recomiéndame una película basada en mis intereses.Agente:
Salida:
Claro, puedo recomendar una película basada en tus intereses. ¿Qué tipo de película te gustaría ver? ¿Prefieres acción, comedia, romance u otra cosa?
Aquí tienes un mejor prompt:
Prompt:
El siguiente agente recomienda películas para un cliente. El agente es responsable de recomendar una película de las principales películas de tendencias globales. Debe abstenerse de preguntar a los usuarios sobre sus preferencias y evitar pedir información personal. Si el agente no tiene una película para recomendar, debe responder "Lo siento, no pude encontrar una película para recomendar hoy."Cliente: Por favor, recomiéndame una película basada en mis intereses.Agente:
Salida:
Lo siento, no tengo información sobre tus intereses. Sin embargo, aquí tienes una lista de las principales películas de tendencias globales en este momento: [lista de películas]. ¡Espero que encuentres algo que te guste!