Ejemplos de fórmula de evaluación - Amazon Nova

Ejemplos de fórmula de evaluación

Amazon Nova proporciona cuatro tipos de fórmulas de evaluación, que están disponibles en el repositorio de fórmulas de SageMaker HyperPod en GitHub.

Estas fórmulas le permiten evaluar las capacidades fundamentales de los modelos de Amazon Nova a través de un amplio conjunto de referencias solo de texto. Se proporcionan en formato xxx_general_text_benchmark_eval.yaml.

Estas fórmulas le permiten utilizar su propio conjunto de datos como referencia y comparar las salidas del modelo con las respuestas de referencia utilizando diferentes tipos de métricas. Se proporcionan en formato xxx_bring_your_own_dataset_eval.yaml.

Estos son los requisitos para utilizar un conjunto de datos propio:

  • Requisitos de formato de archivo

    • Debe incluir un único archivo gen_qa.jsonl que contenga ejemplos de evaluación.

    • El conjunto de datos debe cargarse en una ubicación de S3 a la que pueda acceder el trabajo de entrenamiento de SageMaker.

    • El archivo debe seguir el formato de esquema requerido para un conjunto de datos general de preguntas y respuestas.

  • Requisitos de formato de esquema: cada línea del archivo JSONL debe ser un objeto JSON con los siguientes campos:

    • query: (obligatorio) cadena que contiene la pregunta o la instrucción que necesita una respuesta

    • response: (obligatorio) cadena que contiene la salida esperada del modelo

    • system: (opcional) cadena que contiene la petición del sistema que establece el comportamiento, el rol o la personalidad del modelo de IA antes de que procese la consulta

    • metadata: (opcional) Cadena que contiene los metadatos asociados a la entrada con fines de etiquetado.

Esta es una entrada de ejemplo de uso del conjunto de datos propio

{ "system":"You are a english major with top marks in class who likes to give minimal word responses: ", "query":"What is the symbol that ends the sentence as a question", "response":"?" } { "system":"You are a pattern analysis specialist that provides succinct answers: ", "query":"What is the next number in this series? 1, 2, 4, 8, 16, ?", "response":"32" } { "system":"You have great attention to detail that follows instructions accurately: ", "query":"Repeat only the last two words of the following: I ate a hamburger today and it was kind of dry", "response":"of dry" }

Para usar un conjunto de datos personalizado, modifique la fórmula de evaluación con los siguientes campos obligatorios, sin cambiar ningún contenido:

evaluation: task: gen_qa strategy: gen_qa metric: all

Se aplican las siguientes restricciones:

  • Solo se permite un archivo JSONL por evaluación.

  • El archivo debe seguir estrictamente el esquema definido.

  • Límite de longitud del contexto: para cada muestra del conjunto de datos, la longitud del contexto (incluidas las peticiones de consulta y del sistema) debe ser inferior a 3500

LLM como juez de Amazon Nova es una característica de evaluación de modelos que permite a los clientes comparar la calidad de las respuestas de un modelo con la respuesta de un modelo de referencia en un conjunto de datos personalizado. Incluye un conjunto de datos con peticiones, respuestas de referencia y respuestas de desafío, y utiliza un modelo de Nova Judge para proporcionar una métrica de tasa de aciertos basada en probabilidad de Bradley-Terry con comparaciones por pares.

Las fórmulas se proporcionan en formato xxx_llm_judge_eval.yaml.

Estos son los requisitos del LLM como juez:

  • Requisitos de formato de archivo

    • Incluya un solo archivo llm_judge.jsonl que contenga ejemplos de evaluación. El nombre de archivo debe ser llm_judge.jsonl.

    • El conjunto de datos debe cargarse en una ubicación de S3 a la que pueda acceder SageMaker AI SageMaker HyperPod con RIG.

    • El archivo debe seguir el formato de esquema requerido para el conjunto de datos llm_judge.jsonl.

    • El conjunto de datos de entrada debe garantizar que todos los registros tengan una longitud de contexto inferior a 12 000.

  • Requisitos de formato de esquema: cada línea del archivo JSONL debe ser un objeto JSON con los siguientes campos:

    • prompt: (obligatorio) cadena que contiene la petición de la respuesta generada.

    • response_A: cadena que contiene la respuesta de referencia.

    • response_B: cadena que contiene la respuesta alternativa que se comparará con la respuesta de referencia.

