A medida que la inteligencia artificial generativa sigue revolucionando todas las industrias, la importancia de la optimización efectiva de los prompts mediante técnicas de ingeniería de prompts se ha vuelto clave para equilibrar eficientemente la calidad de los resultados, el tiempo de respuesta y los costos. La ingeniería de prompts se refiere a la práctica de elaborar y optimizar entradas para los modelos seleccionando palabras, frases, oraciones, puntuación y caracteres separadores apropiados para utilizar modelos base (FMs) o modelos de lenguaje grandes (LLMs) en una amplia variedad de aplicaciones. Un prompt de alta calidad maximiza las posibilidades de obtener una buena respuesta por parte de los modelos de IA generativa.
Una parte fundamental del proceso de optimización es la evaluación, y hay múltiples elementos involucrados en la evaluación de una aplicación de IA generativa. Más allá de la evaluación más común de los FMs, la evaluación de prompts es un aspecto crítico, aunque a menudo desafiante, para desarrollar soluciones de alta calidad basadas en IA. Muchas organizaciones luchan por crear y evaluar constantemente sus prompts en sus diversas aplicaciones, lo que lleva a un rendimiento, experiencia de usuario y respuestas de los modelos inconsistentes y no deseadas.
En esta publicación, mostramos cómo implementar un sistema automatizado de evaluación de prompts utilizando Amazon Bedrock, para que se pueda optimizar el proceso de desarrollo de prompts y mejorar la calidad general del contenido generado por IA. Para esto, utilizamos Amazon Bedrock Prompt Management y Amazon Bedrock Prompt Flows para evaluar sistemáticamente prompts para tus aplicaciones de IA generativa a escala.
Antes de explicar la implementación técnica, es crucial discutir brevemente por qué la evaluación de prompts es vital. Los aspectos clave a considerar al construir y optimizar un prompt son típicamente:
- Garantía de calidad: Evaluar prompts ayuda a asegurar que tus aplicaciones de IA generen consistentemente salidas de alta calidad y relevancia para el modelo seleccionado.
- Optimización del rendimiento: Al identificar y refinar prompts efectivos, se puede mejorar el rendimiento general de los modelos de IA generativa en términos de menor latencia y, en última instancia, mayor rendimiento.
- Eficiencia de costos: Mejores prompts pueden llevar a un uso más eficiente de los recursos de IA, potencialmente reduciendo los costos asociados con la inferencia de modelos. Un buen prompt permite el uso de modelos más pequeños y de menor costo, que no darían buenos resultados con un prompt de baja calidad.
- Experiencia del usuario: Prompts mejorados dan lugar a contenido generado por IA más preciso, personalizado y útil, mejorando la experiencia del usuario final en tus aplicaciones.
Optimizar los prompts para estos aspectos es un proceso iterativo que requiere una evaluación para impulsar los ajustes en los prompts. En otras palabras, es una manera de entender cuán adecuada es una combinación de prompt y modelo para lograr las respuestas deseadas.
En nuestro ejemplo, implementamos un método conocido como LLM-as-a-judge, donde se usa un LLM para evaluar los prompts basándose en las respuestas que produjo con un determinado modelo, según criterios predefinidos. La evaluación de prompts y sus respuestas para un LLM dado es una tarea subjetiva por naturaleza, pero una evaluación sistemática de prompts utilizando LLM-as-a-judge permite cuantificarlo con una métrica de evaluación en un puntaje numérico. Esto ayuda a estandarizar y automatizar el ciclo de vida de los prompts en tu organización y es una de las razones por las que este método es uno de los enfoques más comunes para la evaluación de prompts en la industria.
Exploraremos una solución de ejemplo para evaluar prompts con LLM-as-a-judge utilizando Amazon Bedrock. También puedes encontrar el ejemplo de código completo en amazon-bedrock-samples.
Para este ejemplo, necesitas lo siguiente:
- Acceso al servicio de Amazon Bedrock.
- Conocimientos básicos de Amazon Bedrock Prompt Management y Amazon Bedrock Prompt Flows.
- Una cuenta de AWS con permisos adecuados para crear y administrar recursos en Amazon Bedrock.
Para crear un prompt de evaluación utilizando Amazon Bedrock Prompt Management, sigue estos pasos:
- En la consola de Amazon Bedrock, en el panel de navegación, elige "Prompt management" y luego elige "Create prompt".
- Ingresa un "Nombre" para tu prompt como "prompt-evaluator" y una "Descripción" como "Plantilla de prompt para evaluar respuestas de prompt con LLM-as-a-judge". Elige "Create".
Para crear un template de evaluación en el campo "Prompt", puedes usar una plantilla como la siguiente o ajustarla según tus requisitos específicos de evaluación:
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.
Configura un modelo para ejecutar evaluaciones con el prompt. En nuestro ejemplo seleccionamos Anthropic Claude Sonnet. La calidad de la evaluación dependerá del modelo que selecciones en este paso. Asegúrate de equilibrar la calidad, el tiempo de respuesta y el costo adecuadamente en tu decisión.
Configura los parámetros de inferencia para el modelo. Se recomienda que mantengas la Temperatura en 0 para hacer una evaluación objetiva y evitar alucinaciones.
Puedes probar tu prompt de evaluación con entradas y salidas de muestra usando los paneles "Test variables" y "Test window".
Configura 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 también optimizan el proceso de desarrollo, potencialmente reducen costos y mejoran las experiencias de los usuarios.
Se anima a los lectores a explorar estas características y adaptar el proceso de evaluación a sus casos de uso específicos para desbloquear el completo potencial de la IA generativa en sus aplicaciones.
Antonio Rodriguez es un Arquitecto de Soluciones Especialista en IA Generativa Senior en Amazon Web Services, ayudando a empresas de todos los tamaños a resolver sus desafíos, adoptar la innovación y crear nuevas oportunidades de negocio con Amazon Bedrock.
vía: AWS machine learning blog