Creación de una petición para una métrica personalizada - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de una petición para una métrica personalizada

Con los trabajos de evaluación de RAG, puede crear sus propias métricas para caracterizar mejor el rendimiento del modelo según su modelo de negocio concreto. Puede definir hasta 10 métricas personalizadas para cada trabajo de evaluación.

Para crear su propia métrica de evaluación personalizada, debe proporcionar lo siguiente:

  • Una petición que contenga instrucciones detalladas para el modelo de juez que debe utilizar

  • El modelo evaluador que desea usar para sus métricas personalizadas

También puede especificar un sistema de puntuación (esquema de salida) que el modelo evaluador pueda usar para calificar los resultados del sistema RAG.

En las siguientes secciones se describe cómo crear una petición para el modelo evaluador cuando se utilizan métricas personalizadas, incluidas las prácticas recomendadas. También se define el esquema que se utilizará si crea la métrica con un archivo JSON.

Para obtener información sobre cómo crear un trabajo de evaluación con una métrica personalizada utilizando su petición, consulte Creación de un trabajo de evaluación de RAG de solo recuperación mediante métricas personalizadas y Creación de un trabajo de evaluación de RAG de recuperación y generación mediante métricas personalizadas.

Construcción de peticiones y prácticas recomendadas

Al crear una petición para una métrica personalizada, debe estructurarla con los siguientes elementos:

  1. Definición del rol (opcional): indica al modelo evaluador que adopte una identidad o un rol específicos

  2. Descripción de la tarea: proporciona instrucciones detalladas sobre la tarea de evaluación

  3. Criterio y rúbrica (opcionales): proporciona pautas de puntuación y rúbricas detalladas para la evaluación

  4. Variables de entrada: define las variables que se van a evaluar, como la petición y la respuesta

Incluya estos elementos en su petición en el orden indicado en la lista. En las siguientes secciones, se describe cada uno de estos pasos de manera más detallada.

Definición de rol

Proporcionar una definición de rol es opcional, pero le puede ayudar a enmarcar la evaluación. Por ejemplo, si va a crear una métrica para evaluar el estilo de redacción de las salidas finales de un sistema RAG, podría considerar la posibilidad de utilizar un rol como “tutor de redacción”. Roles como “comprobador de la precisión fáctica” o “experto en la materia” también podrían ser adecuados en función de los objetivos de su evaluación.

Si decide incluir una definición de rol, esta debería ser la primera sección de su petición. A continuación se muestra una definición de rol de ejemplo.

ejemplo definición de rol
You are a professional editor who is familiar with the requirements of commonly-used style manuals.

Definición de tarea

La definición de la tarea es la sección más importante de su petición y define la tarea que desea que lleve a cabo su modelo evaluador. La definición de la tarea debe proporcionar instrucciones detalladas sobre la tarea de evaluación (recomendamos un mínimo de 15 palabras) y ser específica sobre los aspectos en los que debe centrarse y cómo estructurar la evaluación.

La definición de la tarea debe ir inmediatamente después de la definición del rol, si decide incluir una.

Para obtener información más general sobre cómo estructurar las peticiones para los LLM, consulte Diseño de una petición.

El siguiente ejemplo muestra una definición de tarea para una métrica centrada en evaluar si las respuestas de un sistema RAG se ajustan a una guía de estilo concreta.

ejemplo definición de tarea
You are provided a prompt and a response from a RAG system. The prompt asks the RAG system to follow the Chicago Manual of Style when generating its responses. Your task is to assess how closely the text in the response adheres to the style guide. Focus in particular on grammar, prose style, and citation requirements.

Criterio y rúbrica

Esta sección es opcional y se puede utilizar para definir varias rúbricas de evaluación o proporcionar pautas de puntuación detalladas para la métrica. Esta sección debe añadirse entre la definición de la tarea y las variables de entrada. Los siguientes ejemplos muestran una rúbrica de evaluación y pautas de puntuación para la tarea descrita en el ejemplo de definición de tarea que se proporciona. Puede incluir uno de estos tipos de información o ambos en esta sección de la petición.