Esta es una entrada de ejemplo de LLM como juez

{ "prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less." } { "prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations." } { "prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts." }

Para usar un conjunto de datos personalizado, modifique la fórmula de evaluación con los siguientes campos obligatorios, sin cambiar ningún contenido:

evaluation: task: llm_judge strategy: judge metric: all

Se aplican las siguientes restricciones:

  • Solo se permite un archivo JSONL por evaluación.

  • El archivo debe seguir estrictamente el esquema definido.

  • Los modelos de Juez de Amazon Nova son iguales en todas las especificaciones de familias de modelos (es decir, Lite, Micro y Pro).

  • No se admiten modelos de juez personalizados en este momento.

  • Límite de longitud del contexto: para cada muestra del conjunto de datos, la longitud del contexto (incluidas las peticiones de consulta y del sistema) debe ser inferior a 7000

LLM como juez de Nova para entradas multimodales (imágenes) es una característica de evaluación de modelos que le permite comparar la calidad de las respuestas de un modelo con las respuestas de un modelo de referencia mediante un conjunto de datos personalizado. Acepta un conjunto de datos que contiene peticiones, respuestas de referencia y respuestas de desafío, así como imágenes en forma de cadena codificada en Base64. Utiliza un modelo juez de Nova para proporcionar una métrica de tasa de aciertos basada en probabilidad de Bradley-Terry con comparaciones por pares. Formato de fórmula: xxx_mm_llm_judge _eval.yaml.

Requisitos del conjunto de datos de Nova LLM

Formato de archivo:

  • Archivo mm_llm_judge.jsonl único que contiene ejemplos de evaluación. El nombre de archivo debe ser llm_judge.jsonl.

  • Debe cargar el conjunto de datos en una ubicación de S3 a la que pueda acceder Trabajos de entrenamiento de SageMaker.

  • El archivo debe seguir el formato de esquema requerido para el conjunto de datos mm_llm_judge.

  • El conjunto de datos de entrada debe garantizar que todos los registros tengan una longitud de contexto inferior a 12 000, sin incluir el atributo de la imagen.

Formato de esquema: cada línea del archivo .jsonl debe ser un objeto JSON con los siguientes campos.

  • Campos obligatorios.

    prompt: cadena que contiene la petición de la respuesta generada.

    images: matriz que contiene una lista de objetos con atributos de datos (los valores son cadenas de imágenes codificadas en Base64).

    response_A: cadena que contiene la respuesta de referencia.

    response_B: cadena que contiene la respuesta alternativa que se comparará con la respuesta de referencia.

Ejemplo de entrada

Para facilitar la lectura, el siguiente ejemplo incluye nuevas líneas e indentaciones, pero en el conjunto de datos real, cada registro debe estar en una sola línea.

{ "prompt": "what is in the image?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." } ], "response_A": "a dog.", "response_B": "a cat.", } { "prompt": "how many animals in echo of the images?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." }, { "data": "data:image/jpeg;Base64,/DKEafe3gihn..." } ], "response_A": "The first image contains one cat and the second image contains one dog", "response_B": "The first image has one aminal and the second has one animal", }

Para usar un conjunto de datos personalizado, modifique la fórmula de evaluación con los siguientes campos obligatorios, sin cambiar ningún contenido:

evaluation: task: mm_llm_judge strategy: judge metric: all

Limitaciones

  • Solo se permite un archivo .jsonl por evaluación.

  • El archivo debe seguir estrictamente el esquema definido.

  • Los modelos MM como juez de Nova solo admiten referencias de imagen.

  • Los modelos juez de Nova son los mismos en todas las especificaciones de Amazon Nova Lite.

  • Actualmente no se admiten modelos de juez personalizados.

  • No se admite el URI de imagen de Amazon S3.

  • El conjunto de datos de entrada debe garantizar que todos los registros tengan una longitud de contexto inferior a 12 000, sin incluir los atributos de imagen.

Rubric Judge es un modelo de evaluación mejorado de LLM como juez basado en Nova 2.0 Lite. A diferencia del modelo juez original, que solo ofrece veredictos preferenciales (A > B, B > A o empate), Rubric Judge genera de forma dinámica criterios de evaluación personalizados adaptados a cada petición y puntúa de forma detallada varias dimensiones.

