Prompting

Hace tiempo que no se puede dar un paso sin oír o leer algo nuevo sobre inteligencia artificial generativa (generative AI). En gran parte se lo debemos a los denominados Modelos de Lenguaje de Gran Escala (Large Language Models, LLM) que están transformando el panorama tecnológico.

Para utilizar estos modelos, normalmente disponemos de algún mecanismo donde poder introducir las órdenes a ejecutar por el modelo, es lo que se denomina prompting. El prompting es el proceso de proporcionar una entrada (o ‘prompt’) a un modelo de lenguaje para obtener una salida deseada. En otras palabras, es la orden que le enviamos al modelo para que interprete y actúe. Lejos de ser algo sencillo, prompting puede convertirse en un arte y es crucial para maximizar la eficacia de los LLM y en ocasiones, requiere una comprensión profunda de cómo funcionan los modelos de lenguaje y cómo interpretan diferentes tipos de entrada.

Aparte del prompt, otros términos referidos a este ámbito que podemos encontrarnos son:

Prompt engineering: es la práctica de trabajar en el prompt hasta que obtenemos lo que estamos buscando en el formato que lo estamos buscando y para ello tenemos diferentes «herramientas».

Prompt template: se refiere a cuando utilizamos unas plantillas, normalmente en formato fichero, conteniendo ejemplos de como queremos obtener el resultado más adelante, trabajando normalmente con técnicas de single-shot o few-shop que veremos más adelante. Es como realizar un entrenamiento al modelo, para enseñarle cómo queremos obtener el resultado.

Syntax Hacking: dependiendo del modelo utilizado, veremos que las respuestas obtenidas varían si utilizamos unas palabras o sinónimos de éstas. Incluso dependiendo del idioma utilizado, los modelos pueden responder de diferentes maneras. Trabajar en cómo se redacta la pregunta puede variar mucho la respuesta. Veremos ejemplos más adelante.

Zero-shot: son los prompts donde preguntamos directamente lo que se quiere obtener, sin dar más explicaciones ni ejemplos (de ahí el nombre). Son útiles para preguntas sencillas o que no necesitan un formato específico, aunque conviene tener en cuenta algunos aspectos que comentaremos más adelante. Algunos ejemplos podrían ser: ¿Cuál es la receta de la paella? ¿Cuáles son los nombres de los huesos de la mano?

Single-shot: en este caso, damos pistas del tipo de respuesta que esperamos, le damos contexto mediante un ejemplo, por ejemplo:

Prompt: "Describe el siguiente objeto: 'manzana' como una fruta redonda, a menudo de color rojo o verde, que crece en árboles y es comestible. Ahora, describe: 'plátano'."

Respuesta del modelo: "El plátano es una fruta alargada y curvada, generalmente de color amarillo cuando está maduro, que se puede pelar y comer."

Few-shot: es semejante al Single-shot pero con el prompt le damos más de un ejemplo.

Técnicas de prompting

Usando alguna de las siguientes técnicas podemos ajustar a nuestro favor las respuestas ofrecidas por el modelo:

Técnica 1: Preguntas directas y específicas

Descripción: Una técnica común de prompting es hacer preguntas directas y específicas al modelo. Los modelos de lenguaje a menudo son más efectivos para proporcionar respuestas útiles cuando la pregunta es clara y detallada.

Ejemplo Práctico: En lugar de pedir “dime sobre la fotosíntesis”, se podría preguntar “¿cuál es el proceso químico detallado de la fotosíntesis?”

Técnica 2: Uso de palabras clave

Descripción: Incorporar palabras clave relevantes en el prompt puede ayudar a guiar al modelo hacia la generación de una respuesta más centrada y relevante.

Ejemplo Práctico: En lugar de decir “necesito ayuda con la escuela”, utiliza palabras clave específicas como “necesito ayuda con mi tarea de matemáticas sobre ecuaciones cuadráticas”.

Técnica 3: Proporcionar contexto

Descripción: Dar un contexto claro y conciso puede ser extremadamente beneficioso para obtener respuestas más precisas.

Ejemplo Práctico: En lugar de preguntar “explícame matemáticas”, proporciona contexto: “explícame cómo hacer una división para que lo entienda un niño de 11 años”

Técnica 4: Limitar el alcance de la respuesta

Descripción: Limitar el alcance de la respuesta puede ser útil para obtener información más específica.

Ejemplo Práctico: En lugar de pedir “dime sobre el universo”, puedes pedir “dime sobre la estructura del sistema solar”.

Cómo el prompting afecta los resultados

El prompting no solo afecta la relevancia de la respuesta, sino también otros factores como la longitud y la complejidad del texto generado. Un prompt claro y específico puede ayudar a obtener una respuesta concisa y al punto, mientras que un prompt vago o ambiguo puede llevar a respuestas largas y confusas.

