Prompt Engineering y ChatGPT: una combinación ganadora (II)
Aprende 5 técnicas para mejorar tus conversaciones con ChatGPT.
Actualmente, incluso los modelos de lenguaje a gran escala (LLM) más grandes tienen dificultades con algunas tareas de razonamiento, como los problemas matemáticos redactados y el razonamiento simbólico y de sentido común.
En artículos anteriores desarrollamos la importancia que tiene el hecho de redactar instrucciones para las herramientas de IA generativas. También mencionamos algunos consejos y técnicas de prompt engineering para aplicar en ChatGPT para conseguir mejores resultados.
Si nunca has leído nada sobre el tema, te recomendamos que vayas al artículo anterior "Prompt Engineering y ChatGPT: una combinación ganadora (I)", para empezar a tener una base sólida sobre el tema. En este segundo artículo, vamos a profundizar en algunas técnicas clave que te ayudarán a diseñar prompts efectivos para ChatGPT. Sabemos que el prompt engineering puede ser un tema abrumador al principio, pero estamos aquí para hacerlo un poco más accesible. Con este artículo, queremos ayudarte a optimizar tus prompts para que puedas obtener los mejores resultados posibles en tus conversaciones con ChatGPT.
En este artículo veremos 5 técnicas:
Let’s think step by step
Chain-of-thought
Role play
PREP the machine
Método socrático
5 Técnicas
1. Explicar antes de contestar
Aunque han ido mejorando considerablemente su rendimiento, uno de los puntos flacos de ChatGPT era el pensamiento y razonamiento matemático. Para mejorar los resultados en este aspecto, podemos pedir a ChatGPT que explique el proceso que seguirá para llegar a una respuesta. Para ello, podemos usar la expresión “Pensemos paso a paso” (“Let’s think step by step”). Pedir una explicación al modelo antes de que dé la respuesta final puede aumentar la probabilidad de que produzca una respuesta precisa y clara. Esto, más que una técnica de prompt engineering en sí mismo, es un consejo para entender mejor cómo ayudar a los modelos de lenguaje a razonar su proceso de “pensamiento”.
❌ Sin razonamiento:
¿Cuál es el próximo número en esta serie: 1, 1, 2, 3, 5, 8, ...?
✅ Pensemos paso a paso:
¿Cuál es el próximo número en esta serie: 1, 1, 2, 3, 5, 8, ...? Pensemos paso a paso:
Cada número en la serie es la suma de los dos números anteriores. Entonces, el siguiente número es 13 (8 + 5).
Como puedes ver, esta manera de contestar puede ser muy útil como modelo para usar en nuestras clases. Podemos mostrar a los alumnos la importancia de razonar el proceso a la hora de dar una respuesta coherente y acertada, especialmente en áreas como las matemáticas.
Sin embargo, esta técnica funciona bien con preguntas o problemas matemáticos, pero para otro tipo de preguntas puede ser interesante pedirle a ChatGPT que siga una secuencia determinada (“Primero haz esto, en segundo lugar haz esto,…”) o que descomponga una tarea más compleja en otras más sencillas, para que pueda proporcionar una respuesta más precisa y coherente. Para utilizar esta técnica, es importante identificar las partes esenciales de dicha tarea y descomponerla en sub-tareas. Luego, podemos proporcionar a ChatGPT un prompt que se centre en cada sub-tarea de forma individual, permitiéndole centrarse en una tarea específica y evitar confusiones o respuestas demasiado genéricas.
2. Cadena de pensamiento (Chain-of-thought, CoT)
Este método se basa en la explicación anterior. Chain-of-thought es un método que permite a los modelos de lenguaje (como GPT-3) descomponer problemas complejos en pasos intermedios más simples, lo que les permite realizar cálculos adicionales en problemas que requieren más pasos de razonamiento.
Esta técnica puede hacerse aún más efectiva si la convertimos en una combinación de la anterior (Pensemos paso a paso) y el uso de varios ejemplos (Few-shot), que ya explicamos en el artículo anterior. Consiste en proporcionar a ChatGPT una serie de ejemplos de secuencias de cadenas de pensamiento en los que se ha explicado el proceso para llegar a una respuesta correcta, para que imite ese proceso y “aprenda” a contestar de la misma manera a lo que le pedimos.
En principio, chain-of-thought puede utilizarse para responder a cualquier cuestión que las personas puedan resolver utilizando el lenguaje, incluida la manipulación simbólica, el razonamiento de sentido común y los problemas matemáticos redactados.
En la siguiente imagen podemos ver algunos ejemplos de prompts que incluyen “cadenas de pensamiento” en sus prompts para diferentes propósitos. El texto resaltado en color representaría el concepto de chain-of-thought:
Como hemos mencionado, para asegurar aún más una respuesta cercana a lo que buscamos podemos aportar más de ejemplo:
✅ Few-shot + Chain-of-thought:
“““
Pregunta: Si tengo 10 manzanas y le doy 3 a mi amigo, ¿cuántas manzanas me quedan?
Chain-of-thought: Si tienes 10 manzanas y le das 3 a tu amigo, entonces te quedan 7 manzanas. Esto se debe a que restamos las manzanas que le diste a tu amigo (3) del total de manzanas que tenías originalmente (10).
Respuesta: Te quedan 7 manzanas.
“““
Pregunta: Si tengo 20 dólares y compro un libro por 12 dólares, ¿cuánto dinero me queda?
Chain-of-thought: Si tienes 20 dólares y compras un libro por 12 dólares, entonces te quedan 8 dólares. Esto se debe a que restamos el precio del libro (12 dólares) del total de dinero que tenías originalmente (20 dólares).
Respuesta: Te quedan 8 dólares.
“““
Pregunta: Si un coche viaja a una velocidad constante de 60 km/h durante 3 horas, ¿cuántos kilómetros habrá recorrido?
Chain-of-thought:
Respuesta:
3. Role play
Uno de los métodos más útiles para crear prompts efectivos en ChatGPT es el aportar un rol o punto de vista al modelo. Esta técnica implica usar frases como "actúa como_____", “eres un/a _____” en el prompt para decirle a ChatGPT que responda como lo haría una persona específica. Esto puede ser especialmente útil para crear conversaciones más interesantes o para simular situaciones del mundo real. En definitiva, aportar un contexto más detallado a nuestro prompt.
Por ejemplo, se podría usar para pedirle a ChatGPT que "actúe como un chef" y proporcione recetas basadas en los ingredientes disponibles en nuestra cocina. O se podría pedir que "actúe como un guía profesional" y sugiera una lista de puntos de interés en una localización determinada. Las posibilidades son casi infinitas.
Para utilizar esta técnica basta con introducir esta premisa en el prompt, junto con el resto de instrucciones que queramos:
✅ Dando un rol:
Quiero que actúes como un profesor de matemáticas. Te daré problemas matemáticos y deberás proporcionar las soluciones paso a paso. Solo responderás con la solución matemática y nada más. No des explicaciones. No escribas el problema en sí mismo. Cuando necesite decirte algo lo haré poniendo el texto entre corchetes {como esto}. Mi primer problema es: Un comerciante compra un rollo de tela a 9€ el metro. Vende la tercera parte a 10 €/m y el resto a 12 €/m. Si la ganancia es de 70 €, ¿cuántos metros tiene el rollo de tela?
4. PREP the machine
Una vez explicadas todas estas técnicas, nos gustaría destacar la posibilidad de combinarlas para crear prompts aún más detallados que nos ayuden a guiar a ChatGPT hacia donde queramos. De hecho, esa es la idea principal de estos artículos: mostrarte las técnicas que mejores resultados pueden dar para que las apliques como necesites.
Dan Fitzpatrick, un profesor de Reino Unido conocido en redes por divulgar sobre el uso de IA en educación (particularmente ChatGPT) ha diseñado un “modelo” para redactar prompts que combina algunas de las técnicas de prompt engineering que hemos comentado. Puede resultar muy útil para todos aquellos que estéis empezando a usar esta herramienta ya que aporta un esquema tanto de redacción como de “contenido” para crear un buen prompt.
“P”. PROMP it: introduce la pregunta con una instrucción (prompt).
➡ “Escribe brevemente lo que quieres que haga ChatGPT”.
“R”. Give it a ROLE: dale un rol o punto de vista.
➡ “Eres un experto en Inteligencia Artificial”.
“E”. Give it Explicit instructions: detalla bien las instrucciones o lo que esperas que ChatGPT construya.
➡ “Escribe un cuestionario sobre los seres vivos de 15 preguntas con 3 opciones cada una de las cuales solo 1 será correcta”
“P”. Set Parameters: establece los parámetros de la respuesta
➡ “Escribe tu respuesta en menos de 100 palabras. Usa un lenguaje para que lo entienda un niño de 6 años.”
Veamos un ejemplo:
5. Método “socrático”
No siempre seremos nosotros los que hagamos preguntas a ChatGPT. Una buena forma de contextualizar y detallar nuestra pregunta o solicitud es pedirle a ChatGPT que nos vaya haciendo preguntas para que, una vez contestadas, pueda detallar el contexto de lo que queremos que haga. Es decir, en vez de redactarlo todo en un solo prompt, ya que ChatGPT es capaz de recordar lo que se va diciendo en una conversación, le pediremos que nos haga las preguntas que considere necesarias hasta “tener una idea clara” de lo que le vamos a pedir. De esta forma afinaremos un poco más la respuesta que nos pueda dar.
Próximamente traeremos material con prompts específicos para docentes basados en lo que hemos explicado en estos dos artículos. Esperamos que con la inminente llegada de GPT-4 no cambie todo y podamos seguir trabajando con ello.
Si te ha parecido útil o interesante este contenido háznoslo saber en los comentarios o en nuestras redes sociales y no olvides suscribirte para no perderte nada.