Ingeniería de Prompt
Explorando la Ingeniería de Prompt

Guía Integral para crear Prompts

La ingeniería de prompt ha emergido como una disciplina innovadora dedicada al desarrollo y optimización de prompts para aprovechar al máximo los modelos de lenguaje (ML) en diversas aplicaciones e investigaciones. Esta práctica es fundamental para comprender a fondo las capacidades y limitaciones de los grandes modelos de lenguaje (LLM).

En el ámbito de la investigación, la ingeniería de prompt se convierte en una herramienta invaluable para potenciar las habilidades de los LLM en tareas tanto comunes como complejas, abarcando desde la respuesta a preguntas hasta el razonamiento aritmético. A su vez, los desarrolladores encuentran en esta disciplina un aliado para diseñar prompts robustos e efectivos que interactúen de manera eficiente con los LLM y otras herramientas.

La ingeniería de prompt no se reduce únicamente al diseño y desarrollo de prompts; abarca una amplia gama de habilidades y técnicas esenciales para la interacción y desarrollo con LLM. Esta destreza se revela como un componente crucial para la interacción, construcción y comprensión de las capacidades de los LLM. Desde mejorar la seguridad de los LLM hasta la incorporación de conocimientos de dominio y herramientas externas, la ingeniería de prompt se convierte en una herramienta versátil y poderosa.

Con el creciente interés en el desarrollo con LLM, presentamos nuestra nueva guía de ingeniería de prompt. Este recurso integral recopila los últimos artículos, guías de aprendizaje, modelos, conferencias, referencias y nuevas capacidades de LLM, proporcionando una visión completa del mundo en constante evolución de la ingeniería de prompt.

Navegando por la Ingeniería de Prompt

La ingeniería de prompt ha emergido como una disciplina vanguardista dedicada al desarrollo y optimización de prompts, permitiendo la eficiente utilización de modelos de lenguaje (ML) en diversas aplicaciones e investigaciones. Este enfoque especializado es esencial para una comprensión más profunda de las capacidades y limitaciones de los grandes modelos de lenguaje (LLM).

En el ámbito de la investigación, la ingeniería de prompt se erige como un catalizador para potenciar las habilidades de los LLM en tareas tanto comunes como complejas, abarcando desde la respuesta a preguntas hasta el razonamiento aritmético. Simultáneamente, los desarrolladores se valen de la ingeniería de prompt para concebir técnicas robustas y efectivas que faciliten la interacción con los LLM y otras herramientas.

Esta guía exhaustiva se sumerge en los conceptos fundamentales de los prompts, proporcionando una visión holística sobre cómo utilizarlos para interactuar e instruir a los grandes modelos de lenguaje (LLM). Cada ejemplo presentado ha sido meticulosamente probado con text-davinci-003 en el playground de OpenAI, a menos que se especifique lo contrario. Cabe destacar que se han empleado las configuraciones predeterminadas, es decir, temperature=0.7 y top-p=1.

A través de esta guía, exploraremos el fascinante mundo de la ingeniería de prompt, desvelando sus aplicaciones prácticas y ofreciendo una visión detallada de cómo esta disciplina está dando forma al futuro de la interacción con los LLM.

Configuración del LLM al Trabajar con Prompts

Cuando te sumerges en el universo de prompts, tu interacción con el Modelo de Lenguaje Grande (LLM) se lleva a cabo a través de una API o directamente. Es esencial comprender que puedes ajustar ciertos parámetros para obtener resultados diversos según tus necesidades.

Temperatura – En términos simples, la temperatura influye en la determinación de los resultados. A valores bajos, la elección del siguiente token es más determinista, optando siempre por el token más probable. En contraste, al aumentar la temperatura, se introduce mayor aleatoriedad, fomentando resultados más diversos y creativos. Este ajuste, por ende, redistribuye los pesos hacia otros posibles tokens. Para tareas como preguntas y respuestas basadas en hechos, se recomienda una temperatura baja para propiciar respuestas concisas y precisas. Sin embargo, para la generación de contenido creativo, un valor más alto puede ser beneficioso.

Top_p – Similarmente, mediante top_p, una técnica de muestreo llamada muestreo de núcleo, puedes modular la determinación del modelo al generar una respuesta. Para respuestas exactas y factuales, se aconseja mantener este valor bajo. En cambio, si buscas respuestas más diversas, incrementar el valor de top_p resulta útil.

Se sugiere, en términos generales, ajustar uno de los dos parámetros, no ambos, según tus objetivos.

Previo a explorar ejemplos prácticos, ten en cuenta que los resultados pueden variar según la versión específica del LLM que estés utilizando. Asegúrate de considerar la configuración adecuada según el contexto y los resultados deseados.

Dominando el Arte del Prompt: Estrategias y Formatos

Si bien los prompts simples ofrecen versatilidad, la calidad de los resultados reside en la información proporcionada al modelo y en la ingeniosidad del diseño del prompt. La clave está en enriquecer el prompt con detalles como instrucciones, preguntas, contexto o ejemplos para lograr resultados más precisos y coherentes.

Ejemplo Básico de Prompt:

Prompt: El cielo es

Resultado: azul

Observación: El modelo genera respuestas coherentes con el contexto inicial, pero los resultados pueden ser inesperados.

Optimizando el Prompt:

Prompt: Completa la oración: El cielo es

Resultado: tan hermoso hoy.

Análisis: Al dar una instrucción más específica, el modelo produce una respuesta más alineada con la tarea deseada. Este enfoque se conoce como ingeniería de prompts.

Formato del Prompt:

Un prompt estándar adopta la forma de una pregunta o una instrucción:

  • ¿<Pregunta>?
  • o
  • <Instrucción>

El formato QA (pregunta y respuesta) se utiliza para solicitar respuestas sin entrenamiento directo:

  • Q: ¿<Pregunta>? A:

Prompts con Pocos Ejemplos:

La técnica de prompting con pocos ejemplos implica proporcionar demostraciones para orientar al modelo. Puede formatearse así:

  • ¿<Pregunta>? <Respuesta>
  • ¿<Pregunta>? <Respuesta>

Versión en formato QA:

  • Q: ¿<Pregunta>? A: <Respuesta>
  • Q: ¿<Pregunta>? A: <Respuesta>

