> 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/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fr.nvidia-localization.ferndocs.com/fr/_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.)