A medida que la inteligencia artificial generativa sigue revolucionando diversas industrias, la optimización efectiva de los prompts se ha vuelto esencial para equilibrar la calidad de los resultados, el tiempo de respuesta y los costos. La ingeniería de prompts, la práctica de elaborar y optimizar entradas para los modelos seleccionando palabras, frases, oraciones, puntuación y caracteres separadores adecuados, es fundamental para utilizar modelos base (FMs) o modelos de lenguaje grandes (LLMs) en una variedad de aplicaciones. Un prompt de alta calidad maximiza las posibilidades de obtener una buena respuesta de los modelos de IA generativa.
Un componente crucial del proceso de optimización es la evaluación, que involucra varios elementos. Más allá de la evaluación común de los FMs, la evaluación de prompts es vital, aunque desafiante, para desarrollar soluciones de alta calidad basadas en IA. Muchas organizaciones luchan por crear y evaluar constantemente sus prompts en diversas aplicaciones, lo que resulta en un rendimiento inconsistente y respuestas no deseadas de los modelos.
En un reciente ejemplo, se mostró cómo implementar un sistema automatizado de evaluación de prompts utilizando Amazon Bedrock, con el fin de optimizar el proceso de desarrollo de prompts y mejorar la calidad del contenido generado por IA. Esto se logra mediante el uso de Amazon Bedrock Prompt Management y Amazon Bedrock Prompt Flows para evaluar sistemáticamente los prompts a escala para aplicaciones de IA generativa.
Antes de explicar la implementación técnica, es crucial discutir por qué es vital la evaluación de prompts. Los aspectos clave al construir y optimizar un prompt incluyen:
- Garantía de calidad: Evaluar prompts asegura que las aplicaciones de IA generen salidas de alta calidad y relevancia para el modelo seleccionado.
- Optimización del rendimiento: Refinar prompts efectivos mejora el rendimiento general de los modelos de IA generativa en términos de menor latencia y mayor rendimiento.
- Eficiencia de costos: Mejores prompts llevan a un uso más eficiente de los recursos de IA, potencialmente reduciendo los costos asociados con la inferencia de modelos.
- Experiencia del usuario: Prompts mejorados resultan en contenido generado por IA más preciso y útil, mejorando la experiencia del usuario final en las aplicaciones.
Para dar forma a estos objetivos, se implementó un método conocido como LLM-as-a-judge, donde se utiliza un LLM para evaluar los prompts basándose en las respuestas producidas según criterios predefinidos. La evaluación de prompts y sus respuestas es subjetiva por naturaleza, pero una evaluación sistemática con LLM-as-a-judge permite cuantificarla con una métrica de evaluación en puntajes numéricos. Esto estandariza y automatiza el ciclo de vida de los prompts en una organización y es uno de los enfoques más comunes en la industria.
Para crear un prompt de evaluación utilizando Amazon Bedrock Prompt Management, se siguieron los siguientes pasos:
- En la consola de Amazon Bedrock, seleccionar "Prompt management" y luego "Create prompt".
- Ingresar un "Nombre" para el prompt, como "prompt-evaluator", y una "Descripción". Seleccionar "Create".
Se puede usar una plantilla de evaluación como la siguiente o ajustarla según los requisitos específicos:
You're an evaluator for the prompts and answers provided by a generative AI model.
Consider the input prompt in the <input/> tags, the output answer in the <output> tags, the prompt evaluation criteria in the <prompt_criteria> tags, and the answer evaluation criteria in the <answer_criteria> tags.
<input/>
{{input}}
<output>
{{output}}
</output>
<prompt_criteria>
- The prompt should be clear, direct, and detailed.
- The question, task, or goal should be well explained and be grammatically correct.
- The prompt is better if containing examples.
- The prompt is better if specifies a role or sets a context.
- The prompt is better if provides details about the format and tone of the expected answer.
</prompt_criteria>
<answer_criteria>
- The answers should be correct, well structured, and technically complete.
- The answers should not have any hallucinations, made up content, or toxic content.
- The answer should be grammatically correct.
- The answer should be fully aligned with the question or instruction in the prompt.
</answer_criteria>
Evaluate the answer the generative AI model provided in the <output> with a score from 0 to 100 according to the <answer_criteria> provided; any hallucinations, even if small, should dramatically impact the evaluation score.
Also evaluate the prompt passed to that generative AI model provided in the <input/> with a score from 0 to 100 according to the <prompt_criteria> provided.
Respond only with a JSON having:
- An 'answer-score' key with the score number you evaluated the answer with.
- A 'prompt-score' key with the score number you evaluated the prompt with.
- A 'justification' key with a justification for the two evaluations you provided to the answer and the prompt; make sure to explicitly include any errors or hallucinations in this part.
- An 'input' key with the content of the <input/> tags.
- An 'output' key with the content of the <output> tags.
- A 'prompt-recommendations' key with recommendations for improving the prompt based on the evaluations performed.
Skip any preamble or any other text apart from the JSON in your answer.
Configurando un modelo para ejecutar evaluaciones con el prompt, se seleccionó Anthropic Claude Sonnet. La calidad de la evaluación dependerá del modelo seleccionado. Se recomienda mantener la Temperatura en 0 para hacer una evaluación objetiva y evitar alucinaciones.
Se pueden probar los prompts de evaluación con entradas y salidas de muestra usando los paneles "Test variables" y "Test window", y luego configurar la evaluación del flujo utilizando Amazon Bedrock Prompt Flows para automatizar la evaluación a gran escala.
Estas prácticas no solo mejoran la calidad y consistencia del contenido generado por IA, sino que optimizan el proceso de desarrollo, potencialmente reducen costos y mejoran las experiencias de los usuarios. Se anima a las organizaciones a explorar estas características y adaptar el proceso de evaluación a sus casos específicos para desbloquear el potencial de la IA generativa en sus aplicaciones.