Ενεργοποιήστε την ταχύτερη εκπαίδευση με την παράλληλη βιβλιοθήκη δεδομένων Amazon SageMaker | Υπηρεσίες Ιστού της Amazon

Ενεργοποιήστε την ταχύτερη εκπαίδευση με την παράλληλη βιβλιοθήκη δεδομένων Amazon SageMaker | Υπηρεσίες Ιστού της Amazon

Η εκπαίδευση στο Large Language Model (LLM) έχει γίνει όλο και πιο δημοφιλής τον τελευταίο χρόνο με την κυκλοφορία αρκετών δημοσίως διαθέσιμων μοντέλων όπως τα Llama2, Falcon και StarCoder. Οι πελάτες εκπαιδεύουν τώρα LLM πρωτοφανούς μεγέθους που κυμαίνονται από 1 δισεκατομμύριο έως πάνω από 175 δισεκατομμύρια παραμέτρους. Η εκπαίδευση αυτών των LLM απαιτεί σημαντικούς υπολογιστικούς πόρους και χρόνο, καθώς πρέπει να χρησιμοποιηθούν εκατοντάδες έως χιλιάδες μονάδες επεξεργασίας γραφικών (GPU) για τον χειρισμό των σημερινών τεράστιων συνόλων δεδομένων εκπαίδευσης και μεγεθών μοντέλων. Ένα σημείο συμφόρησης στην κατανεμημένη εκπαίδευση μπορεί να είναι η επικοινωνία GPU που χειρίζεται η NVIDIA Collective Communication Library (NCCL). Σε ορισμένες εργασίες εκπαίδευσης μεγάλης κατανομής, μπορεί να αφιερωθεί περισσότερος χρόνος στην επικοινωνία μεταξύ GPU από τον πραγματικό υπολογισμό της GPU. Για να μετριαστεί το πρόβλημα επικοινωνίας της GPU και να επιτραπεί η ταχύτερη εκπαίδευση, Amazon Sage Maker είναι ενθουσιασμένος που ανακοινώνει μια βελτιστοποιημένη συλλογική λειτουργία AllGather ως μέρος της παράλληλης βιβλιοθήκης κατανεμημένων δεδομένων SageMaker (SMDDP). Το AllGather είναι η πιο χρησιμοποιούμενη συλλογική λειτουργία σε δημοφιλείς λύσεις παραλληλισμού δεδομένων με αποδοτική μνήμη, όπως DeepSpeed ​​Zero Redundancy Optimizer (ZeRO) και Πλήρως τεμαχισμένος παραλληλισμός δεδομένων (FSDP), και είναι ο κύριος συνεισφέρων στα γενικά έξοδα επικοινωνίας της GPU. Σε αυτήν την ανάρτηση, δείχνουμε μια επισκόπηση υψηλού επιπέδου του πώς λειτουργεί το SMDDP, πώς μπορείτε να ενεργοποιήσετε το SMDDP στα σενάρια εκπαίδευσης του Amazon SageMaker και τις βελτιώσεις απόδοσης που μπορείτε να περιμένετε.

Επισκόπηση λύσεων

