> 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/0-3-0/grpo-on-deep-scaler/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fr.nvidia-localization.ferndocs.com/_mcp/server. # GRPO sur DeepScaler Ce guide explique comment utiliser NeMo RL pour entraîner des modèles de raisonnement Long Chain of Thought (CoT) avec Group Relative Policy Optimization (GRPO). Pour ce faire, nous entraînons [DeepSeek-R1-Distill-Qwen-1.5B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B) sur le jeu de données [DeepScaleR](https://huggingface.co/datasets/agentica-org/DeepScaleR-Preview-Dataset). Nous montrons ensuite comment utiliser les scripts d'évaluation de NeMo RL pour évaluer le modèle entraîné sur le benchmark [AIME24](https://huggingface.co/datasets/HuggingFaceH4/aime_2024). ## Entraîner le Modèle Nous suivons la recette DeepScaleR et entraînons le modèle en trois étapes. Lors de la première étape, nous entraînons avec une fenêtre de contexte de 8K. Dans la deuxième étape, nous entraînons avec une fenêtre de contexte de 16K. Dans la troisième étape, nous entraînons avec une fenêtre de contexte de 24K. Pour entraîner le modèle en utilisant NeMo RL, utilisez le fichier de configuration `examples/configs/recipes/llm/grpo-deepscaler-1.5b-8K.yaml`. Ce fichier correspond étroitement aux paramètres d'expérience de la recette DeepScaleR originale. Nous entraînons ensuite avec `examples/configs/recipes/llm/grpo-deepscaler-1.5b-16K.yaml` et `examples/configs/recipes/llm/grpo-deepscaler-1.5b-24K.yaml` pour les deuxième et troisième étapes, respectivement. ```sh uv run examples/run_grpo_math.py --config=examples/configs/recipes/llm/grpo-deepscaler-1.5b-8K.yaml uv run examples/run_grpo_math.py --config=examples/configs/recipes/llm/grpo-deepscaler-1.5b-16K.yaml policy.model_name=/path/to/8K/checkpoint/hf uv run examples/run_grpo_math.py --config=examples/configs/recipes/llm/grpo-deepscaler-1.5b-24K.yaml policy.model_name=/path/to/16K/checkpoint/hf ``` À la fin de chaque étape, vous devez spécifier le point de contrôle Hugging Face pour continuer l'entraînement. Pour obtenir ce point de contrôle, nous convertissons un point de contrôle de modèle en point de contrôle Hugging Face avec la commande suivante : ```sh uv run examples/converters/convert_dcp_to_hf.py --config=results/grpo-deepscaler-1.5b-8K/step_240/config.yaml --dcp-ckpt-path=results/grpo-deepscaler-1.5b-8K/step_240/policy/weights --hf-ckpt-path=results/grpo-deepscaler-1.5b-8K/step_240/hf ``` Lors de l'exécution de la commande suivante, nous utilisons le point de contrôle Hugging Face comme point de contrôle initial. Nous entraînons avec une fenêtre de contexte de 8K pendant 240 étapes, une fenêtre de contexte de 16K pendant 290 étapes et une fenêtre de contexte de 24K pendant 50 étapes. Nous exécutons toutes les expériences sur un seul nœud 8XH100 80GB. Si vous utilisez 8XA100 80GB, vous aurez besoin d'au moins 1 nœud pour l'entraînement 8K et 2 nœuds pour l'entraînement 16-24k. ## Courbe d'Entraînement En utilisant les commandes ci-dessus, nous obtenons la courbe d'entraînement suivante : ![Performance d'Entraînement](/fr/_fern-img/81b260b0aca77cc4d0f11c64fb215b2b50c45065d6d738240780425e89ba83b0.webp) Notamment, nous sommes capables d'atteindre une récompense d'entraînement moyenne de 0,65 en seulement 400 étapes d'entraînement. ## Évaluer le Modèle Tout au long de l'entraînement, les points de contrôle du modèle seront sauvegardés dans le dossier `results` (spécifié par `checkpointing.checkpoint_dir`). Pour évaluer le modèle, nous devons d'abord convertir le point de contrôle distribué PyTorch au format Hugging Face comme précédemment. Ensuite, pour évaluer sur le benchmark [AIME24](https://huggingface.co/datasets/HuggingFaceH4/aime_2024), utilisez la commande suivante : ```sh uv run examples/run_eval.py \ generation.model_name=results/grpo-deepscaler-1.5b-8K/step_240/hf \ data.prompt_file=examples/prompts/cot.txt \ generation.vllm_cfg.max_model_len=32768 \ generation.vllm_cfg.enforce_eager=True \ generation.temperature=1.0 ``` Utilisez `generation.model_name` pour spécifier le chemin du point de contrôle Hugging Face. De plus, nous utilisons AIME24 comme jeu de données de validation et calculons pass\@1 tout au long de l'entraînement. > **Note** > > AIME24 n'a que 30 exemples, donc la précision peut être très variable. > Pour réduire la variance, considérez d'exécuter `run_eval.py` avec `eval.num_tests_per_prompt=16`. ## Résultats d'Évaluation En suivant les instructions ci-dessus pour entraîner DeepSeek-R1-Distill-Qwen-1.5B sur le jeu de données DeepScaleR, nous pouvons suivre les performances du modèle sur le benchmark AIME24 tout au long de l'entraînement. Le graphique suivant montre les métriques d'évaluation au fur et à mesure de l'entraînement : ![Performance AIME24](/fr/_fern-img/a3375da044ad3f60832233878e7136bc829dcd5df9909c06d6635f69dbadcf07.webp) Nous sommes capables de dépasser les performances d'OpenAI O1 sur le benchmark AIME24 en environ 600 étapes d'entraînement.