Evaluación de su modelo SageMaker entrenado en IA - Amazon SageMaker AI

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.

Evaluación de su modelo SageMaker entrenado en IA

El objetivo del proceso de evaluación es evaluar el rendimiento del modelo entrenado comparándolo con referencias o un conjunto de datos personalizado. El proceso de evaluación suele incluir pasos para crear una fórmula de evaluación basada en el modelo entrenado, especificar los conjuntos de datos y las métricas de la evaluación, enviar un trabajo independiente para la evaluación y evaluar en función de referencias estándar o datos personalizados. El proceso de evaluación devolverá métricas de rendimiento almacenadas en su bucket de Amazon S3.

nota

El proceso de evaluación que se describe en este tema es un proceso sin conexión. El modelo se prueba con referencias fijas con respuestas predefinidas, en lugar de evaluarse en tiempo real o mediante interacciones con los usuarios en directo. Para realizar una evaluación en tiempo real, puede probar el modelo después de haberlo implementado en Amazon Bedrock llamando a Amazon Bedrock Runtime. APIs

Requisitos previos

Antes de empezar un trabajo de entrenamiento de evaluación, tenga en cuenta lo siguiente.

  • Un modelo SageMaker de Amazon Nova entrenado por IA del que desee evaluar su rendimiento.

  • Fórmula básica de Amazon Nova para evaluación. Para obtener más información, consulte Obtención de fórmulas de Amazon Nova.

Tareas de referencia disponibles

Hay disponible un paquete de códigos de muestra que muestra cómo calcular las métricas de referencia mediante la función de evaluación de SageMaker modelos de Amazon Nova. Para acceder a los paquetes de códigos, consulte el ejemplo N. ova-lighteval-custom-task

A continuación se muestra una lista de las referencias estándar del sector disponibles y compatibles. Puede especificar las siguientes referencias para el parámetro eval_task.

Referencia disponibles para la evaluación del modelo.

Referencia Modalidad Description (Descripción) Métricas Strategy (Estrategia) Subtarea disponible
mmlu

Texto

Comprensión del lenguaje multitarea: evalúa los conocimientos sobre 57 materias.

precisión

zs_cot
mmlu_pro Texto

MMLU (subconjunto profesional): se centra en dominios profesionales como derecho, medicina, contabilidad e ingeniería.

precisión zs_cot No
bbh Texto

Tareas de razonamiento avanzado: conjunto de problemas complejos que ponen a prueba las habilidades cognitivas y de resolución de problemas de nivel superior.

precisión fs_cot
gpqa Texto

Respuesta a preguntas de física general: evalúa la comprensión de conceptos de física y habilidades relacionadas con la resolución de problemas.

precisión zs_cot No
math Texto

Resolución de problemas matemáticos: mide el razonamiento matemático en temas como álgebra, cálculo y problemas verbales.

exact_match zs_cot
strong_reject Texto

Tarea de control de calidad: prueba la capacidad del modelo para detectar y rechazar contenido inapropiado, dañino o incorrecto.

desviación zs
ifeval Texto

Evaluación de seguimiento de instrucciones: mide la precisión con la que un modelo sigue las instrucciones dadas y completa las tareas según las especificaciones.

precisión zs No
gen_qa Multimodal (imagen)

Evaluación personalizada del conjunto de datos: le permite proporcionar su propio conjunto de datos para realizar una evaluación comparativa y comparar los resultados del modelo con las respuestas de referencia con métricas como ROUGE y BLEU. gen_qaadmite la inferencia de imágenes para modelos basados en Amazon Nova Lite o Amazon Nova Pro. También es compatible con Bring-Your-Own Metrics lambda. (Para la evaluación de la RFT, utilice la receta de evaluación de la RFT)

all gen_qa No
llm_judge Texto

LLM-as-a-Judge Comparación de preferencias: utiliza un modelo Nova Judge para determinar la preferencia entre las respuestas emparejadas (B en comparación con A) para sus preguntas, calculando la probabilidad de que se prefiera B a A.

all judge No

mm_llm_judge

Multimodal (imagen)