Παραδοσιακός παράλληλη εκπαίδευση δεδομένων περιλαμβάνει την αναπαραγωγή ενός ολόκληρου μοντέλου σε πολλαπλές GPU, με κάθε μοντέλο να εκπαιδεύεται σε διαφορετικά θραύσματα δεδομένων από το σύνολο δεδομένων. Κατά τη διάρκεια του backward pass, οι διαβαθμίσεις υπολογίζονται κατά μέσο όρο μεταξύ των εργαζομένων GPU, έτσι ώστε κάθε αντίγραφο μοντέλου να ενημερώνεται με τις ίδιες τιμές διαβάθμισης, παρόλο που έχουν εκπαιδευτεί με διαφορετικά θραύσματα δεδομένων. Αυτή η τεχνική επιτρέπει πολύ πιο γρήγορη εκπαίδευση σε τεράστια σύνολα δεδομένων παραλληλίζοντας την κατανάλωση των δεδομένων εκπαίδευσης. Ωστόσο, ορισμένα από τα σημερινά μεγάλα μοντέλα (π.χ. Llama2 70B) είναι πολύ μεγάλα για να χωρέσουν εξ ολοκλήρου στη μνήμη GPU, γεγονός που καθιστά τον παραδοσιακό παραλληλισμό δεδομένων άχρηστο. Για να συνεχίσετε να απολαμβάνετε τα πλεονεκτήματα του παραλληλισμού δεδομένων, ξεπερνώντας παράλληλα την περιορισμένη μνήμη GPU, μοιρασμένες λύσεις παράλληλων δεδομένων όπως το DeepSpeed ​​ZeRO, το PyTorch FSDP και το Amazon Βιβλιοθήκη παραλληλισμού μοντέλων SageMaker έχουν αυξηθεί σε δημοτικότητα.

Στον παραλληλισμό διαμοιρασμένων δεδομένων, αντί να αναπαράγουν ολόκληρο το μοντέλο σε εργαζόμενους GPU, οι παράμετροι του μοντέλου, οι διαβαθμίσεις και οι καταστάσεις βελτιστοποίησης κατανέμονται και κατανέμονται (δηλαδή, διαμοιράζονται) μεταξύ των GPU στην εργασία εκπαίδευσης. Για την εκτέλεση υπολογισμού διέλευσης προς τα εμπρός και προς τα πίσω, οι παράμετροι συγκεντρώνονται από θραύσματα σε άλλους εργαζόμενους GPU για να σχηματίσουν ένα ή περισσότερα επίπεδα μοντέλου. Αφού εκτελεστεί ο υπολογισμός, αυτά τα επίπεδα στη συνέχεια ελευθερώνονται από τη μνήμη για να επιτραπεί η συγκέντρωση του επόμενου συνόλου στρωμάτων. Σημειώστε ότι υπάρχουν παραλλαγές του παραλληλισμού διαμερισμένων δεδομένων όπου μόνο οι καταστάσεις και οι διαβαθμίσεις του βελτιστοποιητή είναι μοιρασμένοι, αλλά όχι οι παράμετροι του μοντέλου. Το AllGather εξακολουθεί να χρησιμοποιείται σε αυτόν τον τύπο παραλληλισμού μοιρασμένων δεδομένων, αλλά μόνο πριν από τον υπολογισμό του μπροστινού πέρασμα, προκειμένου να συγκεντρωθούν οι παράμετροι του μοντέλου που έχουν ενημερωθεί από διαφορετικά θραύσματα κατάστασης διαβάθμισης ή βελτιστοποίησης από άλλους εργαζόμενους GPU. Ανατρέξτε στο διαφορετικό Στάδια DeepSpeed ​​ZeRO και την SHARD_GRAD_OP Στρατηγική κοινής χρήσης FSDP για περισσότερες λεπτομέρειες.

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

Πριν και μετά τη λειτουργία AllGather σε 4 GPU

Αν και το NCCL χρησιμοποιείται συνήθως για το AllGather σε κατανεμημένη εκπαίδευση, η υποκείμενη εφαρμογή του σε χαμηλό επίπεδο δεν είναι προσαρμοσμένη στην υποδομή δικτύωσης του Amazon Elastic Compute Cloud (Amazon EC2) περιπτώσεις, και επομένως η απόδοσή του μπορεί να επιβραδύνει την προπόνηση από άκρο σε άκρο. Η βιβλιοθήκη SMDDP είναι μια συλλογική βιβλιοθήκη επικοινωνίας για GPU της NVIDIA που χρησιμεύει ως υποκατάστατο για το NCCL και παρέχει καλύτερη απόδοση για κατανεμημένες εργασίες εκπαίδευσης με το PyTorch. Συγκεκριμένα, το SMDDP παρέχει μια βελτιστοποιημένη υλοποίηση του AllGather για Τύποι παρουσιών p4d/p4de.

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

