Seleccionar página
25 de junio de 2024

Prompt, Aprendiendo una Nueva Herramienta

Veremos los conceptos básicos para entender el prompt y una serie de técnicas y configuraciones para el mejor uso de éste.

 

¡Comenzamos!

Después de que OpenAI lanzara uno de sus productos que la mayoría conocemos, ChatGPT, se ha puesto muy de moda y a la orden del día muchas herramientas como esta, o parecidas. Tanto los usuarios como las empresas las están incluyendo en sus vidas y como cualquier herramienta hay que aprender a usarla. Tiene sus pros y sus contras, sus riesgos y beneficios. En este artículo encontrarás cómo interactuar con el prompt y algunos riesgos que te puedes encontrar. Es un tema muy amplio, así que únete a nosotros y coméntanos tus impresiones y hallazgos.
Antes de utilizar una herramienta siempre leemos el manual de instrucciones para entender el contexto y los componentes. En nuestro caso no vamos a ser menos, vamos a entender primero unos conceptos básicos que después vamos a utilizar y a agradecer haberlos repasado. En nuestro pasado post “SelenIA: Cómo la IA Generativa Revoluciona la Gestión de Documentos” ya comentamos qué era la IA Generativa y los LLMs. Para quien se lo perdiera os aconsejamos leerlo, pero, de todos modos, os hacemos un breve resumen.
IA Generativa: Es una rama de la inteligencia artificial que trata de crear contenido original y nuevo de imágenes, texto, código, vídeos y audio a partir de unas directrices o comandos.
LLM (large language model): Es un algoritmo de Inteligencia Artificial basado en arquitectura de red neuronal. Mediante una petición formulada con un texto de entrada genera un texto en lenguaje natural de salida.
Prompt: Es el texto de entrada que se usa como solicitud a los LLMs para obtener el texto resultante.
Token:  Es la unidad básica que un LLM puede comprender y procesar. Puede ser desde un carácter a una palabra completa.
prompt-tokens
Ahora que ya tenemos estos conocimientos, vamos a hablar del prompt. Como hemos mencionado antes, el Prompt es el texto de entrada que le damos a los LLMs para que nos genere un texto de salida. Este texto de entrada lo podemos dividir en dos conjuntos, el del sistema y el del usuario. En la parte del sistema le definimos el contexto sobre el que tiene que actuar y la parte del usuario le podemos definir una petición que nos contestará sobre ese contexto predefinido. Veamos un ejemplo:

System: Eres un asistente de inteligencia artificial que ayuda al usuario con recetas.

Usuario: Dame la receta de la tortilla de patatas.

Así el asistente le contestará con la receta de tortilla de patatas. Pero, como todo, no es tan sencillo. Puede que un humano hubiese entendido que sólo nos referíamos a recetas culinarias. ¿Qué pasa si le pregunto sobre una receta de un limpiador casero? ¿Y si le pregunto sobre libros? Pues os adelanto, que me va a contestar, porque en ningún momento le he dicho en ninguna instrucción que sólo puede hablar de recetas culinarias. Así que, si quisiéramos un chat exclusivamente culinario, deberíamos afinar nuestro prompt del “System” añadiendo más instrucciones.

Aquí tenéis un ejemplo de lo que contesta.

ejemplo-prompt-asistente
ejemplo-prompt-asistente
ejemplo-prompt-asistente
ejemplo-prompt-asistente-prueba
ejemplo-prompt-asistente
ejemplo-prompt-asistente

Innovación y cremiento al alcance de tu empresa gracias a la IA Generativa

Cada vez son más las empresas que apuestan por la IA para capturar el valor de su negocio. El 42% de las empresas quiere invertir en la IA generativa en 2023… ¿Y tú?

Contacta con nosotros para explorar cómo podemos hacer que la inteligencia artificial trabaje para tu empresa. Juntos, llevaremos tu comunicación empresarial al siguiente nivel.

Podemos seguir algunas estrategias para afinar el prompt y obtener mejores respuestas:

Estrategia ZERO-SHOT

Se le suele denominar a la práctica del prompt de darle una instrucción sin ejemplos.  Como hemos hecho en el ejemplo anterior de las recetas, le damos una instrucción y no le mencionamos ningún ejemplo de recetas.

Estrategia FEW-SHOT

En esta estrategia se le dan ejemplos al sistema sobre cómo tiene que actuar como parte del prompt. Vamos a ver un ejemplo. Ya que hablamos de recetas culinarias, hagamos uno de comida. En este ejemplo haremos que el sistema clasifique la comida según nosotros queramos.

System: Eres un asistente que clasifica comida en sana, medio y perjudicial.

Solamente la fruta, carne o verdura se clasifica como sana.

Solo si son con azucares y pescado es perjudicial.

El resto es medio.

Contesta solo con la palabra sana, medio o perjudicial.

EJEMPLO

user: cerveza