Comparar prompts bien construidos con mal construidos puede proporcionar una comprensión clara de cómo pequeñas modificaciones en la entrada pueden hacer una gran diferencia.

Ejemplo:

Mal Prompt: “Dime algo de historia”.

Buen Prompt: “Explica la importancia del Tratado de Versalles en la Primera Guerra Mundial”.

El buen prompt aquí es específico, directo y contiene palabras clave y contexto relevante, guiando al modelo hacia una respuesta más precisa y útil.

Entender cómo los ligeros cambios en los prompts pueden afectar las respuestas es crucial para optimizar el uso de los modelos de lenguaje. La especificidad, el contexto, el tono, la claridad y otros factores juegan un papel significativo en determinar la naturaleza y la utilidad de la respuesta generada por modelos como ChatGPT. Este conocimiento es esencial para aquellos que buscan extraer el máximo valor de estos avanzados modelos de lenguaje.Es importante tener en cuenta que, aunque los cambios en los prompts pueden mejorar la precisión y relevancia de las respuestas, también pueden limitar el alcance de la respuesta y excluir información potencialmente valiosa. Encontrar un equilibrio entre la especificidad y la amplitud es esencial para obtener la mejor respuesta posible.

Al cambiar una sola palabra en un prompt, los resultados pueden variar drásticamente.

Ejemplo:

Prompt 1: “Cuéntame un cuento para niños”.

Prompt 2: “Cuéntame un cuento de terror para niños”. Los cuentos resultantes tendrán tonos y contenidos completamente diferentes debido al cambio de una sola palabra.

Veamos algunos casos de prompts y cómo podríamos ajustarlos para mejorar las respuestas (animo al lector a probar los prompts con sus modelos preferidos y ver como reaccionan a cada uno de ellos):

Caso 1: Especificidad en las preguntas

Ejemplo:

Prompt 1: «¿Puedes contarme sobre Albert Einstein?»

Prompt 2: «¿Puedes contarme sobre las contribuciones de Albert Einstein a la física teórica?»

En el primer caso, la respuesta probablemente incluirá una amplia gama de información sobre Einstein, incluyendo su vida personal, educación, y carrera. En cambio, el segundo prompt focaliza la pregunta en un área específica, las contribuciones de Einstein a la física teórica, lo que probablemente resultará en una respuesta más técnica y detallada sobre sus teorías y descubrimientos en ese campo.

Caso 2: Cambio en la formulación de la pregunta

Ejemplo:

Prompt 1: «¿Cómo puedo mejorar mi escritura?»

Prompt 2: «¿Puedes darme algunos ejercicios prácticos para mejorar mi escritura?»

Ambos prompts buscan mejorar la escritura, pero el primero es más general y podría generar una variedad de consejos y técnicas. El segundo, sin embargo, solicita específicamente ejercicios prácticos, lo que orientará la respuesta hacia una lista de actividades y tareas específicas para mejorar la escritura.

Caso 3: Contexto adicional en el prompt

Ejemplo:

Prompt 1: «Dime sobre las ballenas.»

Prompt 2: «Dime sobre la comunicación entre ballenas.»

El añadir contexto adicional, como «la comunicación entre» en el segundo prompt, cambia drásticamente el enfoque de la respuesta. En lugar de una descripción general sobre las ballenas, el modelo proporcionará información específica sobre cómo las ballenas se comunican entre sí.

Caso 4: Cambios en el tono del prompt

Ejemplo:

Prompt 1: «Cuéntame un hecho histórico.»

Prompt 2: «Cuéntame un hecho histórico divertido.»

El cambio en el tono, de neutral a buscar algo “divertido”, también puede afectar la respuesta del modelo. En el segundo caso, la respuesta estará orientada a hechos históricos que tienen un elemento de humor o curiosidad.

Caso 5: Claridad y precisión

Ejemplo:

Prompt 1: «Ayuda con plantas.»

Prompt 2: «Necesito ayuda para escoger plantas adecuadas para un jardín en un clima árido.»

La claridad y precisión en el prompt son cruciales. El primer prompt es ambiguo y podría generar una variedad de respuestas relacionadas con plantas. El segundo prompt es claro y específico, lo que garantiza una respuesta útil y relevante sobre cómo escoger plantas para un clima árido.

Caso 6: Especificidad temporal

Ejemplo:

Prompt 1: «Cuéntame sobre la evolución de los teléfonos.»

Prompt 2: «Cuéntame sobre la evolución de los teléfonos en la década de 1980.»

La especificidad temporal, como se muestra en el segundo prompt, dirigirá la respuesta hacia los teléfonos desarrollados y utilizados en la década de 1980, proporcionando una respuesta más concentrada en esa era.

Como podemos observar, dependiendo de como se formulan los comandos, las respuestas pueden variar drásticamente, por lo que es recomendable conocer las especificidades de cada modelo y como reaccionan a cada uno de los comandos que les entregamos.