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 del modelo entrenado
Una receta de evaluación es un archivo de configuración YAML que define cómo se ejecuta el trabajo de evaluación de modelos de Amazon Nova. Con esta receta, puede evaluar el rendimiento de un modelo básico o entrenado mediante su comparación con puntos de referencia comunes o con sus propios conjuntos de datos personalizados. Las métricas se pueden almacenar en Amazon S3 o TensorBoard. La evaluación proporciona métricas cuantitativas que le ayudan a evaluar el rendimiento del modelo en diversas tareas para determinar si es necesaria una mayor personalización.
La evaluación de los modelos es un proceso fuera de línea, en el que estos se prueban comparándolos con puntos de referencia fijos con respuestas predefinidas. No se evalúan en tiempo real ni en función de las interacciones de los usuarios en directo. Para realizar evaluaciones en tiempo real, puede evaluar el modelo después de implementarlo en Amazon Bedrock llamando al entorno de ejecución de Amazon Bedrock. APIs
Temas
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 modelos de SageMaker IA para Amazon Nova. Para acceder a los paquetes de códigos, consulte el ejemplo N. ova-lighteval-custom-task
Esta es una lista de los puntos de referencia estándares del sector compatibles y disponibles. Puede especificar los siguientes puntos de referencia en el eval_task
parámetro:
Referencia |
Modalidad |
Descripción |
Métricas |
Strategy (Estrategia) |
Subtarea disponible |
---|---|---|---|---|---|
mmlu |
Texto |
Comprensión lingüística multitarea: evalúa los conocimientos en 57 materias. |
precisión |
zs_cot |
Sí |
mmlu_pro |
Texto |
MMLU (subconjunto profesional): se centra en dominios profesionales como el derecho, la medicina, la contabilidad y la ingeniería. |
precisión |
zs_cot |
No |
bbh |
Texto |
Tareas de razonamiento avanzado: conjunto de problemas desafiantes que ponen a prueba las habilidades cognitivas y de resolución de problemas de nivel superior. |
precisión |
zs_cot |
Sí |
gpqa |
Texto |
Respuesta a preguntas de física general: evalúa la comprensión de los conceptos de física y las 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 |
Sí |
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 |
as |
Sí |
IFEval |
Texto |
Evaluación basada en las instrucciones: mide la precisión con la que un modelo sigue las instrucciones dadas y completa las tareas según las especificaciones. |
precisión |
as |
No |
gen_qa |
Texto |
Evaluación personalizada de conjuntos de datos: le permite utilizar su propio conjunto de datos para realizar evaluaciones comparativas y comparar los resultados del modelo con las respuestas de referencia con métricas como ROUGE y BLEU. |
all |
gen_qa |
No |
mmmu |
Multimodal |
Comprensión multidisciplinaria masiva y multimodal (MMMU): punto de referencia a nivel universitario que comprende preguntas de opción múltiple y preguntas abiertas de 30 disciplinas. |
precisión |
zs_cot |
Sí |
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 indicaciones, calculando la probabilidad de que se prefiera B a A. |
all |
juez |
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 |
pase @1 |
zs |
No |
Están disponibles las siguientes mmlu
subtareas:
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" ]
Están disponibles las siguientes bbh
subtareas:
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" ]
Están disponibles las siguientes math
subtareas:
MATH_SUBTASKS = [ "algebra", "counting_and_probability", "geometry", "intermediate_algebra", "number_theory", "prealgebra", "precalculus", ]
Comprender los parámetros de la receta
Configuración de una ejecución
A continuación se presenta una configuración de ejecución general y una explicación de los parámetros involucrados.
run: name: eval_job_name model_type: amazon.nova-micro-v1:0:128k model_name_or_path: nova-micro/prod replicas: 1 data_s3_path: "" output_s3_path: s3://output_path
-
name
: (Obligatorio) Un nombre descriptivo para su trabajo de evaluación. Esto ayuda a identificar su trabajo en la AWS consola. -
model_type
: (Obligatorio) Especifica la variante del modelo Amazon Nova que se va a utilizar. No modifique este campo manualmente. Las opciones son:-
amazon.nova-micro-v1:0:128k
-
amazon.nova-lite-v1:0:300k
-
amazon.nova-pro-v1:0:300k
-
-
model_name_or_path
: (Obligatorio) La ruta al modelo base o la ruta S3 para el punto de control entrenado posteriormente. Las opciones son:-
nova-micro/prod
-
nova-lite/prod
-
nova-pro/prod
-
(Ruta S3 para el punto de control posterior al entrenamiento)
s3://<escrow bucket>/<job id>/outputs/checkpoints
-
-
replicas
: (Obligatorio) El número de instancias informáticas que se van a utilizar para la formación distribuida. Debe establecer este valor en 1 porque no se admite el uso de varios nodos. -
data_s3_path
: (Obligatorio) La ruta S3 al conjunto de datos de entrada. Deje este parámetro en blanco a menos que esté utilizando la fórmula «traiga su propio conjunto de datos» o «LLM» como receta para juzgar. -
output_s3_path
: (Obligatorio) La ruta S3 para almacenar los artefactos de evaluación de los resultados. Tenga en cuenta que el depósito S3 de salida debe crearlo la misma cuenta que está creando el trabajo.
Configuración de evaluación
La siguiente es una configuración de evaluación del modelo y una explicación de los parámetros involucrados.
evaluation: task: mmlu strategy: zs_cot subtask: mathematics metric: accuracy
-
task
: (Obligatorio) Especifica el punto de referencia o la tarea de evaluación que se va a utilizar.Lista de tareas compatibles:
-
mmlu
-
mmlu_pro
-
bbh
-
gpqa
-
math
-
strong_reject
-
gen_qa
-
Fieval
-
mmmu
-
llm_judge
-
humaneval
-
-
strategy
: (Obligatorio) Define el enfoque de evaluación:-
zs_cot: Zero-shot Chain-of-Thought: un enfoque para impulsar modelos de lenguaje extensos que fomenta el step-by-step razonamiento sin requerir ejemplos explícitos.
-
zs: Zero-shot: un enfoque para resolver un problema sin ningún ejemplo de formación previa.
-
gen_qa: Una estrategia específica para crear tus propias recetas de conjuntos de datos.
-
judge: Una estrategia específica para Amazon Nova LLM según las recetas de Judge.
-
-
subtask
: (Opcional y extraíble) Especifica una subtarea específica para determinadas tareas de evaluación. Elimine esta opción de la receta si la tarea no tiene ninguna subtarea. -
metric
: (Obligatorio) La métrica de evaluación que se va a utilizar.-
precisión: porcentaje de respuestas correctas
-
exact_match: (para el punto de
math
referencia), devuelve la velocidad a la que las cadenas pronosticadas de entrada coinciden exactamente con sus referencias. -
deflexión: (para el
strong reject
punto de referencia), devuelve la deflexión relativa al modelo base y la diferencia en las métricas de significancia. -
pass @1: (como punto de
humaneval
referencia) es una métrica que se utiliza para medir el porcentaje de casos en los que la predicción de mayor confianza del modelo coincide con la respuesta correcta. -
all
: Devuelve las siguientes métricas:-
Para crear
gen_qa
su propio punto de referencia de conjunto de datos, devuelva 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 el texto generado y el de referencia. -
rougeL
: Mide la subsecuencia común más larga entre los textos, lo que permite dejar huecos 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
: Se parece a la coincidencia exacta, pero es más flexible, ya que normalmente ignora las diferencias entre mayúsculas y minúsculas, los signos de puntuación y los espacios en blanco. -
f1_score
: Media armónica de precisión y memoria, que mide la superposición de palabras entre las respuestas pronosticadas y las de referencia. -
f1_score_quasi
: Similar a f1_score pero con una coincidencia más flexible, utilizando una comparación de texto normalizada que ignora las diferencias menores. -
bleu
: Mide la precisión de las coincidencias de n gramos entre el texto generado y el de referencia, lo que se utiliza habitualmente en la evaluación de traducciones.
-
-
Para obtener
llm_judge
su propio punto de referencia para el conjunto de datos, devuelva las siguientes métricas:-
a_scores
: Número de victorias obtenidasresponse_A
en pases de evaluación anteriores y posteriores. -
a_scores_stderr
: Error estándar de los juiciosresponse_A scores
entre pares. -
b_scores
: Número de victorias obtenidasresponse_B
en pases de evaluación anteriores y posteriores. -
b_scores_stderr
: Error estándar de los juiciosresponse_B scores
entre pares. -
ties
: Número de sentencias en las que se evalúaresponse_A
y seresponse_B
evalúan como iguales. -
ties_stderr
: Error estándar de empates entre juicios por pares. -
inference_error
: Recuento de sentencias que no se pudieron evaluar adecuadamente. -
inference_error_stderr
: Error estándar de los errores de inferencia en todas las sentencias. -
score
: La puntuación global se basa en los pases ganados tanto para adelante como para atrás.response_B
-
score_stderr
: Error estándar de la puntuación global en los juicios por parejas. -
winrate
: la probabilidad de que se prefiera la respuesta_B a la respuesta_A calculada utilizando la probabilidad de Bradley-Terry. -
lower_rate
: Límite inferior (percentil 2,5) de la tasa de ganancias estimada a partir del muestreo inicial.
-
-
-
Configuración de inferencias
La siguiente es una configuración de inferencia y una explicación de los parámetros involucrados. Todos los parámetros son opcionales.
inference: max_new_tokens: 200 top_k: -1 top_p: 1.0 temperature: 0
-
max_new_tokens
: El número máximo de fichas que se van a generar. Debe ser un número entero. -
top_k
: El número de fichas de mayor probabilidad que se deben tener en cuenta. Debe ser un número entero. -
top_p
: El umbral de probabilidad acumulada para el muestreo simbólico. Debe ser un valor flotante entre 0.0 y 1.0, ambos inclusive. -
temperature
: Aleatoriedad en la selección de fichas. Los valores más altos introducen más aleatoriedad. Use 0 para hacer que los resultados sean deterministas. Este valor debe ser flotante con un valor mínimo de 0.
Tenga en cuenta quehumaneval
, para ello, recomendamos la siguiente configuración de inferencia:
inference: top_k: 1 max_new_tokens: 1600 temperature: 0.0
Ejemplos de recetas de evaluación
Amazon Nova ofrece cuatro tipos de recetas de evaluación, que están disponibles en el GitHub repositorio de HyperPod recetas.
Texto general: recetas de referencia
Estas recetas le permiten evaluar las capacidades fundamentales de los modelos de Amazon Nova a través de un conjunto integral de puntos de referencia de solo texto. Se proporcionan en este formato. xxx_general_text_benchmark_eval.yaml
Receta general de referencia multimodal
Estas recetas le permiten evaluar las capacidades fundamentales de los modelos de Amazon Nova en un conjunto integral de puntos de referencia multimodales. Se proporcionan en el formato. xxx_general_multi_modal_benchmark_eval.yaml
Traiga su propia receta de referencia para el conjunto de datos
Estas recetas le permiten crear su propio conjunto de datos para realizar evaluaciones comparativas y comparar los resultados del modelo con las respuestas de referencia utilizando diferentes tipos de métricas. Se proporcionan en este formatoxxx_bring_your_own_dataset_eval.yaml
.
Los siguientes son los requisitos para traer su propio conjunto de datos:
-
Requisitos de formato de archivo
-
Debe incluir un único
gen_qa.jsonl
archivo que contenga ejemplos de evaluación. -
El conjunto de datos debe cargarse en una ubicación de S3 a la que el trabajo de formación de SageMaker IA pueda acceder a él.
-
El archivo debe seguir el formato de esquema requerido para un conjunto de datos general de preguntas y respuestas.
-
-
Requisitos de formato del esquema: cada línea del archivo JSONL debe ser un objeto JSON con los siguientes campos:
-
query
: (Obligatorio) Cadena que contiene la pregunta o instrucción que necesita una respuesta -
response
: (Obligatorio) Cadena que contiene el resultado esperado del modelo -
system
: (Opcional) Cadena que contiene el mensaje del sistema que establece el comportamiento, la función o la personalidad del modelo de IA antes de que procese la consulta
-
Esta es una entrada de ejemplo para traer su propio conjunto de datos
{ "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 su conjunto de datos personalizado, modifique su receta 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 solicitudes de consulta y del sistema) debe ser inferior a 3,5 k
Amazon Nova LLM como receta de referencia para jueces
Amazon Nova LLM as a Judge es una función 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 indicaciones, respuestas de referencia y respuestas de los aspirantes, y utiliza un modelo Nova Judge para proporcionar una métrica del porcentaje de victorias basada en la probabilidad de Bradley-Terry
Las recetas se proporcionan en este formato. xxx_llm_judge_eval.yaml
Los siguientes son los requisitos del LLM como juez:
-
Requisitos de formato de archivo
-
Incluya un único
llm_judge.jsonl
archivo que contenga ejemplos de evaluación. El nombre del archivo debe serllm_judge.jsonl
. -
El conjunto de datos debe cargarse en una ubicación de S3 a la que SageMaker AI HyperPod RIG pueda acceder.
-
El archivo debe seguir el formato de esquema requerido para el
llm_judge.jsonl
conjunto de datos. -
El conjunto de datos de entrada debe garantizar que todos los registros tengan una longitud de contexto inferior a 12 000.
-
-
Requisitos de formato del esquema: cada línea del archivo JSONL debe ser un objeto JSON con los siguientes campos:
-
prompt
: (Obligatorio) Una cadena que contiene la solicitud de la respuesta generada. -
response_A
: cadena que contiene la respuesta de referencia. -
response_B
: una cadena que contiene la respuesta alternativa 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 su conjunto de datos personalizado, modifique su receta 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 Amazon Nova Judge son los mismos en todas las especificaciones de la familia de modelos (es decir, Lite, Micro y Pro).
-
Los modelos de jueces personalizados no son compatibles en este momento.
-
Límite de longitud del contexto: para cada muestra del conjunto de datos, la longitud del contexto (incluidas las solicitudes de consulta y del sistema) debe ser inferior a 7000
Comience un trabajo de evaluación
A continuación se proporciona una sugerencia de configuración del tipo de instancia de evaluación y del tipo de modelo:
# Install Dependencies (Helm - https://helm.sh/docs/intro/install/) curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh rm -f ./get_helm.sh # Install the HyperPod CLI git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git git checkout -b release_v2 cd sagemaker-hyperpod-cli pip install . # Verify the installation hyperpod --help # Connect to a HyperPod Cluster hyperpod connect-cluster --cluster-name
cluster-name
# Submit the Job using the recipe for eval # Namespace by default should be kubeflow hyperpod start-job [--namespacenamespace
] --recipe evaluation/nova/nova_micro_p5_48xl_general_text_benchmark_eval --override-parameters \ '{ "instance_type":"p5d.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name":custom-run-name
, "recipes.run.model_type":model_type
, "recipes.run.model_name_or_path" "model name or finetune checkpoint s3uri
, "recipes.run.data_s3_path":s3 for input data only for genqa and llm_judge, must be full S3 path that include filename
, }' # List jobs hyperpod list-jobs [--namespacenamespace
] [--all-namespaces] # Getting Job details hyperpod get-job --job-namejob-name
[--namespacenamespace
] [--verbose] # Listing Pods hyperpod list-pods --job-namejob-name
--namespacenamespace
# Cancel Job hyperpod cancel-job --job-namejob-name
[--namespacenamespace
]
También debería poder ver el estado del trabajo a través de la consola de clústeres de Amazon EKS.
Acceda a sus resultados y visualícelos
Una vez que el trabajo de evaluación se haya completado correctamente, podrá acceder a los resultados y analizarlos con la información de esta sección. En función de lo output_s3_path
(por ejemplos3://output_path/
) definido en la receta, la estructura de salida es la siguiente:
job_name/ ├── eval-result/ │ └── job-name/ │ └── results_[timestamp].json │ └── details/ │ └── model/ │ └── execution-date-time/ │ └──details_task_name_#_datetime.parquet └── eval-tensorboard-result/ └── job-name/ └── eval/ └── events.out.tfevents.[timestamp]
Los resultados de las métricas se almacenan en la ubicación de salida S3 especificada s3://output_path/job_name/eval-result/result-timestamp.json
Los resultados de Tensorboard se almacenan en la ruta S3. s3://output_path/job_name/eval-tensorboard-result/eval/event.out.tfevents.epoch+ip
Los resultados de inferencia, esperados strong_reject
ygen_qa
, se almacenan en la ruta S3. s3://output_path/job_name/eval-result/details/model/taskname.parquet
Para visualizar tus métricas de evaluación en Tensorboard, sigue los siguientes pasos:
-
Navega hasta SageMaker AI Tensorboard.
-
Selecciona las carpetas S3.
-
Añada la ruta de su carpeta S3, por ejemplo
s3://output_path/job-name/eval-tensorboard-result/eval
. -
Espera a que se complete la sincronización.
Están disponibles las series temporales, los escalares y las visualizaciones de texto.
Recomendamos que siga las siguientes prácticas recomendadas:
-
Mantenga sus rutas de salida organizadas por modelo y tipo de referencia.
-
Mantenga convenciones de nomenclatura consistentes 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.
Puede encontrar los registros de errores de HyperPod trabajo en el grupo de CloudWatch registros/aws/sagemaker/Clusters/cluster-id
.