system: medio

FIN EJEMPLO

estrategia-fewshot
ejemplo-prompt-asistente
ejemplo-prompt-asistente
Como podemos ver nos contesta que la cerveza es medio, cuando debería ser perjudicial, ya que está siguiendo nuestro ejemplo.

Veamos el ejemplo cambiando nuestro ejemplo de “cerveza” a “ron” para ver cómo reacciona.

estrategia-fewshot-reacción
ejemplo-prompt-asistente
ejemplo-prompt-asistente

Chain of Thought (CoT)

Es una variación de dividir un problema en varios más pequeños y además darle ejemplos de cómo solucionar esas pequeñas tareas.

Veamos un ejemplo. Le preguntamos a un chat que utiliza un LLM (concretamente GPT-35) que nos resuelva un problema de un tren donde los pasajeros van subiendo y bajando en las paradas, pero queremos saber cuántos llegan al destino.

Utilizamos una frase sencilla y podemos ver que no lo resuelve correctamente. Si le decimos que sume los que suben y reste los que bajan, además lo haga en cada parada, obtenemos el resultado correcto.

chain-of-thought
chain-of-thought-prompt

Zero-shot CoT

En este caso, le indicamos al prompt que resuelva el problema paso a paso y nos muestre los pasos. De esta manera podemos ver el flujo de razonamiento seguido, además de obtener una respuesta más precisa y con menos fallos.

Si nos basamos en el ejemplo anterior con mismo enunciado y le añadimos “Resuélvelo paso a paso” vemos que sí es capaz de responder correctamente también. Además podemos ver los pasos seguidos uno a uno para llegar a la respuesta.

zeroshot-cot-prompt

Prompt chaining

Esta técnica también tiene relación con dividir el problema en subproblemas. La solución del problema uno es parte de la entrada del problema dos. En lenguaje de prompt, la respuesta del LLM se utiliza como parte del prompt del siguiente problema.

Esto sólo es un ejemplo de unas cuantas estrategias, hay más. Se puede utilizar una o también una combinación de varias. Depende siempre del resultado que se quiera obtener, de la complejidad del problema o del contexto de este.

Ya hemos visto que el prompt se puede usar de varias maneras como herramienta, ahora vamos a ver que también tiene parámetros configurables que nos afectan en las respuestas.

Temperatura y Top P

La temperatura controla el nivel de creatividad o aleatoriedad con la que el LLM generará sus respuestas. Así que a mayor temperatura el modelo creará respuestas más creativas. Por el contrario, creará respuestas más deterministas.

El Top P es límite de probabilidad para la selección de tokens. Un Top P alto quiere decir que el modelo analizará más tokens, incluso los menos probables y la respuesta será más diversa y con más originalidad. Un Top P bajo, quiere decir que seleccionará menos tokens, pero éstos estarán cerca entre sí, más probables.

temperatura-topp
¿Por qué las agrupamos en la misma definición?

La primera razón es que las dos pueden tener un valor entre cero y uno.

La segunda es que configuran ajustes relacionados entre sí.

Frequency penalty y Presence penalty

Frequency penalty reduce la posibilidad de repetir un token proporcionalmente a la frecuencia con la que ha aparecido en el texto hasta el momento. Con un valor bajo le decimos que penalice menos la repetición, así que estos tokens se repetirán más. Y viceversa.

Presence penalty reduce la posibilidad de repetir cualquier token que haya aparecido en el texto hasta ahora. Esto aumenta la probabilidad de introducir nuevos tokens en una respuesta. Con valor alto tendremos más probabilidad de nuevos tokens. Y viceversa.

frequency-penalty-presence-penalty
La primera razón es que las dos pueden tener un valor entre cero y dos.

La segunda es que configuran ajustes relacionados entre sí. Podríamos decir que uno se refiere a la repetición de tokens y el otro a la probabilidad de nuevos tokens.

Conclusión

Como desarrolladores, técnicos o como usuarios utilizamos la IA Generativa en nuestro día a día. Es muy útil y está en constante evolución. Esta herramienta tan rápida y joven hay que aprender a utilizarla bien y responsablemente para que sea eficaz. Aquí os hemos dejado unos consejos para ello y para evitar errores. Existen más mecanismos, pero esto es un comienzo. Os animamos a uniros a compartir conocimientos y a aprender con nosotros.

Curso de Copilot para Microsoft 365

En este curso aprenderás mediante ejercicios prácticos a integrar Copilot en las aplicaciones de Office con Outlook, Teams, Excel, Word, PowerPoint y Edge, y a aprovechar sus funciones más avanzadas y exclusivas.

Al finalizar la formación, podrás usar Copilot y sacarle el máximo partido a esta Inteligencia Artificial generativa para simplificar las tareas de tu día a día.

cristina-filgueira

Cristina Filgueira Tormo

Intelligent Apps Practice Lead and Mentor