Passer à la navigation

Évaluation

Afficher en Markdown

Ce document explique comment utiliser un script d’évaluation pour évaluer les capacités d’un modèle.

Préparation de l’évaluation

Pour préparer l’évaluation, assurez-vous d’abord que votre modèle est dans le bon format, ce qui peut impliquer une conversion optionnelle des points de contrôle PyTorch DCP au format Hugging Face. Ensuite, vous devez préparer la configuration de l’évaluation, qui inclut la définition des modèles de prompts et tous les paramètres personnalisés nécessaires pour exécuter l’évaluation.

Conversion de DCP à HF (Optionnel)

Si vous avez formé un modèle et enregistré le point de contrôle au format Pytorch DCP, vous devez d’abord le convertir au format Hugging Face avant d’exécuter l’évaluation.

Utilisez le script examples/converters/convert_dcp_to_hf.py. Vous aurez besoin du chemin du fichier de configuration d’entraînement (config.yaml), du répertoire du point de contrôle DCP, et de spécifier un chemin de sortie pour le modèle au format HF.

# Exemple pour un point de contrôle GRPO à l'étape 170
uv run python examples/converters/convert_dcp_to_hf.py \
--config results/grpo/step_170/config.yaml \
--dcp-ckpt-path results/grpo/step_170/policy/weights/ \
--hf-ckpt-path results/grpo/hf

Remarque : Ajustez les chemins selon la structure de votre répertoire de sortie d’entraînement.

Une fois la conversion terminée, vous pouvez remplacer generation.model_name pour pointer vers le répertoire contenant le modèle HF converti dans cette section.

Préparer la configuration de l’évaluation

Remplacer avec des paramètres personnalisés

Pour exécuter l’évaluation, vous pouvez utiliser le fichier de configuration par défaut. Vous pouvez également spécifier un fichier personnalisé ou remplacer certains paramètres via la ligne de commande.

La configuration par défaut utilise l’échantillonnage glouton pour évaluer Qwen2.5-Math-1.5B-Instruct sur AIME-2024.

Configuration du modèle de prompt

N’oubliez pas d’utiliser le même prompt et le même chat_template qui ont été utilisés pendant l’entraînement.

Pour les modèles open-source, nous recommandons de définir tokenizer.chat_template=default, data.prompt_file=null et data.system_prompt_file=null pour leur permettre d’utiliser leurs chat templates natifs.

Exécuter le script d’évaluation

Nous utiliserons le script run_eval.py pour exécuter une évaluation à l’aide d’un modèle directement depuis le Hub Hugging Face ou depuis un chemin local déjà au format Hugging Face.

Notez que le script d’évaluation ne prend en charge que les modèles au format Hugging Face. Si vous n’avez pas converti votre modèle au format DCP, vous devez revenir à Convertir DCP à HF et suivre le guide pour convertir votre modèle.

# Exécuter le script d'évaluation avec la configuration par défaut (examples/configs/evals/eval.yaml)
uv run python examples/run_eval.py
# Exécuter le script d'évaluation avec un modèle converti
uv run python examples/run_eval.py generation.model_name=$PWD/results/grpo/hf
# Exécuter le script d'évaluation avec un fichier de configuration personnalisé
uv run python examples/run_eval.py --config path/to/custom_config.yaml
# Exécuter le script d'évaluation sur l'un des benchmarks pris en charge (par exemple, GPQA)
uv run python examples/run_eval.py --config examples/configs/evals/gpqa_eval.yaml
# Exécuter le script d'évaluation avec un jeu de données local préchargé sous forme de fichier csv.
uv run python examples/run_eval.py --config examples/configs/evals/local_eval.yaml
# Remplacer des valeurs de configuration spécifiques via la ligne de commande
# Exemple : Évaluation de DeepScaleR-1.5B-Preview sur MATH-500 en utilisant 8 GPU
# Précision pass@1 moyennée sur 16 échantillons pour chaque problème
uv run python examples/run_eval.py \
--config examples/configs/evals/math_eval.yaml \
generation.model_name=agentica-org/DeepScaleR-1.5B-Preview \
generation.temperature=0.6 \
generation.top_p=0.95 \
generation.vllm_cfg.max_model_len=32768 \
data.dataset_name=math500 \
eval.num_tests_per_prompt=16 \
cluster.gpus_per_node=8

Remarque : Les résultats d’évaluation peuvent varier légèrement en raison de divers facteurs, tels que les paramètres d’échantillonnage, la graine aléatoire, la version du moteur d’inférence et les paramètres du moteur d’inférence.

Exemple de sortie d’évaluation

Lorsque vous terminez l’évaluation, vous recevrez un résumé similaire au suivant.

============================================================
model_name='Qwen2.5-Math-1.5B-Instruct' dataset_name='aime2024'
max_new_tokens=2048 temperature=0.0 top_p=1.0 top_k=-1 seed=42
metric=pass@1 num_tests_per_prompt=1
score=0.1000 (3.0/30)
============================================================

Liste des benchmarks actuellement pris en charge

  • AIME-2024 : le data.dataset_name correspondant est "aime2024".
  • AIME-2025 : le data.dataset_name correspondant est "aime2025".
  • GPQA et GPQA-diamond : les data.dataset_name correspondants sont "gpqa" et "gpqa-diamond".
  • MATH et MATH-500 : les data.dataset_name correspondants sont "math" et "math500".
  • MMLU : cela inclut également MMMLU (Multilingual MMLU), un total de 14 langues. Lorsque data.dataset_name est défini sur mmlu, la version anglaise est utilisée. Si vous voulez exécuter l’évaluation dans une autre langue, data.dataset_name doit être défini sur mmlu_{langue} où langue est l’une des 14 valeurs suivantes, ["AR-XY", "BN-BD", "DE-DE", "ES-LA", "FR-FR", "HI-IN", "ID-ID", "IT-IT", "JA-JP", "KO-KR", "PT-BR", "ZH-CN", "SW-KE", "YO-NG"].
  • MMLU-Pro : le data.dataset_name correspondant est "mmlu_pro".

Plus de détails peuvent être trouvés dans load_eval_dataset.