El diseño de instrucciones, o prompt engineering, es una disciplina emergente en el mundo de la inteligencia artificial. Se trata de crear instrucciones precisas que permitan a un modelo de lenguaje, como los desarrollados por Google, generar respuestas que cumplan con nuestras expectativas. Ya sea que estés usando un modelo para responder preguntas, generar código o crear contenido, dominar el diseño de instrucciones es esencial para aprovechar al máximo las capacidades de la IA.
En este artículo, aprenderás los conceptos básicos para diseñar prompts efectivos. Exploraremos los diferentes componentes de un prompt y analizaremos cómo incluir ejemplos y contexto para obtener respuestas de mayor calidad. Además, veremos cómo manejar las instrucciones del sistema para establecer el estilo y tono de las respuestas generadas.
¿Qué es el diseño de instrucciones?
El diseño de instrucciones es el proceso de crear instrucciones detalladas para los modelos de lenguaje con el fin de obtener la respuesta deseada. A medida que más desarrolladores integran modelos de lenguaje en sus aplicaciones, la habilidad para diseñar buenos prompts se vuelve una parte crucial del desarrollo de IA. Este proceso iterativo de diseñar, ajustar y evaluar instrucciones para un modelo se denomina ingeniería de instrucciones.
Los modelos como los de la familia Gemini suelen ofrecer buenos resultados con instrucciones simples. Sin embargo, cuando se trata de tareas más complejas, la ingeniería de instrucciones puede marcar la diferencia entre respuestas genéricas y respuestas precisas y adaptadas a la situación.
Componentes de una instrucción
Una buena instrucción no se limita a una pregunta básica. Puedes incluir cualquier información adicional que consideres relevante para la tarea, como contexto o ejemplos. Por lo general, los prompts se dividen en los siguientes componentes:
- Tarea (obligatoria)
- Instrucciones del sistema (opcional)
- Ejemplos con pocos intentos (opcional)
- Información contextual (opcional)
Tarea
La tarea es el núcleo de la instrucción. Es la pregunta o indicación principal que queremos que el modelo responda. Las tareas pueden ser tan simples como una pregunta directa o más detalladas, con instrucciones complejas que indiquen cómo responder.
Ejemplo de tarea con pregunta:
Pregunta: ¿Cuáles son los colores de un arcoíris?
Respuesta: Un arcoíris tiene siete colores: rojo, naranja, amarillo, verde, azul, índigo y violeta. Estos colores siempre aparecen en el mismo orden, que se determina por la forma en que la luz se refracta y se dispersa en las gotas de agua en el aire. A menudo, se recuerda este orden con el acrónimo «ROYGBIV» (por sus siglas en inglés). Las longitudes de onda de estos colores van desde la más larga (rojo) hasta la más corta (violeta).
Ejemplo de tarea con instrucción:
Indicación: Escribe una estrofa sobre el Capitán Canilla, el perro pirata más temido de los siete mares.
Respuesta:
Capitán Canilla, con parche y garfio,
Temor de loros, azote de navíos.
Su ladrido es una espada, su mordida un tifón,
Se lleva tus galletas y te deja en un rincón.
Instrucciones del sistema
Las instrucciones del sistema se proporcionan al modelo antes de que reciba la entrada del usuario. Estas instrucciones permiten configurar el estilo, tono y contexto del modelo, así como establecer restricciones sobre qué temas se pueden discutir.
Ejemplo de instrucciones del sistema:
Sistema: Eres el Capitán Canilla, el perro pirata más temido de los siete mares. Vienes del año 1700 y no conoces nada que haya sucedido después de esa época. Solo hablas sobre temas relacionados con la vida pirata. Termina cada mensaje con un «¡guau!».
Indicación: ¡Hola! ¿Quién eres?
Respuesta:
¡Arriad las velas! Soy el Capitán Canilla, el azote de los siete mares. Soy un terror para los marineros, un saqueador de alta categoría y un feroz pirata del océano más profundo. No te dejes engañar por mi aspecto peludo, ¡tengo un olfato infalible para el tesoro y un corazón de acero! ¡Guau!
Estas instrucciones aseguran que el modelo se mantenga en el contexto del personaje y no se desvíe hacia temas que no son relevantes para la conversación.
Ejemplos con pocos intentos (few-shot)
Los ejemplos con pocos intentos muestran al modelo cómo debe ser una respuesta correcta. Este enfoque es especialmente útil para establecer un tono específico o para guiar al modelo en tareas complejas.
Ejemplo de prompt con pocos intentos:
Indicación: Clasifica los siguientes vinos como «vino tinto» o «vino blanco».
Nombre: Chardonnay
Tipo: Vino blanco
Nombre: Cabernet
Tipo: Vino tinto
Nombre: Moscato
Tipo: Vino blanco
Nombre: Riesling
Tipo:
Respuesta: Vino blanco.
En este caso, el modelo entiende cómo clasificar el tipo de vino basándose en los ejemplos previos. Este método es ideal para tareas en las que se requiere un aprendizaje específico de patrones.
Información contextual
El contexto proporciona información adicional que el modelo debe tener en cuenta al generar una respuesta. Puede ser información estructurada, como tablas, o texto descriptivo.
Ejemplo de información contextual:
Marble color: Rojo, 12 canicas
Marble color: Azul, 28 canicas
Marble color: Amarillo, 15 canicas
Marble color: Verde, 17 canicas
Indicación: ¿Cuántas canicas verdes hay?
Respuesta: Hay 17 canicas verdes.
El contexto permite al modelo acceder a información relevante sin necesidad de que el usuario lo mencione explícitamente en la pregunta. Esto es especialmente útil cuando trabajas con datos estructurados o necesitas que el modelo recuerde información específica.
Seguridad y respuestas de resguardo
Existen situaciones en las que es recomendable que el modelo se niegue a proporcionar una respuesta. Estos casos incluyen solicitudes que promuevan el odio, la violencia o cualquier comportamiento dañino. El modelo también puede negarse a responder preguntas que no cumplan con las políticas de seguridad de la plataforma.
Algunos ejemplos de respuestas de resguardo pueden ser:
- Incitación al odio o a la violencia: El modelo podría responder con «Lo siento, no puedo ayudarte con esa solicitud».
- Contenido explícito o inapropiado: El modelo podría decir: «No puedo proporcionar información sobre ese tema».
Implementar estas respuestas asegura que los modelos operen dentro de un marco ético y seguro.
Conclusión
El diseño de instrucciones es una habilidad fundamental para trabajar con modelos de lenguaje. Ya sea que estés ajustando prompts para un chatbot o creando instrucciones detalladas para tareas más complejas, entender cómo estructurar las instrucciones, agregar ejemplos y proporcionar contexto puede marcar una gran diferencia en la calidad de las respuestas generadas.
Explorar y experimentar con las opciones de diseño de prompts no solo mejora la precisión de los resultados, sino que también te ayuda a descubrir nuevas formas de interactuar con los modelos de lenguaje. ¿Listo para ponerlo en práctica? ¡Comienza a diseñar tus propias instrucciones y observa cómo se transforman tus aplicaciones de IA!