Capacidades clave:

  • Generación dinámica de criterios: crea automáticamente las dimensiones de evaluación correspondientes en función de la petición de entrada.

  • Puntuación ponderada: asigna ponderaciones de importancia a cada criterio para reflejar su importancia relativa.

  • Evaluación granular: proporciona puntuaciones detalladas para cada criterio en formato binario (verdadero/falso) o en escala (del 1 al 5).

  • Métricas de calidad: calcula las puntuaciones de calidad continuas (escala del 0 al 1) que cuantifican la magnitud de las diferencias entre las respuestas.

Ejemplo de criterio generado por el modelo:

price_validation: description: "The response includes validation to ensure price is a positive value." type: "scale" weight: 0.3

El modelo evalúa ambas respuestas en función de todos los criterios generados y, a continuación, utiliza estas puntuaciones por criterio para fundamentar su preferencia final.

Configuración de fórmulas

Fórmula de Rubric Judge

Active Rubric Judge configurando task: rubric_llm_judge en su fórmula:

run: name: nova-eval-job-name # [MODIFIABLE] Unique identifier for your evaluation job model_type: amazon.nova-2-lite-v1:0:256k # [FIXED] Rubric Judge model type model_name_or_path: "nova-lite-2/prod" # [FIXED] Path to model checkpoint or identifier replicas: 1 # [MODIFIABLE] Number of replicas for SageMaker Training job data_s3_path: "" # [FIXED] Leave empty for SageMaker Training job output_s3_path: "" # [FIXED] Leave empty for SageMaker Training job evaluation: task: rubric_llm_judge # [FIXED] Evaluation task - enables Rubric Judge strategy: judge # [FIXED] Evaluation strategy metric: all # [FIXED] Metric calculation method inference: max_new_tokens: 12000 # [MODIFIABLE] Maximum tokens to generate top_k: -1 # [MODIFIABLE] Top-k sampling parameter top_p: 1.0 # [MODIFIABLE] Nucleus sampling parameter temperature: 0 # [MODIFIABLE] Sampling temperature (0 = deterministic)
Fórmula del modelo LLM como juez original (a modo de comparación)

El modelo juez original utiliza task: llm_judge:

run: name: eval-job-name # [MODIFIABLE] Unique identifier for your evaluation job model_type: amazon.nova-micro-v1:0:128k # [FIXED] Model type model_name_or_path: "nova-micro/prod" # [FIXED] Path to model checkpoint or identifier replicas: 1 # [MODIFIABLE] Number of replicas for SageMaker Training job data_s3_path: "" # [FIXED] Leave empty for SageMaker Training job output_s3_path: "" # [FIXED] Leave empty for SageMaker Training job evaluation: task: llm_judge # [FIXED] Original judge task strategy: judge # [FIXED] Evaluation strategy metric: all # [FIXED] Metric calculation method inference: max_new_tokens: 12000 # [MODIFIABLE] Maximum tokens to generate top_k: -1 # [MODIFIABLE] Top-k sampling parameter top_p: 1.0 # [MODIFIABLE] Nucleus sampling parameter temperature: 0 # [MODIFIABLE] Sampling temperature (0 = deterministic)

Formato del conjunto de datos de entrada

El formato del conjunto de datos de entrada es idéntico al modelo juez original:

Campos obligatorios:

  • prompt: cadena que contiene la petición de entrada y las instrucciones.

  • response_A: cadena que contiene la salida del modelo de referencia.

  • response_B: cadena que contiene la salida del modelo personalizado.

Conjunto de datos de ejemplo (formato JSONL):

{"prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less."} {"prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations."} {"prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts."}

Requisitos de formato:

  • Cada entrada debe ser un objeto JSON de una sola línea.

  • Separe las entradas con saltos de línea.

  • Siga la nomenclatura exacta de los campos como se muestra en los ejemplos.

Resultado de la evaluación

Estructura de salida

Rubric Judge genera métricas de evaluación mejoradas en comparación con el modelo juez original:

{ "config_general": { "lighteval_sha": "string", "num_fewshot_seeds": "int", "max_samples": "int | null", "job_id": "int", "start_time": "float", "end_time": "float", "total_evaluation_time_secondes": "string", "model_name": "string", "model_sha": "string", "model_dtype": "string | null", "model_size": "string" }, "results": { "custom|rubric_llm_judge_judge|0": { "a_scores": "float", "a_scores_stderr": "float", "b_scores": "float", "b_scores_stderr": "float", "ties": "float", "ties_stderr": "float", "inference_error": "float", "inference_error_stderr": "float", "score": "float", "score_stderr": "float", "weighted_score_A": "float", "weighted_score_A_stderr": "float", "weighted_score_B": "float", "weighted_score_B_stderr": "float", "score_margin": "float", "score_margin_stderr": "float", "winrate": "float", "lower_rate": "float", "upper_rate": "float" } }, "versions": { "custom|rubric_llm_judge_judge|0": "int" } }
Nuevas métricas en Rubric Judge