Observación: El formato de tarea varía según la naturaleza de la tarea, como en el caso de una tarea de clasificación simple:

Prompt: Esto es impresionante! // Positivo Esto es malo! // Negativo Guau, esa película fue genial! // Positivo ¡Qué programa tan horrible! //

Resultado: Negativo

La estrategia de prompting con pocos ejemplos permite el aprendizaje en contexto, otorgando a los modelos de lenguaje la capacidad de aprender tareas con solo unos pocos ejemplos de demostración.

actualizaciones chatgpt

Descifrando los Componentes de un Prompt: Claves para la Ingeniería Exitosa

Conforme exploramos diversos ejemplos y aplicaciones en la ingeniería de prompts, es evidente que ciertos elementos constituyen la anatomía de un prompt. Estos componentes incluyen:

1. Instrucción:

Una tarea o instrucción específica que se le asigna al modelo. Esta indicación guía al modelo hacia la acción deseada.

2. Contexto:

Información externa o contexto adicional que contextualiza la tarea. Al proporcionar contexto, se mejora la capacidad del modelo para generar respuestas más pertinentes.

3. Datos de Entrada:

La entrada o pregunta que planteamos al modelo, la cual constituye el núcleo de nuestra búsqueda de respuesta. Este componente define el propósito y alcance de la tarea.

4. Indicador de Salida:

Un elemento que especifica el tipo o formato de la salida deseada. Este indicador aclara la expectativa con respecto a la forma en que el modelo debe presentar la respuesta.

Es importante señalar que no todos estos componentes son obligatorios en cada prompt, y el formato varía según la tarea específica. La elección de elementos dependerá de los objetivos y requisitos particulares de la tarea en cuestión.

En las próximas guías, exploraremos ejemplos específicos que ilustrarán cómo manipular estos componentes para crear prompts efectivos y lograr resultados precisos en una variedad de aplicaciones.

Pautas Cruciales para Diseñar Prompts de Manera Efectiva

A medida que te sumerges en el diseño de prompts, ten en cuenta estos consejos clave para optimizar tus resultados:

1. Comienza por lo Simple:

  • Inicia el proceso de diseño con prompts simples.
  • Utiliza plataformas como OpenAI o Cohere para experimentar.
  • Añade elementos y contexto gradualmente para mejorar los resultados.
  • La iteración y la versionización son esenciales para perfeccionar tus prompts.

2. La Instrucción es Clave:

  • Diseña prompts efectivos utilizando comandos específicos, como “Escribe”, “Clasifica”, “Resumen”, “Traduce”, “Ordena”, etc.
  • Experimenta con diferentes instrucciones y contextos para descubrir qué funciona mejor para tu tarea específica.
  • Coloca las instrucciones al inicio del prompt y considera el uso de un separador claro como “###” para destacarlas.

3. Especificidad para Mejores Resultados:

  • Sé específico y detallado sobre la tarea que deseas que el modelo realice.
  • Proporciona ejemplos en el prompt para orientar al modelo hacia el estilo o formato deseado.
  • Considera la longitud del prompt y evita detalles innecesarios; la relevancia es clave.

4. Evitar la Imprecisión:

  • Prioriza la claridad y la directividad sobre la astucia y la vaguedad.
  • Sé directo y específico en la instrucción para obtener respuestas más efectivas.

5. Enfoque Positivo:

  • En lugar de indicar lo que no hacer, enfócate en lo que se debe hacer.
  • Fomenta la especificidad y los detalles que conducen a respuestas de calidad.

Estos consejos proporcionan una base sólida para el diseño de prompts efectivos. A medida que experimentas con diferentes enfoques, ajusta tus estrategias según la tarea específica y busca la iteración continua para perfeccionar tus prompts en función de tus aplicaciones particulares.

Ejemplos Ilustrativos de Ingeniería de Prompts en Acción

A continuación, te presentaré ejemplos concretos de cómo los prompts bien diseñados pueden emplearse para abordar diversas tareas. Estos ejemplos abarcarán temas como:

1. Resumen de Textos:

Prompt: Resumen el siguiente párrafo en dos oraciones. Texto: “La inteligencia artificial (IA) ha transformado rápidamente diversos sectores, desde la atención médica hasta la industria automotriz. Estas innovaciones continúan moldeando nuestro futuro de manera significativa.”

Resultado: La IA ha revolucionado sectores como la atención médica y la industria automotriz. Estas innovaciones están dejando una huella duradera en nuestro futuro.

2. Extracción de Información:

Prompt: Extrae los nombres de las personas mencionadas en el siguiente texto. Texto: “En la última entrevista, Elon Musk habló sobre los avances tecnológicos y la colonización de Marte. También mencionó a Gwynne Shotwell como una colaboradora clave en SpaceX.”

Resultado: Personas: Elon Musk, Gwynne Shotwell

3. Preguntas y Respuestas:

Prompt: Responde a la siguiente pregunta utilizando información del texto. Pregunta: ¿Cuál es la capital de Francia? Texto: “París es conocida por su arquitectura icónica y su rica historia cultural.”

Resultado: Respuesta: La capital de Francia es París.

4. Clasificación de Texto:

Prompt: Clasifica el siguiente texto como positivo o negativo. Texto: “A pesar de los desafíos, la empresa logró superar las expectativas y alcanzar nuevos hitos en el último trimestre.”

Resultado: Clasificación: Positivo

5. Conversación:

Prompt: Imagina una conversación entre un estudiante y un profesor. El estudiante pregunta sobre la teoría de la relatividad de Einstein. Texto generado: (Conversación simulada)

6. Generación de Código:

Prompt: Genera una función en Python que calcule la suma de los números pares en una lista. Texto generado: (Código Python)

7. Razonamiento:

Prompt: Explica el concepto de oferta y demanda en economía. Mantén la explicación concisa y clara. Texto generado: (Explicación breve)

Estos ejemplos ilustran cómo la ingeniería de prompts permite realizar una amplia gama de tareas, desde la síntesis de información hasta la generación de código y el razonamiento conceptual. La clave radica en diseñar prompts específicos y ajustados a la tarea que se desea lograr.

Maestría en Ingeniería de Prompts: Técnicas Avanzadas para Tareas Complejas