Este nuevo punto de referencia se comporta igual que el anterior, basado en el textollm_judge. La única diferencia es que admite la inferencia de imágenes.

all judge No

rubric_llm_judge

Texto

Rubric Judge es un modelo de evaluación mejorado LLM-as-a-judge basado en Nova 2.0 Lite. A diferencia del modelo de juez original, que solo proporciona veredictos preferenciales, Rubric Judge genera de forma dinámica criterios de evaluación personalizados adaptados a cada solicitud y asigna puntajes granulares en múltiples dimensiones.

all

judge

No

aime_2024

Texto

AIME 2024: problemas del examen estadounidense de matemáticas por invitación que ponen a prueba el razonamiento matemático avanzado y la resolución de problemas

exact_match

zs_cot

No

calendar_programación

Texto

Natural Plan: calendario: tareas de programación que ponen a prueba las capacidades de planificación para programar reuniones en varios días y personas

exact_match

fs

No

humaneval

Texto

HumanEval - Un conjunto de datos de referencia diseñado para evaluar las capacidades de generación de código de modelos de lenguajes de gran tamaño

pass@1

zs No

Configuraciones específicas de la evaluación

A continuación, encontrará un desglose de los componentes clave de la fórmula y una guía sobre cómo modificarlos para sus casos de uso.

Comprensión y modificación de sus fórmulas

Configuración general de ejecución

run: name: eval_job_name model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod # or s3://escrow_bucket/model_location replicas: 1 data_s3_path: "" mlflow_tracking_uri: "" mlflow_experiment_name : "" mlflow_run_name : ""
  • name: nombre descriptivo del trabajo de evaluación.

  • model_type: especifica la variante del modelo Nova que desea utilizar. No modifique manualmente este campo. Las opciones son:

    • amazon. nova-micro-v1:20:128 k

    • amazona. nova-lite-v1:30:300 km

    • amazona. nova-pro-v1:30:300 km

    • amazon.nova-2-lite-v 1:00:256 k

  • model_name_or_path: ruta al modelo base o ruta de s3 para el punto de comprobación entrenado posteriormente. Las opciones son:

    • nova-micro/prod

    • nova-lite/prod

    • nova-pro/prod

    • nova-lite-2/prod

    • Ruta de S3 para la ruta de punto de comprobación entrenado posteriormente (s3:customer-escrow-111122223333-smtj-<unique_id>/<training_run_name>)

      nota

      Evaluación de modelos de entrenados posteriormente

      Para evaluar un modelo entrenado posteriormente después de un trabajo de entrenamiento de Nova SFT, siga estos pasos después de ejecutar un trabajo de entrenamiento correcto. Al final de los registros de entrenamiento, verá el mensaje de registro "Training is complete". También encontrará un archivo manifest.json en su bucket de salida que contiene la ubicación de su punto de comprobación. Este archivo se ubicará dentro de un archivo output.tar.gz en la ubicación S3 de salida. Para continuar con la evaluación, utilice este punto de comprobación configurándolo como el valor para run.model_name_or_path en la configuración de la fórmula.

  • replica: el número de instancias de cómputo que se utilizarán para la inferencia distribuida (ejecutar la inferencia en varios nodos). Defina replica > 1 para habilitar la inferencia de varios nodos, lo que acelera la evaluación. Si se replica especifican ambos instance_count y, instance_count tiene prioridad. Tenga en cuenta que las réplicas múltiples solo se aplican a los trabajos SageMaker de formación, no. SageMaker HyperPod

  • data_s3_path: ruta de Amazon S3 del conjunto de datos de entrada. Este campo es obligatorio, pero siempre debe dejarse vacío.

  • mlflow_tracking_uri: (Opcional) La ubicación del servidor de MLflow seguimiento (solo se necesita en SMHP)

  • mlflow_experiment_name: (Opcional) Nombre del experimento para agrupar las ejecuciones de aprendizaje automático relacionadas

  • mlflow_run_name: (Opcional) Nombre personalizado para un entrenamiento específico realizado dentro de un experimento

Configuración de evaluación

