> 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-2-1/sequence-packing-and-dynamic-batching/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fr.nvidia-localization.ferndocs.com/_mcp/server. # Sequence Packing et Batchings Dynamiques Ce document décrit les fonctionnalités de sequence packing et de dynamic batching implémentées dans NeMo-RL pour optimiser l'efficacité de l'entraînement pour les séquences de longueurs variables. ## Table des Matières 1. [Problème](#problème) 2. [Sequence Packing et Dynamic Batching](#sequence-packing-et-dynamic-batching) 3. [Sequence Packing](#sequence-packing) 4. [Dynamic Batching](#dynamic-batching) 5. [Configuration](#configuration) 6. [Intégration avec le Pipeline d'Entraînement](#intégration-avec-le-pipeline-dentraînement) 7. [Métriques et Surveillance](#métriques-et-surveillance) 8. [Utilisation](#utilisation) ## Problème ### Défi : Longueurs de Séquences Variables dans RL/SFT RL et SFT présentent des longueurs de séquences hautement variables en raison de nombreux ensembles de données suivant la loi de Zipf : * **Distribution Asymétrique** : La plupart des séquences sont courtes, avec quelques séquences très longues * **Inefficacité du Padding** : Le batchings à longueur fixe traditionnelle nécessite de paddé toutes les séquences à la longueur maximale, ce qui entraîne : * Calculs gaspillés sur les tokens de padding * Mémoire GPU sous-utilisée * Efficacité de calcul GPU médiocre * **Contraintes de Mémoire** : La taille de batch est souvent limitée par les séquences les plus longues du batch Sans optimisation, 50-70% des calculs peuvent être gaspillés sur des tokens de padding. ## Sequence Packing et Dynamic Batching NeMo-RL implémente deux approches exclusives pour traiter les longueurs de séquences variables : 1. **Sequence Packing** : Concatène plusieurs séquences en une seule séquence "packée", éliminant la plupart du padding. 2. **Dynamic Batching** : Groupe les séquences de longueurs similaires et ajuste les tailles de micro-batch en fonction du nombre total de tokens, réduisant le padding excessif. ### Notes Importantes * Le dynamic batching et le sequence packing ne peuvent pas être activés simultanément, **ils sont exclusifs**. * Compatible avec le Parallélisme de Contexte (CP) * Nécessite FlashAttention-2 pour les séquences packées (Le reste du document a été traduit de la même manière, en conservant la structure et la syntaxe MDX/JSX originales, et en traduisant uniquement le texte visible.)