¿Qué es el Prompt Engineering y para qué sirve?
Prácticamente cualquier persona ya utiliza la Inteligencia Artificial y, como es normal, queremos optimizar progresivamente nuestras prácticas para sacarle todavía más partido. En este punto hay una disciplina que se ha vuelto fundamental: el Prompt Engineering. Básicamente consiste en comunicarse de una manera más adecuada con los modelos de lenguaje, para conseguir que nos entiendan mejor y de paso obtener mejores respuestas. Te vamos a explicar en qué consiste esta disciplina y cómo mejorar tus habilidades para dominarla.
¿Qué es el Prompt Engineering?
Cuando hablamos de Prompt Engineering, nos referimos al proceso de diseñar, estructurar y pulir las instrucciones que les pasamos a los modelos de IA. El «prompt» es la entrada que le pasamos al modelo de IA, las instrucciones textuales (o a veces en voz) que introducimos en el chat o en la aplicación de IA. Pues bien, la idea detrás del Prompt Engineering es cuidar esas entradas para ser precisos y con ello conseguir resultados más útiles.
Cuando nos comunicamos con un modelo de Inteligencia Artificial tenemos que entender que en principio el modelo no sabe nada de nosotros y de lo que tenemos en nuestra cabeza para conseguir los resultados deseados. Efectivamente, puedes haber observado que los modelos son extremadamente inteligentes y aunque les enviemos mensajes ambiguos son capaces de producir respuestas casi siempre bastante acertadas. Pero la idea no es esa, la idea es ofrecerles toda la información necesaria para que sus respuestas estén acorde a lo que buscamos.
Así pues, dentro de un prompt necesitamos ofrecerle información variada como el contexto en el cual realizamos la pregunta, posibles restricciones que queramos que considere, formato de la respuesta que necesitamos e incluso ejemplos que le dejen bien claro cómo queremos que nos entregue la información. Cuanto más precisos seamos a la hora de definir toda esta información, mejor será la respuesta que recibiremos.
Así pues, el Prompt Engineering incluye todas las técnicas que debes implementar para traducir muy bien tus intenciones en un conjunto de instrucciones y datos adecuado para que el modelo de IA te ofrezca una respuesta tal como deseas.
¿Para qué sirve el Prompt Engineering?
Vamos a ver por qué deberías prestar especial atención al Prompt Engineering, destacando muchos de los beneficios que obtendremos cuando apliquemos adecuadamente las técnicas que vamos a ver un poquito después.
Maximización de la precisión
Lo primero y más importante es que vamos a conseguir que las respuestas sean mucho más precisas. Por tanto, si no quieres que la IA se pierda en ambigüedades, lo mejor es darle toda la información que necesita para que pueda interpretar sin lugar a dudas lo que quieres.
Por ejemplo, no es lo mismo que le digamos «explícame qué es el fuera de juego» a que le pidamos algo mucho más específico: «explícame qué es el fuera de juego de modo que pueda entenderte una persona que nunca ha jugado a fútbol, junto con los motivos por los que existe esta regla».
Como has podido comprender, en la segunda alternativa de prompt le estamos ofreciendo mucho más contexto y formato. Para empezar le estamos diciendo que queremos saber sobre el fuera de juego en el contexto del fútbol, pero además también estamos indicando que nos lo explique de modo que podamos entenderlo sin ser expertos en fútbol. Paralelamente, solicitamos que nos explique los motivos por los cuales está regla es importante en este deporte, de modo que no falte esta información que consideramos vital para la respuesta.
Estandarización de procesos
Una cosa que tiene la IA es que puede darte dos respuestas distintas ante un mismo mensaje. ¡Pruébalo! Dile que te explique qué es el fútbol dos veces, en dos conversaciones distintas, y verás que las respuestas no son nunca exactamente iguales.
Entender esto es importante para utilizar la Inteligencia Artificial y poner en valor el Prompt Engineering, ya que mediante los mensajes correctos podemos conseguir que las respuestas sean más predecibles y ajustadas a nuestras necesidades.
Si lo llevamos un poco más allá, nos permitirá crear plantillas de prompts que podremos reutilizar una y otra vez para realizar las tareas repetitivas de nuestro día a día, ya sea analizar datos, escribir documentación o responder nuestros correos.
Desarrollo de software
Los que se dedican al desarrollo de software también es vital aplicar esta disciplina, ya que las respuestas que te va a ofrecer el modelo siempre estarán acorde a cómo él te considere. De modo que, para conseguir mejores respuestas, más acorde a lo que esperamos, es importante darle un poco de información sobre cómo queremos que nos devuelva su salida.
En resumen, la IA puede generar código de muchas maneras y no siempre será como tú deseas. De modo que, si de verdad te interesa conseguir aplicaciones de elevada calidad y fácil mantenimiento, es importante cuidar mucho los Prompts para conseguir que los asistentes de código sean realmente útiles.
Adaptación de tono y estilo de los contenidos
Aparte de especificar de manera precisa qué es lo que queremos que haga también nos ayudará a definir cómo queremos que nos responda, por ejemplo, con qué tono y enfoque.
Quizás busquemos algo más técnico, o al contrario algo explicado con palabras muy sencillas. Quizás busquemos algo coloquial o algo más formal. Todo esto se lo tenemos que indicar para conseguir adaptar mejor sus respuestas a quienes nos estemos dirigiendo.
Resolución de problemas lógicos
El prompt engineering también nos sirve para dirigir mejor a la IA a la hora razonar. En vez de darle un mensaje vago y dejar que el modelo aplique su propia lógica, puedes dirigirlo ayudándole a aplicar la lógica que te interese para llegar a una respuesta más sólida dentro de tu dominio.
Ojo, no estamos diciendo que debamos despreciar su capacidad de razonamiento, sino ayudarle a pensar en los términos en los que nos importa.
Extracción de datos estructurados en formatos JSON o bases de datos
En muchas ocasiones no queremos simplemente una respuesta entendible por los humanos, sino datos que podamos utilizar para llenar una tabla o utilizar como entrada en algún proceso informático.
En estos casos el Prompt Engineering también incluye automatizar esta obtención de datos puros, de manera que se ajusten exactamente a lo que necesitamos. Por ejemplo loe podemos decir que la respuesta la entregue en un objeto JSON que respete un esquema en particular.
Democratización tecnológica
Si somos capaces de expresarnos de una manera precisa conseguiremos utilizar sistemas avanzados, eliminando barreras tecnológicas. Quizás no tengamos grandes conocimientos de programación o de un framework en particular, pero gracias a un buen prompt podemos dejar a la IA que se ocupe de esas complejidades por nosotros. De este modo llevamos la democratización tecnológica a un nivel impensable hace unos años.
¿Cómo funciona el Prompt Engineering?
Vamos a ver entonces cómo tenemos que actuar para diseñar prompts que realmente funcionen. Para ello es importante tener un poco claro qué es lo que pasa cuando usamos los modelos de IA.
El espacio latente y la predicción probabilística
Lo más increíble de los modelos es que realmente no entienden el significado de las palabras. En cambio trabajan en lo que denominamos el espacio latente que no es más que la representación numérica de conceptos sobre los cuales el modelo ha recibido su entrenamiento.
Además, cuando el modelo produce la respuesta no razona como nosotros, con una cadena de pensamiento, juicios y experiencia. En realidad lo que hace es buscar probabilísticamente cuál sería la siguiente palabra más probable de la frase para llegar al significado esperado.
La ventana de contexto
Otra cosa que tenemos que tener en consideración a la hora de utilizar un modelo es la ventana del contexto.
Todos los modelos tienen un conocimiento mediante el cual han sido entrenados. Ese conocimiento es enorme pero cuando nosotros les solicitamos una respuesta el modelo debe trabajar con la entrada en texto, el prompt, con el contexto e instrucciones para realizar su labor.
Debe saber que a nivel de contexto el modelo solo es capaz de almacenar una limitada cantidad de información. A esa información que es capaz de asimilar sobre el problema en particular que le estamos planteando le llamamos la ventana de contexto.
Cada modelo está desarrollado para admitir un tamaño diferente de ventana de contexto y si bien es cierto que con el paso de los meses y años esa ventana va en aumento, siempre existirán unas limitaciones definidas por la propia tecnología que estemos usando.
Pesos y atención (Attention Mechanism)
Los pesos son otro concepto muy importante para entender cómo funcionan los modelos. Básicamente se trata de los puntos a los cuales el modelo le presta más atención para conseguir entender las instrucciones específicas de cada prompt.
Estos pesos son importantes porque le ayudan al modelo a entender qué partes de tus mensajes son especialmente relevantes y cuales son simples comentarios que puede perfectamente obviar.
Ajuste de parámetros como la temperatura, Top-P y Frequency Penalty
Ya cuando nos ponemos más serios, a un punto en el cual tengamos herramientas que lo permitan, podemos trabajar con parámetros como la temperatura, Top-P o la Frequency Penalty.
- La Temperatura controla la creatividad de la respuesta. Hace que el modelo pueda responder cosas como más imaginativas y no siempre tan obvias. De este modo podemos hacer que la IA sea más previsible y técnica o que se vuelva más original. Dependiendo del tipo de trea podemos querer una cosa u otra.
- Top-P es un parámetro que permite limitar las palabras que la IA elige, quedándose solo con las más probables.
- Frequency Penalty sirve para evitar que la IA se vuelva repetitiva y use las mismas frases una y otra vez en sus respuestas.
El proceso de tokenización
Por último debemos entender el proceso de tokenización que un paso que realiza la IA para descomponer los mensajes y poder procesarlos. Puedes entender los tokens que usa la IA como las palabras que utilizamos en el lenguaje humano. Pero un token no es siempre una palabras, pueden incluso ser partes de éstas.
Entender que el modelo de IA lee trozos y no necesariamente palabras completas nos puede ayudar a comprender cómo trabaja y por qué a veces puede confundirse con términos técnicos o estructuras complejas.
Técnicas clave de Prompt Engineering
Por fin entramos directamente al grano, estudiando cuáles son las técnicas más importantes que debes aplicar para conseguir mejorar los procesos de ingeniería del prompt. Con estas guías podrás usar mejor los modelos y conseguir resultados más adecuados según tus necesidades.
Zero-shot y Few-shot Prompting
Vamos a comenzar explicando las técnicas de Zero-shot y Few-shot.
El enfoque Zero-shot consiste en pedirle al modelo que realice una tarea sin proporcionarle ejemplos previos que le puedan servir de ayuda. Por ello estamos dejando que haga su trabajo únicamente mediante las capacidades aprendidas durante el entrenamiento.
Por otro lado tenemos el Few-shot Prompting que incluye algunos ejemplos dentro del prompt para guiar al modelo hacia el tipo de respuesta esperado por nosotros. Esto es especialmente útil cuando se requiere un formato específico en la respuesta o una interpretación más concreta.
Chain-of-Thought (CoT)
El Chain-of-Thought prompting es la técnica mediante la cual seguimos a un modelo que nos explique todo su esquema de razonamiento antes de entregarnos el resultado final.
Esto puede venir muy bien cuando tenemos tareas especialmente complejas ya que le obliga al modelo a estructurar mejor su proceso de pensamiento. Incluso nos ofrece a nosotros la posibilidad de entenderlo y saber si va por el camino adecuado con respecto a nuestras necesidades. Incluso puedes ayudarle a que cambie el enfoque si no es ese el que quieres.
Por ejemplo puedes pedirle «Piensa en este problema y explica paso a paso cada decisión que tomarías antes de dar la respuesta final».
Self-Consistency y Iterative Refinement
La técnica de Self-Consistency consiste en pedirle al modelo que genere múltiples respuestas acerca de un mismo problema, para luego seleccionar aquella que resulta más coherente o la más frecuente, que también suele ser la más adecuada.
Por su parte, el Iterative Refinement es una técnica con un enfoque distinto que se basa en pedirle al modelo que nos entregue una primera respuesta y luego que refine la salida, de manera iterativa, haciéndola cada vez más precisa.
Ambas técnicas son extremadamente útiles para mejorar la calidad en tareas donde se requiere un pensamiento en varios pasos, donde puede haber ambigüedad o incluso múltiples soluciones posibles.
Prompting basado en roles
Los roles también son muy utilizados en el prompt engineering y básicamente consiste en decirle al modelo cómo queremos que actúe. Por ejemplo, podemos decirle que es un «experto en ciberseguridad» o un «experto en desarrollo de aplicaciones». De esta manera estamos orientando al modelo para que nos proporcione una respuesta tal como se esperaría de este rol.
Esta es una manera súper sencilla de conseguir que la respuesta tenga un nivel de detalle determinado y esté enfocada de una manera en particular.
Elementos esenciales de un prompt perfecto
Ahora que ya sabes las técnicas generales mediante las cuales se pueden conseguir buenos prompts, vamos a desgranar los elementos que deberías incluir o cuidar especialmente cuando redactas instrucciones.
Esto es importante porque un buen prompt no depende solo de una instrucción clara, sino de una combinación de elementos que ayuden al modelo a trabajar sobre una tarea en particular de una manera efectiva.
La instrucción maestra
Primero tenemos que dejarle claro qué es lo que necesitamos. Esta sería la «instrucción maestra» que puedes considerar como la parte central del prompt.
En ella tienes que especificar con detalle qué quieres conseguir. No te puedes perder aquí con ambigüedades: cuanto más específico seas, mejor enfocada será la respuesta.
El contexto de referencia
También es fundamental que le entreguemos un buen contexto para la solicitud. Este contexto proporciona información vital para el modelo, pues le ayuda a entender mejor la situación.
Puede incluir antecedentes, definiciones, datos relevantes, piezas de código sobre las que estamos hablando, etc.
Restricciones y límites
También deberías decir al modelo qué es lo que te interesa en este punto. Hasta dónde deseas que actúe o desarrolle. Tienes que decirle qué es lo que quieres que haga, pero también qué es lo que quieres que no haga.
Por ejemplo puedes pedirle que toque ciertos temas, o los evite, que llegue a un detalle en concreto, que solo modifique uno de los archivos entregados como contexto, etc.
Ejemplos de referencia (Few-shot)
Como vimos antes al explicar la técnica de Few-shot, puede ser muy útil entregar al modelo algunos ejemplos que le permitan imitar patrones concretos, para producir la respuesta en ese marco.
Esto es especialmente útil cuando se necesita un formato muy específico, una lógica determinada o un estilo de programación que estás siguiendo a lo largo de un proyecto.
Especificación del formato de salida
El formato de salida no es siempre necesario pero también lo podemos definir cuando queremos que restrinja su respuesta a un formato en particular. Puede ser algo tan simple como decirle que nos entregue una lista de ítems separados por comas, pero donde realmente se usa es cuando necesitamos una respuesta que esté en un formato estricto, por ejemplo en un objeto JSON que tiene ciertos campos con ciertos tipos de datos.
El futuro del Prompt Engineering frente a la IA autónoma
El ámbito de la IA es tan trepidante que nadie sabría decir a ciencia cierta dónde nos va a posicionar en un futuro próximo. Pero lo que sí podemos afirmar ya es que el Prompt Engineering está siendo fundamental a medida que la IA se vuelve más autónoma.
Vamos a ver unas pinceladas sobre puntos que nos resultan muy interesantes. Muchos de ellos están emergiendo ya en la actualidad y otros se espera que lleguemos en a medio plazo.
Prompt Engineering manual vs. Auto-Prompting
Tradicionalmente, los prompts los diseñan manualmente los humanos. Sin embargo, ¿no podría ser la propia IA capaz de generar y optimizar esos prompts?
La verdad es que esto funciona muy bien y quien está trabajando de manera intensiva con la IA ya utiliza. Puedes pedirle que te ayude a construir un prompt para alimentar luego otro proceso de IA con ese u otro modelo. Funciona muy bien, ¡pruébalo!. A esto le llamamos Auto-Prompting y puedes hacerlo dinámico, para adaptar las instrucciones en función del contexto y los resultados obtenidos.
Control humano directo frente a la supervisión de objetivos (Goal-oriented AI)
Otra tendencia que se baraja para el futuro es la denominada «Goal-Oriented AI» que consiste en definir objetivos a más largo plazo y que sea la IA la que determine los pasos necesarios para alcanzarlos.
Este patrón de trabajo contrasta con el modo tradicional, en el que nosotros indicamos a la IA, mediante prompts específicos e individuales, cómo realizar cada uno de los pasos necesarios para alcanzar el objetivo a largo plazo.
Especificidad técnica vs. Orquestación de agentes
El enfoque tradicional se centra en que un humano realiza los prompts detallados para cada una de las tareas concretas. En cambio, actualmente se está comenzando a orquestar agentes que tienen que colaborar entre sí para resolver tareas más complejas. Por ejemplo, algunos editores para programadores como Claude Code o Cursor están ya incorporando este esquema de trabajo para asistir a los programadores.
Prompts estáticos frente a flujos de trabajo dinámicos y evolutivos
Los prompts ya no son siempre instrucciones estáticas que se entregan a un modelo una y otra vez para realizar una tarea determinada. El nuevo patrón que va emergiendo va un poco más allá y sirve para realizar sistemas avanzados que pueden evolucionar en tiempo real. En ellos, en función de la interacción y los datos que se van generando a medida que el sistema se ejecuta, se van modificando los prompts dinámicamente, de modo que puedan adaptarse a las nuevas condiciones.
El paso del ingeniero de prompts al arquitecto de ecosistemas autónomos
Con todo, estamos viendo que el rol del ingeniero se está trasladando progresivamente, a medida que la IA se integra en sistemas más amplios.
Mientras que antes teníamos la figura del humano como «ingeniero de prompts», se espera que se produzca una evolución hacia perfiles más estratégicos, donde el humano se encargaría más de diseñar ecosistemas de múltiples modelos, que colaboran entre sí por medio de diversas herramientas y agentes.
Como ves, la irrupción de la IA no ha hecho más que empezar y en los próximos años todavía muchas cosas pueden cambiar. Seguramente si pensamos en grande no nos equivocaremos, ya que las cosas están yendo muy rápido. Esperamos que este artículo te haya ayudado a despertar tu curiosidad por el prompt engineering y que te animes a cuidar aún más las técnicas que usas en el día a día al trabajar con la Inteligencia Artificial.