Walkthrough

AllGather βελτιστοποιημένο για AWS

Το βελτιστοποιημένο για AWS AllGather χρησιμοποιεί τις ακόλουθες τεχνικές για να επιτύχει καλύτερη απόδοση στην υποδομή AWS σε σύγκριση με το NCCL:

  1. Μετακινούμε δεδομένα μεταξύ παρουσιών μέσω Elastic Fabric Adapter (EFA) δίκτυο με ένα μοτίβο επικοινωνίας all-to-all. Το EFA είναι η λύση δικτύου χαμηλής καθυστέρησης και υψηλής απόδοσης του AWS και ένα μοτίβο all-to-all για επικοινωνία μεταξύ κόμβων είναι πιο προσαρμοσμένο στα χαρακτηριστικά της δικτυακής υποδομής EFA και AWS απαιτώντας λιγότερα packet hops σε σύγκριση με το ring ή το NCCL δέντρο μοτίβο επικοινωνίας.
  2. GDRCopy για τον συντονισμό της τοπικής κυκλοφορίας δικτύου NVLink και EFA. Το GDRCopy είναι μια βιβλιοθήκη που παρέχει επικοινωνία χαμηλής καθυστέρησης μεταξύ των διεργασιών της CPU και των πυρήνων GPU CUDA. Με αυτήν την τεχνολογία, είμαστε σε θέση να δρομολογήσουμε τη μεταφορά δεδομένων εντός και μεταξύ κόμβων.
  3. Μειωμένη χρήση πολυεπεξεργαστών ροής GPU για να δώσει περισσότερη υπολογιστική ισχύ στους πυρήνες μοντέλων. Οι παρουσίες AWS P4d/P4de είναι εξοπλισμένες με GPU NVIDIA A100, καθεμία από τις οποίες διαθέτει 108 πολυεπεξεργαστές ροής. Ενώ το NCCL χρειάζεται έως και 24 πολυεπεξεργαστές ροής για την εκτέλεση συλλογικοτήτων, τα SMDDP Collectives χρησιμοποιούν μόνο έως και εννέα πολυεπεξεργαστές ροής. Οι αποθηκευμένοι πολυεπεξεργαστές ροής μπορούν να ληφθούν από υπολογιστικούς πυρήνες μοντέλων για ταχύτερη εκτέλεση.

Χρήση

Οι συλλογικότητες SMDDP ενσωματώνονται εγγενώς με το PyTorch μέσω του ομάδα διαδικασίας αφαίρεση στο torch.distributed μονάδα μέτρησης. Μια ομάδα διεργασιών ορίζει τις διεπαφές για κοινές συλλογικές λειτουργίες όπως AllGather, ReduceScatter, AllReduce κ.λπ. Οι χρήστες μπορούν να γράψουν γενικό κατανεμημένο κώδικα και στη συνέχεια να επιλέξουν τον υποκείμενο backend, το οποίο παρέχει την υλοποίηση για αυτές τις λειτουργίες με βάση την υπολογιστική συσκευή που χρησιμοποιείται. Οι εργασίες εκπαίδευσης CPU χρησιμοποιούν συχνά το gloo or mpi backend ενώ οι GPU της NVIDIA χρησιμοποιούν το nccl backend.

Η βιβλιοθήκη SMDDP εμφανίζεται στην εικόνα με την εγγραφή της ως προσαρμοσμένο backend στην αφαίρεση της ομάδας διεργασιών. Αυτό γίνεται με τη δήλωση εισαγωγής, η οποία εμφανίζεται στα παρακάτω αποσπάσματα κώδικα. Στη συνέχεια, όταν επιλέγετε το backend για την εργασία κατανεμημένης εκπαίδευσης που βασίζεται σε GPU, απλώς αντικαταστήστε nccl με smddp. ο smddp το backend τηρεί την ίδια σημασιολογία με το nccl backend και υποστηρίζει τα ίδια σενάρια εκπαίδευσης.