evaluation: task: mmlu strategy: zs_cot subtask: abstract_algebra metric: accuracy
  • task: especifica la referencia o la tarea de evaluación que se va a utilizar. Entre las tareas admitidas se incluyen:

    • mmlu

    • mmlu_pro

    • bbh

    • gpqa

    • math

    • strong_reject

    • gen_qa

    • ifeval

    • llm_judge

    • mm_llm_judge

    • rubric_llm_judge

    • aime_2024

    • calendar_scheduling

    • humaneval

  • strategy: define el enfoque de evaluación:

    • zs_cot: Cadena de pensamiento sin trabas: un enfoque para fomentar modelos lingüísticos extensos que fomente el step-by-step razonamiento sin requerir ejemplos explícitos.

    • fs_cot: Cadena de pensamiento de pocos pasos: un enfoque que proporciona algunos ejemplos de step-by-step razonamiento antes de pedirle al modelo que resuelva un problema nuevo.

    • zs: cero intentos: enfoque para resolver un problema sin ejemplos de entrenamiento anteriores.

    • gen_qa: estrategia específica para utilizar su propio conjunto de datos.

    • judge: Estrategia específica para Nova LLM como juez y. mm_llm_judge

  • subtask: opcional. Componentes específicos de la tarea de evaluación. Para obtener una lista completa de las subtareas disponibles, consulte Subtareas disponibles.

    • Compruebe las subtareas compatibles en las tareas de referencia disponibles.

    • Debe eliminar este campo si no hay referencias de subtareas.

  • metric: métrica de evaluación que se va a utilizar.

    • accuracy: porcentaje de respuestas correctas.

    • exact_match: para referencia matemática, devuelve la velocidad a la que las cadenas de entrada previstas coinciden exactamente con sus referencias.

    • deflection: para referencia de rechazo fuerte, devuelve la deflexión relativa al modelo base y la diferencia en las métricas de importancia.

    • all:

      Para gen_qa, utilice su propio conjunto de datos como punto de referencia y se devuelven las siguientes métricas:

      • rouge1: mide la superposición de unigramas (palabras individuales) entre el texto generado y el de referencia.

      • rouge2: mide la superposición de bigramas (dos palabras consecutivas) entre texto generado y de referencia.

      • rougeL: mide la subsecuencia común más larga entre textos, por lo que puede haber lagunas en la coincidencia.

      • exact_match: puntuación binaria (0 o 1) que indica si el texto generado coincide exactamente con el texto de referencia, carácter por carácter.

      • quasi_exact_match: similar a la coincidencia exacta, pero más flexible, pues suele ignorar el uso de mayúsculas y minúsculas, los signos de puntuación y los espacios en blanco.

      • f1_score: media armónica de precisión y recuperación que mide la superposición de palabras entre respuestas previstas y de referencia.

      • f1_score_quasi: similar a f1_score, pero con una coincidencia más flexible, utiliza una comparación de texto normalizada que no tiene en cuenta pequeñas diferencias.

      • bleu: mide la precisión de las coincidencias de n-gramas entre texto generado y de referencia, suele utilizarse en la evaluación de traducciones.

      Para llm_judge ymm_llm_judge, traiga su propio punto de referencia de conjunto de datos, devuelva las siguientes métricas:

      • a_scores: número de aciertos para response_A en pasadas de evaluación hacia delante y hacia atrás.

      • a_scores_stderr: error estándar de response_A_scores en juicios por pares.

      • b_scores: mide el número de aciertos para response_B en pasadas de evaluación hacia delante y hacia atrás.

      • a_scores_stderr: error estándar de response_B_scores en juicios por pares.

      • ties: número de juicios en los que se evalúa response_A y response_B como iguales.

      • ties_stderr: error estándar de ties en juicios por pares.

      • inference_error: número de juicios que no se han podido evaluar adecuadamente.

      • score: puntuación global basada en aciertos de pasadas hacia adelante y hacia atrás para response_B.

      • score_stderr: puntuación global basada en aciertos de pasadas hacia adelante y hacia atrás para response_B.

      • inference_error_stderr: error estándar de puntuación global en juicios por pares.

      • winrate: probabilidad de que se prefiera response_B a response_A calculada utilizando probabilidad de Bradley-Terry.

      • lower_rate: límite inferior (percentil 2,5) de la tasa de aciertos estimada a partir del muestreo de inicio.

      • upper_rate: límite superior (percentil 97,5) de la tasa de aciertos estimada a partir del muestreo de inicio.