ejemplo rúbrica de evaluación
When evaluating the response quality, consider the following: - Grammar: Does the grammar in the response follow the requirements of the style guide - Style consistency: Does the response maintain consistent capitalization, punctuation, and paragraph formatting - Citations: Does the response use the correct citation style for in-text citations and endnotes
ejemplo pautas de puntuación
Please rate the quality of the response on the following scale: - Poor: Response includes errors in citation, grammar, or usage - Acceptable: Response includes only minor formatting errors - Good: Response meets all requirements of the style guide

Cuando crea un trabajo de evaluación que utiliza un LLM como juez, ya sea en la Consola de administración de AWS o mediante la AWS CLI o uno de los SDK de AWS, puede especificar un esquema de salida para que Amazon Bedrock califique las respuestas de su modelo generador. Asegúrese de que cualquier definición que especifique para el esquema de salida sea coherente con las pautas de puntuación que defina en la petición. Por ejemplo, en el ejemplo anterior, especificaría las definiciones del esquema de salida como “Mala”, “Aceptable” y “Buena”. Para obtener más información sobre la definición de esquemas de salida, consulte Especificación de un esquema de salida (escala de puntuación).

Variables de entrada

La sección final de la petición especifica las variables que el modelo evaluador necesita para realizar la evaluación. Tenga en cuenta que debe especificar las variables de entrada en último lugar; si proporciona más instrucciones en la petición después de las variables de entrada, es posible que el modelo evaluador no evalúe las métricas correctamente.

Las variables de entrada mínimas que debe especificar dependen del tipo de trabajo de evaluación que vaya a crear; en el caso de un trabajo de solo recuperación, debe proporcionar {{context}} y, en el caso de un trabajo de recuperación y generación, debe proporcionar {{prediction}}. En ambos casos, le recomendamos que incluya también la petición proporcionada al modelo generador ({{prompt}}). En la siguiente tabla se definen las variables que puede usar en la petición y cómo se corresponden con las propiedades del conjunto de datos de peticiones.

Variable de entrada Definición Obligatorio (solo recuperación) Obligatorio (recuperación y generación) Propiedad del conjunto de datos de peticiones
{{prompt}} La petición proporcionada al sistema RAG No No "prompt"
{{prediction}} La respuesta proporcionada por el modelo generador de respuestas (solo disponible para trabajos de recuperación y generación) No "output" -> "text" (solo se aplica a los trabajos en los que usted proporciona sus propios datos de inferencia)
{{ground_truth}} Una respuesta de referencia para la petición No No "referenceResponses" -> "content" -> "text"
{{context}} Se recibieron pasajes de RAG para generar la respuesta No "retrievalResults" -> "content" -> "text"
{{reference_contexts}} Pasajes sobre los datos de referencia que esperaría recuperar No No referenceContexts -> "content" -> "text"

En el siguiente ejemplo, se muestra cómo especificar variables de entrada en una petición.

ejemplo definición de variable de entrada
Here is the actual task: Prompt: {{prompt}} Response: {{prediction}}

Para mayor claridad, en el siguiente ejemplo se proporciona la petición completa para este caso de uso. Una petición completa puede tener una longitud máxima de 5000 caracteres.

ejemplo petición de métricas personalizadas
You are a professional editor who is familiar with the requirements of commonly-used style manuals. You are provided a prompt and a response from a RAG system. The prompt asks the RAG system to follow the Chicago manual of style when generating its responses. Your task is to assess how closely the text in the response adheres to the style guide. Focus in particular on grammar, prose style, and citation requirements. When evaluating the response quality, consider the following: - Grammar: Does the grammar in the response follow the requirements of the style guide - Style consistency: Does the response maintain consistent capitalization, punctuation, and paragraph formatting - Citations: Does the response use the correct citation style for in-text citations and endnotes Please rate the quality of the response on the following scale: - Poor: Response includes errors in citation, grammar, or usage - Acceptable: Response includes only minor formatting errors - Good: Response meets all requirements of the style guide Here is the actual task: Prompt: {{prompt}} Response: {{prediction}}

Especificación de un esquema de salida (escala de puntuación)

Además de las pautas de evaluación de la petición, al crear un trabajo de evaluación con una métrica personalizada, puede definir una escala de puntuación para la métrica especificando un esquema de salida. Este esquema consta de valores de escala y sus correspondientes definiciones. Los valores de la escala pueden ser valores numéricos o cadenas, pero no una mezcla de ambos.