Las siguientes seis métricas son exclusivas de Rubric Judge y proporcionan una evaluación de la calidad pormenorizada:

Métrica

Descripción

weighted_score_A

Puntuación media de calidad normalizada de response_A considerando todos los criterios de evaluación producidos por el modelo. Las puntuaciones se ponderan según la importancia del criterio y se normalizan en una escala del 0 al 1 (cuanto más alta, mayor calidad).

weighted_score_A_stderr

Error estándar de la media de weighted_score_A, que indica incertidumbre estadística.

weighted_score_B

Puntuación media de calidad normalizada de response_B considerando todos los criterios de evaluación producidos por el modelo. Las puntuaciones se ponderan según la importancia del criterio y se normalizan en una escala del 0 al 1 (cuanto más alta, mayor calidad).

weighted_score_B_stderr

Error estándar de la media de weighted_score_B, que indica incertidumbre estadística.

score_margin

Diferencia entre las puntuaciones ponderadas (calculadas como weighted_score_A-weighted_score_B). Rango: del -1,0 al 1,0. Positivo = response_A es mejor; negativo = response_B es mejor; cercano a cero = calidad similar.

score_margin_stderr

Error estándar de la media de score_margin, que indica incertidumbre en la medición de la diferencia de calidad.

Explicación de las métricas de puntuación ponderada

Objetivo: las puntuaciones ponderadas proporcionan mediciones de calidad continuas que complementan los veredictos sobre preferencias binarias, lo que permite entender en mayor profundidad el rendimiento del modelo.

Diferencias clave con respecto al juez original:

  • Juez original: solo genera preferencias discretas (A > B, B > A, A = B).

  • Rubric Judge: genera tanto las preferencias como las puntuaciones de calidad continuas (escala del 0 al 1) en función de criterios personalizados.

Interpretación de score_margin:

  • score_margin = -0.128: Response_B obtuvo 12,8 puntos porcentuales más que Response_A

  • |score_margin| < 0.1: diferencia mínima de calidad (decisión ajustada)

  • |score_margin| > 0.2: diferencia de calidad clara (decisión segura)

Casos de uso:

  • Mejora del modelo: identifique las áreas específicas en las que el modelo tiene un rendimiento inferior.

  • Cuantificación de la calidad: calcule la magnitud de las brechas de rendimiento, no solo las tasas de ganancias y pérdidas.

  • Evaluación de la confianza: distinga entre decisiones ajustadas y claras diferencias de calidad.

importante

Los veredictos finales siguen basándose en las etiquetas de preferencia explícitas del modelo juez para preservar el razonamiento holístico y garantizar una adecuada mitigación de los sesgos de posición mediante una evaluación prospectiva o retrospectiva. Las puntuaciones ponderadas sirven como herramientas de observabilidad, no como sustitutos del veredicto principal.

Metodología de cálculo

Las puntuaciones ponderadas se calculan mediante el siguiente proceso:

  • Extracción de los datos de los criterios: analice el resultado YAML del juez para extraer las puntuaciones y las ponderaciones de los criterios.

  • Normalización de las puntuaciones:

    • criterios puntuados en una escala del 1 al 5; se normalizan a valores entre 0 y 1 mediante el calculo (score - 1) / 4.

    • Criterios binarios (true/false): se convierten en 1,0/0,0.

  • Aplicación de las ponderaciones: multiplique cada puntuación normalizada por la ponderación del criterio.

  • Suma: sume todas las puntuaciones ponderadas de cada respuesta.

  • Cálculo del margen: calcule score_margin = weighted_score_A - weighted_score_B.

Ejemplo: si la suma ponderada de response_A da como resultado 0,65 y la de response_B, 0,78, el score_margin sería -0,13, lo que indica que la calidad de response_B es 13 puntos porcentuales superior en todos los criterios ponderados.

Compatibilidad con el modelo de razonamiento