Βαθιά ταχύτητα

import smdistributed.dataparallel.torch.torch_smddp
deepspeed.init_distributed(dist_backend="smddp") # replacing "nccl"

FSDP

import smdistributed.dataparallel.torch.torch_smddp
dist.init_process_group(backend="smddp")  # replacing "nccl"

αναφοράς

Συγκρίναμε την αυτόνομη απόδοση AllGather όπου η συλλογική λειτουργία εκτελείται μεμονωμένα χωρίς καμία εκπαίδευση μοντέλου. Παρακάτω είναι ένα δείγμα αποτελέσματος σε 32 περιπτώσεις p4d που συγκρίνουν το NCCL και το SMDDP AllGather. Ο άξονας X αντιπροσωπεύει το μέγεθος εξόδου του AllGather και ο άξονας Υ αντιπροσωπεύει το ρυθμό χρήσης δικτύου του δικτύου EFA 4 Gbps του p400d. Τα 4 υπο-γραφήματα αντιπροσωπεύουν τα κοινά μοτίβα ομάδων επικοινωνίας όπου έχουμε 1, 2, 4 και 8 τάξεις ανά παρουσία p4d που συμμετέχουν στη λειτουργία AllGather, αντίστοιχα.

Χρήση δικτύου SMDDP και NCCL AllGather σε 32 κόμβους

Αυτά τα microbenchmarks δείχνουν ότι το SMDDP υπερτερεί του NCCL με δύο βασικά χαρακτηριστικά:

  1. Η μέγιστη απόδοση του SMDDP (περίπου 90% χρήση εύρους ζώνης) είναι υψηλότερη από αυτή του NCCL (περίπου 80% χρήση εύρους ζώνης) σε όλες τις διαμορφώσεις.
  2. Το SMDDP επιτυγχάνει τη μέγιστη απόδοση σε πολύ μικρότερα μεγέθη buffer από το NCCL. Αυτό βελτιώνει ιδιαίτερα τις ταχύτητες εκπαίδευσης για μικρότερα μοντέλα ή όταν ο χρήστης ορίζει ένα μικρό μέγεθος buffer AllGather στο DeepSpeed ​​(όπου το μέγεθος AllGather δεν χρειάζεται να είναι ίσο με το μέγεθος του επιπέδου).

Πρότυπα σημεία αναφοράς εκπαίδευσης

Σε εργασίες εκπαίδευσης μεγάλης κλίμακας όπου η επικοινωνία GPU είναι ένα σημαντικό εμπόδιο, το SMDDP μπορεί να βελτιώσει σημαντικά τις ταχύτητες εκπαίδευσης, όπως μετράται από το μοντέλο TFLOPS/GPU.

διαμόρφωση επίδοση
Μοντέλο/Εκπαίδευση συστάδα Λύση Sharded Data Parallelism Μοντέλο TFLOPS/GPU με NCCL Μοντέλο TFLOPS/GPU με SMDDP % επιτάχυνε
13Β Λάμα2
Μήκος ακολουθίας: 4096
Παγκόσμιο μέγεθος παρτίδας: 4 εκατομμύρια μάρκες
64 p4d.24xlarge nodes (512 GPU NVIDIA A100) PyTorch FSDP 97.89 121.85 24.40%
65Β GPT-NeoX
Μήκος ακολουθίας: 2048
Παγκόσμιο μέγεθος παρτίδας: 4 εκατομμύρια μάρκες
64 p4d.24xlarge nodes (512 GPU NVIDIA A100) DeepSpeed ​​ZeRO Stage 3* 99.23 108.66 9.50%

*Το Megatron-DeepSpeed ​​του EleutherAI χρησιμοποιήθηκε αποθετήριο. Ο παραλληλισμός τανυστή ενεργοποιήθηκε επίσης με βαθμό τανυστού-παράλληλου οκτώ.