Es absolutamente recomendable que defina una escala de calificación. Si no lo hace, es posible que Amazon Bedrock no pueda analizar correctamente las salidas de su modelo evaluador para mostrarlas gráficamente en la consola o para hacer los cálculos de la puntuación media. Puede definir una escala de puntuación al crear una métrica mediante la consola o mediante la propiedad ratingScale si crea la métrica con un SDK de AWS o la AWS CLI.

Al definir una escala de puntuación, Amazon Bedrock añade instrucciones de salida estructuradas a la petición del modelo evaluador. Dado que el formato de la salida estructurada difiere entre los modelos evaluadores, es importante que defina la escala de puntuación por separado y no la incluya como parte de su petición principal. Si crea la métrica y define una escala de puntuación en la consola, podrá ver la petición final, incluidas las instrucciones de la salida estructurada, en el área de texto de vista previa.

Al proporcionar la definición de cada valor de escala, asegúrese de que las definiciones que utilice en la definición del esquema de salida coincidan exactamente con la forma en que ha definido las pautas de puntuación en la petición. Estas definiciones deben tener un máximo de cinco palabras y están limitadas a 100 caracteres. Evite usar artículos (“un/una” y “el/la”) en la definición. Puede usar el texto explicativo de su petición para proporcionar al modelo evaluador una definición más detallada de cómo calificar las respuestas.

La siguiente tabla ilustra cómo se pueden describir las pautas de puntuación en la petición y cómo se debe definir la definición de escala correspondiente en el esquema de salida.

Pauta de puntuación de la petición Valor de escala del esquema Definición de escala de esquema
- Poor: The response fails to meet the basic requirements of the prompt and contains significant errors and omissions 0 Poor
- Good: The response adequately meets the basic requirements of the prompt but may contain minor errors or omissions 1 Good
- Excellent: The response fully meets the prompt with comprehensive, accurate, and valuable information 2 Excellent

En este ejemplo se utilizan valores enteros para la escala, pero también se pueden utilizar cadenas.

Para obtener información sobre cómo especificar el esquema al crear un trabajo de evaluación, consulte Creación de un trabajo de evaluación del modelo mediante métricas personalizadas.

Creación de un archivo JSON para crear una métrica personalizada

Al crear un trabajo de evaluación que utiliza métricas personalizadas en la consola, tiene la opción de cargar un archivo JSON que defina la métrica desde su máquina local. Si decide usar un archivo JSON para crear una métrica personalizada con la consola, no podrá definir una escala de puntuación con las áreas de texto de la interfaz de usuario de la consola, por lo que debe incluirla en la definición de JSON. Le recomendamos que siempre defina una escala de puntuación al crear métricas personalizadas.

Los siguientes ejemplos muestran los formatos de archivo JSON para crear una métrica personalizada con una escala de puntuación numérica o de cadenas, o sin escala de puntuación. En cada caso, añada la petición completa como una cadena en la propiedad "instructions".

Cuando crea un trabajo de evaluación con una o varias métricas personalizadas, Amazon Bedrock almacena sus definiciones de métricas como archivos JSON en el bucket de S3 de salida que especifique. Para acceder a estos archivos vaya a s3://S3-output-bucket-name/job-name/job-uuid/custom_metrics.

Definition with numerical scale
{ "customMetricDefinition": { "metricName": "my_custom_metric", "instructions": "Your complete custom metric prompt including at least one {{input variable}}", "ratingScale": [ { "definition": "first rating definition", "value": { "floatValue": 3 } }, { "definition": "second rating definition", "value": { "floatValue": 2 } }, { "definition": "third rating definition", "value": { "floatValue": 1 } } ] } }
Definition with string scale
{ "customMetricDefinition": { "metricName": "my_custom_metric", "instructions": "Your complete custom metric prompt including at least one {{input variable}}", "ratingScale": [ { "definition": "first rating definition", "value": { "stringValue": "first value" } }, { "definition": "second rating definition", "value": { "stringValue": "second value" } }, { "definition": "third rating definition", "value": { "stringValue": "third value" } } ] } }
Definition with no scale
{ "customMetricDefinition": { "metricName": "my_custom_metric", "instructions": "Your complete custom metric prompt including at least one {{input variable}}" } }