La compatibilidad con el modelo de razonamiento permite la evaluación con modelos de Nova capaces de razonar que realizan un razonamiento interno explícito antes de generar las respuestas finales. Esta característica utiliza el control de la API mediante el parámetro reasoning_effort para activar o desactivar de forma dinámica la funcionalidad de razonamiento, lo que podría mejorar la calidad de la respuesta en tareas analíticas complejas.

Modelos compatibles:

  • amazon.nova-2-lite-v1:0:256k

Configuración de fórmulas

Active el razonamiento agregando el parámetro reasoning_effort a la sección inference de su fórmula:

run: name: eval-job-name # [MODIFIABLE] Unique identifier for your evaluation job model_type: amazon.nova-2-lite-v1:0:256k # [FIXED] Must be a reasoning-supported model model_name_or_path: nova-lite-2/prod # [FIXED] Path to model checkpoint or identifier replicas: 1 # [MODIFIABLE] Number of replicas for SageMaker Training job data_s3_path: "" # [MODIFIABLE] Leave empty for SageMaker Training job; optional for job output_s3_path: "" # [MODIFIABLE] Output path for job (not compatible with SageMaker Training jobs) evaluation: task: mmlu # [MODIFIABLE] Evaluation task strategy: generate # [MODIFIABLE] Evaluation strategy metric: all # [MODIFIABLE] Metric calculation method inference: reasoning_effort: high # [MODIFIABLE] Enables reasoning mode; options: low/medium/high or null to disable max_new_tokens: 200 # [MODIFIABLE] Maximum tokens to generate top_k: 50 # [MODIFIABLE] Top-k sampling parameter top_p: 1.0 # [MODIFIABLE] Nucleus sampling parameter temperature: 0 # [MODIFIABLE] Sampling temperature (0 = deterministic)
Uso del parámetro reasoning_effort

El parámetro reasoning_effort controla el comportamiento de razonamiento de los modelos con capacidad de razonamiento.

Requisitos previos:

  • Compatibilidad del modelo: establezca reasoning_effort solo cuando model_type especifique un modelo con capacidad de razonamiento (actualmente, amazon.nova-2-lite-v1:0:256k).

  • Gestión de errores: si se utiliza reasoning_effort con modelos no compatibles, se producirá un error: ConfigValidationError: "Reasoning mode is enabled but model '{model_type}' does not support reasoning. Please use a reasoning-capable model or disable reasoning mode."

Opciones disponibles:

Opción

Comportamiento

Límite de tokens

Caso de uso

null (por defecto)

Desactiva el modo de razonamiento

N/A

Evaluación estándar sin sobrecarga de razonamiento

low

Permite razonar con restricciones

4000 tokens para el razonamiento interno

Escenarios que requieren un razonamiento conciso; optimiza para una mayor velocidad y rentabilidad

high

Permite razonar sin restricciones

El razonamiento interno no tiene un límite de tokens

Problemas complejos que requieren un análisis exhaustivo y un razonamiento paso a paso

¿Cuándo habilitar el razonamiento?

Utilice el modo de razonamiento (low, medium o high) en estos casos:

  • Tareas complejas de resolución de problemas (matemáticas, acertijos de lógica, programación).

  • Preguntas analíticas de varios pasos que requieran un razonamiento intermedio.

  • Tareas en las que las explicaciones detalladas o el pensamiento paso a paso mejoren la precisión.

  • Escenarios en los que se dé prioridad a la calidad de la respuesta por encima de la velocidad.

Utilice el modo sin razonamiento (omita el parámetro) en estos casos:

  • Preguntas y respuestas sencillas o consultas fácticas.

  • Tareas de escritura creativa.

  • Tareas en las que los tiempos de respuesta más rápidos sean fundamentales.

  • Evaluación comparativa del rendimiento, en la que debe excluirse la sobrecarga de razonamiento.

  • Priorización de la rentabilidad cuando el razonamiento no mejore el rendimiento de la tarea.

Solución de problemas

Error: “Reasoning mode is enabled but model does not support reasoning”

Causa: el parámetro reasoning_effort está establecido en un valor que no es null, pero el valor especificado para model_type no admite el razonamiento.

Solución:

  • Compruebe que el tipo de modelo sea amazon.nova-2-lite-v1:0:256k.

  • Si utiliza un modelo diferente, cámbielo a un modelo que pueda razonar o elimine el parámetro reasoning_effort de la fórmula