Ahora, nos sumergiremos en técnicas más avanzadas de ingeniería de prompts, destinadas a mejorar la eficacia en tareas complejas y fascinantes. Estas estrategias te permitirán perfeccionar tus interacciones con modelos de lenguaje y obtener resultados más precisos y enriquecedores.

1. Muestreo Estratégico:

  • Técnica: Ajuste de la Temperatura

    • Experimenta con valores de temperatura para modular la determinación del modelo.
    • Valores bajos (p. ej., 0.2) producen respuestas más deterministas.
    • Valores altos (p. ej., 0.8) introducen aleatoriedad y creatividad.
  • Técnica: Uso de Top_p (Núcleo)

    • Controla la probabilidad acumulativa de las palabras seleccionadas por el modelo.
    • Valores bajos (p. ej., 0.3) priorizan las opciones más probables.
    • Valores altos (p. ej., 0.8) permiten más diversidad en la selección.

2. Prompting con Pocos Ejemplos:

  • Técnica: Demostración Contextual

    • Proporciona ejemplos específicos que orienten al modelo en tareas complejas.
    • Ejemplos claros y representativos ayudan al modelo a aprender patrones contextuales.
  • Técnica: Formato de Pregunta y Respuesta (QA)

    • Estructura los prompts como preguntas seguidas de respuestas.
    • Facilita la comprensión de la tarea y mejora la coherencia en la generación de respuestas.

