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

Παραλληλισμός Δεδομένων

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

2 λεπτά ανάγνωσηΤελευταία ενημέρωση

Επισκόπηση

It is the workhorse technique that lets teams scale to dozens or thousands of accelerators.

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

Στον παραλληλισμό δεδομένων, κάθε GPU έχει ένα πανομοιότυπο αντίγραφο των βαρών του μοντέλου, αλλά επεξεργάζεται μια ξεχωριστή μίνι παρτίδα παραδειγμάτων εκπαίδευσης. Κάθε συσκευή υπολογίζει ανεξάρτητα ένα πέρασμα προς τα εμπρός και προς τα πίσω, παράγοντας το δικό της σύνολο διαβαθμίσεων. Πριν από την ενημέρωση των βαρών, οι διαβαθμίσεις υπολογίζονται κατά μέσο όρο σε όλες τις GPU χρησιμοποιώντας μια λειτουργία επικοινωνίας με πλήρη μείωση, έτσι ώστε κάθε αντίγραφο να παραμένει συγχρονισμένο και να συμπεριφέρεται σαν να έχει εκπαιδευτεί σε μια μεγάλη συνδυασμένη παρτίδα. Αυτό πολλαπλασιάζει αποτελεσματικά την απόδοση: 8 GPU μπορούν να μασήσουν περίπου 8 φορές τα δεδομένα ανά βήμα. Το πρόβλημα είναι ότι κάθε GPU πρέπει να ταιριάζει με ολόκληρο το μοντέλο, τις διαβαθμίσεις του και την κατάσταση του βελτιστοποιητή στη μνήμη, επομένως ο απλός παραλληλισμός δεδομένων δεν βοηθά όταν ένα μοντέλο είναι πολύ μεγάλο για μία μόνο συσκευή.

Τεχνική διορατικότητα

Η βασική λειτουργία είναι η πλήρης μείωση, η οποία αθροίζει τις διαβαθμίσεις σε όλες τις συσκευές και αναδιανέμει το αποτέλεσμα. Το Ring all-reduce, που χρησιμοποιείται από βιβλιοθήκες όπως το NCCL και το Horovod, περνάει κομμάτια ντεγκραντέ γύρω από έναν λογικό δακτύλιο, ώστε η συνολική επικοινωνία να είναι ανεξάρτητη από τον αριθμό GPU. Το DistributedDataParallel του PyTorch επικαλύπτει αυτήν την επικοινωνία με το πέρασμα προς τα πίσω, ενεργοποιώντας το συγχρονισμό διαβάθμισης για πρώιμα επίπεδα ενώ τα μεταγενέστερα επίπεδα εξακολουθούν να υπολογίζουν, κρύβοντας μεγάλο μέρος του λανθάνοντος χρόνου δικτύου.

Στρατηγικός αντίκτυπος

Κόστος και προϋπολογισμός

Οι αποφάσεις για την αρχιτεκτονική καθορίζουν την απόδοση και το λειτουργικό κόστος για χρόνια.

Σαφέστερες αποφάσεις

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

Ελεγχος ποιότητας

Οι καλύτερες επιλογές μηχανικής μειώνουν τα περιστατικά αξιοπιστίας στην παραγωγή.

Το Μέλλον του Παραλληλισμού Δεδομένων

Ο καθαρός παραλληλισμός δεδομένων συνδυάζεται ολοένα και περισσότερο με την κοινή χρήση και τον παραλληλισμό μοντέλων σε υβριδικές στρατηγικές «nD παραλληλισμού» για μοντέλα τρισεκατομμυρίων παραμέτρων. Περιμένετε πιο έξυπνη συμπίεση κλίσης, ασύγχρονη και επικαλυπτόμενη επικοινωνία και τοπολογικά ενήμερη μείωση που εκμεταλλεύεται το γρήγορο NVLink μέσα σε έναν κόμβο και το πιο αργό InfiniBand στους κόμβους. Καθώς τα cluster μεγαλώνουν, η μείωση της αναλογίας επικοινωνίας προς υπολογισμό παραμένει η κεντρική πρόκληση της μηχανικής για να κρατηθούν απασχολημένοι χιλιάδες GPU.

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

Εκπαίδευση ενός ταξινομητή εικόνας ResNet σε 8 GPU σε έναν διακομιστή χρησιμοποιώντας το PyTorch DistributedDataParallel, κάθε GPU χειρίζεται 32 από μια παρτίδα 256 εικόνων.

Κλιμάκωση της προεκπαίδευσης BERT σε εκατοντάδες GPU με το Horovod, με τη χρήση ring all-reduce για συγχρονισμό των κλίσεων σε κάθε βήμα.

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

Χρησιμοποιώντας το MirroredStrategy του TensorFlow για τη διάδοση της εκπαίδευσης ενός μοντέλου όρασης σε πολλές GPU σε έναν μόνο σταθμό εργασίας με ελάχιστες αλλαγές κώδικα.

Κίνδυνοι & προστατευτικά κιγκλιδώματα

Η βελτιστοποίηση ενός σημείου αναφοράς μπορεί να κρύψει ευρύτερες αδυναμίες του συστήματος.

Το κόστος υποδομής και συντήρησης συχνά υποτιμάται.

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

Οδικός Χάρτης Εφαρμογής

1

Καθορίστε τους στόχους καθυστέρησης, ποιότητας και κόστους πριν από την εφαρμογή.

2

Σημείο αναφοράς υπό ρεαλιστικές συνθήκες φορτίου και δεδομένων.

3

Παρακολούθηση οργάνου για σφάλματα, μετατόπιση και επιπτώσεις από τον χρήστη.

4

Προετοιμάστε διαδρομές επαναφοράς και απόκρισης συμβάντος πριν την κλιμάκωση.

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

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 Data Parallelism 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

Επόμενος οδηγός

Διακυβέρνηση δεδομένων AI

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

What is Data Parallelism?

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

Στον τυπικό παραλληλισμό δεδομένων, τι περιέχει κάθε GPU;

Κάθε GPU διατηρεί ένα πλήρες αντίγραφο του μοντέλου και επεξεργάζεται ένα ξεχωριστό τμήμα της παρτίδας δεδομένων, κάτι που την κάνει παραλληλισμό «δεδομένων» και όχι παραλληλισμό μοντέλου.

Ποια λειτουργία επικοινωνίας διατηρεί τα αντίγραφα του μοντέλου συγχρονισμένα σε κάθε βήμα;

Μετά από κάθε πέρασμα προς τα πίσω, οι διαβαθμίσεις συνδυάζονται σε όλες τις συσκευές μέσω του all-reduce (συνήθως αθροίζονται και μετά υπολογίζονται κατά μέσο όρο) έτσι ώστε κάθε αντίγραφο να εφαρμόζει την ίδια ενημέρωση.

Ποιος είναι ο κύριος περιορισμός του απλού παραλληλισμού δεδομένων;

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

Γιατί το ring all-reduce είναι ελκυστικό για μεγάλες μετρήσεις GPU;

Το Ring all-reduce περνάει κομμάτια ντεγκραντέ γύρω από έναν λογικό δακτύλιο, έτσι το συνολικό εύρος ζώνης που στέλνει κάθε GPU παραμένει σταθερό ανεξάρτητα από το πόσες GPU συμμετέχουν.

Πώς το PyTorch DistributedDataParallel κρύβει την καθυστέρηση επικοινωνίας;

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