GUIDE Technique

Données entièrement partagées en parallèle

Fully Sharded Data Parallel (FSDP) est une technique de formation distribuée qui répartit les paramètres, les gradients et les états d'optimisation d'un modèle sur de nombreux GPU afin que chaque appareil ne contienne qu'une tranche.

2 minutes de lectureDernière mise à jour

Aperçu

Cela permet d’entraîner d’énormes modèles sur du matériel qui ne pourrait jamais tenir tout le modèle dans la mémoire d’un seul GPU.

Plongée profonde

Le parallélisme traditionnel des données conserve une copie complète du modèle sur chaque GPU, ce qui gaspille de la mémoire et limite la taille du modèle. FSDP, popularisé par PyTorch de Meta et inspiré par ZeRO de Microsoft, partage à la place trois éléments sur les appareils : les paramètres, les gradients et les états de l'optimiseur. Au cours de la passe avant, chaque GPU rassemble temporairement les poids complets de la couche qu'il calcule via une collecte totale, exécute le calcul, puis libère immédiatement la copie collectée. Le passage en arrière fonctionne de la même manière, suivi d'une réduction de diffusion qui distribue les tranches de dégradé à leurs GPU propriétaires. Étant donné que chaque appareil ne stocke en permanence qu'une fraction du modèle, l'utilisation de la mémoire diminue de manière à peu près linéaire avec le nombre de GPU, permettant aux équipes d'entraîner des modèles avec des dizaines ou des centaines de milliards de paramètres.

Aperçu technique

FSDP échange des communications supplémentaires contre des économies de mémoire. Les poids de chaque couche sont reconstruits à la demande avec une collecte complète juste avant utilisation et jetés juste après, tandis que les dégradés sont combinés et divisés avec réduction de la dispersion. La communication peut être superposée au calcul en prélevant les paramètres de la couche suivante pendant que la couche actuelle s'exécute, masquant ainsi une grande partie de la latence du réseau. Le réglage de la granularité du partitionnement (politique d'encapsulation) équilibre l'empreinte mémoire et la surcharge de communication.

Impact stratégique

Coût et budget

Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années.

Décisions plus claires

La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente.

Contrôle qualité

De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production.

L'avenir des données entièrement partagées en parallèle

FSDP devient la norme par défaut pour la formation ouverte sur de grands modèles, avec FSDP2 dans PyTorch améliorant la convivialité et le partitionnement par paramètre. Attendez-vous à une intégration plus étroite avec le parallélisme des tenseurs et des pipelines pour les modèles comportant des milliards de paramètres, à une meilleure prise en charge de la précision mixte et du fp8, ainsi qu'à un emballage automatique plus intelligent qui sélectionne les limites de partitionnement pour vous. À mesure que les interconnexions inter-GPU telles que NVLink et InfiniBand deviennent plus rapides, le coût de communication du sharding ne cesse de diminuer, ce qui le rend pratique à des échelles toujours plus grandes.

Mise en œuvre dans le monde réel

Ajustement précis d'un modèle Llama de 70 milliards de paramètres sur 8 GPU qui, individuellement, ne peuvent pas supporter tout le poids.

Pré-entraîner de grands modèles de langage dans les laboratoires d'IA en partageant les états de l'optimiseur (qui dominent la mémoire avec Adam) sur des centaines d'accélérateurs.

Des chercheurs utilisent le wrapper FSDP de PyTorch pour former des transformateurs de vision sur un cluster universitaire sans acheter de GPU phares de 80 Go.

Combiner FSDP avec bfloat16 de précision mixte pour réduire environ de moitié la mémoire et accélérer le débit de formation sur les modèles multimodaux.

Risques et garde-fous

L’optimisation d’un benchmark peut masquer des faiblesses plus larges du système.

Les coûts d’infrastructure et de maintenance sont souvent sous-estimés.

Les lacunes en matière de sécurité et d’observabilité peuvent se creuser à mesure que les systèmes deviennent plus complexes.

Feuille de route de mise en œuvre

1

Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.

2

Benchmark dans des conditions de charge et de données réalistes.

3

Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.

4

Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle.

Continuez à explorer

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Fully Sharded Data Parallel quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Démarrer le quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Guide suivant

Parallélisme des données

Questions fréquemment posées

Qu’est-ce que la paralyse de données entièrement fragmentées ?

Fully Sharded Data Parallel (FSDP) est une technique de formation distribuée qui répartit les paramètres, les gradients et les états d'optimisation d'un modèle sur de nombreux GPU afin que chaque appareil ne contienne qu'une tranche. Cela permet de former d'énormes modèles sur du matériel qui ne pourrait jamais contenir l'intégralité du modèle dans la mémoire d'un GPU.

Qu'est-ce que FSDP partage sur les GPU, contrairement au parallélisme de données standard ?

FSDP partage les paramètres, les gradients et les états d'optimisation du modèle sur tous les appareils, tandis que le parallélisme des données standard réplique le modèle complet sur chaque GPU.

Quelle opération collective le FSDP utilise-t-il pour reconstruire les poids complets d'une couche juste avant de la calculer ?

Avant l'exécution d'une couche, FSDP effectue un regroupement complet pour assembler temporairement les paramètres complets de toutes les partitions, puis les libère ensuite.

Pourquoi FSDP libère-t-il les poids complets rassemblés immédiatement après le calcul d'une couche ?

Conserver uniquement une partition en permanence et rassembler les poids complets de manière transitoire est ce qui maintient l'utilisation de la mémoire faible et à peu près proportionnelle à une fraction du modèle.

Quelle approche antérieure d'optimisation de la mémoire s'est largement inspirée du FSDP ?

Le partitionnement des paramètres, des gradients et des états d'optimisation de FSDP suit de près les idées introduites dans ZeRO de Microsoft de la bibliothèque DeepSpeed.

Comment FSDP masque-t-il une grande partie de la latence du réseau lors de la collecte de poids ?

FSDP pré-extrait les paramètres de la couche suivante pendant que la couche actuelle est encore en train de calculer, superposant ainsi la communication globale avec un travail utile.