Points de contrôle de dégradé
Le point de contrôle de gradient (également appelé point de contrôle d'activation) est une astuce permettant d'économiser de la mémoire qui supprime la plupart des activations intermédiaires lors de la passe avant et les recalcule à la volée lors de la rétropropagation.
Aperçu
It lets you train deeper, larger networks by trading extra compute for much lower memory use.
Plongée profonde
Les réseaux de neurones d'entraînement stockent normalement les activations de chaque couche pendant le passage direct, car la rétropropagation en a besoin pour calculer les gradients. Pour les modèles profonds, ces activations dominent la mémoire. À la place, les points de contrôle en dégradé enregistrent les activations uniquement sur un ensemble clairsemé de couches de « points de contrôle » et ignorent le reste. Lorsque backprop atteint une région dont les activations ont été abandonnées, il réexécute le calcul direct uniquement pour ce segment afin de régénérer ce dont il a besoin, puis continue. Avec des points de contrôle placés à peu près toutes les racines carrées de N couches, la mémoire pour les activations passe de l'ordre N à l'ordre racine carrée de N, tandis que le calcul n'augmente que d'environ un passage supplémentaire (environ 20 à 30 % plus lent). Cela permet d'adapter des lots de plus grande taille ou des transformateurs plus profonds sur le même GPU.
Aperçu technique
La technique exploite un compromis entre le temps et la mémoire. Le stockage de toutes les activations est rapide mais gourmand en mémoire ; les recalculer est peu coûteux sur les accélérateurs modernes par rapport au coût du manque de mémoire. Des frameworks comme PyTorch (torch.utils.checkpoint) enveloppent un module afin que sa sortie avant soit enregistrée mais que ses éléments internes soient recalculés lors de l'arrière. Le choix de l'emplacement du point de contrôle est important : un espacement uniforme de segments d'environ sqrt(N) minimise la mémoire totale tout en n'ajoutant qu'une seule passe supplémentaire de calcul globale.
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 du point de contrôle de dégradé
Les points de contrôle de dégradé sont désormais standard dans la formation de grands modèles et sont de plus en plus automatisés, les bibliothèques sélectionnant les emplacements de points de contrôle optimaux pour vous. Il s'associe naturellement au FSDP, à la précision mixte et au déchargement pour augmenter la taille des modèles. Attendez-vous à des points de contrôle « sélectifs » qui recalculent uniquement les opérations bon marché tout en gardant en cache les opérations coûteuses (comme les matrices d'attention), ainsi qu'à des approches pilotées par le compilateur dans des outils comme torch.compile de PyTorch qui décident automatiquement de ce qu'il faut enregistrer ou recalculer pour le meilleur équilibre vitesse-mémoire.
Mise en œuvre dans le monde réel
Entraînez un transformateur profond avec une taille de lot plus grande sur un seul GPU en supprimant et en recalculant les activations de couche.
Affiner les modèles de vision sur des images haute résolution où les cartes d'activation risqueraient autrement de déborder de la mémoire GPU.
Hugging Face Transformers permettant à gradient_checkpointing=True de s'adapter à des modèles comportant des milliards de paramètres lors du réglage fin.
Combiner les points de contrôle avec FSDP afin que les paramètres et les activations restent petits, permettant la formation de très grands modèles de langage.
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
Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.
Benchmark dans des conditions de charge et de données réalistes.
Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.
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 Gradient Checkpointing quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Guide suivant
Accumulation de dégradé
Questions fréquemment posées
What is Gradient Checkpointing?
Le point de contrôle de gradient (également appelé point de contrôle d'activation) est une astuce permettant d'économiser de la mémoire qui supprime la plupart des activations intermédiaires lors de la passe avant et les recalcule à la volée lors de la rétropropagation. Il vous permet d'entraîner des réseaux plus profonds et plus vastes en échangeant des calculs supplémentaires contre une utilisation de mémoire beaucoup plus faible.
Qu'est-ce que les points de contrôle de gradient échangent principalement pour économiser de la mémoire ?
Le point de contrôle de gradient recalcule les activations rejetées lors de la passe arrière, dépensant ainsi des calculs supplémentaires en échange d'une mémoire considérablement réduite.
Pourquoi les activations sont-elles normalement stockées pendant la passe avant ?
Backprop calcule les gradients en utilisant les activations intermédiaires de la passe avant, elles doivent donc être disponibles à moins qu'elles ne soient recalculées.
À peu près, comment la mémoire d'activation évolue-t-elle si des points de contrôle sont placés à chaque couche sqrt(N) dans un réseau à N couches ?
L'espacement des points de contrôle sur chaque racine carrée de N couches réduit la mémoire d'activation stockée de l'ordre N à l'ordre sqrt (N).
Quelle quantité de calcul supplémentaire environ les points de contrôle de gradient bien placés ajoutent-ils généralement ?
Avec un bon placement des points de contrôle, le surcoût correspond à peu près à une seule passe avant supplémentaire, souvent autour d'un ralentissement de 20 à 30 %.
Dans PyTorch, quel utilitaire est couramment utilisé pour appliquer des points de contrôle de dégradé à un module ?
torch.utils.checkpoint encapsule un module afin que ses activations internes soient recalculées lors du retour au lieu d'être stockées.