Τεχνικός ΟΔΗΓΟΣ

Συσσώρευση κλίσης

Η συσσώρευση διαβάθμισης σάς επιτρέπει να προσομοιώσετε ένα μεγάλο μέγεθος παρτίδας σε περιορισμένη μνήμη GPU, αθροίζοντας τις διαβαθμίσεις σε πολλές μικρές μίνι παρτίδες πριν ενημερώσετε τα βάρη.

Ακούστε αυτόν τον οδηγόαφήγηση με AI · ~2 min

Σε αυτήν τη σελίδα2 λεπτά ανάγνωση
  1. Επισκόπηση
  2. Βαθιά κατάδυση
  3. Υλοποίηση σε πραγματικό κόσμο
  4. Το μέλλον της συσσώρευσης κλίσης
  5. Κάνοντάς το στην πράξη
  6. Συνεχίστε την εξερεύνηση
  7. Συχνές ερωτήσεις

Επισκόπηση

It is the standard workaround for training big models when memory is the bottleneck.

Βαθιά κατάδυση

Κανονικά ένα βήμα εκπαίδευσης επεξεργάζεται μια παρτίδα, υπολογίζει τις κλίσεις και ενημερώνει αμέσως τις παραμέτρους. Με τη συσσώρευση διαβάθμισης, εκτελείτε πολλά περάσματα προς τα εμπρός και προς τα πίσω σε μικρότερες μικρο-παρτίδες, προσθέτοντας τις διαβαθμίσεις τους μαζί στα buffer παραμέτρων και καλείτε το βήμα βελτιστοποίησης (και μηδενίζετε τις διαβαθμίσεις) μόνο μετά από N μικρο-παρτίδες. Το πραγματικό μέγεθος παρτίδας γίνεται μέγεθος μικρο-παρτίδας επί N, παρόλο που η μνήμη αιχμής περιέχει μόνο μία μικρο-παρτίδα ενεργοποιήσεων. Αυτό έχει σημασία επειδή πολλές συνταγές εκπαίδευσης προϋποθέτουν μεγάλες παρτίδες για σταθερά στατιστικά στοιχεία και επειδή μοντέλα όπως οι μεγάλοι μετασχηματιστές δεν μπορούν να χωρέσουν μια πλήρη παρτίδα στόχο σε μία μόνο συσκευή. Το catch: Τα στατιστικά στοιχεία κανονικοποίησης παρτίδας υπολογίζονται ανά μικρο-παρτίδα, επομένως η νόρμα επιπέδου ή η νόρμα ομάδας συνδυάζονται καλύτερα με τη συσσώρευση και πρέπει να κλιμακώσετε σωστά την απώλεια για να διατηρήσετε σωστά τον αποτελεσματικό ρυθμό εκμάθησης.

Υλοποίηση σε πραγματικό κόσμο

Βελτιστοποιήστε ένα μοντέλο μεγάλης γλώσσας σε μια μοναδική GPU καταναλωτή, συγκεντρώνοντας περισσότερες από 8 ή 16 μικρο-παρτίδες για να φτάσετε σε μια αποτελεσματική παρτίδα εκατοντάδων.

Εκπαίδευση μοντέλων όρασης ή τμηματοποίησης υψηλής ανάλυσης όπου χωράει ακόμη και μια παρτίδα των 2, αλλά η συνταγή χρειάζεται μια αποτελεσματική παρτίδα 32.

Το Hugging Face Trainer και το PyTorch Lightning εκθέτουν μια ρύθμιση gradient_accumulation_steps που χρησιμοποιείται συνήθως σε ρυθμίσεις περιορισμένης VRAM.

Η αναπαραγωγή της μεγάλης παρτίδας ενός χαρτιού έχει ως αποτέλεσμα μικρότερο υλικό, αντιστοιχίζοντας το πραγματικό μέγεθος παρτίδας μέσω της συσσώρευσης.

Το μέλλον της συσσώρευσης κλίσης

Η συσσώρευση κλίσης θα παραμείνει ως προεπιλεγμένος μοχλός, καθώς τα μεγέθη των μοντέλων ξεπερνούν τη μνήμη μιας συσκευής. Συνδυάζεται όλο και περισσότερο με μικτή ακρίβεια, σημεία ελέγχου ενεργοποίησης, μηδενικό διαμοιρασμό και παραλληλισμό αγωγών σε πλαίσια όπως το DeepSpeed ​​και το FSDP. Περιμένετε αυστηρότερο αυτοματισμό όπου οι βιβλιοθήκες συντονίζουν αυτόματα τα βήματα συσσώρευσης σε έναν προϋπολογισμό μνήμης και συνεχή σημασία για τη βελτίωση των μεγάλων μοντέλων σε μέτριο υλικό, συμπεριλαμβανομένων των GPU των καταναλωτών, όπου ξεκλειδώνει εκπαίδευση που διαφορετικά θα ήταν αδύνατη.

