Que es la ingeniería de prompts y como dominarla

Buenas Buenas! ¿Cómo andan? Bueno, espero que muy bien!

Acá estamos de nuevo tratando de seguir el ritmo del avance y tocar temas que resulten interesantes y uno de los que creo que está bueno hablar es el tema de lo que se llama ingeniería de prompts.

Es un tema que me parece que esta bueno entender bien de qué se trata, para que sirve, para que se puede aprovechar, quienes le pueden sacar provecho y como.

Así que bueno, empecemos por el principio, ¿que son los prompts?

Bueno, los prompts son las instrucciones que le damos a los modelos de lenguaje para interactuar con ellos. Es cuando por ejemplo le decimos “haceme un resumen de este documento”.

Entonces al hecho de saber bien como escribir estas instrucciones se le esta llamando ingeniería de prompts, aunque es bastante más parecido a un arte que a una ingeniería según mi punto de vista.

Pero bueno, ¿porque creo que esto es importante? La realidad es que la inteligencia artificial y los modelos de lenguaje aparecieron y cambiaron el mundo. Para siempre.

Siempre ante los cambios los seres humanos tenemos miedo, el famoso miedo al cambio y con las revoluciones la gente en general se llena de miedo y tiende a pensar que se va a quedar sin trabajo, pero creo que ahora el chip que nos conviene ponernos es el de pensar que no nos va a reemplazar la inteligencia artificial, sino otro humano que sepa usar la inteligencia artificial. Por eso es que creo que como en su momento mucha gente tuvo que aprender a usar la computadora o el excel para hacer mejor su trabajo, ahora es momento de aprender a sacarle partido a las nuevas herramientas que tenemos a la mano porque sino alguien lo va a hacer por nosotros.

Hoy, quien esté sacando provecho a estas herramientas ya cuenta con una ventaja muy grande y como todo está avanzando tan rápido y cambiando tanto, no se sabe que puede pasar a futuro, ni siquiera en el corto plazo. Entonces esta es una habilidad que puede empezar a ser demandada como alguna vez lo fue poner en el curriculum que sabíamos Excel.

Para mi es momento de empezar a pensar en la inteligencia artificial como un copiloto que va a estar al lado nuestro ayudandonos en todo momento y tenemos que empezar a saber como funcionar en conjunto.

Ok, entonces ya dijimos que son los prompts y porque creo que es importante aprender a dominar este arte. Ahora profundicemos un poco en que es lo que tenemos que entender y aprender para dominar el tema.

Lo primero que me gustaría decir es que no todos los prompts son igual de efectivos para obtener los resultados esperados, y hay ciertas características o condimentos que hacen que un prompt pueda tener resultados mucho más espectaculares que otros.

Esto se ve mucho más claro cuando interactuamos con modelos de generación de imágenes como Midjourney o Stable Diffusion. Si lo prueban van a ver que no es lo mismo el resultado de un prompt que diga “cocodrilo de dibujos animados” al resultado que se puede obtener si decis “una caricatura al estilo Disney de un cocodrilo con un suéter azul oscuro, sentado en un escritorio verde con una PC de escritorio, y un estante lleno de objetos al azar detrás de él en la pared”.

Si quieren entrar en las notas en pochocosta.com van a ver los resultados de cada prompt y pueden ver que las diferencias son abismales.

Pero bueno, esto mismo aplica no solo a los modelos de generación de imágenes sino a todos los modelos con los que interactuamos a través de un prompt.

Si queremos que la inteligencia artificial nos ayude a cumplir nuestros objetivos vamos a tener que aprender bien a interactuar con ella y en este caso vamos a tener que saber escribir buenos prompts.

¿Nos damos cuenta  cómo cambian las cosas? ¿no?, porque ahora toma mucho más relevancia algo que tal vez antes estaba un poco infravalorado como el hecho de saber hacer buenas preguntas.

Si queremos escribir un buen prompt algo que creo muy importante es que no sea demasiado general ni ambiguo. La verdad es que ponerle dedicación y explicar bien lo que queremos lo mejor posible y con todo el detalle que se pueda. Asi que pongamosnos las pilas y no seamos vagos gente!

NO, fuera de broma, algunas caracteristicas que creo que podria tener un buen prompt son:

Una instrucción, o sea una declaración clara de la tarea o el objetivo que queremos conseguir.

Un contexto, esto sería cualquier tipo de información que sea relevante, o algo de historia previa que puede necesitar el modelo para entender o resolver lo que le pedimos.

En algunos casos también puede necesitar datos, como cuando le decimos que haga un resumen de un texto le tenemos que dar el texto que queremos que resuma. Y por último puede ser interesante también darle un indicador de cómo queremos que sea la respuesta: por ejemplo si queremos que sea breve o sea extensa o que tenga X cantidad de palabras, si queremos que lo diga en forma de verso, no se, lo que sea pero creo que es algo importante a agregar en el prompt también.

Pero además a veces no es solo armar un buen prompt, también en algunos casos hay que tener experiencia usando estos modelos y ponernos creativos para intentar conseguir que nos den lo que necesitamos.

Por ejemplo el otro dia leia en twitter el caso de una persona que le había pedido a un modelo que le diera un listado de sitios desde donde pudiera descargar algo gratis, no recuerdo si era musica o peliculas, pero para el caso que quiero contar es lo mismo…y la cosa es que el modelo le responde algo así como que como modelo de lenguaje no podía darle esa información porque esas páginas eran peligrosas porque podrían tener virus y que además si entraba y descargaba peliculas de ahí iba a estar incumpliendo con las leyes y que podía ir preso.