Configuración de inferencia (opcional)

inference: max_new_tokens: 2048 top_k: -1 top_p: 1.0 temperature: 0 top_logprobs: 10 reasoning_effort: null # options: low/high to enable reasoning or null to disable reasoning
  • max_new_tokens: número máximo de tokens que se generarán. Debe ser un número entero. (No disponible para LLM Judge)

  • top_k: número de tokens de mayor probabilidad que se deben tener en cuenta. Debe ser un número entero.

  • top_p: umbral de probabilidad acumulada para el muestreo de tokens. Debe ser un valor flotante entre 1,0 y 0,0.

  • temperature: asignación al azar en selección de tokens (mayor = más aleatorio), mantenga 0 para que el resultado sea determinista. De tipo flotante, el valor mínimo es 0.

  • top_logprobs: El número de probs logarítmicos principales que se devolverán en la respuesta de inferencia. Este valor debe ser un número entero comprendido entre 0 y 20. Los logprobs contienen los indicadores de salida considerados y las probabilidades de registro de cada token de salida devuelto en el contenido del mensaje.

  • reasoning_effort: controla el comportamiento de razonamiento de los modelos capaces de razonar. Se establece reasoning_effort solo cuando se model_type especifica un modelo con capacidad de razonamiento (actualmente). amazon.nova-2-lite-v1:0:256k Las opciones disponibles son nulo (valor predeterminado si no está establecido; desactiva el razonamiento), bajo o alto.

Ejemplos de fórmula de evaluación

Amazon Nova ofrece cuatro tipos diferentes de fórmulas de evaluación. Todas las recetas están disponibles en el GitHub repositorio de SageMaker HyperPod recetas de Amazon.

