Description
Prompt Chaining
import { Screenshot } from "components/screenshot";
import PC1 from "../../img/prompt_chaining/prompt-chaining-1.png";
import { Callout } from "nextra/components";
Introducción al Prompt Chaining
<iframe width="100%" height="415px" src="https://www.youtube.com/embed/CKZC5RigYEc?si=EG1kHf83ceawWdHX" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />Para mejorar la fiabilidad y el rendimiento de los LLM, una de las técnicas importantes de ingeniería de indicaciones consiste en dividir las tareas en subtareas. Una vez identificadas estas subtareas, se le asigna al LLM una subtarea y su respuesta se utiliza como entrada para otra indicación. Esto se conoce como encadenamiento de indicaciones, donde una tarea se divide en subtareas con el fin de crear una cadena de operaciones de prompt.
El encadenamiento de prompt es útil para realizar tareas complejas que un LLM podría tener dificultades para abordar si se le asigna un prompt muy detallado. En el encadenamiento de prompt, los prompt en cadena realizan transformaciones o procesos adicionales en las respuestas generadas antes de alcanzar el estado final deseado.
Además de lograr un mejor rendimiento, el encadenamiento de prompt ayuda a aumentar la transparencia de la aplicación LLM, aumenta la controlabilidad y la fiabilidad. Esto significa que se pueden depurar problemas con las respuestas del modelo con mucha más facilidad y analizar y mejorar el rendimiento en las diferentes etapas que requieren mejoras.
El encadenamiento de prompt es especialmente útil al crear asistentes conversacionales basados en LLM y al mejorar la personalización y la experiencia de usuario de las aplicaciones.
Aprende más sobre el encadenamiento de prompt y métodos avanzados de propmtear en nuestros nuevos cursos de IA. [Join now!](https://dair-ai.thinkific.com/) Usa el codigo PROMPTING20 para obtener un descuento adicional del 20%.Casos de Uso para el Encadenamiento de Prompt
Encadenamiento de Prompt para QA de Documentos
El encadenamiento de prompt puede ser utilizado en diferentes escenarios que podrían involucrar varias operaciones o transformaciones. Por ejemplo, un caso común de uso de los LLMs implica responder preguntas sobre un documento de texto extenso. Ayuda si diseñas dos prompts diferentes donde el primer prompt es responsable de extraer citas relevantes para responder una pregunta y un segundo prompt toma como entrada las citas y el documento original para responder una pregunta dada. En otras palabras, crearás dos prompts diferentes para realizar la tarea de responder una pregunta dada en un documento.
El primer prompt que se muestra a continuación extrae las citas relevantes del documento dada la pregunta. Ten en cuenta que para simplificar, hemos agregado un marcador de posición para el documento {{document}}
. Para probar el prompt, puedes copiar y pegar un artículo de Wikipedia como esta página para ingeniería de prompts. Debido al contexto más amplio utilizado para esta tarea, estamos utilizando el modelo gpt-4-1106-preview
de OpenAI. Puedes usar el prompt con otros LLMs de contexto largo como Claude.
Prompt 1:
Tu eres un asistente útil. Tu tarea es ayudar a responder una pregunta dada en un documento. El primer paso es extraer citas relevantes a la pregunta del documento, delimitadas por ####. Por favor, salida la lista de citas usando <quotes></quotes>. Responde con "No citas relevantes encontradas!" si no se encontraron citas relevantes.
####
{{document}}
####
Esta es una captura de pantalla del prompt completo, que incluye la pregunta que se pasa usando el rol user
.
Salida del Prompt 1:
<quotes>
- Prompting por cadena de pensamiento (CoT) [27]
- Prompting por conocimiento generado [37]
- Prompting de menor a mayor [38]
- Decodificación de consistencia propia [39]
- Prompting basado en complejidad [41]
- Auto-refinamiento [42]
- Prompting por árbol de pensamiento [43]
- Prompting maieutico [45]
- Prompting de estimulo direccional [46]
- Inversión y embeddings textuales [59]
- Usando gradiente descendente para buscar prompts[61][62][63][64]
- Inyección de prompts[65][66][67]
</quotes>
Las citas que se devuelven en el primer prompt ahora pueden ser utilizados como entrada para el segundo prompt a continuación. Ten en cuenta que puedes limpiar los quotes un poco más, es decir, eliminar las citas. Esas citas podrían ser eliminadas o utilizadas como parte de otro prompt en la cadena, pero puedes ignorar esto por ahora. El segundo prompt luego toma las citas relevantes extraídas por el prompt 1 y prepara una respuesta útil a la pregunta dada en el documento y las citas extraídas. El segundo prompt puede ser el siguiente:
Prompt 2:
Dado un conjunto de citas relevantes (delimitadas por <quotes></quotes>) extraídas de un documento y el documento original (delimitado por ####), por favor compón una respuesta a la pregunta. Asegúrate de que la respuesta sea precisa, tenga un tono amable y suene útil.
####
{{document}}
####
<quotes>
- Prompting por cadena de pensamiento (CoT) [27]
- Prompting por conocimiento generado [37]
- Prompting de menor a mayor [38]
- Decodificación de consistencia propia [39]
- Prompting basado en complejidad [41]
- Auto-refinamiento [42]
- Prompting por árbol de pensamiento [43]
- Prompting maieutico [45]
- Prompting de estimulo direccional [46]
- Inversión y embeddings textuales [59]
- Usando gradiente descendente para buscar prompts[61][62][63][64]
- Inyección de prompts[65][66][67]
</quotes>
Salida del Prompt 2:
Las técnicas de prompting mencionadas en el documento incluyen:
1. Prompting por cadena de pensamiento (CoT) [27]
2. Prompting por conocimiento generado [37]
3. Prompting de menor a mayor [38]
4. Decodificación de consistencia propia [39]
5. Prompting basado en complejidad [41]
6. Auto-refinamiento [42]
7. Prompting por árbol de pensamiento [43]
8. Prompting maieutico [45]
9. Prompting de estimulo direccional [46]
10. Inversión y embeddings textuales [59]
11. Usando gradiente descendente para buscar prompts[61][62][63][64]
12. Inyección de prompts[65][66][67]
Cada una de estas técnicas emplea estrategias únicas para mejorar o especificar las interacciones con los modelos de lenguaje de gran escala para producir los resultados deseados.
Como puedes ver, simplificar y crear cadenas de prompts es una enfoque útil de propmt donde las respuestas necesitan pasar por varias operaciones o transformaciones. Como ejercicio, sientete libre de diseñar un prompt que elimine las citas (por ejemplo, [27]) de la respuesta antes de enviarla como respuesta final al usuario de tu aplicación.
También puedes encontrar más ejemplos de encadenamiento de prompts en esta documentación que utiliza el LLM Claude. Nuestro ejemplo está inspirado y adaptado de sus ejemplos.