Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Évaluation de votre modèle entraîné
Une recette d'évaluation est un fichier de configuration YAML qui définit la manière dont votre tâche d'évaluation de modèle Amazon Nova est exécutée. Avec cette recette, vous pouvez évaluer les performances d'un modèle de base ou entraîné par rapport à des points de référence courants ou à vos propres ensembles de données personnalisés. Les métriques peuvent être stockées dans Amazon S3 ou TensorBoard. L'évaluation fournit des mesures quantitatives qui vous aident à évaluer les performances du modèle dans le cadre de différentes tâches afin de déterminer si une personnalisation supplémentaire est nécessaire.
L'évaluation des modèles est un processus hors ligne, dans le cadre duquel les modèles sont testés par rapport à des points de référence fixes avec des réponses prédéfinies. Ils ne sont pas évalués en temps réel ni par rapport aux interactions réelles des utilisateurs. Pour les évaluations en temps réel, vous pouvez évaluer le modèle après son déploiement sur Amazon Bedrock en appelant le runtime Amazon Bedrock. APIs
Rubriques
Tâches de référence disponibles
Un exemple de package de code est disponible qui montre comment calculer les mesures de référence à l'aide de la fonctionnalité d'évaluation du modèle d' SageMaker intelligence artificielle pour Amazon Nova. Pour accéder aux packages de code, consultez Sample-n ova-lighteval-custom-task
Voici une liste des benchmarks conformes aux normes de l'industrie disponibles et pris en charge. Vous pouvez spécifier les repères suivants dans le eval_task
paramètre :
Comparaison |
Modalité |
Description |
Métriques |
Strategy |
Sous-tâche disponible |
---|---|---|---|---|---|
mmlu |
Texte |
Compréhension linguistique multitâche — Teste les connaissances dans 57 matières. |
précision |
zs_cot |
Oui |
mmlu pro |
Texte |
MMLU — Sous-ensemble professionnel — Se concentre sur des domaines professionnels tels que le droit, la médecine, la comptabilité et l'ingénierie. |
précision |
zs_cot |
Non |
bbh |
Texte |
Tâches de raisonnement avancées — Ensemble de problèmes difficiles qui mettent à l'épreuve des compétences cognitives et de résolution de problèmes de haut niveau. |
précision |
zs_cot |
Oui |
gpqa |
Texte |
Réponses aux questions de physique générale — Évalue la compréhension des concepts de physique et les capacités de résolution de problèmes connexes. |
précision |
zs_cot |
Non |
math |
Texte |
Résolution de problèmes mathématiques — Mesure le raisonnement mathématique dans des domaines tels que l'algèbre, le calcul et les problèmes de mots. |
match exact |
zs_cot |
Oui |
strong_reject |
Texte |
Tâche de contrôle qualité : teste la capacité du modèle à détecter et à rejeter le contenu inapproprié, préjudiciable ou incorrect. |
déviation |
zs |
Oui |
IFEval |
Texte |
Évaluation suivant les instructions — Évalue la précision avec laquelle un modèle suit les instructions données et exécute les tâches conformément aux spécifications. |
précision |
zs |
Non |
gen_qa |
Texte |
Évaluation personnalisée des ensembles de données : vous permet d'utiliser votre propre ensemble de données à des fins d'analyse comparative, en comparant les résultats du modèle aux réponses de référence avec des indicateurs tels que ROUGE et BLEU. |
Tout |
gen_qa |
Non |
mmmu |
Multimodal |
Compréhension multidisciplinaire et multimodale massive (MMMU) — Indice de référence de niveau universitaire comprenant des questions à choix multiples et ouvertes provenant de 30 disciplines. |
précision |
zs_cot |
Oui |
llm_judge |
Texte |
LLM-as-a-Judge Comparaison des préférences — Utilise un modèle Nova Judge pour déterminer la préférence entre les réponses appariées (B par rapport à A) pour vos invites, en calculant la probabilité que B soit préféré à A. |
Tout |
juger |
Non |
humaneval |
Texte |
HumanEval - Un ensemble de données de référence conçu pour évaluer les capacités de génération de code des grands modèles de langage |
passe @1 |
zs |
Non |
Les mmlu
sous-tâches disponibles sont les suivantes :
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" ]
Les bbh
sous-tâches disponibles sont les suivantes :
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" ]
Les math
sous-tâches disponibles sont les suivantes :
MATH_SUBTASKS = [ "algebra", "counting_and_probability", "geometry", "intermediate_algebra", "number_theory", "prealgebra", "precalculus", ]
Comprendre les paramètres de la recette
Exécuter la configuration
Vous trouverez ci-dessous une configuration d'exécution générale et une explication des paramètres impliqués.
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
: (Obligatoire) Un nom descriptif pour votre tâche d'évaluation. Cela permet d'identifier votre tâche dans la AWS console. -
model_type
: (Obligatoire) Spécifie la variante du modèle Amazon Nova à utiliser. Ne modifiez pas ce champ manuellement. Les options incluent :-
amazon.nova-micro-v1:0:128k
-
amazon.nova-lite-v1:0:300k
-
amazon.nova-pro-v1:0:300k
-
-
model_name_or_path
: (Obligatoire) Le chemin vers le modèle de base ou le chemin S3 pour le point de contrôle après l'entraînement. Les options incluent :-
nova-micro/prod
-
nova-lite/prod
-
nova-pro/prod
-
(chemin S3 pour le point de contrôle après l'entraînement)
s3://<escrow bucket>/<job id>/outputs/checkpoints
-
-
replicas
: (Obligatoire) Le nombre d'instances de calcul à utiliser pour la formation distribuée. Vous devez définir cette valeur sur 1 car les nœuds multiples ne sont pas pris en charge. -
data_s3_path
: (Obligatoire) Le chemin S3 vers le jeu de données en entrée. Laissez ce paramètre vide, sauf si vous utilisez la recette « apportez votre propre ensemble de données » ou « LLM » comme recette de jugement. -
output_s3_path
: (Obligatoire) Le chemin S3 pour stocker les artefacts d'évaluation de sortie. Notez que le compartiment S3 de sortie doit être créé par le même compte qui crée la tâche.
Configuration de l'évaluation
Vous trouverez ci-dessous une configuration d'évaluation du modèle et une explication des paramètres concernés.
evaluation: task: mmlu strategy: zs_cot subtask: mathematics metric: accuracy
-
task
: (Obligatoire) Spécifie le point de référence ou la tâche d'évaluation à utiliser.Liste des tâches prises en charge :
-
mmlu
-
mmlu pro
-
bbh
-
gpqa
-
math
-
strong_reject
-
gen_qa
-
ifeval
-
mmmu
-
llm_judge
-
humaneval
-
-
strategy
: (Obligatoire) Définit l'approche d'évaluation :-
zs_cot : Zero-shot Chain-of-Thought - Une approche visant à générer de grands modèles de langage qui encouragent le step-by-step raisonnement sans nécessiter d'exemples explicites.
-
zs : Zero-shot - Une approche pour résoudre un problème sans aucun exemple de formation préalable.
-
gen_qa : Une stratégie spécifique pour apporter vos propres recettes de jeux de données.
-
judge : une stratégie spécifique aux recettes Amazon Nova LLM as Judge.
-
-
subtask
: (Facultatif et amovible) Spécifie une sous-tâche spécifique pour certaines tâches d'évaluation. Supprimez-le de votre recette si votre tâche ne comporte aucune sous-tâche. -
metric
: (Obligatoire) La métrique d'évaluation à utiliser.-
précision : pourcentage de bonnes réponses
-
exact_match : (Pour le
math
benchmark), renvoie le taux auquel les chaînes prédites en entrée correspondent exactement à leurs références. -
déflexion : (pour
strong reject
référence), renvoie la déflexion relative par rapport au modèle de base et la différence entre les métriques de signification. -
pass @1 : (Pour
humaneval
référence) est une métrique utilisée pour mesurer le pourcentage de cas où la prédiction la plus fiable du modèle correspond à la bonne réponse. -
all
: renvoie les métriques suivantes :-
Pour
gen_qa
et apportez votre propre base de données de référence, renvoyez les métriques suivantes :-
rouge1
: mesure le chevauchement des unigrammes (mots uniques) entre le texte généré et le texte de référence. -
rouge2
: mesure le chevauchement des bigrammes (deux mots consécutifs) entre le texte généré et le texte de référence. -
rougeL
: Mesure la plus longue sous-séquence commune entre les textes, en tenant compte des lacunes dans la correspondance. -
exact_match
: score binaire (0 ou 1) indiquant si le texte généré correspond exactement au texte de référence, caractère par caractère. -
quasi_exact_match
: Similaire à la correspondance exacte, mais plus indulgent, ignorant généralement les différences entre majuscules et minuscules, la ponctuation et les espaces blancs. -
f1_score
: moyenne harmonique de précision et de rappel, mesurant le chevauchement des mots entre les réponses prédites et les réponses de référence. -
f1_score_quasi
: Similaire à f1_score mais avec une correspondance plus souple, en utilisant une comparaison de texte normalisée qui ignore les différences mineures. -
bleu
: Mesure la précision des correspondances en n-grammes entre le texte généré et le texte de référence, couramment utilisé dans l'évaluation des traductions.
-
-
Pour
llm_judge
et apportez votre propre base de données de référence, renvoyez les métriques suivantes :-
a_scores
: Nombre de victoires pourresponse_A
les passes d'évaluation avant et arrière. -
a_scores_stderr
: erreur standardresponse_A scores
entre les jugements par paires. -
b_scores
: Nombre de victoires pourresponse_B
les passes d'évaluation avant et arrière. -
b_scores_stderr
: erreur standardresponse_B scores
entre les jugements par paires. -
ties
: Nombre de jugements oùresponse_A
etresponse_B
sont évalués sur un pied d'égalité. -
ties_stderr
: Erreur standard d'égalité entre les jugements par paires. -
inference_error
: Nombre de jugements qui n'ont pas pu être correctement évalués. -
inference_error_stderr
: Erreur standard ou erreurs d'inférence entre les jugements. -
score
: Score agrégé basé sur les victoires obtenues lors des passes avant et arrière pourresponse_B
. -
score_stderr
: erreur type du score agrégé pour les jugements par paires. -
winrate
: la probabilité que Response_B soit préférée à Response_A calculée à l'aide de la probabilité de Bradley-Terry. -
lower_rate
: Borne inférieure (2,5 centile) du taux de victoire estimé à partir d'un échantillonnage bootstrap.
-
-
-
Configuration d'inférence
Vous trouverez ci-dessous une configuration d'inférence et une explication des paramètres impliqués. Tous les paramètres sont facultatifs.
inference: max_new_tokens: 200 top_k: -1 top_p: 1.0 temperature: 0
-
max_new_tokens
: le nombre maximum de jetons à générer. Il doit s'agir d'un entier. -
top_k
: Le nombre de jetons les plus probables à prendre en compte. Il doit s'agir d'un entier. -
top_p
: le seuil de probabilité cumulé pour l'échantillonnage de jetons. Il doit s'agir d'un flottant compris entre 0,0 et 1,0 inclus. -
temperature
: Aléatoire dans la sélection des jetons. Plus les valeurs sont élevées, plus le caractère aléatoire est élevé. Utilisez 0 pour rendre les résultats déterministes. Cette valeur doit être un flottant avec une valeur minimale de 0.
Notez que pourhumaneval
, nous recommandons la configuration d'inférence suivante :
inference: top_k: 1 max_new_tokens: 1600 temperature: 0.0
Exemples de recettes d'évaluation
Amazon Nova propose quatre types de recettes d'évaluation, disponibles dans le GitHub référentiel de HyperPod recettes.
Recettes de référence textuelles générales
Ces recettes vous permettent d'évaluer les fonctionnalités fondamentales des modèles Amazon Nova grâce à une suite complète de tests de performance basés uniquement sur le texte. Ils sont fournis dans le formatxxx_general_text_benchmark_eval.yaml
.
Recette de référence multimodale générale
Ces recettes vous permettent d'évaluer les fonctionnalités fondamentales des modèles Amazon Nova à travers une suite complète de benchmarks multimodaux. Ils sont fournis dans le formatxxx_general_multi_modal_benchmark_eval.yaml
.
Apportez votre propre recette de référence pour les jeux de données
Ces recettes vous permettent d'utiliser votre propre ensemble de données à des fins d'analyse comparative et de comparer les résultats du modèle aux réponses de référence à l'aide de différents types de mesures. Ils sont fournis dans le formatxxx_bring_your_own_dataset_eval.yaml
.
Voici les exigences relatives à l'apport de votre propre ensemble de données :
-
Exigences relatives au format de fichier
-
Vous devez inclure un seul
gen_qa.jsonl
fichier contenant des exemples d'évaluation. -
Votre ensemble de données doit être téléchargé sur un emplacement S3 où SageMaker AI Training Job peut y accéder.
-
Le fichier doit respecter le format de schéma requis pour un ensemble de données de questions-réponses général.
-
-
Exigences relatives au format du schéma - Chaque ligne du fichier JSONL doit être un objet JSON avec les champs suivants :
-
query
: (Obligatoire) Chaîne contenant la question ou l'instruction nécessitant une réponse -
response
: (Obligatoire) Chaîne contenant la sortie du modèle attendue -
system
: (Facultatif) Chaîne contenant l'invite système qui définit le comportement, le rôle ou la personnalité du modèle d'IA avant qu'il ne traite la requête
-
Voici un exemple d'entrée « apportez votre propre jeu de données »
{ "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" }
Pour utiliser votre ensemble de données personnalisé, modifiez votre recette d'évaluation avec les champs obligatoires suivants, sans modifier le contenu :
evaluation: task: gen_qa strategy: gen_qa metric: all
Les limites suivantes s'appliquent :
-
Un seul fichier JSONL est autorisé par évaluation.
-
Le fichier doit suivre strictement le schéma défini.
-
Limite de longueur du contexte : pour chaque échantillon de l'ensemble de données, la longueur du contexte (y compris le système et les invites de requête) doit être inférieure à 3,5 ko
Amazon Nova LLM en tant que recette de référence de Judge
Amazon Nova LLM as a Judge est une fonctionnalité d'évaluation de modèles qui permet aux clients de comparer la qualité des réponses d'un modèle à celle d'un modèle de référence sur un ensemble de données personnalisé. Il prend en compte un ensemble de données contenant des instructions, des réponses de base et des réponses aux challengers, et utilise un modèle Nova Judge pour fournir une métrique du taux de victoire basée sur la probabilité de Bradley-Terry
Les recettes sont fournies dans le formatxxx_llm_judge_eval.yaml
.
Les exigences du LLM en tant que juge sont les suivantes :
-
Exigences relatives au format de fichier
-
Incluez un seul
llm_judge.jsonl
fichier contenant des exemples d'évaluation. Le nom du fichier doit êtrellm_judge.jsonl
. -
Votre jeu de données doit être téléchargé vers un emplacement S3 auquel SageMaker AI HyperPod RIG peut accéder.
-
Le fichier doit respecter le format de schéma requis pour le
llm_judge.jsonl
jeu de données. -
L'ensemble de données en entrée doit garantir que tous les enregistrements ont une longueur de contexte inférieure à 12 000 caractères.
-
-
Exigences relatives au format du schéma - Chaque ligne du fichier JSONL doit être un objet JSON avec les champs suivants :
-
prompt
: (Obligatoire) Chaîne contenant l'invite à obtenir la réponse générée. -
response_A
: chaîne contenant la réponse de base. -
response_B
: une chaîne contenant la réponse alternative doit être comparée à la réponse de base.
-
Voici un exemple d'inscription à un LLM en tant que juge
{ "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." }
Pour utiliser votre ensemble de données personnalisé, modifiez votre recette d'évaluation avec les champs obligatoires suivants, sans modifier le contenu :
evaluation: task: llm_judge strategy: judge metric: all
Les limites suivantes s'appliquent :
-
Un seul fichier JSONL est autorisé par évaluation.
-
Le fichier doit suivre strictement le schéma défini.
-
Les modèles Amazon Nova Judge sont identiques pour toutes les caractéristiques de la famille de modèles (à savoir, Lite, Micro et Pro).
-
Les modèles de juges personnalisés ne sont pas pris en charge pour le moment.
-
Limite de longueur du contexte : pour chaque échantillon de l'ensemble de données, la longueur du contexte (y compris le système et les invites de requête) doit être inférieure à 7 000
Commencer une tâche d'évaluation
Vous trouverez ci-dessous une suggestion de configuration du type d'instance d'évaluation et du type de modèle :
# 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
]
Vous devriez également être en mesure de consulter l'état de la tâche via la console du cluster Amazon EKS.
Accédez à vos résultats et visualisez-les
Une fois votre tâche d'évaluation terminée avec succès, vous pouvez accéder aux résultats et les analyser à l'aide des informations de cette section. Sur la base de ce qui est défini dans la recette output_s3_path
(par exemples3://output_path/
), la structure de sortie est la suivante :
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]
Les résultats des métriques sont stockés dans l'emplacement de sortie S3 spécifié s3://output_path/job_name/eval-result/result-timestamp.json
Les résultats du Tensorboard sont stockés dans le chemin S3. s3://output_path/job_name/eval-tensorboard-result/eval/event.out.tfevents.epoch+ip
Les sorties d'inférence, expect for strong_reject
etgen_qa
, sont stockées dans le chemin s3://output_path/job_name/eval-result/details/model/taskname.parquet
S3.
Pour visualiser vos métriques d'évaluation dans Tensorboard, procédez comme suit :
-
Accédez à SageMaker AI Tensorboard.
-
Sélectionnez les dossiers S3.
-
Ajoutez le chemin de votre dossier S3, par exemple
s3://output_path/job-name/eval-tensorboard-result/eval
. -
Attendez que la synchronisation soit terminée.
Les séries chronologiques, les scalaires et les visualisations de texte sont disponibles.
Nous recommandons les bonnes pratiques suivantes :
-
Organisez vos chemins de sortie par modèle et par type de référence.
-
Maintenez des conventions de dénomination cohérentes pour faciliter le suivi.
-
Enregistrez les résultats extraits dans un emplacement sécurisé.
-
Surveillez l'état de TensorBoard synchronisation pour vérifier que le chargement des données est réussi.
Vous pouvez trouver les journaux des erreurs de HyperPod travail dans le groupe de CloudWatch journaux/aws/sagemaker/Clusters/cluster-id
.