Muy buenos días y bienvenidos a Inteligencia Artificial. El podcast donde hablamos del presente y el futuro de la inteligencia artificial, analizamos casos donde ya se están usando estas tecnologías y vemos cómo podemos aplicarlo en el día a día de nuestros trabajos, proyectos y empresas.
Yo soy Pocho Costa, ingeniero en sistemas, programador y amante de la tecnología y me podés encontrar en pochocosta.com donde ahí también vas a encontrar las notas del programa y otros medios para ponerte en contacto conmigo.
Empezamos.
Buenas buenas ¿cómo andan?¡Espero que todo muy bien!
Acá estamos de nuevo con un episodio del podcast inteligencia artificial. El último del año 2023.
Espero que hayan pasado una muy feliz navidad y en este episodio quiero hablar de un tema que hoy a finales de 2023, y un año o más de un año después de que haya salido ChatGPT, se de gente que todavía no consigue buenos resultados con los modelos del lenguaje, ya sea con ChatGPT, Bard, Bing o Microsoft Copilot, con cualquiera de esos hay mucha gente que no la usa porque no tiene buenos resultados.
Y la clave para eso es poder escribir un buen prompt.
¿Que es un prompt?
Un prompt es la instrucción que nosotros le damos al modelo de lenguaje para que haga lo que nosotros le pedimos.
Así que bueno, vamos a hacer un episodio hablando de eso para que podamos cerrar este 2023 con ese tema y que a partir de ahora podamos obtener buenos resultados o los mejores posibles, y que podamos arrancar el 2024 ya pudiendo hacer uso de la inteligencia artificial en el día a día.
Una de las cosas a tener en cuenta y para mí de lo más importante al momento de escribir prompts, es que los modelos del lenguaje no pueden leernos la mente. Entonces, lo que tenemos que tratar es de que si queremos algo, especificárselo.
Si nosotros queremos que nos dé una respuesta corta, se lo digamos. O si queremos una respuesta larga y detallada, también que se lo digamos.
Entonces, cuanto menos el modelo tenga que adivinar, es más probable que haga lo que nosotros queremos.
Tenemos que pensar en el prompt como cuando delegamos algo en una persona. Si yo le digo a Juancito, andá a comprar el pan.
Juancito no va a saber: ni cuánto pan tiene que comprar, ni donde lo tiene que comprar, ni que tipo de pan tiene que comprar, para cuando lo necesito, etc etc etc.
Entonces puede pasar que juancito tenga que tomar un montón de decisiones para poder cumplir con lo que le pedimos y que al final esa tarea no se haya cumplido como nosotros esperabamos.
Y cuando le pedimos a la Inteligencia Artificial que haga una tarea pasa exactamente lo mismo. Para delegarle tareas de manera efectiva, tenemos que darle pedidos claros.
Microsoft, por ejemplo, da una recomendación, una estructura de referencia, que dice que un prompt tiene que tener un objetivo, un contexto, ejemplos y expectativas.
Hay muchos frameworks o marcos de referencia para escribir prompts que tienen estructuras modulares, que son distintas partes que componen ese prompt y cada una de esas partes cumple una función dentro del prompt que hace que el resultado final sea una instrucción bastante completa.
Hay un framework que se llama RTF que viene de las siglas de Rol, tarea y formato, otro que se llama TAG, que es tarea, acción, objetivo (goal en inglés), otro que llama guide, que es objetivo, usuario, instrucciones, detalles y ejemplos y así vamos a encontrar muchos de estos marcos de referencia de cómo hacer un buen prompt.
https://www.instagram.com/p/Cy04uGqg-MO/
Lo importante es que en todos estos hay varias similitudes que creo que es lo que conviene rescatar y después usar el framework que más nos guste, el que mejor resultado nos ha dado o incluso ir mezclando partes de estas estructuras modulares y probando que resultado nos da.
Entonces, las cosas en común es que como les decía, todos tienen estructuras modulares con partecitas que vamos a ir uniendo para armar el prompt con la instrucción definitiva.
Casi todos nos dicen que le demos un contexto y que pongamos ejemplos, incluso hay algunos que nos dicen que especificamos un rol que queremos que tenga, así que vamos ahora a profundizar sobre estos temas. Empecemos con el rol. El rol es cuando nosotros le decimos, por ejemplo, actúa como un experto en tal cosa con más de 10 años de experiencia. Eso es darle un rol.
Nosotros cuando interactuamos con un modelo de lenguaje, cada una de las palabras que ingresemos en nuestra instrucción, van a condicionar la respuesta que nos dé. Entonces, al darle un rol, vamos a condicionar esa respuesta y el decirle que sea un experto en tal tema con más de 10 años de experiencia, hace más probable que la respuesta sea lo más parecida a la que nos daría un experto en ese tema con más de 10 años de experiencia.
Otro tema importante es el objetivo. El objetivo tiene que ser muy claro, si nosotros queremos pedirle que nos ayude a optimizar un proceso o que nos ayude a organizar un evento, tenemos que decirse lo bien claro.
En cuanto a los detalles, que es otra parte común en muchos frameworks, ahí es nuestra oportunidad de darle referencias, de darle contexto, contarle sobre nuestro trabajo, nuestra empresa, nuestro proceso, todo lo que ayuda de que pueda entender mejor el contexto y darnos una respuesta más cercana a lo que esperamos.
Después, otra cosa que podemos incluir en estos módulos son instrucciones. Instrucciones , como por ejemplo, si queremos que nos de ideas para mejorar, la instrucción puede ser, dame una lista de 10 posibles mejoras.
Y por último, otra cuestión interesante es el tema de la restricción.
La restricción puede ser «Dame las ideas en una tabla» o «Dame las ideas en formato de bullets» o «Dame en forma de poema». Lo que sea, pero son restricciones de cómo queremos que lo haga.
Incluso si queremos que nos arme, por ejemplo, un hilo de X, el viejo Twitter, le decimos “Dame las ideas en menos de 280 caracteres por idea”.
Ese es el tema de la restricción.
Otra cosa interesante que se estuve investigando en cuanto a las instrucciones y los modelos de lenguaje es que, hay algo que se llama cadena de pensamientos, «Chain of Thoughts» en inglés, que es darle la oportunidad al modelo de que “razone” entre comillas y de que arme una respuesta mejor.
Entonces si nosotros queremos pedirle algo complejo, en vez de decirle que nos de el resultado así de una, lo que podemos decirle es que lo piense paso a paso, y esa manera de decirle que lo piense paso a paso va a hacer que la estructura de lo que nos devuelva vaya haciendo como una especie de razonamiento donde va dando detalle paso a paso y eso hace que la respuesta final sea más acertada.
Un tema a tener en cuenta también con los modelos de lenguaje es el problema de las alucinaciones, que es que los modelos puedan inventar información.
Entonces, siempre que sea posible, está bueno darles contexto para que usen de referencia, algo en lo que se basen, y que haya menos probabilidad en sí de que se invente la información.
Según algunos papers o algunos estudios que hacen científicos de empresas como DeepMind, por ejemplo.
Hay algunas curiosidades acerca de ciertas formas de estructurar los prompts o de empezar los prompts para obtener mejores resultados. Por ejemplo, esto de decirle que «piense cuidadosamente paso a paso», era eso de «la cadena de pensamientos», eso logró que frente otro tipo de prompts, genere muchísimos mejores resultados.
Incluso, hay un paper que menciona que decirle en el prompt al modelo de lenguaje, “toma un respiro hondo y trabaja en esto paso a paso”, condicionó al modelo para generar una respuesta mejor todavía.
Así que fíjense cómo cada palabra o cada conjunto de palabras puede condicionar la respuesta de un modelo de lenguaje.
Todo esto que nos lleva a que en la mayoría de los casos, si nosotros queremos obtener una respuesta acertada sobre una tarea compleja, vamos a tener que escribir un prompt bastante largo y complejo.
Y lo que pasa por lo general es que no queremos tomarnos ese trabajo de redactar un prompt muy completo, nos queremos ahorrar eso, y quizás ahí es donde estamos fallando para lograr las respuestas que esperamos.
Un truco que se puede usar para eso es decirle brevemente qué es lo que queremos y en vez de darle todo el contexto y toda la referencia que deberíamos darle, podemos decirle en la última parte del pedido, que antes de empezar me haga todas las preguntas que crea necesaria para aclarar las dudas, y de esa manera nos va a hacer una serie de preguntas que debamos responder para ahí sí obtener la respuesta final.
https://www.instagram.com/p/CxajlC-Ao4U/?img_index=1
Así que bueno, cerramos este 2023 con este tema zanjado y quedamos listos para que en el 2024 nadie se quede sin la posibilidad de usar la inteligencia artificial en su día a día porque no consigue buenos resultados.
Al menos a día de hoy esas son las recomendaciones generales para armar prompts.
Aprovecho para desearles lo mejor para este año que viene, el 2024, que tengan un año espectacular que puedan terminarlo de la mejor manera, junto a sus seres queridos y que se venga un año donde podamos seguir compartiendo estos espacios para hablar de inteligencia artificial.
Recuerden dos cosas, una es que pueden dejarme sus preguntas para responder en el podcast a Oyentes@pochocosta.com y también que se pueden suscribir a la lista de correos, donde todas las semanas estoy enviando las novedades más importantes del mundo de la inteligencia artificial, eso lo pueden hacer en pocho costa.com ahí hay un botón en la home que dice «unite» y se van a poder sumar de forma gratuita.
Como siempre, muchas gracias por haber escuchado este episodio, compartanlo con quien crean que pueda interesarle, y si no hicieron todavía pueden regalarme 5 etrellitas en Spotify o en la plataforma de podcasts que ustedes usen. Eso ayuda que el podcast pueda hacer descubierto por más personas.
Y ahora si, nos seguimos escuchando en el próximo episodio donde seguiremos hablando de este hermoso mundo de la inteligencia artificial.
Deja una respuesta