3. Refinamiento de Instrucciones:

  • Técnica: Claridad y Especificidad

    • Sé claro y específico en las instrucciones para evitar ambigüedades.
    • Utiliza palabras clave que indiquen la acción deseada, como “Genera,” “Explica,” “Resumen,” etc.
  • Técnica: Separadores y Formato Distintivo

    • Utiliza separadores (p. ej., “###”) para destacar instrucciones y contexto.
    • Un formato organizado facilita la interpretación y ejecución del modelo.

4. Experimentación y Ajuste Continuo:

  • Técnica: Versionización del Prompt

    • Mantén versiones del prompt para rastrear cambios y ajustes.
    • Facilita la comparación y mejora iterativa del rendimiento del modelo.
  • Técnica: Evaluación Iterativa

    • Evalúa resultados y ajusta los prompts según la retroalimentación.
    • La mejora continua es esencial en el proceso de diseño de prompts.

5. Adaptación al Contexto:

  • Técnica: Incorporación de Contexto Externo
    • Introduce información adicional o contexto relevante en el prompt.
    • Mejora la comprensión del modelo y la coherencia en la generación de respuestas.

Estas técnicas avanzadas te proporcionarán las herramientas necesarias para enfrentarte a tareas complejas y lograr resultados más precisos y contextualmente ricos. La experimentación y la adaptabilidad son clave en la ingeniería de prompts, así que no dudes en ajustar y perfeccionar tus enfoques según las demandas específicas de tus aplicaciones.

Explorando el Potencial: Prompt sin Entrenamiento (Zero-shot)

Los modelos de lenguaje actuales, entrenados exhaustivamente y ajustados para seguir instrucciones, exhiben la notable capacidad de abordar tareas sin la necesidad de entrenamiento específico. Este enfoque, conocido como “prompt sin entrenamiento” (zero-shot), se ilustra con el siguiente ejemplo:

Prompt: Clasifica el texto en neutral, negativo o positivo. Texto: Creo que las vacaciones están bien. Sentimiento:

Output: Neutral

Es crucial destacar que en la instrucción proporcionada no se incluyeron ejemplos o demostraciones previas para orientar al modelo. Este enfoque sin entrenamiento demuestra la versatilidad de los modelos de lenguaje.

Se ha observado que el “ajuste de instrucciones” mejora significativamente el rendimiento del aprendizaje sin entrenamiento (Wei et al., 2022). Este concepto implica afinar los modelos en conjuntos de datos caracterizados mediante instrucciones específicas. Asimismo, se ha implementado el aprendizaje por refuerzo a partir de la retroalimentación humana (RLHF), un enfoque que alinea mejor el modelo con las preferencias humanas. Estos avances recientes han impulsado modelos como ChatGPT, marcando un hito significativo en el rendimiento de los modelos de lenguaje.

Cuando el prompt sin entrenamiento no logra el resultado deseado, la estrategia recomendada es proporcionar demostraciones o ejemplos directamente en la instrucción. Este enfoque, conocido como “entrenamiento con pocos ejemplos”, será explorado en detalle en la siguiente sección, demostrando su eficacia en casos donde la guía explícita es necesaria.

Prompts con Pocas Muestras (Few-shot)

Aunque los modelos de lenguaje actuales pueden abordar tareas sin entrenamiento previo (zero-shot), enfrentan desafíos en tareas más complejas. La estrategia de prompts con pocas muestras surge como una técnica efectiva para facilitar el aprendizaje contextual, proporcionando demostraciones en el propio prompt. Estas demostraciones condicionan al modelo para tareas más desafiantes, actuando como ejemplos que guían la generación de respuestas.

Según Touvron et al. (2023), esta técnica se popularizó con el escalado de modelos a tamaños significativos (Kaplan et al., 2020).

Demostraremos el uso de prompts con pocas muestras con un ejemplo de Brown et al. (2020). En esta instancia, la tarea consiste en utilizar correctamente una nueva palabra en una oración.

Prompt: Un “whatpu” es un animal pequeño y peludo originario de Tanzania. Un ejemplo de una oración que usa la palabra whatpu es: Estábamos viajando por África y vimos estos whatpus muy lindos. Hacer un “farduddle” significa saltar hacia arriba y hacia abajo muy rápido. Un ejemplo de una oración que usa la palabra farduddle es:

Output: Cuando ganamos el juego, todos empezamos a farduddlear en celebración.

Este ejemplo ilustra cómo el modelo aprende a realizar la tarea con solo un ejemplo (es decir, 1-shot). Para tareas más desafiantes, se puede experimentar aumentando la cantidad de demostraciones (por ejemplo, 3-shot, 5-shot, 10-shot, etc.).

Según Min et al. (2022), algunos consejos adicionales sobre el uso de demostraciones con pocas muestras incluyen:

  • La distribución del espacio de etiquetas y la entrada de texto especificada por los ejemplos son cruciales.
  • El formato desempeña un papel clave; incluso el uso de etiquetas aleatorias mejora el rendimiento.
  • Se sugiere seleccionar etiquetas aleatorias de una distribución real de etiquetas para obtener mejores resultados.

Ahora, exploremos un ejemplo con etiquetas aleatorias:

Prompt: Esto es increíble! // Negativo Esto es malo! // Positivo ¡Guau, esa película fue increíble! // Positivo ¡Qué horrible programa! //

Output: Negativo

Incluso cuando las etiquetas se han aleatorizado, el modelo produce la respuesta correcta. Este fenómeno sugiere que los modelos GPT actuales son más resistentes a formatos aleatorios. A pesar de esto, es esencial realizar análisis más detallados para confirmar la aplicabilidad de esta observación en diversas tareas y variaciones de estímulos.

Limitaciones de los Prompts con Pocas Muestras: Aunque los prompts con pocas muestras funcionan bien en muchas tareas, presentan limitaciones en tareas de razonamiento más complejas. El ejemplo anterior revela una tarea de razonamiento aritmético donde la estrategia de prompts con pocas muestras no garantiza respuestas confiables. Este escenario resalta la necesidad de estrategias de prompt más avanzadas

Prompt de Cadena de Pensamientos (CoT)

Introducido por Wei et al. (2022), el Prompt de Cadena de Pensamientos (CoT) destaca como una estrategia avanzada para abordar tareas que implican razonamiento complejo. Esta técnica, cuando se combina con prompts de pocas muestras (few-shot), potencia la capacidad del modelo para realizar tareas desafiantes que requieren pasos de razonamiento antes de generar respuestas.

Ejemplo de CoT: Prompt: Los números impares en este grupo suman un número par: 4, 8, 9, 15, 12, 2, 1. A: Al sumar todos los números impares (9, 15, 1) se obtiene 25. La respuesta es Falsa. Los números impares en este grupo suman un número par: 17, 10, 19, 4, 8, 12, 24. A: Al sumar todos los números impares (17, 19) se obtiene 36. La respuesta es Verdadera. Los números impares en este grupo suman un número par: 16, 11, 14, 4, 8, 13, 24. A: Al sumar todos los números impares (11, 13) se obtiene 24. La respuesta es Verdadera. Los números impares en este grupo suman un número par: 17, 9, 10, 12, 13, 4, 2. A: Al sumar todos los números impares (17, 9, 13) se obtiene 39. La respuesta es Falsa. Los números impares en este grupo suman un número par: 15, 32, 5, 13, 82, 7, 1. A:

Salida: Al sumar todos los números impares (15, 5, 13, 7, 1) se obtiene 41. La respuesta es Falsa.

Este ejemplo muestra cómo proporcionar pasos de razonamiento mejora significativamente la capacidad del modelo para abordar tareas más complejas.

Incluso un Ejemplo es Suficiente con CoT: Prompt: Los números impares en este grupo suman un número par: 4, 8, 9, 15, 12, 2, 1. A: Al sumar todos los números impares (9, 15, 1) se obtiene 25. La respuesta es Falsa. Los números impares en este grupo suman un número par: 15, 32, 5, 13, 82, 7, 1. A:

Salida: Al sumar todos los números impares (15, 5, 13, 7, 1) se obtiene 41. La respuesta es Falsa.

Incluso con un solo ejemplo, el modelo demuestra una capacidad impresionante para razonar y generar respuestas precisas.

CoT sin Entrenamiento Previo (Zero-shot CoT): Prompt: Fui al mercado y compré 10 manzanas. Regalé 2 manzanas al vecino y 2 al reparador. Luego fui y compré 5 manzanas más y me comí 1. ¿Cuántas manzanas me quedan?

Salida: 11 manzanas

La respuesta es incorrecta. Ahora, intentemos con el Prompt especial:

Prompt: Fui al mercado y compré 10 manzanas. Regalé 2 manzanas al vecino y 2 al reparador. Luego fui y compré 5 manzanas más y me comí 1. ¿Cuántas manzanas me quedan? Pensemos paso a paso.

Output: En primer lugar, comenzaste con 10 manzanas. Regalaste 2 manzanas al vecino y 2 al reparador, así que te quedaron 6 manzanas. Luego compraste 5 manzanas más, así que ahora tenías 11 manzanas. Finalmente, te comiste una manzana, por lo que te quedan 10 manzanas.

Este ejemplo ilustra cómo la inclusión del paso de razonamiento “Pensemos paso a paso” mejora la capacidad del modelo para abordar problemas de lógica y razonamiento, incluso sin entrenamiento previo.

En resumen, el Prompt de Cadena de Pensamientos (CoT) emerge como una estrategia poderosa para capacitar modelos en tareas complejas que involucran razonamiento. La inclusión de pasos de razonamiento intermedios facilita la generación de respuestas más precisas y contextuales. Esta técnica puede combinarse con prompts de pocas muestras para maximizar la eficacia del modelo en tareas desafiantes.

Mejorando la Generación con Autoconsistencia

La autoconsistencia, una técnica avanzada propuesta por Wang et al. (2022), busca superar la decodificación codiciosa ingenua en la generación de cadenas de pensamiento. Su objetivo es muestrear varios caminos de razonamiento a través de pocos ejemplos y usar estas generaciones para seleccionar la respuesta más consistente. Esta técnica demuestra ser efectiva en tareas que involucran razonamiento aritmético y sentido común.

Ejemplo de Razonamiento Aritmético sin Autoconsistencia: Prompt: Cuando tenía 6 años, mi hermana tenía la mitad de mi edad. Ahora tengo 70 años, ¿cuántos años tiene mi hermana?

Salida sin Autoconsistencia: 35

¡La respuesta es incorrecta! Intentemos mejorar esto con autoconsistencia utilizando ejemplos adicionales del artículo de Wang et al. (2022) (Tabla 17):

Prompt con Autoconsistencia: P: Hay 15 árboles en el bosque. Los trabajadores plantarán árboles en el bosque hoy. Después de que terminen, habrá 21 árboles. ¿Cuántos árboles plantaron los trabajadores del bosque hoy? R: Comenzamos con 15 árboles. Luego tenemos 21 árboles. La diferencia debe ser el número de árboles que plantaron. Por lo tanto, deben haber plantado 21 – 15 = 6 árboles. La respuesta es 6.

P: Si hay 3 autos en el estacionamiento y llegan 2 autos más, ¿cuántos autos hay en el estacionamiento? R: Ya hay 3 autos en el estacionamiento. Llegan 2 más. Ahora hay 3 + 2 = 5 autos. La respuesta es 5.

… (otros ejemplos)

Salida con Autoconsistencia: Salida 1: Cuando tenía 6 años, mi hermana tenía la mitad de mi edad, por lo que tenía 3 años. Ahora tengo 70 años, por lo que ella tiene 70 – 3 = 67 años. La respuesta es 67.

Salida 2: Cuando el narrador tenía 6 años, su hermana tenía la mitad de su edad, que son 3 años. Ahora que el narrador tiene 70 años, su hermana tendría 70 – 3 = 67 años. La respuesta es 67.

Salida 3: Cuando tenía 6 años, mi hermana tenía la mitad de mi edad, por lo que tenía 3 años. Ahora tengo 70 años, por lo que ella tiene 70/2 = 35 años. La respuesta es 35.

A través de autoconsistencia, se muestrean múltiples respuestas y se selecciona la más consistente. En este caso, la respuesta final es 67, que es mayoritaria en las generaciones.

Esta técnica, si bien puede ser más compleja, demuestra ser eficaz al mejorar la coherencia y precisión en la generación de cadenas de pensamiento, especialmente en tareas de razonamiento más avanzado. La autoconsistencia proporciona una herramienta valiosa para abordar la complejidad en la generación de lenguaje.

Generación de Conocimiento para Razonamiento del Sentido Común

La generación de conocimiento para ser utilizado como parte del prompt es una técnica prometedora, especialmente en tareas que requieren conocimiento previo sobre el mundo. Liu et al. (2022) propone utilizar esta estrategia para mejorar el rendimiento de los modelos de lenguaje en tareas de razonamiento del sentido común.

Ejemplo Práctico: En un escenario donde el modelo inicialmente falla al responder una pregunta de sentido común sobre el golf, se puede aplicar la generación de conocimiento para corregir este error. Aquí hay una demostración simplificada del proceso:

  1. Conocimiento Generado:

    • Se proporciona información adicional sobre el golf que el modelo no poseía inicialmente.
    • Este conocimiento se estructura de manera coherente y clara para guiar al modelo hacia una respuesta más precisa.
				
					Input: Parte del golf es tratar de obtener un puntaje total más alto que los demás.
Conocimiento 1: El objetivo del golf es jugar un conjunto de hoyos en el menor número de golpes...
Conocimiento 2: El golf es un deporte de precisión en el que los jugadores compiten usando muchos tipos de palos...

				
			

 

    • ón adicional sobre el golf que el modelo no poseía inicialmente.
    • Este conocimiento se estructura de manera coherente y clara para guiar al modelo hacia una respuesta más precisa.
				
					Pregunta: ¿Parte del golf consiste en intentar obtener un total de puntos más alto que los demás? Sí o No?
Conocimiento: (Información estructurada sobre el golf)
Respuesta 1 (confianza muy alta): No, el objetivo del golf no es obtener un total de puntos más alto...
Respuesta 2 (confianza mucho más baja): Sí, parte del golf consiste en intentar obtener un total de puntos más alto...

				
			

Este enfoque demuestra cómo la generación de conocimiento puede corregir errores y mejorar la precisión del modelo en tareas de razonamiento del sentido común. La información adicional proporcionada ayuda al modelo a comprender mejor el contexto y a generar respuestas más informadas.

Es esencial tener en cuenta que este proceso simplificado puede ser refinado y ajustado para abordar casos más complejos y específicos. Consultar el paper original proporciona detalles adicionales y pautas para implementar esta estrategia de manera efectiva.

La Generación de Recuperación Aumentada (RAG)

La Generación de Recuperación Aumentada (RAG) es una técnica que combina un componente de recuperación de información con un modelo generador de texto para abordar tareas que requieren un mayor conocimiento. Aquí hay algunos puntos clave sobre RAG:

  1. Combinación de Recuperación y Generación: RAG se basa en la idea de combinar un modelo de recuperación, que obtiene información relevante de una fuente externa (por ejemplo, Wikipedia), con un modelo generador de texto. Esta combinación permite que el modelo acceda a conocimientos externos de manera eficiente.

  2. Flexibilidad y Adaptabilidad: RAG es altamente adaptable y puede ajustarse con precisión sin necesidad de volver a entrenar todo el modelo. Esto es crucial para situaciones en las que los hechos pueden cambiar con el tiempo, ya que permite la actualización del conocimiento sin pasar por el proceso completo de reentrenamiento.

  3. Memoria Paramétrica y No Paramétrica: RAG utiliza un modelo preentrenado de secuencia a secuencia (seq2seq) como memoria paramétrica y un índice de vectores densos de Wikipedia como memoria no paramétrica. Esto permite un acceso eficiente a la información almacenada en la fuente externa.

  4. Mejora de la Consistencia y Fiabilidad: La combinación de recuperación y generación mejora la consistencia factual y la fiabilidad de las respuestas generadas. Esto ayuda a abordar el problema de “alucinación” que a veces se encuentra en modelos generativos de lenguaje.

  5. Resultados y Rendimiento: RAG ha demostrado un buen rendimiento en varias métricas y tareas, como Preguntas Naturales, Preguntas de la Web, CuratedTrec, MS-MARCO, Jeopardy y la verificación de datos de FEVER. Sus respuestas son más factuales, específicas y diversas.

  6. Uso en la Práctica: En la práctica, los enfoques basados en recuperadores como RAG se han vuelto más populares y se combinan con modelos de lenguaje de última generación, como ChatGPT, para mejorar la calidad y la coherencia de las respuestas generadas.

RAG representa un avance significativo en la generación de lenguaje natural al abordar la necesidad de conocimientos específicos y actualizados en tareas complejas. Su capacidad para adaptarse a cambios en el conocimiento externo lo convierte en una herramienta valiosa en entornos dinámicos donde la información puede evolucionar con el tiempo.

Ingeniería de Prompts Automático (APE)

La Ingeniería de Prompts Automático (APE) es un marco de trabajo propuesto por Zhou et al. que se centra en la generación y selección automáticas de instrucciones para tareas específicas. Este enfoque aborda el problema de generación de instrucciones como una tarea de optimización de caja negra, utilizando Modelos de Lenguaje de Aprendizaje Automático (LLMs) para generar y buscar soluciones candidatas.

Pasos Principales de APE:

  1. Modelo de Lenguaje de Inferencia: APE comienza con un gran modelo de lenguaje, que actúa como un modelo de inferencia. Este modelo recibe demostraciones de salida y genera candidatos a instrucciones para la tarea en cuestión.

  2. Generación de Soluciones Candidatas: Las soluciones candidatas generadas por el modelo de lenguaje de inferencia sirven como guía para el procedimiento de búsqueda. Estas instrucciones candidatas se utilizan en pasos posteriores del proceso.

  3. Ejecución de Instrucciones: Las instrucciones candidatas se ejecutan utilizando un modelo de destino específico para la tarea. Este paso implica aplicar las instrucciones generadas para obtener resultados específicos de la tarea.

  4. Selección de la Mejor Instrucción: Se calculan puntuaciones de evaluación para las instrucciones ejecutadas, y se selecciona la instrucción más apropiada según estas puntuaciones. Este paso implica evaluar la calidad y eficacia de las instrucciones generadas.

Comparación con el Prompt Humano:

APE se compara con un prompt humano específico, en este caso, el prompt “Veamos esto paso a paso para asegurarnos de tener la respuesta correcta”. La investigación demuestra que APE puede descubrir automáticamente un prompt “Chain-of-Thought” (COT) que supera al prompt diseñado por humanos “Pensemos paso a paso” (Kojima et al., 2022).

El resultado es una mejora en el rendimiento en conjuntos de datos específicos como MultiArith y GSM8K. Esto destaca la capacidad de APE para optimizar automáticamente las instrucciones utilizadas en tareas complejas, eliminando la necesidad de anotaciones humanas y mostrando un enfoque más eficiente y efectivo en la ingeniería de prompts.

Prompt Activo: Mejorando la Cadena de Pensamiento con Anotaciones Dinámicas

Los métodos tradicionales de Cadena de Pensamiento (CoT) se enfrentan al desafío de depender de un conjunto fijo de ejemplos humanamente anotados. Este enfoque puede resultar subóptimo, ya que los ejemplos predeterminados pueden no ser los más efectivos para abordar diversas tareas. En respuesta a esta limitación, Diao et al. (2023) han propuesto un enfoque innovador conocido como “Prompt Activo” (Active-Prompt).

Pasos Principales del Enfoque Prompt Activo:

  1. Consulta al LLM: El proceso comienza con la realización de una consulta al Modelo de Lenguaje de Aprendizaje (LLM). Esta consulta puede realizarse con o sin ejemplos de Cadena de Pensamiento.

  2. Generación de Respuestas Potenciales: Se generan k posibles respuestas para un conjunto específico de preguntas de entrenamiento. Estas respuestas representan las posibles interpretaciones del modelo en función de la consulta realizada.

  3. Cálculo de Incertidumbre: Se calcula una métrica de incertidumbre, utilizando el concepto de desacuerdo entre las k respuestas generadas. Preguntas que generan mayor desacuerdo entre las respuestas potenciales se consideran más inciertas.

  4. Anotación por Humanos: Las preguntas más inciertas seleccionadas se envían para su anotación por humanos. Este proceso implica que los humanos proporcionen ejemplos de razonamiento específicos para las preguntas seleccionadas.

  5. Inferencia con Nuevos Ejemplos: Los nuevos ejemplos anotados se utilizan para mejorar la inferencia en cada pregunta correspondiente. Estos ejemplos adicionales brindan información específica y ajustan el modelo para tareas específicas.

Ventajas del Enfoque Prompt Activo:

  • Adaptabilidad Dinámica: La adaptación dinámica a través de la anotación activa permite ajustar el modelo a diferentes tareas y escenarios sin depender de un conjunto fijo de ejemplos.

  • Optimización de Rendimiento: Al centrarse en las preguntas más inciertas, el enfoque permite una optimización eficiente del rendimiento del modelo al incluir ejemplos de razonamiento específicos.

  • Evolución Continua: A medida que se anotan más preguntas y se introducen nuevos ejemplos, el modelo puede evolucionar continuamente para abordar una amplia gama de tareas de manera efectiva.

En resumen, el enfoque Prompt Activo de Diao et al. presenta una estrategia dinámica para mejorar la Cadena de Pensamiento, proporcionando una manera adaptable y efectiva de optimizar los modelos de lenguaje para tareas específicas mediante la anotación activa de ejemplos de razonamiento.

Prompt de Estímulo Direccional: Reforzando la Generación de Resúmenes

En la búsqueda continua de mejorar las capacidades de los Modelos de Lenguaje de Aprendizaje (LLM), Li et al. (2023) han propuesto una innovadora técnica de alineación denominada “Prompt de Estímulo Direccional”. Esta técnica se centra en la generación de un estímulo o pista que dirige de manera específica al LLM para producir resúmenes deseados.

Principales Componentes y Enfoques:

  1. Entrenamiento del LM de Política Ajustable: Un componente clave de esta técnica implica entrenar un Modelo de Lenguaje de política ajustable. Este modelo tiene la tarea específica de generar el estímulo o pista que se utilizará para guiar al LLM en la generación de resúmenes.

  2. Uso de Aprendizaje por Reforzamiento (RL): Se destaca el aumento en el uso de técnicas de Aprendizaje por Reforzamiento para optimizar los LLM. En este contexto, el estímulo generado por el LM de Política Ajustable actúa como una guía para reforzar el comportamiento deseado del LLM.

  3. Comparación con Alineamiento Estándar: La figura proporcionada en el trabajo de Li et al. compara visualmente cómo el Prompt de Estímulo Direccional se diferencia del alineamiento estándar. Se destaca que el LM utilizado puede ser relativamente pequeño y está específicamente optimizado para generar pistas que dirijan de manera efectiva a un LLM congelado de caja negra.

Ventajas del Prompt de Estímulo Direccional:

  • Guía Específica: Al generar un estímulo direccional, se proporciona al LLM una guía específica sobre la dirección deseada para la generación de resúmenes.

  • Optimización Efectiva: La combinación de Aprendizaje por Reforzamiento y el uso de un LM de Política Ajustable permite una optimización más efectiva del comportamiento del LLM.

  • Flexibilidad en el Tamaño del Modelo: La técnica destaca que el LM utilizado para generar el estímulo puede ser un modelo más pequeño, lo que puede ser más eficiente en términos computacionales.

Aplicaciones Potenciales:

  • Generación de Resúmenes Específicos: La técnica puede ser valiosa en situaciones donde se requiere que el LLM genere resúmenes específicos y deseados.

  • Adaptabilidad: La capacidad de entrenar el modelo de política ajustable para adaptarse a diferentes tareas y contextos brinda flexibilidad en la aplicación de esta técnica.

En resumen, el Prompt de Estímulo Direccional propuesto por Li et al. presenta una aproximación interesante para mejorar la generación de resúmenes mediante la incorporación de un estímulo específico, destacando la utilidad del Aprendizaje por Reforzamiento en este contexto.

ReAct: Integrando Generación de Trazas de Razonamiento y Acciones Específicas

El framework ReAct, propuesto por Yao et al. en 2022, presenta una metodología novedosa que aprovecha Modelos de Lenguaje de Aprendizaje (LLM) para generar trazas de razonamiento y acciones específicas de la tarea de manera intercalada. Este enfoque tiene el propósito de mejorar la capacidad del modelo para inducir, hacer seguimiento y actualizar planes de acción, incluso en situaciones que involucran la gestión de excepciones.

Principales Características de ReAct:

  1. Generación de Trazas de Razonamiento: ReAct utiliza LLM para generar trazas de razonamiento que ayudan al modelo a comprender, razonar y planificar acciones específicas en el contexto de una tarea dada. Estas trazas permiten al modelo gestionar de manera más efectiva las complejidades y variaciones en la ejecución de tareas.

  2. Ejecución de Acciones Específicas: De manera intercalada con la generación de trazas de razonamiento, ReAct incorpora un paso de acción que permite al modelo interactuar y recopilar información de fuentes externas. Esto puede incluir la búsqueda de datos en bases de conocimiento, la consulta de entornos externos, entre otros. Estas acciones buscan mejorar la fiabilidad y la base factual de las respuestas generadas por el modelo.

  3. Manejo de Excepciones: La capacidad de ReAct para generar trazas de razonamiento le proporciona al modelo una mejor preparación para manejar situaciones excepcionales. Puede adaptar sus acciones y planes en función de la evolución de la tarea.

  4. Interacción con Herramientas Externas: Una característica distintiva de ReAct es su capacidad para interactuar con herramientas externas. Esto implica la posibilidad de recuperar información adicional de fuentes externas, como bases de conocimiento, contribuyendo así a respuestas más fundamentadas.

Aplicaciones Potenciales de ReAct:

  • Tareas Complejas y Dinámicas: ReAct puede ser particularmente beneficioso en entornos donde las tareas son complejas, dinámicas y requieren adaptabilidad a diferentes situaciones.

  • Manejo de Información Externa: La interacción con herramientas externas permite al modelo incorporar datos adicionales, lo que puede ser esencial en tareas que necesitan acceso a información actualizada.

  • Generación Fiable de Respuestas: Al combinar generación de trazas de razonamiento y acciones específicas, ReAct busca mejorar la fiabilidad y la calidad de las respuestas generadas por el modelo.

El framework ReAct representa una contribución significativa al campo al abordar la integración de generación de lenguaje y acciones específicas de manera intercalada, mejorando así la capacidad de los modelos para abordar tareas complejas y dinámicas.

Generación de Cadenas de Pensamiento Multimodal (CoT)

Recientemente, Zhang et al. (2023) presentaron un enfoque innovador en el ámbito de la generación de cadenas de pensamiento (CoT) al incorporar modalidades múltiples, incluyendo texto y visión. A diferencia del CoT tradicional, que se centra exclusivamente en la modalidad del lenguaje, el CoT multimodal expande su alcance para abordar información tanto textual como visual en un marco de dos etapas.

Etapas Principales del Enfoque CoT Multimodal:

  1. Generación de Razones Multimodales:

    • En la primera etapa, el modelo se dedica a la generación de razones basadas en información multimodal. Esto implica el procesamiento y la comprensión de datos tanto de texto como de imágenes para construir una cadena de razonamiento coherente.
  2. Inferencia de Respuestas con Razones Informativas:

    • La segunda fase se centra en la inferencia de respuestas utilizando las razones generadas en la etapa anterior. Estas razones multimodales proporcionan un fundamento informativo para la generación de respuestas.

Rendimiento del CoT Multimodal:

El modelo CoT multimodal desarrollado por Zhang et al. ha sido evaluado y comparado con el modelo GPT-3.5 en el banco de pruebas de ScienceQA. Los resultados indican que el CoT multimodal supera al GPT-3.5 en términos de rendimiento en esta tarea específica.

Implicaciones y Contribuciones:

  • Ampliación del Alcance Multimodal: La incorporación de modalidades múltiples, como texto e imágenes, en el proceso de generación de cadenas de pensamiento representa una extensión significativa del alcance de los enfoques tradicionales de CoT.

  • Mejora en Rendimiento: El modelo CoT multimodal ha demostrado un rendimiento superior en comparación con el GPT-3.5 en el banco de pruebas de ScienceQA, sugiriendo que la inclusión de información visual puede ser beneficiosa para tareas específicas.

  • Avance en Comunicación Multimodal: Este enfoque contribuye al avance general en la comprensión y generación de texto en conjunción con información visual, lo que es esencial en aplicaciones del mundo real donde la información se presenta en formatos diversos.

Modelos de Lenguaje Asistidos por Programa (PAL) - Ejemplo Práctico

En este ejemplo práctico, utilizaremos el enfoque de Modelos de Lenguaje Asistidos por Programa (PAL) propuesto por Gao et al. (2022). El objetivo es desarrollar una aplicación simple que utilice un LLM para responder preguntas relacionadas con la comprensión de fechas. Aprovecharemos el intérprete de Python para ejecutar programas generados por el modelo.

Paso 1: Configuración e Imports

				
					import openai
from datetime import datetime
from dateutil.relativedelta import relativedelta
import os
from langchain.llms import OpenAI
from dotenv import load_dotenv

# Configuración de la API de OpenAI y LangChain
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")

# Configuración de la instancia del modelo de lenguaje
llm = OpenAI(model_name='text-davinci-003', temperature=0)

				
			

Paso 2: Configuración del Prompt y la Pregunta

				
					question = "Today is 27 February 2023. I was born exactly 25 years ago. What is the date I was born in MM/DD/YYYY?"

DATE_UNDERSTANDING_PROMPT = """
# Q: 2015 is coming in 36 hours. What is the date one week from today in MM/DD/YYYY?
# ... (Otras preguntas de ejemplo para el entendimiento de fechas)
# Q: Jane was born on the last day of February in 2001. Today is her 16-year-old birthday. What is the date yesterday in MM/DD/YYYY?
# If Jane was born on the last day of February in 2001 and today is her 16-year-old birthday, then today is 16 years later.
today = datetime(2001, 2, 28) + relativedelta(years=16)
# Yesterday,
yesterday = today - relativedelta(days=1)
# The answer formatted with %m/%d/%Y is
yesterday.strftime('%m/%d/%Y')
# Q: {question}
""".strip() + '\n'

				
			

Paso 3: Ejecución del Modelo y Evaluación de la Respuesta

				
					llm_out = llm(DATE_UNDERSTANDING_PROMPT.format(question=question))
print(llm_out)

exec(llm_out)

				
			

En este ejemplo, el modelo se entrena para comprender preguntas relacionadas con fechas y, posteriormente, se utiliza para responder a una pregunta específica. La respuesta se evalúa ejecutando el programa generado por el modelo con el intérprete de Python.

Este enfoque PAL demuestra cómo los modelos de lenguaje pueden ser asistidos por programas para abordar tareas específicas y generar respuestas basadas en un razonamiento programático.

Generación de Datos con LLM para Análisis de Sentimientos

Utilizando estrategias de prompt efectivas, los Modelos de Lenguaje de última generación (LLM) pueden generar datos de manera eficiente para diversas tareas, incluido el análisis de sentimientos. A continuación, se presenta un ejemplo de cómo podríamos utilizar un LLM para producir ejemplos de análisis de sentimientos:

Prompt:

				
					Produce 10 ejemplos para análisis de sentimientos. Los ejemplos se categorizan como positivos o negativos. Produce 2 ejemplos negativos y 8 ejemplos positivos. Usa este formato para los ejemplos:
Q: <oración>
A: <sentimiento>

				
			

Salida Generada por el Modelo:

				
					Q: ¡Acabo de recibir las mejores noticias!
A: Positivo
Q: ¡Acabamos de recibir un aumento en el trabajo!
A: Positivo
Q: Estoy muy orgulloso de lo que logré hoy.
A: Positivo
Q: ¡Estoy teniendo el mejor día de mi vida!
A: Positivo
Q: Realmente estoy deseando el fin de semana.
A: Positivo
Q: ¡Acabo de recibir el mejor regalo de mi vida!
A: Positivo
Q: Estoy tan feliz en este momento.
A: Positivo
Q: Me siento tan afortunado de tener una familia increíble.
A: Positivo
Q: El clima afuera está tan triste.
A: Negativo
Q: Acabo de recibir algunas noticias terribles.
A: Negativo

				
			

Este enfoque permite utilizar el LLM para generar rápidamente ejemplos de análisis de sentimientos con la cantidad y la polaridad específicas requeridas. Este tipo de generación de datos es útil para experimentos, pruebas y entrenamiento de modelos en tareas de análisis de sentimientos.

ReAct: Integrando Generación de Trazas de Razonamiento y Acciones Específicas

ReAct: Integrando Generación de Trazas de Razonamiento y Acciones Específicas

Clavié et al. (2023) realizaron un caso de estudio que destaca la importancia de la ingeniería de prompts aplicada a la clasificación de texto, específicamente en el contexto de determinar si un trabajo es adecuado para un recién graduado. Aquí se resumen los hallazgos clave y las modificaciones probadas en los prompts:

Hallazgos Clave:

  1. Para tareas sin requerimientos de conocimiento experto, la estrategia Chain of Thought (CoT) con pocos ejemplos produjo resultados peores que la generación sin ejemplos.
  2. La influencia del prompt en el razonamiento del modelo es crucial. Simplemente solicitar al modelo que clasifique un trabajo ya muestra una puntuación F1 de 65.6, mientras que la ingeniería de prompts posterior al prompt eleva la puntuación F1 a 91.7.
  3. Forzar al modelo a seguir una plantilla disminuye el rendimiento en todos los casos, aunque este comportamiento se reduce en versiones posteriores de GPT-4.
  4. Pequeñas modificaciones en el prompt tienen un impacto significativo en el rendimiento.
  5. Instrucciones adecuadas y la repetición de puntos clave son factores cruciales para el rendimiento.
  6. Agregar un nombre al modelo y referirse a él como tal aumentó la puntuación F1 en 0.6 puntos.

Modificaciones del Prompt Probadas:

  • Baseline: Descripción del trabajo y pregunta sobre su adecuación para un graduado.
  • CoT: Ejemplos de clasificación precisa antes de realizar la consulta.
  • Zero-CoT: Solicita al modelo razonar paso a paso antes de proporcionar la respuesta.
  • rawinst, sysinst, bothinst: Instrucciones sobre el papel y la tarea agregadas al mensaje del usuario, sistema o ambos.
  • mock: Instrucciones burlonas que reconocen una discusión previa.
  • reit: Refuerza elementos clave repitiéndolos en las instrucciones.
  • strict, loose, right: Diferentes niveles de forzar al modelo a seguir una plantilla dada.
  • info: Proporciona información adicional para abordar fallas de razonamiento comunes.
  • name: Da al modelo un nombre con el que se refiere durante la conversación.
  • pos: Proporciona retroalimentación positiva al modelo antes de hacer la consulta.

Impacto de Rendimiento de Modificaciones del Prompt:

PrecisionRecallF1Apego a la Plantilla
Baseline61.270.665.6
CoT72.685.178.4
Zero-CoT75.588.381.4
+rawinst8092.485.8
    

Estos resultados destacan la importancia de diseñar prompts de manera efectiva para guiar el razonamiento de los modelos de lenguaje en tareas específicas, incluso superando modelos especializados como DeBERTa-V3 en esta tarea específica.

Otras publicaciones

 - 
English
 - 
en
Portuguese
 - 
pt
Spanish
 - 
es