Fórmulas de evaluación

    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.

    Formato de fórmula: 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.

    Formato de fórmula: xxx_ bring_your_own_dataset_eval.yaml.

    Requisitos del conjunto de datos de uso propio

    Formato de archivo:

    • Archivo gen_qa.jsonl único que contiene ejemplos de evaluación. El nombre del archivo debe llamarse exactamente gen_qa.jsonl.

    • Debe cargar su conjunto de datos en una ubicación de S3 a la que puedan acceder los trabajos de SageMaker formación.

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

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

    • Campos obligatorios.

      query: cadena que contiene la pregunta o la instrucción que necesita una respuesta.

      response: cadena que contiene la salida esperada del modelo.

    • Campos opcionales.

      system: 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.

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

      metadata: cadena que contiene los metadatos asociados a la entrada con fines de etiquetado.

    Ejemplo de entrada

    { "system":"You are an 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 who 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 and follow 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" }{ "system": "Image inference: ", "query": "What is the number in the image? Please just use one English word to answer.", "response": "two", "images": [ { "data": "data:image/png;Base64,iVBORw0KGgoA ..." } ] }

    Para usar su conjunto de datos personalizado, modifique su receta de evaluación añadiendo los siguientes campos obligatorios sin cambiar la configuración existente:

    evaluation: task: gen_qa strategy: gen_qa metric: all

    Limitaciones

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

    • El archivo debe seguir estrictamente el esquema definido.

    Traiga sus propias métricas

    Puede incorporar sus propias métricas para personalizar completamente el flujo de trabajo de evaluación de modelos con funciones personalizadas de preprocesamiento, posprocesamiento y métricas. El preprocesamiento le permite procesar los datos de entrada antes de enviarlos al servidor de inferencia, y el posprocesamiento le permite personalizar el cálculo de las métricas y devolver métricas personalizadas en función de sus necesidades.

    Siga estos pasos para crear sus propias métricas con el SDK de evaluación personalizado.

    1. Si aún no lo has hecho, crea una AWS Lambda función en el Cuenta de AWS primero.

    2. Descarga el nova-custom-eval-layer.zip archivo prediseñado del GitHub repositorio. Puede usar este SDK de evaluación personalizada de Nova de código abierto para validar las cargas útiles de entrada y salida para su función personalizada y proporcionar una interfaz unificada para integrarla con la evaluación de métricas propia de Nova durante el entrenamiento.

    3. Cargue la capa Lambda personalizada mediante el siguiente comando:

      aws lambda publish-layer-version \ --layer-name nova-custom-eval-layer \ --zip-file fileb://nova-custom-eval-layer.zip \ --compatible-runtimes python3.12 python3.11 python3.10 python3.9
    4. Añada esta capa como capa personalizada a la función Lambda, junto con la AWS capa necesaria: AWSLambdaPowertoolsPythonV3-python312-arm64 (necesaria para la pydantic dependencia).

    5. Actualice el código Lambda mediante el ejemplo proporcionado y modifique el código según sea necesario. Este código de ejemplo crea una función Lambda para la evaluación personalizada de Nova con pasos de preprocesamiento y posprocesamiento para la evaluación del modelo.

      from nova_custom_evaluation_sdk.processors.decorators import preprocess, postprocess from nova_custom_evaluation_sdk.lambda_handler import build_lambda_handler @preprocess def preprocessor(event: dict, context) -> dict: data = event.get('data', {}) return { "statusCode": 200, "body": { "system": data.get("system"), "prompt": data.get("prompt", ""), "gold": data.get("gold", "") } } @postprocess def postprocessor(event: dict, context) -> dict: # data is already validated and extracted from event data = event.get('data', []) inference_output = data.get('inference_output', '') gold = data.get('gold', '') metrics = [] inverted_accuracy = 0 if inference_output.lower() == gold.lower() else 1.0 metrics.append({ "metric": "inverted_accuracy_custom", "value": accuracy }) # Add more metrics here return { "statusCode": 200, "body": metrics } # Build Lambda handler lambda_handler = build_lambda_handler( preprocessor=preprocessor, postprocessor=postprocessor )
    6. Conceda a Lambda acceso al trabajo de evaluación. Asegúrese de que la función de ejecución especificada para el trabajo de evaluación incluya una política para invocar la función Lambda. A continuación, se muestra un ejemplo de política.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "LambdaAccess", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ExampleFunction", "Condition": { "StringLike": { "aws:PrincipalArn": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-ARN" } } }, { "Sid": "DenyNonAWSEventSourcesForLambda", "Effect": "Deny", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ExampleFunction", "Condition": { "Null": { "lambda:EventSourceToken": false } } } ] }
    7. Revise el esquema de carga útil de Lambda. En la siguiente tabla se muestra el esquema de solicitud y respuesta de Lambda. Puede validar su esquema con el SDK de evaluación personalizada de Nova.

      Carga útil de solicitud Lambda Carga útil de respuesta Lambda
      Preprocesador
      { "process_type": "preprocess", "data": { "system": "You are a helpful assistant", "prompt": "What is 2+2?", "gold": "4" } }
      { "statusCode": 200, "body": { "system": "You are a helpful assistant that can substitute * for addition", "prompt": "What is 2*2?", "gold": "4" } }
      Postprocesador
      { "process_type": "postprocess", "data": { "prompt": "What is 2+2?", "inference_output": "2+2=4", "gold": "4" } }
      { "statusCode": 200, "body": [ {"metric": "accuracy", "value": 1.0}, {"metric": "f1_score", "value": 1.0}, {"metric": "exact_match", "value": 1}, {"metric": "length_ratio", "value": 0.8} ] }
    8. Modifique el archivo de recetas. A continuación se muestra un ejemplo.

      processor: lambda_arn: arn:aws:lambda:us-east-1:111122223333:function:name lambda_type: "custom_metrics" preprocessing: enabled: true postprocessing: enabled: true aggregation: average
      • lambda-arn: El nombre de recurso de Amazon (ARN) de la función Lambda que gestiona el preprocesamiento y el posprocesamiento.

      • lambda_type: «custom_metrics» o «rft».

      • preprocessing: Si se deben habilitar las operaciones de preprocesamiento personalizadas.

      • postprocessing: Si se deben habilitar las operaciones de posprocesamiento personalizadas.

      • aggregation: Función de agregación integrada (opciones válidas: mínimo, máximo, promedio, suma).

    Limitaciones

    • Bring your own metrics solo se aplica a los conjuntos de datos de entrada de texto.

    • No se admiten los conjuntos de datos de entrada multimodales.

    • El paso de preprocesamiento no procesa el campo de metadatos.

    Nova LLM Judge 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, 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. Formato de fórmula: xxx_llm_judge_eval.yaml.

    Requisitos del conjunto de datos de Nova LLM

    Formato de archivo:

    • Archivo llm_judge.jsonl único que contiene ejemplos de evaluación. El nombre del archivo debe llamarse exactamente llm_judge.jsonl.

    • Debe cargar su conjunto de datos en una ubicación de S3 a la que puedan acceder los trabajos de SageMaker formación.

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

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

    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.

      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

    { "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

    Limitaciones

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

    • El archivo debe seguir estrictamente el esquema definido.

    • Los modelos de Nova Judge son los mismos en todas las especificaciones micro, lite y pro.

    • Actualmente no se admiten modelos de juez personalizados.

    Nova LLM como juez de recetas de referencia multimodales (imágenes)

    Nova LLM Judge para multimodal (imagen), abreviatura de Nova MM_LLM Judge, es una función de evaluación de modelos que 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 indicaciones, respuestas de referencia y respuestas de los retadores, e imágenes en forma de cadena codificada en Base64. A continuación, utiliza un modelo Nova Judge para proporcionar una métrica de tasa de victorias basada en la probabilidad de Bradley-Terry mediante 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 del archivo debe ser exacto. llm_judge.jsonl

    • Debe cargar su conjunto de datos en una ubicación de S3 donde los trabajos de SageMaker formación puedan acceder a él.

    • 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 k, excluyendo 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 are in each 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 Nova MM Judge solo admiten referencias a imágenes.

    • Los modelos Nova MM Judge son los mismos en todas las especificaciones de Amazon Nova Micro, Amazon Nova Lite y Amazon Nova Pro.

    • 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 k, excluyendo el atributo images.

    Ejecución de trabajos de entrenamiento de evaluación

    Comience un trabajo de entrenamiento con el siguiente ejemplo de cuaderno de Jupyter. Consulte el siguiente cuaderno como ejemplo para realizar el trabajo de capacitación en evaluación. Para obtener más información, consulte Utilizar un estimador de SageMaker IA para realizar un trabajo de formación.

    Tablas de referencia

    Antes de ejecutar el cuaderno, consulte las siguientes tablas de referencia para seleccionar la URI de la imagen y las configuraciones de instancias.

    Selección de la URI de la imagen

    Fórmula URI de imagen

    URI de imagen de evaluación

    708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest

    Selección del tipo y el recuento de instancias

    Modelo Tipo de trabajo Tipo de instancia Recuento de instancia recomendado Recuento de instancias permitido
    Amazon Nova Micro Evaluación (SFT/DPO)

    g5.12xlarge

    1 1 - 16
    Amazon Nova Lite Evaluación (SFT/DPO)

    g5.12xlarge

    1 1 - 16
    Amazon Nova Pro Evaluación (SFT/DPO)

    p5.48xlarge

    1 1 - 16

    Cuaderno de ejemplo

    En el siguiente cuaderno de ejemplo se muestra cómo ejecutar un trabajo de entrenamiento de evaluación.

    # install python SDK # Do not use sagemaker v3, as sagemaker v3 introduced breaking changes !pip install sagemaker==2.254.1 import os import sagemaker,boto3 from sagemaker.inputs import TrainingInput from sagemaker.pytorch import PyTorch sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role() # Download recipe from https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/evaluation/nova to local # Assume the file name be `recipe.yaml` # Populate parameters # input_s3_uri = "s3://<path>/input/" # (Optional) Only used for multi-modal dataset or bring your own dataset s3 location output_s3_uri= "s3://<path>/output/" # Output data s3 location, a zip containing metrics json and tensorboard metrics files will be stored to this location instance_type = "instance_type" # ml.g5.16xlarge as example instance_count = 1 # The number of instances for inference (set instance_count > 1 for multi-node inference to accelerate evaluation) job_name = "your job name" recipe_path = "recipe path" # ./recipe.yaml as example image_uri = "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest" # Do not change # (Optional) To bring your own dataset and LLM judge for evaluation # evalInput = TrainingInput( # s3_data=input_s3_uri, # distribution='FullyReplicated', # s3_data_type='S3Prefix' #) estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role, instance_type=instance_type, instance_count=instance_count, training_recipe=recipe_path, sagemaker_session=sagemaker_session, image_uri=image_uri ) estimator.fit() # If input dataset exist, pass in inputs # estimator.fit(inputs={"train": evalInput})

    Evaluación y análisis de los resultados de la evaluación

    Una vez que el trabajo de evaluación haya finalizado satisfactoriamente, podrá evaluar los resultados y analizarlos mediante los pasos siguientes.

    Para evaluar y analizar los resultados, siga estos pasos.
    1. Comprenda la estructura de la ubicación de salida. Los resultados se almacenan en la ubicación de salida de Amazon S3 especificada como un archivo comprimido:

      s3://your-bucket/output/benchmark-name/ └── job_name/ └── output/ └── output.tar.gz
    2. Descargue el archivo output.tar.gz de su bucket. Extraiga el contenido para revelarlo.

      run_name/ ├── eval_results/ | └── results_[timestamp].json │ └── inference_output.jsonl (only present for gen_qa) | └── details/ | └── model/ | └── <execution-date-time>/ | └──details_<task_name>_#_<datetime>.parquet └── tensorboard_results/ └── eval/ └── events.out.tfevents.[timestamp]
      • results_[timestamp].json: archivo JSON de métricas de salida

      • details_<task_name>_#_<datetime>.parquet: archivo de resultados de inferencias (excepto strong_reject)

      • events.out.tfevents.[timestamp]- archivo TensorBoard de salida

      • inference_output.jsonl: archivo de salida de inferencias limpio (solo para tareas gen_qa)

    3. Ver los resultados en TensorBoard. Para visualizar sus métricas de evaluación:

      1. Cargue la carpeta extraída en un bucket de S3

      2. Navegue hasta SageMaker TensorBoard

      3. Seleccione sus "carpetas de S3"

      4. Añada la ruta de la carpeta de S3

      5. Espere a que se complete la sincronización

    4. Analice los resultados de las inferencias. Todas las tareas de evaluación, excepto llm_judge y strong_reject, tendrán los siguientes campos de análisis en el resultado de la inferencia.

      • full_prompt- El mensaje de usuario completo enviado al modelo utilizado para la tarea de evaluación.

      • gold- El campo que contiene las respuestas correctas especificadas en el conjunto de datos.

      • metrics- El campo que contiene las métricas evaluadas en la inferencia individual. Los valores que requieren agregación no tendrían ningún valor en los resultados de la inferencia individuales.

      • predictions- El campo que contiene una lista de los resultados del modelo para la solicitud dada.

      • pred_logits- El campo que contiene los símbolos de salida considerados y las probabilidades de registro de cada identificador de salida devuelto en el contenido del mensaje.

      Al observar estos campos, puede determinar la causa de las diferencias métricas y comprender el comportamiento de los modelos personalizados.

      Para llm_judge, el archivo de salida de inferencias contiene los siguientes campos en el campo de métricas por par de evaluaciones.

      • forward_output: las preferencias brutas de Judge al evaluar en orden (response_A, response_B).

      • backward_output: las preferencias brutas de Judge al evaluar en orden inverso (response_B, response_A).

      • Pairwise metrics: métricas que se calculan por pares de evaluaciones hacia adelante y hacia atrás, incluidas a_scores, b_scores, ties, inference-score y score.

        nota

        Las métricas agrupadas como winrate solo están disponibles en los archivos de resultados de resumen, no por valoración individual.

      Para gen_qa, el archivo inference_output.jsonl contiene los siguientes campos para cada objeto JSON:

      • petición: última petición enviada al modelo

      • inferencia: salida de inferencia sin procesar del modelo

      • gold: la respuesta objetivo del conjunto de datos de entrada

      • metadatos: la cadena de metadatos del conjunto de datos de entrada, si se proporciona

    Prácticas recomendadas y solución de problemas de evaluación

    Prácticas recomendadas

    A continuación se enumeran algunas de las prácticas recomendadas para el proceso de evaluación.

    • Mantenga las rutas de salida organizadas por modelo y tipo de referencia.

    • Mantenga convenciones de nomenclatura coherentes para facilitar el seguimiento.

    • Guarde los resultados extraídos en un lugar seguro.

    • Supervise el estado de TensorBoard sincronización para comprobar que los datos se cargan correctamente.

    Resolución de problemas

    Puede usar el grupo de CloudWatch registros /aws/sagemaker/TrainingJobs para entrenar los registros de errores de los trabajos.

    Fallo en el núcleo del motor

    Problema:

    Si está viendo:

    RuntimeError: Engine core initialization failed.

    Causa:

    Aunque se trata de un error general que puede tener varias causas, suele producirse cuando no coinciden el punto de control del modelo que se intenta cargar y el tipo de modelo especificado. Por ejemplo, si quiere evaluar un punto de control de un modelo Nova 2.0 lite ajustado con precisión, pero el tipo de modelo que proporciona es el tipo 1.0, p. ej. amazon.nova-micro-v1:0:128k

    El mapeo correcto debería ser

    model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod # or s3://escrow_bucket/model_location

    Prevención:

    Compruebe que model_name_or_path esté mapeado a la derecha model_type antes de enviar el trabajo de evaluación.

    Subtareas disponibles

    A continuación se enumeran las subtareas disponibles para la evaluación de modelos en varios dominios, incluidos MMLU (Massive Multitask Language Understanding), BBH (Big Bench Hard) y MATH. Estas subtareas le permiten evaluar el rendimiento del modelo en función de capacidades y áreas de conocimiento específicas.

    MMLU

    MMLU_SUBTASKS = [ "abstract_algebra", "anatomy", "astronomy", "business_ethics", "clinical_knowledge", "college_biology", "college_chemistry", "college_computer_science", "college_mathematics", "college_medicine", "college_physics", "computer_security", "conceptual_physics", "econometrics", "electrical_engineering", "elementary_mathematics", "formal_logic", "global_facts", "high_school_biology", "high_school_chemistry", "high_school_computer_science", "high_school_european_history", "high_school_geography", "high_school_government_and_politics", "high_school_macroeconomics", "high_school_mathematics", "high_school_microeconomics", "high_school_physics", "high_school_psychology", "high_school_statistics", "high_school_us_history", "high_school_world_history", "human_aging", "human_sexuality", "international_law", "jurisprudence", "logical_fallacies", "machine_learning", "management", "marketing", "medical_genetics", "miscellaneous", "moral_disputes", "moral_scenarios", "nutrition", "philosophy", "prehistory", "professional_accounting", "professional_law", "professional_medicine", "professional_psychology", "public_relations", "security_studies", "sociology", "us_foreign_policy", "virology", "world_religions" ]

    BBH

    BBH_SUBTASKS = [ "boolean_expressions", "causal_judgement", "date_understanding", "disambiguation_qa", "dyck_languages", "formal_fallacies", "geometric_shapes", "hyperbaton", "logical_deduction_five_objects", "logical_deduction_seven_objects", "logical_deduction_three_objects", "movie_recommendation", "multistep_arithmetic_two", "navigate", "object_counting", "penguins_in_a_table", "reasoning_about_colored_objects", "ruin_names", "salient_translation_error_detection", "snarks", "sports_understanding", "temporal_sequences", "tracking_shuffled_objects_five_objects", "tracking_shuffled_objects_seven_objects", "tracking_shuffled_objects_three_objects", "web_of_lies", "word_sorting" ]

    Matemático

    MATH_SUBTASKS = [ "algebra", "counting_and_probability", "geometry", "intermediate_algebra", "number_theory", "prealgebra", "precalculus",

    Evalúe sus modelos Nova personalizados utilizando varios métodos y métricas de evaluación.