Entonces la persona le responde diciéndole que le agradecia por haberle hecho saber eso y que le gustaría saber de qué sitios tenía que tener cuidado de entrar para no incumplir con las leyes y ahí el modelo le dio todo el listado de páginas que la persona buscaba.

Así que no es solo armar un buen prompt. Porque tal vez alguna persona se queda con que no hay forma de que te responda sobre algunos temas y otras perseveran e insisten de forma creativa y terminan consiguiendo lo que buscan.

Por eso al principio les decía que era bastante artesanal el diseño de los prompts.

Ahora volviendo al tema de como sacarle buen partido a los modelos de lenguaje, me gustaría agregar un par de puntos que creo que son importantes también más allá que lo que mencioné antes con respecto a los prompts.

Uno de los puntos es que hay que conocer las capacidades y las limitaciones de los modelos. ¡Esto es clave! Tenemos que saber que los modelos pueden equivocarse, pueden decir cualquier cosa, a esto se le llama “alucinaciones” y es super importante saber eso porque ahí es donde tiene que estar nuestro conocimiento y nuestro pensamiento crítico para detectar estos errores y no tenemos que confiar ciegamente en todo lo que nos dice.

Otra cosa interesante es que a veces, si queremos guiar la respuesta hacia algún lugar, tenemos que orientarlo, darle ejemplos, quizás no logramos el resultado a la primera y hay que tener un ida y vuelta, darle feedback, comentarios y finalmente llegar a lo que queríamos. Supongo que esto es parte del proceso de entrenamiento nuestro como usuarios hasta que logremos la maestria y ser cinturones negros en el uso de LLMs. Pero bueno, como todo, son horas de vuelo que hay que meterle.

Bien. Ahora pasemos a hablar un poco de para que se puede usar esto, que básicamente creo que hay 3 grandes grupos: uno es para generar texto, otro es para generar código y otro es para generar imágenes o videos. Al menos esos son los tres grandes grupos que me vienen ahora a la mente.

Los generadores de texto son los más generalistas, estos básicamente pueden servir para cualquiera, podemos pedirles recetas, traducciones, redacción de artículos, resúmenes, lo que se te ocurra… y la forma más fácil de acceder a estos modelos es usando las versiones entrenadas para responder preguntas y funcionar como chat. El más famoso es chatgpt que es muy como para usar desde la web y sino en el celu se puede descargar una app que se llama POE que fue desarrollada por la gente de Quora el sitio de preguntas y respuestas. POE permite elegir con qué modelo interactuar y tiene integrado chatgpt, gpt-4 y otros.

Después en la categoría de generación de imágenes o videos, está la opción de crear imágenes directamente desde cero con un prompt, que se puede hacer con DALLE-2, Stable diffusion o Midjourney que son los más conocidos, pero también está la opción de editar imágenes existentes mediante prompts que también es algo espectacular. Estos modelos lo que permiten es que por ejemplo si tenemos una foto de un auto escribamos un prompt que diga “cambiar el color del auto para que sea azul” y lo haga.

Sobre eso les dejo el video de una demo de la app playgroundai.com 

https://www.youtube.com/watch?v=JFt_YFWJu8o

Ahora bien, para todo lo que tenga que ver con generar vídeo lo más espectacular que vi es la aplicación Runway, creo que son unos de los que mas avanzados están con esto, y les dejo también en las notas del programa un link a su canal de youtube para que vean videos de lo que hacen porque es realmente espectacular.

https://www.youtube.com/@RunwayML

Y después tenemos todo lo que sea generación de código que para eso podemos usar tanto github copilot, como chatgpt o directamente la api de gpt. Esto si sos developer para mi es totalmente obligatorio, la verdad que la velocidad con la que avanzas usando estas herramientas no tiene comparación.

No solo lo podes usar para generar código, también le podes dar un fragmento de código y decirle que te lo explique, que busque errores o como mejorarlo. Podes pedirle que te haga el readme de un repo, que te haga queries en sql, la verdad es muy versátil.

Algo que también está bueno es pedirle distintas estrategias para resolver un problema con sus pros y sus contras, para poder analizarlo, y otra genial es pedirle que pase código de un lenguaje a otro. Las posibilidades son muchísimas y la verdad que podes hacer casi lo que se te ocurra.

Recuerdo cuando empecé este podcast a finales de 2018 y realmente no puedo creer lo que estamos viviendo, es realmente increíble y estoy muy agradecido por estar vivo para verlo. En aquel momento era realmente de ciencia ficción pensar en estas cosas, aunque la primera vez que me volé la cabeza fuerte fue con GPT-2 todavia me acuerdo de ese episodio relatando el texto de los unicornios y que era tan real que OpenAI no quería liberar el código.

Y bueno, hasta acá llegamos con el episodio de hoy, espero que les haya gustado y espero sus comentarios al respecto en redes sociales donde me pueden encontrar como pocho costa. Como siempre no duden en escribirme si quieren que hable de algún tema especial o quieren darme feedback para mejorar el podcast, cualquier comentario será mas que bienvenido.

Y si pueden dejar una calificación de 5 estrellas en la plataforma de podcast donde lo escuchen me ayudan un montón para que el podcast siga creciendo. Lo mismo que compartirlo con sus colegas y gente conocida.

Y bueno sin más, nos escuchamos en el próximo episodio donde seguiremos hablando de este hermoso mundo de la inteligencia artificial.

Dejar recomendación en iTunes