Κάνοντάς το στην πράξη

Γιατί έχει σημασία

  • Κόστος και προϋπολογισμός. Οι αποφάσεις για την αρχιτεκτονική καθορίζουν την απόδοση και το λειτουργικό κόστος για χρόνια.
  • Σαφέστερες αποφάσεις. Η τεχνική εκπαίδευση βοηθά τις ομάδες να επιλέξουν τη σωστή στοίβα, όχι μόνο τη νεότερη.
  • Ελεγχος ποιότητας. Οι καλύτερες επιλογές μηχανικής μειώνουν τα περιστατικά αξιοπιστίας στην παραγωγή.

Προσέξτε

  • Η βελτιστοποίηση ενός σημείου αναφοράς μπορεί να κρύψει ευρύτερες αδυναμίες του συστήματος.
  • Το κόστος υποδομής και συντήρησης συχνά υποτιμάται.
  • Τα κενά ασφάλειας και παρατηρητικότητας μπορούν να αυξηθούν καθώς τα συστήματα γίνονται πιο πολύπλοκα.

Επόμενα βήματα

  1. Καθορίστε τους στόχους καθυστέρησης, ποιότητας και κόστους πριν από την εφαρμογή.
  2. Σημείο αναφοράς υπό ρεαλιστικές συνθήκες φορτίου και δεδομένων.
  3. Παρακολούθηση οργάνου για σφάλματα, μετατόπιση και επιπτώσεις από τον χρήστη.
  4. Προετοιμάστε διαδρομές επαναφοράς και απόκρισης συμβάντος πριν την κλιμάκωση.

Συνεχίστε την εξερεύνηση

Δωρεάν ενημερωτικό δελτίο

Λάβετε την καθημερινή ενημέρωση AI

Τρία επαληθευμένα νέα AI κάθε πρωί της εβδομάδας, γραμμένα σε απλή αγγλική. Δωρεάν για πάντα, χωρίς διαφημίσεις.

Ένα email κάθε εργάσιμη ημέρα. Κατάργηση συνδρομής με ένα κλικ. Δεν πουλάμε ή μοιραζόμαστε ποτέ τη διεύθυνσή σας.

Δοκιμάστε τον εαυτό σας

Take the Gradient Accumulation quiz

Άμεση ανάδραση σε κάθε απάντηση, και πιστοποιητικό με επαληθεύσιμο ID μόλις περάσετε το μάθημα.

Έναρξη κουίζ

Υποστηρίξτε τη δωρεάν εκπαίδευση AI. AI Understanding είναι μια μη κερδοσκοπική οργάνωση 501(c)(3) — χωρίς διαφημίσεις, χωρίς τοίχο πληρωμής, ποτέ. Κάντε μια δωρεά

Συχνές ερωτήσεις

What is Gradient Accumulation?

Η συσσώρευση διαβάθμισης σάς επιτρέπει να προσομοιώσετε ένα μεγάλο μέγεθος παρτίδας σε περιορισμένη μνήμη GPU, αθροίζοντας τις διαβαθμίσεις σε πολλές μικρές μίνι παρτίδες πριν ενημερώσετε τα βάρη. Είναι η τυπική λύση για την εκπαίδευση μεγάλων μοντέλων όταν η μνήμη είναι το σημείο συμφόρησης.

Τι σας επιτρέπει να κάνετε κυρίως η συσσώρευση διαβάθμισης;

Αθροίζοντας τις διαβαθμίσεις σε πολλές μικρο-παρτίδες πριν από την ενημέρωση, μιμείτε μια μεγάλη παρτίδα χωρίς να την κρατάτε όλη στη μνήμη ταυτόχρονα.

With an accumulation factor N, when should optimizer.step() and zero_grad() occur?

Accumulate gradients across N micro-batches, call optimizer.step() once for the effective batch, then clear gradients before the next window; begin training with cleared buffers.

Ποιο στρώμα κανονικοποίησης ζευγαρώνει πιο καθαρά με τη συσσώρευση κλίσης;

Το Batch-norm υπολογίζει στατιστικά στοιχεία ανά μικρο-παρτίδα, επομένως ο κανόνας επιπέδου ή ομάδας αποφεύγει την αναντιστοιχία με μικρές μικρο-παρτίδες.

Why may four micro-batches with BatchNorm behave differently from one physical batch of the same total size?

Batch-dependent forward computations break exact equivalence.

Συνέχισε να μαθαίνεις

Σχετικοί οδηγοί

Επιλέχθηκαν περισσότεροι οδηγοί για αυτό το θέμα

Λάβετε ένα δωρεάν πιστοποιητικό AIΈνα σύντομο δωρεάν μάθημα και εξέταση. Χωρίς κόστος, χωρίς κάρτα. Περίπου 2,5 ώρες.Ξεκινήστε δωρεάν →