El futuro es el prompting automático: ¿Adiós a los "ingenieros de prompts"?
Es el futuro, pero yo no le diría adiós a los ingenieros de prompts
Se habla mucho sobre la ingeniería de prompts y si realmente es humo o es algo necesario para extraer de modelos de lenguaje el mejor resultado posible. A pesar de las discusiones sobre si esta actividad es necesaria, tengo que decir que la experiencia compartida por muchos usuarios es algo para tener en cuenta a la hora de interactuar con herramientas como ChatGPT.
La discusión viene a cuento con la mejora continuada de estas herramientas de inteligencia artificial y su capacidad para entender las peticiones de los usuarios. Lo que sí que sigue siendo indudable es que si las propias empresas, que ponen a nuestra disposición estas herramientas, publican sus propias guías para obtener mejores resultados, será por algo.
Por poner un ejemplo de guías de como elaborar mejores prompts, mencionaros las de tres de las principales empresas del sector (dar un vistazo a los enlaces del final y probar alguna de las técnicas propuestas):
PromptBase de Microsoft.
Prompt examples de OpenAI
Llama recipes de Meta
Todas suelen tener algo en común:
Dar instrucciones específicas.
El uso de diferentes técnicas como Chain Of Thought, Role prompting o shot prompting.
Y sí, realmente estas técnicas funcionan. En mejor o peor manera dan sus resultados frente a las peticiones que carecen de objetivo, contexto y toda la información que seamos capaces de proporcionar, es decir, de aquellas que no tienen ningún tipo de estructura. Y es que no es pedir algo, también el cómo se plantea la petición incide directamente en el resultado obtenido.
¿Qué es la Ingeniería de Prompts?
La ingeniería de prompts es un proceso que consiste en diseñar y optimizar las instrucciones o preguntas que se dan a un modelo de inteligencia artificial, como los modelos de lenguaje, para obtener respuestas o resultados más precisos, relevantes y útiles. En otras palabras, es la manerea de formular la petición correcta para guiar al modelo de inteligencia artificial hacia la respuesta o el tipo de información que se busca. La ingeniería de prompts se ha vuelto importante ya que pequeñas variaciones en la formulación de una petición pueden llevar a resultados significativamente diferentes. Este proceso implica entender cómo funciona cada modelo, qué tipo de lenguaje utiliza, y cómo interpreta diferentes tipos de instrucciones, para así poder comunicarse con él de la manera más efectiva posible.
La llegada del prompting automático
Como decía al principio, la mejora de los modelos de lenguaje para poder captar la esencia de la petición es algo que está en constante avance. Y es algo que algunos ya predicen que los que se llaman “ingenieros de prompts” van a quedarse pronto sin trabajo. Algo de lo que discrepo profundamente.
Con el prompting automático, una de las cosas de las que debemos ser conscientes es que por detrás del prompt que introducimos, el propio modelo de lenguaje lo mejora para darnos lo que queremos, bueno, lo que intuye que queremos.
Os voy a poner un ejemplo. A la hora de generar imágenes, suelo hacer un proceso de iteración hasta que consigo algo que se acerca a lo que me estoy imaginando. Evidentemente, lo primero es hacer una buena petición, imaginarme lo que quiero que se visualice y a partir de ahí ir dando las indicaciones necesarias hasta obtener la imagen que quiero.
En este caso quería una imagen que simulara un graffiti para representar un artículo sobre política y tecnología. Mi primera petición fue la siguiente:
Ahora del mismo estilo y formato genera una imagen de una mujer política en un atril dando un discurso y en primer plano se deberían ver manos con un móvil en las manos grabando la escena.
Tener en cuenta que es un hilo en el que ya he especificado el estilo que quiero y el formato anteriormente.
El resultado fue el siguiente, pero no se ajustaba a lo que estaba buscando, buscaba algo más “Banksy”.
Para refinar la imagen le proporcioné el siguiente prompt:
Dame otra versión, algo más sencilla, que la mujer que está dando el discurso esté de cara, que sea más estilo graffiti en una pared y que haya menos gente grabando la escena.
El resultado ya se acercaba mucho más a lo que me estaba imaginando
Pero lo que es interesante es el prompt real que ha generado el propio ChatGPT en sustitución del mío:
In a simplified version, maintaining the black and white stencil-style and 16:9 format, depict a scene on a wall as graffiti. A female politician stands facing forward at a podium, giving a speech. The focus is on her expression and posture, capturing the essence of leadership and determination. In the foreground, include just a couple of hands holding smartphones, recording the moment, to represent a more intimate gathering of attendees. The background should subtly imply the texture of a wall, ensuring the artwork is unmistakably recognized as street art, emphasizing the grassroots nature of political engagement.
Cómo podéis ver el cambio es bastante significativo. Ha incluido no solo las instrucciones que le he dado, sino que también las dadas previamente sobre formato y estilo para configurar la imagen deseada.
Automatic Prompt Engineer (APE)
¿Cómo llegamos a este punto? Básicamente, los modelos de lenguaje funcionan con un sistema de prompts interno que les dan las directrices de como tienen que responder. Para mejorar este sistema interno de prompts llegamos al automatic prompt engineer (APE).
Zhou propuso un marco llamado APE en 2022 para hacer automáticamente instrucciones. En vez de personas escribiendo las instrucciones, usan ordenadores para hacerlo. Utilizan modelos de lenguaje grandes para encontrar las mejores instrucciones para un problema específico.
APE empieza usando un modelo de lenguaje grande que recibe ejemplos de resultados para hacer propuestas de instrucciones para una tarea. Estas ideas guían cómo buscar la mejor instrucción. Luego, se prueban las instrucciones con un modelo especial y se elige la mejor basada en cómo funciona.
APE encuentra una forma más eficaz de razonamiento, de pensar en cadena, de hacerlo paso a paso. Esto ayuda a resolver problemas matemáticos y de lenguaje de manera más eficaz.
De manera paralela se han desarrollado otras estrategias sobre cómo hacer mejores instrucciones automáticamente, como Prompt-OIRL, OPRO, AutoPrompt, Prefix Tuning y Prompt Tuning. Estos también buscan formas de mejorar las instrucciones automáticamente.
Tenéis información más en profundidad en la lista de recursos consultados al final.
Automatic Prompt Optimization (APO)
Otra forma de hacer que esos algoritmos que entienden el lenguaje humano sean más útiles es la Automatic Prompt Optimization. Algunos investigadores han descubierto maneras de mejorar las indicaciones que les das a estos programas, para que den mejores respuestas. Algunas técnicas incluyen ajustar las indicaciones automáticamente para que sean más efectivas o estructurarlas, de manera que sean más útiles en diferentes situaciones. También han encontrado que seleccionar cuidadosamente las indicaciones puede hacer que obtengas respuestas más precisas para las preguntas que hagas. Básicamente, están encontrando formas de hacer que estos programas nos entiendan mejor y nos den mejores respuestas.
El futuro de la comunicación con la IA
La ingeniería de prompts y el prompting automático son dos aspectos de la IA generativa que están evolucionando rápidamente y que tienen el potencial de cambiar la forma en que interactuamos con ella. A medida que estas tecnologías se vuelvan más sofisticadas, podemos esperar que las herramientas de IA sean más fáciles de usar, más accesibles y más capaces de entender nuestras necesidades. De ahí que muchos están empezando a decir que el ingeniero de prompts es una profesión en extinción.
Sin embargo, es importante ser conscientes de las limitaciones de las tecnologías de prompting y que la intervención humana y de los llamados “ingenieros del prompt” seguirán siendo necesarios. Al menos desde mi punto de vista. No debemos pasar por alto lo importante que es el factor humano en todo esto. No es solo cuestión de matemáticas y algoritmos. Hay algo más, como saber leer entre líneas y captar lo no dicho, que una máquina por sí sola no puede. Recordar que el Sr. Data en Star Trek no llevaba muy bien lo de captar la ironía, pues es lo mismo.
Además, este discurso de que ahora todo lo van a hacer las máquinas... ¿No le quita un poco la gracia al asunto? Es como si dijeran que nuestra capacidad para conectar y jugar con las palabras ya no vale tanto. A mí me parece que aún hay mucho espacio para la creatividad y la experimentación personal, y que esto puede llevar a la IA por caminos que sola no encontraría. Es más, este enfoque del todo automatizado podría limitarnos a lo que ya conocen los algoritmos, sin dar pie a esos saltos creativos que a veces dan en el clavo de forma inesperada.
Recursos
«A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT». 2023a. doi:10.48550/arxiv.2302.11382.
«———». 2023b. arXiv.org abs/2302.11382. doi:10.48550/arXiv.2302.11382.
«AI Prompt Engineering Is Dead - IEEE Spectrum». https://spectrum.ieee.org/prompt-engineering-is-dead (11 de marzo de 2024).
«APE». https://sites.google.com/view/automatic-prompt-engineer (12 de marzo de 2024).
«Automatic Prompt Optimization with “Gradient Descent” and Beam Search». 2023. doi:10.48550/arxiv.2305.03495.
Gongora, Diego. 2024. «Prompt Engineering: How to Get Better Results». Medium. https://blog.stackademic.com/prompt-engineering-how-to-get-better-results-b4a14b511599 (22 de febrero de 2024).
keirp. 2024. «keirp/automatic_prompt_engineer». https://github.com/keirp/automatic_prompt_engineer (12 de marzo de 2024).
«Learn Prompting: Your Guide to Communicating with AI». https://learnprompting.org. (20 de febrero de 2024).
Lester, Brian, Rami Al-Rfou, y Noah Constant. 2021. «The Power of Scale for Parameter-Efficient Prompt Tuning». doi:10.48550/arXiv.2104.08691.
«Llama-Recipes/Examples/Prompt_Engineering_with_Llama_2.Ipynb at Main · Facebookresearch/Llama-Recipes». GitHub. https://github.com/facebookresearch/llama-recipes/blob/main/examples/Prompt_Engineering_with_Llama_2.ipynb (20 de febrero de 2024).
«microsoft/promptbase». 2024. https://github.com/microsoft/promptbase (20 de febrero de 2024).
«Olvídate de la ingeniería de prompts, ChatGPT puede escribir prompts para ti - Planeta Chatbot». 2024. https://planetachatbot.com/ingenieria-de-prompts-chatgpt-puede-escribir-prompts-para-ti/ (22 de febrero de 2024).
«OpenAI Platform». https://platform.openai.com (20 de febrero de 2024).
«¿Prompt Engineer?… Mejor no lo pongas en tu curriculum». https://www.enriquedans.com/2024/03/prompt-engineer-mejor-no-lo-pongas-en-tu-curriculum.html (11 de marzo de 2024).
«Prompt Engineering Guide». https://www.promptingguide.ai/introduction/elements (20 de febrero de 2024).
Shin, Taylor et al. 2020. «AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts». doi:10.48550/arXiv.2010.15980.
Smith, Chris. 2024. «Don’t like ChatGPT’s Robotic Answers? This Prompt Hack Might Make It Sound More Human». BGR. https://bgr.com/tech/one-simple-chatgpt-hack-makes-ai-responses-sound-like-a-human-instead-of-a-robot/ (12 de marzo de 2024).
Weng, Lilian. 2023. «Prompt Engineering». https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/ (20 de febrero de 2024).
Zhou, Yongchao et al. 2023. «Large Language Models Are Human-Level Prompt Engineers». doi:10.48550/arXiv.2211.01910.
Yo pensaba que era una profesión sin futuro, lo del prompt engineer, pero cada vez le estoy viendo más valor. Muy interesante el texto.
Todo esto que cuentas me recuerda mucho a unas discusiones que tuve con algunos compañeros de trabajo cuando salió ChatGPT. Ante el hype que se podía leer por todo Internet, entre nosotros nos reíamos porque una mayoría pasaba por alto algo básico: una gran mayoría de las personas no son capaz de formular de forma clara lo que quieren, y eso una IA aún está lejos de inferirlo.
Con esto no quiero decir que las nuevas herramientas no sean potentes, que lo son. Pero del mismo modo que mucha gente sabe buscar información de forma eficaz en Google, en JSTOR, en StackOverflow o en una biblioteca, habrá gente que será capaz de exprimir de forma eficaz ChatGPT y otras IA generativas. Desde mi punto de vista, más que ingenieros de prompts, lo que realmente funcionará son aquellos que sepan adaptarse de forma eficaz a los cambios y las nuevas herramientas de las que dispondremos.