Σημείωση: Το μοντέλο TFLOPS/GPU βασίζεται στον υπολογισμό Model FLOPS Utilization που ορίζεται στο έγγραφο εδώ και τα στοιχεία αναφοράς αλλού μπορεί να αναφέρουν το υλικό TFLOPS/GPU ως μέτρηση απόδοσης. Το υλικό TFLOPS/GPU μπορεί να προσεγγιστεί ως μοντέλο TFLOPS/GPU 4/3 x.

Συμπέρασμα

Σε αυτήν την ανάρτηση, σας δείξαμε πώς να επιταχύνετε σημαντικά τις εργασίες παράλληλης εκπαίδευσης με κοινόχρηστα δεδομένα στο Amazon SageMaker με δύο μόνο γραμμές αλλαγής κώδικα. Η μεγάλης κλίμακας κατανεμημένη εκπαίδευση γίνεται ολοένα και πιο πανταχού παρούσα με την εμφάνιση ή τα LLM, αλλά με αυτήν την κλίμακα συνεπάγεται υψηλό κόστος. Μειώνοντας τη συμφόρηση επικοινωνίας μεταξύ των GPU, το SMDDP σάς βοηθά να εκπαιδεύεστε πιο γρήγορα σε κλίμακα και να εξοικονομείτε υπολογιστικούς πόρους. Μπορείτε να βρείτε περισσότερα παραδείγματα SMDDP με παράλληλη εκπαίδευση με κοινόχρηστα δεδομένα στο Παραδείγματα Amazon SageMaker Αποθετήριο GitHub.


Σχετικά με τους Συγγραφείς

Ενεργοποιήστε την ταχύτερη εκπαίδευση με την παράλληλη βιβλιοθήκη δεδομένων Amazon SageMaker | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Apoorv Gupta είναι Μηχανικός Ανάπτυξης Λογισμικού στο AWS, με επίκεντρο τη δημιουργία βέλτιστων συστημάτων βαθιάς εκμάθησης για την υποδομή και το υλικό AWS. Ενδιαφέρεται για τους κατανεμημένους υπολογιστές, τα συστήματα βαθιάς μάθησης και τους επιταχυντές ML. Εκτός δουλειάς, ο Apoorv απολαμβάνει τα ταξίδια, την πεζοπορία και τα βιντεοπαιχνίδια.

Ενεργοποιήστε την ταχύτερη εκπαίδευση με την παράλληλη βιβλιοθήκη δεδομένων Amazon SageMaker | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Karan Dhiman είναι Μηχανικός Ανάπτυξης Λογισμικού στην AWS, με έδρα το Τορόντο του Καναδά. Είναι πολύ παθιασμένος με τον χώρο μηχανικής μάθησης και την κατασκευή λύσεων για την επιτάχυνση του κατανεμημένου υπολογισμένου φόρτου εργασίας.

Ενεργοποιήστε την ταχύτερη εκπαίδευση με την παράλληλη βιβλιοθήκη δεδομένων Amazon SageMaker | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ρουχάν Πρασάντ είναι Μηχανικός Ανάπτυξης Λογισμικού στην AWS που εργάζεται για να κάνει την κατανεμημένη εκπαίδευση βαθιάς μάθησης ταχύτερη, φθηνότερη και πιο εύκολη στη χρήση στο SageMaker. Εκτός δουλειάς, ο Ρουχάν του αρέσει να παίζει τένις, να ταξιδεύει και να μαγειρεύει.

Ενεργοποιήστε την ταχύτερη εκπαίδευση με την παράλληλη βιβλιοθήκη δεδομένων Amazon SageMaker | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ζαόκι Ζου είναι Ανώτερος Μηχανικός Ανάπτυξης Λογισμικού στην AWS, παθιασμένος με τα κατανεμημένα συστήματα και τις βελτιστοποιήσεις χαμηλού επιπέδου. Του αρέσει να παρακολουθεί αγώνες ποδοσφαίρου ενώ πίνει αναψυκτικό (μη διαίτης).

Σφραγίδα ώρας:

Περισσότερα από Μηχανική εκμάθηση AWS