Τα τελευταία χρόνια παρατηρείται ραγδαία ανάπτυξη στον τομέα της βαθιάς μάθησης. Αν και το υλικό έχει βελτιωθεί, όπως με την τελευταία γενιά επιταχυντών από την NVIDIA και την Amazon, οι επαγγελματίες της προηγμένης μηχανικής εκμάθησης (ML) εξακολουθούν να αντιμετωπίζουν τακτικά προβλήματα με την ανάπτυξη των μεγάλων μοντέλων βαθιάς εκμάθησης για εφαρμογές όπως η επεξεργασία φυσικής γλώσσας (NLP).
Σε παλαιότερη ανάρτηση, συζητήσαμε δυνατότητες και ρυθμίσεις με δυνατότητα διαμόρφωσης in Ανάπτυξη μοντέλου Amazon SageMaker που μπορεί να κάνει ευκολότερη την εξαγωγή συμπερασμάτων με αυτά τα μεγάλα μοντέλα. Σήμερα, ανακοινώνουμε ένα νέο Amazon Sage Maker Deep Learning Container (DLC) που μπορείτε να χρησιμοποιήσετε για να ξεκινήσετε με μεγάλα μοντέλα συμπερασμάτων μέσα σε λίγα λεπτά. Αυτό DLC συσκευάζει μερικές από τις πιο δημοφιλείς βιβλιοθήκες ανοιχτού κώδικα για παράλληλη εξαγωγή συμπερασμάτων μοντέλων, όπως το DeepSpeed και το Hugging Face Accelerate.
Σε αυτήν την ανάρτηση, χρησιμοποιούμε ένα νέο DLC συμπερασμάτων μεγάλου μοντέλου του SageMaker για να αναπτύξουμε δύο από τα πιο δημοφιλή μεγάλα μοντέλα NLP: BigScience's BLOOM-176B και του Meta OPT-30B από το αποθετήριο Hugging Face. Συγκεκριμένα, χρησιμοποιούμε τεχνικές εξυπηρέτησης και παραλληλισμού τανυστών της Βιβλιοθήκης Deep Java (DJL) από το DeepSpeed για να επιτύχουμε καθυστέρηση 0.1 δευτερολέπτου ανά διακριτικό σε περίπτωση χρήσης δημιουργίας κειμένου.
Μπορείτε να βρείτε τα πλήρη παραδείγματα σημειωματάριων στο δικό μας Αποθετήριο GitHub.
Τεχνικές συμπερασμάτων μεγάλων μοντέλων
Τα μοντέλα γλώσσας έχουν πρόσφατα εκραγεί τόσο σε μέγεθος όσο και σε δημοτικότητα. Με εύκολη πρόσβαση από μοντέλα ζωολογικών κήπων όπως το Hugging Face και βελτιωμένη ακρίβεια και απόδοση σε εργασίες NLP όπως η ταξινόμηση και η δημιουργία κειμένου, οι επαγγελματίες προσεγγίζουν όλο και περισσότερο αυτά τα μεγάλα μοντέλα. Ωστόσο, τα μεγάλα μοντέλα είναι συχνά πολύ μεγάλα για να χωρέσουν στη μνήμη ενός μόνο γκαζιού. Για παράδειγμα, το μοντέλο BLOOM-176B μπορεί να απαιτεί περισσότερα από 350 gigabyte μνήμης επιταχυντή, η οποία υπερβαίνει κατά πολύ τη χωρητικότητα των επιταχυντών υλικού που διατίθενται σήμερα. Αυτό απαιτεί τη χρήση τεχνικών παράλληλων μοντέλων από βιβλιοθήκες όπως το DeepSpeed και το Hugging Face Accelerate για τη διανομή ενός μοντέλου σε πολλούς επιταχυντές για συμπέρασμα. Σε αυτήν την ανάρτηση, χρησιμοποιούμε το Δοχείο συμπερασμάτων μεγάλου μοντέλου SageMaker για τη δημιουργία και σύγκριση της απόδοσης καθυστέρησης και απόδοσης χρησιμοποιώντας αυτές τις δύο βιβλιοθήκες ανοιχτού κώδικα.
Το DeepSpeed και το Accelerate χρησιμοποιούν διαφορετικές τεχνικές για τη βελτιστοποίηση μεγάλων μοντέλων γλώσσας για συμπεράσματα. Η βασική διαφορά είναι του DeepSpeed χρήση βελτιστοποιημένων πυρήνων. Αυτοί οι πυρήνες μπορούν να βελτιώσουν δραματικά την καθυστέρηση συμπερασμάτων μειώνοντας τα σημεία συμφόρησης στο υπολογιστικό γράφημα του μοντέλου. Οι βελτιστοποιημένοι πυρήνες μπορεί να είναι δύσκολο να αναπτυχθούν και είναι συνήθως συγκεκριμένοι για μια συγκεκριμένη αρχιτεκτονική μοντέλου. Το DeepSpeed υποστηρίζει δημοφιλή μεγάλα μοντέλα όπως το OPT και το BLOOM με αυτούς τους βελτιστοποιημένους πυρήνες. Αντίθετα, η βιβλιοθήκη Accelerate του Hugging Face δεν περιλαμβάνει βελτιστοποιημένους πυρήνες τη στιγμή της γραφής. Όπως συζητάμε στην ενότητα των αποτελεσμάτων μας, αυτή η διαφορά είναι υπεύθυνη για μεγάλο μέρος των πλεονεκτημάτων απόδοσης που έχει το DeepSpeed έναντι του Accelerate.
Μια δεύτερη διαφορά μεταξύ DeepSpeed και Accelerate είναι ο τύπος του παραλληλισμού του μοντέλου. Το Accelerate χρησιμοποιεί παραλληλισμό σωλήνων για να χωρίσει ένα μοντέλο μεταξύ των κρυφών επιπέδων ενός μοντέλου, ενώ το DeepSpeed χρησιμοποιεί παραλληλισμό τανυστών για να χωρίσει τα ίδια τα επίπεδα. Ο παραλληλισμός αγωγών είναι μια ευέλικτη προσέγγιση που υποστηρίζει περισσότερους τύπους μοντέλων και μπορεί να βελτιώσει την απόδοση όταν χρησιμοποιούνται μεγαλύτερα μεγέθη παρτίδων. Ο παραλληλισμός τανυστών απαιτεί περισσότερη επικοινωνία μεταξύ των GPU, επειδή τα επίπεδα μοντέλων μπορούν να κατανεμηθούν σε πολλές συσκευές, αλλά μπορεί να βελτιώσει την καθυστέρηση εξαγωγής συμπερασμάτων δεσμεύοντας πολλές GPU ταυτόχρονα. Μπορείτε να μάθετε περισσότερα για τις τεχνικές παραλληλισμού στο Εισαγωγή στον Παραλληλισμό Μοντέλων και Μοντέλο Παραλληλισμός.
Επισκόπηση λύσεων
Για να φιλοξενήσουμε αποτελεσματικά μεγάλα μοντέλα γλώσσας, χρειαζόμαστε δυνατότητες και υποστήριξη στους ακόλουθους βασικούς τομείς:
- Λύσεις κατασκευής και δοκιμής – Δεδομένης της επαναληπτικής φύσης της ανάπτυξης ML, χρειαζόμαστε τη δυνατότητα δημιουργίας, γρήγορης επανάληψης και δοκιμής πώς θα συμπεριφέρεται το τελικό σημείο συμπερασμάτων όταν φιλοξενούνται αυτά τα μοντέλα, συμπεριλαμβανομένης της δυνατότητας γρήγορης αποτυχίας. Αυτά τα μοντέλα μπορούν συνήθως να φιλοξενηθούν μόνο σε μεγαλύτερες παρουσίες όπως το p4dn ή το g5, και δεδομένου του μεγέθους των μοντέλων, μπορεί να χρειαστεί λίγος χρόνος για την περιστροφή μιας παρουσίας συμπερασμάτων και την εκτέλεση οποιασδήποτε δοκιμαστικής επανάληψης. Οι τοπικές δοκιμές συνήθως έχουν περιορισμούς επειδή χρειάζεστε παρόμοιο μέγεθος για δοκιμή και αυτά τα μοντέλα δεν είναι εύκολο να αποκτηθούν.
- Ανάπτυξη και λειτουργία σε κλίμακα – Τα αρχεία μοντέλων πρέπει να φορτωθούν στις περιπτώσεις συμπερασμάτων, γεγονός που αποτελεί από μόνο του μια πρόκληση δεδομένου του μεγέθους. Το Tar / Un-Tar ως παράδειγμα για το Bloom-176B χρειάζεται περίπου 1 ώρα για τη δημιουργία και άλλη μία ώρα για φόρτωση. Χρειαζόμαστε έναν εναλλακτικό μηχανισμό που θα επιτρέπει την εύκολη πρόσβαση στα αρχεία του μοντέλου.
- Φόρτωση του μοντέλου ως singleton – Για μια διαδικασία πολλών εργαζομένων, πρέπει να διασφαλίσουμε ότι το μοντέλο θα φορτωθεί μόνο μία φορά, ώστε να μην βρεθούμε σε συνθήκες αγώνα και να μην ξοδέψουμε περαιτέρω περιττούς πόρους. Σε αυτήν την ανάρτηση, δείχνουμε έναν τρόπο φόρτωσης απευθείας από Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3). Ωστόσο, αυτό λειτουργεί μόνο εάν χρησιμοποιήσουμε τις προεπιλεγμένες ρυθμίσεις του DJL. Επιπλέον, οποιαδήποτε κλιμάκωση των τελικών σημείων πρέπει να μπορεί να περιστρέφεται σε λίγα λεπτά, κάτι που απαιτεί επανεξέταση του τρόπου με τον οποίο θα μπορούσαν να φορτωθούν και να διανεμηθούν τα μοντέλα.
- Σκελετοί διαμοιρασμού – Αυτά τα μοντέλα πρέπει συνήθως να είναι , συνήθως με έναν μηχανισμό παραλληλισμού τανυστών ή με διαμοιρασμό σωλήνων ως τυπικές τεχνικές διαμοιρασμού, και έχουμε προηγμένες έννοιες όπως ο διαμοιρασμός ZeRO πάνω από τον διαμοιρασμό τανυστών. Για περισσότερες πληροφορίες σχετικά με τις τεχνικές διαμοιρασμού, ανατρέξτε στο Μοντέλο Παραλληλισμός. Για να το πετύχουμε αυτό, μπορούμε να έχουμε διάφορους συνδυασμούς και να χρησιμοποιήσουμε πλαίσια από NIVIDIA, DeepSpeed και άλλα. Αυτό απαιτεί τη δυνατότητα δοκιμής BYOC ή χρήσης δοχείων 1P και επανάληψης λύσεων και εκτέλεσης δοκιμών συγκριτικής αξιολόγησης. Μπορεί επίσης να θέλετε να δοκιμάσετε διάφορες επιλογές φιλοξενίας, όπως ασύγχρονη, χωρίς διακομιστή και άλλες.
- Επιλογή υλικού – Η επιλογή σας στο υλικό καθορίζεται από όλα τα προαναφερθέντα σημεία και περαιτέρω μοτίβα κυκλοφορίας, ανάγκες χρήσης και μεγέθη μοντέλων.
Σε αυτήν την ανάρτηση, χρησιμοποιούμε τους βελτιστοποιημένους πυρήνες και τις τεχνικές παραλληλισμού τανυστών του DeepSpeed για να φιλοξενήσουμε το BLOOM-176B και το OPT-30B στο SageMaker. Συγκρίνουμε επίσης αποτελέσματα από το Accelerate για να δείξουμε τα οφέλη απόδοσης των βελτιστοποιημένων πυρήνων και του παραλληλισμού τανυστών. Για περισσότερες πληροφορίες σχετικά με το DeepSpeed και το Accelerate, ανατρέξτε στο DeepSpeed Inference: Ενεργοποίηση αποτελεσματικής συναγωγής μοντέλων μετασχηματιστών σε πρωτοφανή κλίμακα και Απίστευτα γρήγορο συμπέρασμα BLOOM με DeepSpeed και Accelerate.
Χρησιμοποιούμε το DJLServing ως λύση εξυπηρέτησης μοντέλων σε αυτό το παράδειγμα. Το DJLServing είναι μια καθολική λύση εξυπηρέτησης μοντέλων υψηλής απόδοσης που υποστηρίζεται από τη Βιβλιοθήκη Deep Java (DJL) που είναι αγνωστική στη γλώσσα προγραμματισμού. Για να μάθετε περισσότερα σχετικά με το DJL και το DJLServing, ανατρέξτε στο Αναπτύξτε μεγάλα μοντέλα στο Amazon SageMaker χρησιμοποιώντας παράλληλη εξαγωγή συμπερασμάτων μοντέλων DJLServing και DeepSpeed.
Αξίζει να σημειωθεί ότι οι βελτιστοποιημένοι πυρήνες μπορούν να οδηγήσουν σε αλλαγές ακριβείας και ένα τροποποιημένο γράφημα υπολογισμού, το οποίο θα μπορούσε θεωρητικά να οδηγήσει σε αλλαγή της συμπεριφοράς του μοντέλου. Αν και αυτό θα μπορούσε περιστασιακά να αλλάξει το αποτέλεσμα συμπερασμάτων, δεν αναμένουμε ότι αυτές οι διαφορές θα επηρεάσουν ουσιαστικά τις βασικές μετρήσεις αξιολόγησης ενός μοντέλου. Ωστόσο, συνιστάται στους επαγγελματίες να επιβεβαιώσουν ότι τα αποτελέσματα του μοντέλου είναι τα αναμενόμενα όταν χρησιμοποιούν αυτούς τους πυρήνες.
Τα παρακάτω βήματα δείχνουν πώς να αναπτύξετε ένα μοντέλο BLOOM-176B στο SageMaker χρησιμοποιώντας το DJLServing και ένα κοντέινερ συμπερασμάτων μεγάλου μοντέλου SageMaker. Το πλήρες παράδειγμα είναι επίσης διαθέσιμο στο δικό μας Αποθετήριο GitHub.
Χρήση της εικόνας DJLServing SageMaker DLC
Χρησιμοποιήστε τον ακόλουθο κώδικα για να χρησιμοποιήσετε την εικόνα DJLServing SageMaker DLC αφού αντικαταστήσετε την περιοχή με τη συγκεκριμένη περιοχή στην οποία εκτελείτε το σημειωματάριο:
Δημιουργήστε το αρχείο μοντέλου μας
Αρχικά, δημιουργούμε ένα αρχείο που ονομάζεται serving.properties
που περιέχει μόνο μία γραμμή κώδικα. Αυτό λέει στον διακομιστή μοντέλου DJL να χρησιμοποιήσει τη μηχανή DeepSpeed. Το αρχείο περιέχει τον ακόλουθο κώδικα:
serving.properties
είναι ένα αρχείο που ορίζεται από το DJLServing και χρησιμοποιείται για τη διαμόρφωση των παραμέτρων ανά μοντέλο.
Στη συνέχεια, δημιουργούμε το δικό μας model.py
αρχείο, το οποίο καθορίζει τον κωδικό που απαιτείται για τη φόρτωση και μετά την προβολή του μοντέλου. Στον κώδικά μας, διαβάζουμε στο TENSOR_PARALLEL_DEGREE
μεταβλητή περιβάλλοντος (η προεπιλεγμένη τιμή είναι 1). Αυτό ορίζει τον αριθμό των συσκευών στις οποίες κατανέμονται οι παράλληλες μονάδες τανυστή. Σημειώστε ότι το DeepSpeed παρέχει μερικούς ενσωματωμένους ορισμούς διαμερισμάτων, συμπεριλαμβανομένου ενός για τα μοντέλα BLOOM. Το χρησιμοποιούμε προσδιορίζοντας replace_method
και relpace_with_kernel_inject
. Εάν έχετε ένα προσαρμοσμένο μοντέλο και χρειάζεστε το DeepSpeed για αποτελεσματική κατάτμηση, πρέπει να το αλλάξετε relpace_with_kernel_inject
προς την false
και προσθέστε injection_policy
για να λειτουργήσει το διαμέρισμα χρόνου εκτέλεσης. Για περισσότερες πληροφορίες, ανατρέξτε στο Αρχικοποίηση για συμπέρασμα. Για το παράδειγμά μας, χρησιμοποιήσαμε το προκατατμημένο μοντέλο BLOOM στο DeepSpeed.
Δεύτερον, στο model.py
αρχείο, φορτώνουμε επίσης το μοντέλο από το Amazon S3 μετά την περιστροφή του τελικού σημείου. Το μοντέλο φορτώνεται στο /tmp
χώρο στο κοντέινερ επειδή το SageMaker αντιστοιχίζει το /tmp
στο Κατάστημα Amazon Elastic Block τόμος (Amazon EBS) που προσαρτάται όταν καθορίζουμε την παράμετρο δημιουργίας τελικού σημείου VolumeSizeInGB
. Για περιπτώσεις όπως το p4dn, που έρχονται προκατασκευασμένα με την παρουσία όγκου, μπορούμε να συνεχίσουμε να αξιοποιούμε το /tmp
στο δοχείο. Δείτε τον παρακάτω κώδικα:
Το DJLServing διαχειρίζεται την εγκατάσταση χρόνου εκτέλεσης σε όλα τα πακέτα pip που ορίζονται στο requirement.txt
. Αυτό το αρχείο θα έχει:
Έχουμε δημιουργήσει έναν κατάλογο που ονομάζεται code
και την model.py
, serving.properties
, να requirements.txt
αρχεία έχουν ήδη δημιουργηθεί σε αυτόν τον κατάλογο. Για να προβάλετε τα αρχεία, μπορείτε να εκτελέσετε τον ακόλουθο κώδικα από το τερματικό:
Το παρακάτω σχήμα δείχνει τη δομή του model.tar.gz
.
Τέλος, δημιουργούμε το αρχείο μοντέλου και το ανεβάζουμε στο Amazon S3:
Λήψη και αποθήκευση του μοντέλου από το Hugging Face (Προαιρετικό)
Παρέχουμε τα βήματα σε αυτήν την ενότητα σε περίπτωση που θέλετε να κάνετε λήψη του μοντέλου στο Amazon S3 και να το χρησιμοποιήσετε από εκεί. Τα βήματα παρέχονται στο αρχείο Jupyter στο GitHub. Το παρακάτω στιγμιότυπο οθόνης δείχνει ένα στιγμιότυπο των βημάτων.
Δημιουργήστε ένα μοντέλο SageMaker
Τώρα δημιουργούμε ένα Μοντέλο SageMaker. Χρησιμοποιούμε το Μητρώο εμπορευματοκιβωτίων Amazon Elastic Εικόνα (Amazon ECR) που παρέχεται από και το τεχνούργημα του μοντέλου από το προηγούμενο βήμα για τη δημιουργία του μοντέλου SageMaker. Στη ρύθμιση μοντέλου, διαμορφώνουμε TENSOR_PARALLEL_DEGREE=8
, πράγμα που σημαίνει ότι το μοντέλο είναι χωρισμένο σε 8 GPU. Δείτε τον παρακάτω κώδικα:
Αφού εκτελέσετε το προηγούμενο κελί στο αρχείο Jupyter, βλέπετε την έξοδο παρόμοια με την ακόλουθη:
Δημιουργήστε ένα τελικό σημείο του SageMaker
Μπορείτε να χρησιμοποιήσετε οποιεσδήποτε παρουσίες με πολλές GPU για δοκιμές. Σε αυτήν την επίδειξη, χρησιμοποιούμε μια παρουσία p4d.24xlarge. Στον παρακάτω κώδικα, σημειώστε πώς ορίζουμε το ModelDataDownloadTimeoutInSeconds
, ContainerStartupHealthCheckTimeoutInSeconds
, να VolumeSizeInGB
παραμέτρους για την προσαρμογή του μεγάλου μεγέθους μοντέλου. ο VolumeSizeInGB
Η παράμετρος ισχύει για παρουσίες GPU που υποστηρίζουν το συνημμένο τόμο EBS.
Τέλος, δημιουργούμε ένα τελικό σημείο του SageMaker:
Το βλέπετε εκτυπωμένο στον παρακάτω κώδικα:
Η έναρξη του τελικού σημείου μπορεί να διαρκέσει λίγο. Μπορείτε να δοκιμάσετε μερικές ακόμη φορές εάν συναντήσετε το InsufficientInstanceCapacity
σφάλμα ή μπορείτε να υποβάλετε ένα αίτημα στο AWS για να αυξήσετε το όριο στον λογαριασμό σας.
Ρύθμιση απόδοσης
Εάν σκοπεύετε να χρησιμοποιήσετε αυτήν την ανάρτηση και το συνοδευτικό σημειωματάριο με διαφορετικό μοντέλο, ίσως θέλετε να εξερευνήσετε ορισμένες από τις ρυθμιζόμενες παραμέτρους που προσφέρουν το SageMaker, το DeepSpeed και το DJL. Ο επαναληπτικός πειραματισμός με αυτές τις παραμέτρους μπορεί να έχει σημαντικό αντίκτυπο στην καθυστέρηση, την απόδοση και το κόστος του μεγάλου μοντέλου που φιλοξενείτε. Για να μάθετε περισσότερα σχετικά με τις παραμέτρους συντονισμού, όπως ο αριθμός εργαζομένων, ο βαθμός παραλληλισμού τανυστών, το μέγεθος της ουράς εργασίας και άλλα, ανατρέξτε στο Ρυθμίσεις υπηρεσίας DJL και Αναπτύξτε μεγάλα μοντέλα στο Amazon SageMaker χρησιμοποιώντας παράλληλη εξαγωγή συμπερασμάτων μοντέλων DJLServing και DeepSpeed.
Αποτελέσματα
Σε αυτήν την ανάρτηση, χρησιμοποιήσαμε το DeepSpeed για να φιλοξενήσουμε το BLOOM-176B και το OPT-30B σε παρουσίες SageMaker ML. Ο παρακάτω πίνακας συνοψίζει τα αποτελέσματα απόδοσής μας, συμπεριλαμβανομένης μιας σύγκρισης με το Hugging Face's Accelerate. Η καθυστέρηση αντικατοπτρίζει τον αριθμό των χιλιοστών του δευτερολέπτου που χρειάζονται για να παραχθεί μια συμβολοσειρά 256-token τέσσερις φορές (batch_size=4
) από το μοντέλο. Η απόδοση αντικατοπτρίζει τον αριθμό των διακριτικών που παράγονται ανά δευτερόλεπτο για κάθε δοκιμή. Για το Hugging Face Accelerate, χρησιμοποιήσαμε την προεπιλεγμένη φόρτωση της βιβλιοθήκης με αντιστοίχιση μνήμης GPU. Για το DeepSpeed, χρησιμοποιήσαμε τον ταχύτερο μηχανισμό φόρτωσης σημείων ελέγχου.
Μοντέλο | Βιβλιοθήκη | Ακρίβεια μοντέλου | Μέγεθος παρτίδας | Παράλληλο Πτυχίο | Παράδειγμα | Ώρα για φόρτωση (Ων) |
Latency (Έξοδος διακριτικού 4 x 256) | . | ||
. | . | . | . | . | . | . | P50 (Κυρία) |
P90 (Κυρία) |
P99 (Κυρία) |
Διακίνηση (κουπόνια/δευτ.) |
BLOOM-176B | Βαθιά ταχύτητα | INT8 | 4 | 8 | p4d.24xlarge | 74.9 | 27,564 | 27,580 | 32,179 | 37.1 |
BLOOM-176B | Επιτάχυνση | INT8 | 4 | 8 | p4d.24xlarge | 669.4 | 92,694 | 92,735 | 103,292 | 11.0 |
OPT-30B | Βαθιά ταχύτητα | FP16 | 4 | 4 | g5.24xlarge | 239.4 | 11,299 | 11,302 | 11,576 | 90.6 |
OPT-30B | Επιτάχυνση | FP16 | 4 | 4 | g5.24xlarge | 533.8 | 63,734 | 63,737 | 67,605 | 16.1 |
Από την άποψη του λανθάνοντος χρόνου, το DeepSpeed είναι περίπου 3.4 φορές ταχύτερο για το BLOOM-176B και 5.6 φορές ταχύτερο για το OPT-30B από το Accelerate. Οι βελτιστοποιημένοι πυρήνες του DeepSpeed είναι υπεύθυνοι για μεγάλο μέρος αυτής της διαφοράς στην καθυστέρηση. Λαμβάνοντας υπόψη αυτά τα αποτελέσματα, συνιστούμε να χρησιμοποιήσετε το DeepSpeed over Accelerate εάν υποστηρίζεται το μοντέλο της επιλογής σας.
Αξίζει επίσης να σημειωθεί ότι οι χρόνοι φόρτωσης μοντέλων με το DeepSpeed ήταν πολύ μικρότεροι, γεγονός που το καθιστά καλύτερη επιλογή εάν προβλέπετε ότι χρειάζεται να αυξήσετε γρήγορα τον αριθμό των τελικών σημείων σας. Η πιο ευέλικτη τεχνική παραλληλισμού σωλήνων του Accelerate μπορεί να είναι καλύτερη επιλογή εάν διαθέτετε μοντέλα ή ακρίβεια μοντέλων που δεν υποστηρίζονται από το DeepSpeed.
Αυτά τα αποτελέσματα καταδεικνύουν επίσης τη διαφορά στην καθυστέρηση και την απόδοση διαφορετικών μεγεθών μοντέλων. Στις δοκιμές μας, το OPT-30B παράγει 2.4 φορές τον αριθμό των διακριτικών ανά μονάδα χρόνου από το BLOOM-176B σε έναν τύπο παρουσίας που είναι περισσότερο από τρεις φορές φθηνότερος. Με βάση την τιμή ανά μονάδα απόδοσης, το OPT-30B σε μια παρουσία g5.24xl είναι 8.9 φορές καλύτερο από το BLOOM-176B σε μια παρουσία p4d.24xl. Εάν έχετε αυστηρούς περιορισμούς καθυστέρησης, απόδοσης ή κόστους, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε το μικρότερο δυνατό μοντέλο που θα εξακολουθεί να ικανοποιεί λειτουργικές απαιτήσεις.
εκκαθάριση
Ως μέρος των βέλτιστων πρακτικών, συνιστάται πάντα η διαγραφή περιπτώσεων αδράνειας. Ο παρακάτω κώδικας σάς δείχνει πώς να διαγράψετε τις παρουσίες.
Προαιρετικά διαγράψτε το σημείο ελέγχου μοντέλου από το S3 σας
Συμπέρασμα
Σε αυτήν την ανάρτηση, δείξαμε πώς να χρησιμοποιείτε δοχεία συμπερασμάτων μεγάλων μοντέλων του SageMaker για να φιλοξενήσετε δύο μεγάλα μοντέλα γλώσσας, το BLOOM-176B και το OPT-30B. Χρησιμοποιήσαμε τις παράλληλες τεχνικές του μοντέλου DeepSpeed με πολλαπλές GPU σε μία μόνο παρουσία του SageMaker ML.
Για περισσότερες λεπτομέρειες σχετικά με το Amazon SageMaker και τις μεγάλες δυνατότητες συμπερασμάτων μοντέλων του, ανατρέξτε στο Το Amazon SageMaker υποστηρίζει πλέον την ανάπτυξη μεγάλων μοντέλων μέσω ρυθμιζόμενου μεγέθους όγκου και ορίων χρονικού ορίου και Συμπεράσματα σε πραγματικό χρόνο.
Σχετικά με τους συγγραφείς
Σάιμον Ζαμαρίν είναι ένας αρχιτέκτονας λύσεων AI / ML του οποίου η κύρια εστίαση είναι να βοηθά τους πελάτες να εξάγουν αξία από τα στοιχεία τους. Στον ελεύθερο χρόνο του, ο Simon απολαμβάνει να ξοδεύει χρόνο με την οικογένεια, να διαβάζει επιστημονικά και να εργάζεται σε διάφορα έργα σπιτιού DIY.
Ρούπιντερ Γκρέουαλ είναι Sr Ai/ML Specialist Solutions Architect με AWS. Επί του παρόντος εστιάζει στην εξυπηρέτηση μοντέλων και MLOps στο SageMaker. Πριν από αυτόν τον ρόλο έχει εργαστεί ως μηχανικός μηχανικής εκμάθησης μοντέλων κατασκευής και φιλοξενίας. Εκτός δουλειάς του αρέσει να παίζει τένις και να κάνει ποδήλατο σε ορεινά μονοπάτια.
Frank Liu είναι Μηχανικός Λογισμικού για AWS Deep Learning. Επικεντρώνεται στην κατασκευή καινοτόμων εργαλείων βαθιάς μάθησης για μηχανικούς και επιστήμονες λογισμικού. Στον ελεύθερο χρόνο του, απολαμβάνει πεζοπορία με φίλους και συγγενείς.
Άλαν Ταν είναι Ανώτερος Διευθυντής Προϊόντων με το SageMaker να ηγείται των προσπαθειών για εξαγωγή συμπερασμάτων μεγάλων μοντέλων. Είναι παθιασμένος με την εφαρμογή της Μηχανικής Μάθησης στον τομέα του Analytics. Εκτός δουλειάς, απολαμβάνει την ύπαιθρο.
Dhawal Patel είναι Κύριος Αρχιτέκτονας Μηχανικής Μάθησης στο AWS. Έχει συνεργαστεί με οργανισμούς που κυμαίνονται από μεγάλες επιχειρήσεις έως νεοφυείς επιχειρήσεις μεσαίου μεγέθους για προβλήματα που σχετίζονται με τους κατανεμημένους υπολογιστές και την Τεχνητή Νοημοσύνη. Εστιάζεται στη Deep Learning, συμπεριλαμβανομένων των τομέων NLP και Computer Vision. Βοηθά τους πελάτες να επιτύχουν συμπεράσματα μοντέλων υψηλής απόδοσης στο SageMaker.
Τσινγκ Λαν είναι Μηχανικός Ανάπτυξης Λογισμικού στην AWS. Έχει εργαστεί σε πολλά προκλητικά προϊόντα στο Amazon, συμπεριλαμβανομένων λύσεων συμπερασμάτων ML υψηλής απόδοσης και συστήματος καταγραφής υψηλής απόδοσης. Η ομάδα του Qing κυκλοφόρησε με επιτυχία το πρώτο μοντέλο δισεκατομμυρίων παραμέτρων στο Amazon Advertising με πολύ χαμηλό λανθάνοντα χρόνο που απαιτείται. Ο Qing έχει εις βάθος γνώση σχετικά με τη βελτιστοποίηση της υποδομής και την επιτάχυνση Deep Learning.
Κινγκγουέι Λι είναι ειδικός μηχανικής μάθησης στο Amazon Web Services. Έλαβε το διδακτορικό του στην Έρευνα Επιχειρήσεων αφού έσπασε τον λογαριασμό επιχορήγησης έρευνας του συμβούλου του και απέτυχε να παραδώσει το βραβείο Νόμπελ που υποσχέθηκε. Επί του παρόντος, βοηθά τους πελάτες του κλάδου των χρηματοοικονομικών υπηρεσιών και των ασφαλιστικών εταιρειών να δημιουργήσουν λύσεις μηχανικής μάθησης στο AWS. Στον ελεύθερο χρόνο του, του αρέσει να διαβάζει και να διδάσκει.
Robert Van Dusen είναι Ανώτερος Διευθυντής Προϊόντων με το Amazon SageMaker. Είναι επικεφαλής της βελτιστοποίησης μοντέλων βαθιάς μάθησης για εφαρμογές όπως η εξαγωγή συμπερασμάτων μεγάλων μοντέλων.
Σιντάρθ Βενκατεσάν είναι Μηχανικός Λογισμικού στο AWS Deep Learning. Επί του παρόντος εστιάζει στην κατασκευή λύσεων για εξαγωγή συμπερασμάτων μεγάλων μοντέλων. Πριν από το AWS εργάστηκε στον οργανισμό Amazon Grocery δημιουργώντας νέες δυνατότητες πληρωμής για πελάτες σε όλο τον κόσμο. Εκτός δουλειάς, του αρέσει το σκι, η ύπαιθρος και να παρακολουθεί αθλήματα.
- Για προχωρημένους (300)
- AI
- αι τέχνη
- ι γεννήτρια τέχνης
- ρομπότ ai
- Amazon Sage Maker
- τεχνητή νοημοσύνη
- πιστοποίηση τεχνητής νοημοσύνης
- τεχνητή νοημοσύνη στον τραπεζικό τομέα
- ρομπότ τεχνητής νοημοσύνης
- ρομπότ τεχνητής νοημοσύνης
- λογισμικό τεχνητής νοημοσύνης
- Μηχανική εκμάθηση AWS
- blockchain
- συνέδριο blockchain ai
- Coingenius
- συνομιλητική τεχνητή νοημοσύνη
- κρυπτοσυνεδριο αι
- του νταλ
- βαθιά μάθηση
- έχεις google
- μάθηση μηχανής
- Πλάτων
- πλάτων αι
- Πληροφορία δεδομένων Plato
- Παιχνίδι Πλάτωνας
- Πλάτωνα δεδομένα
- platogaming
- κλίμακα αι
- σύνταξη
- zephyrnet