Veremos los conceptos básicos para entender el prompt y una serie de técnicas y configuraciones para el mejor uso de éste.
¡Comenzamos!
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.
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
Veamos el ejemplo cambiando nuestro ejemplo de “cerveza” a “ron” para ver cómo reacciona.
Chain of Thought (CoT)
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.
Zero-shot CoT
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.
Prompt chaining
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
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.
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
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.
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.