> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://fr.nvidia-localization.ferndocs.com/fr/nemo/rl/latest/evaluation/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fr.nvidia-localization.ferndocs.com/_mcp/server. # Évaluation 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. ```sh # 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](#exécuter-le-script-dévaluation). ### 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](../../examples/configs/evals/eval.yaml). 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](#conversion-de-dcp-à-hf-optionnel) et suivre le guide pour convertir votre modèle. ```sh # 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](../../nemo_rl/data/eval_datasets/aime2024.py) : le `data.dataset_name` correspondant est `"aime2024"`. * [AIME-2025](../../nemo_rl/data/eval_datasets/aime2025.py) : le `data.dataset_name` correspondant est `"aime2025"`. * [GPQA et GPQA-diamond](../../nemo_rl/data/eval_datasets/gpqa.py) : les `data.dataset_name` correspondants sont `"gpqa"` et `"gpqa-diamond"`. * [MATH et MATH-500](../../nemo_rl/data/eval_datasets/math.py) : les `data.dataset_name` correspondants sont `"math"` et `"math500"`. * [MMLU](../../nemo_rl/data/eval_datasets/mmlu.py) : 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](../../nemo_rl/data/eval_datasets/mmlu_pro.py) : le `data.dataset_name` correspondant est `"mmlu_pro"`. Plus de détails peuvent être trouvés dans [load\_eval\_dataset](../../nemo_rl/data/eval_datasets/__init__.py).