Amazon Sage Maker τελικά σημεία πολλαπλών μοντέλων (MME) είναι μια πλήρως διαχειριζόμενη δυνατότητα συμπερασμάτων SageMaker που σας επιτρέπει να αναπτύξετε χιλιάδες μοντέλα σε ένα μόνο τελικό σημείο. Προηγουμένως, οι MME προκαθορισμένα κατανείμουν την υπολογιστική ισχύ της CPU στα μοντέλα, ανεξάρτητα από το φορτίο κίνησης του μοντέλου, χρησιμοποιώντας Διακομιστής πολλαπλών μοντέλων (MMS) ως διακομιστής μοντέλου του. Σε αυτήν την ανάρτηση, συζητάμε μια λύση στην οποία ένα MME μπορεί να προσαρμόσει δυναμικά την υπολογιστική ισχύ που εκχωρείται σε κάθε μοντέλο με βάση το μοτίβο κίνησης του μοντέλου. Αυτή η λύση σάς δίνει τη δυνατότητα να χρησιμοποιείτε τον υποκείμενο υπολογισμό των MME πιο αποτελεσματικά και να εξοικονομείτε κόστος.
Τα MME φορτώνουν και ξεφορτώνουν δυναμικά μοντέλα με βάση την εισερχόμενη κίνηση στο τελικό σημείο. Όταν χρησιμοποιούν MMS ως διακομιστή μοντέλων, τα MME εκχωρούν έναν σταθερό αριθμό εργαζομένων μοντέλων για κάθε μοντέλο. Για περισσότερες πληροφορίες, ανατρέξτε στο Μοτίβα φιλοξενίας μοντέλων στο Amazon SageMaker, Μέρος 3: Εκτέλεση και βελτιστοποίηση συμπερασμάτων πολλαπλών μοντέλων με τα τελικά σημεία πολλαπλών μοντέλων του Amazon SageMaker.
Ωστόσο, αυτό μπορεί να οδηγήσει σε ορισμένα προβλήματα όταν το μοτίβο επισκεψιμότητάς σας είναι μεταβλητό. Ας υποθέσουμε ότι έχετε ένα μοναδικό ή λίγα μοντέλα που λαμβάνουν μεγάλη επισκεψιμότητα. Μπορείτε να διαμορφώσετε το MMS ώστε να εκχωρεί μεγάλο αριθμό εργαζομένων για αυτά τα μοντέλα, αλλά αυτό εκχωρείται σε όλα τα μοντέλα πίσω από το MME επειδή είναι μια στατική διαμόρφωση. Αυτό οδηγεί σε μεγάλο αριθμό εργαζομένων που χρησιμοποιούν υπολογιστές υλικού—ακόμα και τα μοντέλα αδράνειας. Το αντίθετο πρόβλημα μπορεί να συμβεί εάν ορίσετε μια μικρή τιμή για τον αριθμό των εργαζομένων. Τα δημοφιλή μοντέλα δεν θα έχουν αρκετούς εργαζόμενους σε επίπεδο διακομιστή μοντέλων για να κατανείμουν σωστά αρκετό υλικό πίσω από το τελικό σημείο για αυτά τα μοντέλα. Το κύριο ζήτημα είναι ότι είναι δύσκολο να παραμείνετε αγνωστικοί στο μοτίβο επισκεψιμότητας εάν δεν μπορείτε να κλιμακώσετε δυναμικά τους εργαζομένους σας σε επίπεδο διακομιστή μοντέλου για να κατανείμουν την απαραίτητη ποσότητα υπολογισμού.
Η λύση που συζητάμε σε αυτήν την ανάρτηση χρησιμοποιεί DJLServing ως διακομιστής μοντέλων, ο οποίος μπορεί να βοηθήσει στον μετριασμό ορισμένων από τα ζητήματα που συζητήσαμε και να επιτρέψει την κλιμάκωση ανά μοντέλο και να επιτρέψει στα ΜΜΕ να είναι αγνωστικά μοτίβων επισκεψιμότητας.
Αρχιτεκτονική MME
Τα MME του SageMaker σάς δίνουν τη δυνατότητα να αναπτύξετε πολλά μοντέλα πίσω από ένα μόνο τελικό σημείο συμπερασμάτων που μπορεί να περιέχει μία ή περισσότερες παρουσίες. Κάθε παρουσία έχει σχεδιαστεί για να φορτώνει και να εξυπηρετεί πολλαπλά μοντέλα μέχρι τη μνήμη και τη χωρητικότητα της CPU/GPU. Με αυτήν την αρχιτεκτονική, μια επιχείρηση λογισμικού ως υπηρεσίας (SaaS) μπορεί να σπάσει το γραμμικά αυξανόμενο κόστος φιλοξενίας πολλαπλών μοντέλων και να επιτύχει επαναχρησιμοποίηση υποδομής σύμφωνα με το μοντέλο πολλαπλών μισθώσεων που εφαρμόζεται αλλού στη στοίβα εφαρμογών. Το παρακάτω διάγραμμα απεικονίζει αυτήν την αρχιτεκτονική.
Ένα SageMaker MME φορτώνει δυναμικά μοντέλα από Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) όταν γίνεται επίκληση, αντί να γίνεται λήψη όλων των μοντέλων όταν δημιουργείται για πρώτη φορά το τελικό σημείο. Ως αποτέλεσμα, μια αρχική επίκληση σε ένα μοντέλο μπορεί να δει υψηλότερο λανθάνοντα χρόνο συμπερασμάτων από τα επόμενα συμπεράσματα, τα οποία ολοκληρώνονται με χαμηλό λανθάνοντα χρόνο. Εάν το μοντέλο έχει ήδη φορτωθεί στο κοντέινερ κατά την κλήση, τότε το βήμα λήψης παραλείπεται και το μοντέλο επιστρέφει τα συμπεράσματα με χαμηλή καθυστέρηση. Για παράδειγμα, υποθέστε ότι έχετε ένα μοντέλο που χρησιμοποιείται μόνο λίγες φορές την ημέρα. Φορτώνεται αυτόματα κατ' απαίτηση, ενώ τα μοντέλα με συχνή πρόσβαση διατηρούνται στη μνήμη και καλούνται με σταθερά χαμηλή καθυστέρηση.
Πίσω από κάθε MME υπάρχουν στιγμιότυπα φιλοξενίας μοντέλων, όπως απεικονίζεται στο παρακάτω διάγραμμα. Αυτά τα στιγμιότυπα φορτώνουν και εξάγουν πολλά μοντέλα προς και από τη μνήμη με βάση τα μοτίβα κυκλοφορίας στα μοντέλα.
Το SageMaker συνεχίζει να δρομολογεί αιτήματα συμπερασμάτων για ένα μοντέλο στην περίπτωση όπου το μοντέλο έχει ήδη φορτωθεί έτσι ώστε τα αιτήματα να εξυπηρετούνται από ένα αποθηκευμένο αντίγραφο μοντέλου (δείτε το ακόλουθο διάγραμμα, το οποίο δείχνει τη διαδρομή αιτήματος για το πρώτο αίτημα πρόβλεψης σε σχέση με την προσωρινή πρόβλεψη διαδρομή αιτήματος). Ωστόσο, εάν το μοντέλο λάβει πολλά αιτήματα επίκλησης και υπάρχουν πρόσθετες περιπτώσεις για το MME, το SageMaker δρομολογεί ορισμένα αιτήματα σε άλλη παρουσία για να ικανοποιήσει την αύξηση. Για να επωφεληθείτε από την αυτοματοποιημένη κλιμάκωση μοντέλων στο SageMaker, βεβαιωθείτε ότι έχετε ρύθμιση αυτόματης κλιμάκωσης για την παροχή πρόσθετης χωρητικότητας παρουσίας. Ρυθμίστε την πολιτική κλιμάκωσης σε επίπεδο τελικού σημείου είτε με προσαρμοσμένες παραμέτρους είτε με επικλήσεις ανά λεπτό (συνιστάται) για να προσθέσετε περισσότερες παρουσίες στον στόλο τελικών σημείων.
Επισκόπηση διακομιστή μοντέλου
Ένας διακομιστής μοντέλου είναι ένα στοιχείο λογισμικού που παρέχει ένα περιβάλλον χρόνου εκτέλεσης για την ανάπτυξη και εξυπηρέτηση μοντέλων μηχανικής εκμάθησης (ML). Λειτουργεί ως διεπαφή μεταξύ των εκπαιδευμένων μοντέλων και των εφαρμογών πελατών που θέλουν να κάνουν προβλέψεις χρησιμοποιώντας αυτά τα μοντέλα.
Ο πρωταρχικός σκοπός ενός διακομιστή μοντέλων είναι να επιτρέπει την αβίαστη ενσωμάτωση και την αποτελεσματική ανάπτυξη μοντέλων ML στα συστήματα παραγωγής. Αντί να ενσωματώνει το μοντέλο απευθείας σε μια εφαρμογή ή ένα συγκεκριμένο πλαίσιο, ο διακομιστής μοντέλου παρέχει μια κεντρική πλατφόρμα όπου μπορούν να αναπτυχθούν, να διαχειριστούν και να εξυπηρετηθούν πολλαπλά μοντέλα.
Οι διακομιστές μοντέλων προσφέρουν συνήθως τις ακόλουθες λειτουργίες:
- Φόρτωση μοντέλου – Ο διακομιστής φορτώνει τα εκπαιδευμένα μοντέλα ML στη μνήμη, καθιστώντας τα έτοιμα για προβλέψεις προβολής.
- Inference API – Ο διακομιστής εκθέτει ένα API που επιτρέπει στις εφαρμογές-πελάτες να στέλνουν δεδομένα εισόδου και να λαμβάνουν προβλέψεις από τα αναπτυγμένα μοντέλα.
- Απολέπιση – Οι διακομιστές μοντέλων έχουν σχεδιαστεί για να χειρίζονται ταυτόχρονα αιτήματα από πολλούς πελάτες. Παρέχουν μηχανισμούς για παράλληλη επεξεργασία και αποτελεσματική διαχείριση των πόρων για την εξασφάλιση υψηλής απόδοσης και χαμηλής καθυστέρησης.
- Ενσωμάτωση με κινητήρες υποστήριξης – Οι διακομιστές μοντέλων έχουν ενσωματώσεις με πλαίσια υποστήριξης όπως το DeepSpeed και το FasterTransformer για να χωρίσουν μεγάλα μοντέλα και να εκτελούν εξαιρετικά βελτιστοποιημένες συμπερασίες.
Αρχιτεκτονική DJL
Σερβίρισμα DJL είναι ένας διακομιστής γενικού μοντέλου ανοιχτού κώδικα, υψηλής απόδοσης. Η υπηρεσία DJL είναι χτισμένη πάνω από Τζλ, μια βιβλιοθήκη βαθιάς εκμάθησης γραμμένη στη γλώσσα προγραμματισμού Java. Μπορεί να λάβει ένα μοντέλο βαθιάς εκμάθησης, πολλά μοντέλα ή ροές εργασίας και να τα καταστήσει διαθέσιμα μέσω ενός τελικού σημείου HTTP. Το DJL Serving υποστηρίζει την ανάπτυξη μοντέλων από πολλαπλά πλαίσια όπως PyTorch, TensorFlow, Apache MXNet, ONNX, TensorRT, Hugging Face Transformers, DeepSpeed, FasterTransformer και άλλα.
Το DJL Serving προσφέρει πολλές δυνατότητες που σας επιτρέπουν να αναπτύξετε τα μοντέλα σας με υψηλή απόδοση:
- Ευκολία στη χρήση – Το DJL Serving μπορεί να εξυπηρετήσει τα περισσότερα μοντέλα εκτός συσκευασίας. Απλώς φέρτε τα τεχνουργήματα του μοντέλου και το DJL Serving μπορεί να τα φιλοξενήσει.
- Υποστήριξη πολλαπλών συσκευών και επιταχυντή – Το DJL Serving υποστηρίζει την ανάπτυξη μοντέλων σε CPU, GPU και Αίσθηση AWS.
- επίδοση – Η υπηρεσία DJL εκτελεί συμπεράσματα πολλαπλών νημάτων σε ένα μόνο JVM για την ενίσχυση της απόδοσης.
- Δυναμική παρτίδα – Η υπηρεσία DJL υποστηρίζει δυναμική παρτίδα για αύξηση της απόδοσης.
- Αυτόματη κλιμάκωση – Η υπηρεσία DJL θα κλιμακώσει αυτόματα τους εργαζομένους πάνω-κάτω ανάλογα με τον κυκλοφοριακό φόρτο.
- Υποστήριξη πολλαπλών κινητήρων – Η υπηρεσία DJL μπορεί να φιλοξενήσει ταυτόχρονα μοντέλα χρησιμοποιώντας διαφορετικά πλαίσια (όπως PyTorch και TensorFlow).
- Μοντέλα συνόλου και ροής εργασίας – Το DJL Serving υποστηρίζει την ανάπτυξη πολύπλοκων ροών εργασίας που αποτελούνται από πολλά μοντέλα και εκτελεί τμήματα της ροής εργασίας σε CPU και μέρη σε GPU. Τα μοντέλα σε μια ροή εργασίας μπορούν να χρησιμοποιούν διαφορετικά πλαίσια.
Ειδικότερα, η δυνατότητα αυτόματης κλιμάκωσης του DJL Serving καθιστά εύκολη τη διασφάλιση της κατάλληλης κλίμακας των μοντέλων για την εισερχόμενη κίνηση. Από προεπιλογή, το DJL Serving καθορίζει τον μέγιστο αριθμό εργαζομένων για ένα μοντέλο που μπορεί να υποστηριχθεί με βάση το διαθέσιμο υλικό (πυρήνες CPU, συσκευές GPU). Μπορείτε να ορίσετε κατώτερα και ανώτερα όρια για κάθε μοντέλο για να βεβαιωθείτε ότι μπορεί πάντα να εξυπηρετείται ένα ελάχιστο επίπεδο επισκεψιμότητας και ότι ένα μεμονωμένο μοντέλο δεν καταναλώνει όλους τους διαθέσιμους πόρους.
Η υπηρεσία DJL χρησιμοποιεί α Netty μπροστινό μέρος πάνω από ομαδικές ομάδες νημάτων εργαζομένων. Το frontend χρησιμοποιεί μια ενιαία εγκατάσταση Netty με πολλαπλές HttpRequestHandlers. Διαφορετικοί χειριστές αιτημάτων θα παρέχουν υποστήριξη για το Inference API, Διαχείριση API, ή άλλα API διαθέσιμα από διάφορες προσθήκες.
Το backend βασίζεται γύρω από το WorkLoadManager μονάδα (WLM). Το WLM φροντίζει για πολλαπλά νήματα εργαζομένων για κάθε μοντέλο μαζί με τη δέσμευση και τη δρομολόγηση αιτημάτων σε αυτά. Όταν εξυπηρετούνται πολλά μοντέλα, το WLM ελέγχει πρώτα το μέγεθος της ουράς αιτημάτων συμπερασμάτων για κάθε μοντέλο. Εάν το μέγεθος της ουράς είναι μεγαλύτερο από δύο φορές το μέγεθος παρτίδας ενός μοντέλου, το WLM κλιμακώνει τον αριθμό των εργαζομένων που έχουν ανατεθεί σε αυτό το μοντέλο.
Επισκόπηση λύσεων
Η υλοποίηση του DJL με ένα MME διαφέρει από την προεπιλεγμένη ρύθμιση MMS. Για την υπηρεσία DJL με ένα MME, συμπιέζουμε τα ακόλουθα αρχεία στη μορφή model.tar.gz που περιμένει το SageMaker Inference:
- μοντέλο.joblib – Για αυτήν την υλοποίηση, προωθούμε απευθείας τα μεταδεδομένα του μοντέλου στο tarball. Σε αυτή την περίπτωση, εργαζόμαστε με α
.joblib
αρχείο, οπότε παρέχουμε αυτό το αρχείο στο tarball μας για ανάγνωση του σεναρίου συμπερασμάτων μας. Εάν το τεχνούργημα είναι πολύ μεγάλο, μπορείτε επίσης να το σπρώξετε στο Amazon S3 και να δείξετε προς αυτό στη διαμόρφωση υπηρεσίας που ορίζετε για το DJL. - σερβίρισμα.ιδιοκτησίες – Εδώ μπορείτε να διαμορφώσετε οποιοδήποτε μοντέλο που σχετίζεται με διακομιστή μεταβλητές περιβάλλοντος. Η δύναμη του DJL εδώ είναι ότι μπορείτε να διαμορφώσετε
minWorkers
καιmaxWorkers
για κάθε μοντέλο tarball. Αυτό επιτρέπει σε κάθε μοντέλο να κλιμακώνεται προς τα πάνω και προς τα κάτω σε επίπεδο διακομιστή μοντέλου. Για παράδειγμα, εάν ένα μοναδικό μοντέλο λαμβάνει το μεγαλύτερο μέρος της κίνησης για ένα MME, ο διακομιστής μοντέλου θα κλιμακώσει τους εργαζόμενους δυναμικά. Σε αυτό το παράδειγμα, δεν διαμορφώνουμε αυτές τις μεταβλητές και αφήνουμε την DJL να καθορίσει τον απαραίτητο αριθμό εργαζομένων ανάλογα με το μοτίβο επισκεψιμότητάς μας. - model.py – Αυτό είναι το σενάριο συμπερασμάτων για οποιαδήποτε προσαρμοσμένη προεπεξεργασία ή μεταεπεξεργασία που θέλετε να εφαρμόσετε. Το model.py αναμένει ότι η λογική σας θα ενσωματωθεί σε μια μέθοδο χειρισμού από προεπιλογή.
- απαιτήσεις.txt (προαιρετικό) – Από προεπιλογή, το DJL είναι εγκατεστημένο με το PyTorch, αλλά οποιεσδήποτε πρόσθετες εξαρτήσεις χρειάζεστε μπορούν να προωθηθούν εδώ.
Για αυτό το παράδειγμα, παρουσιάζουμε τη δύναμη του DJL με ένα MME λαμβάνοντας ένα δείγμα μοντέλου SKLearn. Εκτελούμε μια εργασία εκπαίδευσης με αυτό το μοντέλο και στη συνέχεια δημιουργούμε 1,000 αντίγραφα αυτού του τεχνουργήματος μοντέλου για να υποστηρίξουμε το MME μας. Στη συνέχεια, δείχνουμε πώς το DJL μπορεί να κλιμακωθεί δυναμικά για να χειριστεί οποιοδήποτε τύπο μοτίβου κίνησης που μπορεί να λάβει το MME σας. Αυτό μπορεί να περιλαμβάνει μια ομοιόμορφη κατανομή της επισκεψιμότητας σε όλα τα μοντέλα ή ακόμη και σε μερικά δημοφιλή μοντέλα που λαμβάνουν το μεγαλύτερο μέρος της επισκεψιμότητας. Μπορείτε να βρείτε όλο τον κώδικα στα παρακάτω GitHub repo.
Προϋποθέσεις
Για αυτό το παράδειγμα, χρησιμοποιούμε μια παρουσία φορητού υπολογιστή SageMaker με πυρήνα conda_python3 και παράδειγμα ml.c5.xlarge. Για να εκτελέσετε τις δοκιμές φορτίου, μπορείτε να χρησιμοποιήσετε ένα Amazon Elastic Compute Cloud παράδειγμα (Amazon EC2) ή μεγαλύτερο παράδειγμα φορητού υπολογιστή SageMaker. Σε αυτό το παράδειγμα, κλιμακώνουμε σε περισσότερες από χίλιες συναλλαγές ανά δευτερόλεπτο (TPS), επομένως προτείνουμε τη δοκιμή σε ένα βαρύτερο στιγμιότυπο EC2, όπως ένα ml.c5.18xlarge, ώστε να έχετε περισσότερους υπολογισμούς για να εργαστείτε.
Δημιουργήστε ένα τεχνούργημα μοντέλου
Πρώτα πρέπει να δημιουργήσουμε το τεχνούργημα του μοντέλου μας και τα δεδομένα που χρησιμοποιούμε σε αυτό το παράδειγμα. Για αυτήν την περίπτωση, δημιουργούμε ορισμένα τεχνητά δεδομένα με το NumPy και εκπαιδεύουμε χρησιμοποιώντας ένα μοντέλο γραμμικής παλινδρόμησης SKLearn με το ακόλουθο απόσπασμα κώδικα:
Αφού εκτελέσετε τον προηγούμενο κώδικα, θα πρέπει να έχετε ένα model.joblib
αρχείο που δημιουργήθηκε στο τοπικό σας περιβάλλον.
Τραβήξτε την εικόνα DJL Docker
Το Docker image djl-inference:0.23.0-cpu-full-v1.0 είναι το κοντέινερ εξυπηρέτησης DJL που χρησιμοποιείται σε αυτό το παράδειγμα. Μπορείτε να προσαρμόσετε την ακόλουθη διεύθυνση URL ανάλογα με την περιοχή σας:
inference_image_uri = "474422712127.dkr.ecr.us-east-1.amazonaws.com/djl-serving-cpu:latest"
Προαιρετικά, μπορείτε επίσης να χρησιμοποιήσετε αυτήν την εικόνα ως εικόνα βάσης και να την επεκτείνετε για να δημιουργήσετε τη δική σας εικόνα Docker Μητρώο εμπορευματοκιβωτίων Amazon Elastic (Amazon ECR) με οποιεσδήποτε άλλες εξαρτήσεις χρειάζεστε.
Δημιουργήστε το αρχείο μοντέλου
Αρχικά, δημιουργούμε ένα αρχείο που ονομάζεται serving.properties
. Αυτό δίνει εντολή στο DJLServing να χρησιμοποιήσει τη μηχανή Python. Ορίζουμε επίσης το max_idle_time
ενός εργάτη να είναι 600 δευτερόλεπτα. Αυτό διασφαλίζει ότι χρειαζόμαστε περισσότερο χρόνο για να μειώσουμε τον αριθμό των εργαζομένων που έχουμε ανά μοντέλο. Δεν προσαρμοζόμαστε minWorkers
και maxWorkers
που μπορούμε να ορίσουμε και αφήνουμε την DJL να υπολογίσει δυναμικά τον αριθμό των εργαζομένων που χρειάζονται ανάλογα με την κίνηση που λαμβάνει κάθε μοντέλο. Οι ιδιότητες του serving.properties εμφανίζονται ως εξής. Για να δείτε την πλήρη λίστα των επιλογών διαμόρφωσης, ανατρέξτε στο Διαμόρφωση κινητήρα.
Στη συνέχεια, δημιουργούμε το αρχείο model.py, το οποίο καθορίζει τη λογική φόρτωσης και συμπερασμάτων μοντέλου. Για MME, κάθε αρχείο model.py είναι συγκεκριμένο για ένα μοντέλο. Τα μοντέλα αποθηκεύονται στις δικές τους διαδρομές κάτω από το χώρο αποθήκευσης μοντέλων (συνήθως /opt/ml/model/
). Κατά τη φόρτωση μοντέλων, θα φορτωθούν κάτω από τη διαδρομή αποθήκευσης μοντέλων στον δικό τους κατάλογο. Το πλήρες παράδειγμα model.py σε αυτήν την επίδειξη μπορείτε να το δείτε στο GitHub repo.
Δημιουργούμε ένα model.tar.gz
αρχείο που περιλαμβάνει το μοντέλο μας (model.joblib
), model.py
, να serving.properties
:
Για λόγους επίδειξης, κάνουμε 1,000 αντίγραφα του ίδιου model.tar.gz
αρχείο για να αντιπροσωπεύει τον μεγάλο αριθμό μοντέλων που θα φιλοξενηθούν. Στην παραγωγή, πρέπει να δημιουργήσετε ένα model.tar.gz
αρχείο για κάθε μοντέλο σας.
Τέλος, ανεβάζουμε αυτά τα μοντέλα στο Amazon S3.
Δημιουργήστε ένα μοντέλο SageMaker
Τώρα δημιουργούμε ένα Μοντέλο SageMaker. Χρησιμοποιούμε την εικόνα ECR που ορίστηκε νωρίτερα και το τεχνούργημα μοντέλου από το προηγούμενο βήμα για να δημιουργήσουμε το μοντέλο SageMaker. Στη ρύθμιση μοντέλου, διαμορφώνουμε τη λειτουργία ως MultiModel. Αυτό λέει στο DJLServing ότι δημιουργούμε ένα MME.
Δημιουργήστε ένα τελικό σημείο του SageMaker
Σε αυτήν την επίδειξη, χρησιμοποιούμε 20 ml.c5d.18xlarge στιγμιότυπα για κλιμάκωση σε TPS στο εύρος χιλιάδων. Φροντίστε να λάβετε μια αύξηση ορίου στον τύπο της παρουσίας σας, εάν είναι απαραίτητο, για να επιτύχετε το TPS που στοχεύετε.
Δοκιμή φόρτωσης
Κατά τη στιγμή της γραφής, το εσωτερικό εργαλείο δοκιμής φορτίου SageMaker Amazon SageMaker Inference Recommender δεν υποστηρίζει εγγενώς δοκιμές για MME. Επομένως, χρησιμοποιούμε το εργαλείο ανοιχτού κώδικα Python Ακρίδα. Το Locust είναι εύκολο στη ρύθμιση και μπορεί να παρακολουθεί μετρήσεις όπως το TPS και τον λανθάνοντα χρόνο από άκρο σε άκρο. Για πλήρη κατανόηση του τρόπου ρύθμισης με το SageMaker, βλ Βέλτιστες πρακτικές για τη δοκιμή φόρτωσης τελικών σημείων συμπερασμάτων σε πραγματικό χρόνο του Amazon SageMaker.
Σε αυτήν την περίπτωση χρήσης, έχουμε τρία διαφορετικά μοτίβα κίνησης που θέλουμε να προσομοιώσουμε με MME, επομένως έχουμε τα ακόλουθα τρία σενάρια Python που ευθυγραμμίζονται με κάθε μοτίβο. Στόχος μας εδώ είναι να αποδείξουμε ότι, ανεξάρτητα από το μοτίβο επισκεψιμότητάς μας, μπορούμε να επιτύχουμε τον ίδιο στόχο TPS και να κλιμακώσουμε κατάλληλα.
Μπορούμε να καθορίσουμε ένα βάρος στο σενάριο Locust για να εκχωρήσουμε επισκεψιμότητα σε διαφορετικά τμήματα των μοντέλων μας. Για παράδειγμα, με το single hot μοντέλο μας, εφαρμόζουμε δύο μεθόδους ως εξής:
Στη συνέχεια, μπορούμε να αντιστοιχίσουμε ένα συγκεκριμένο βάρος σε κάθε μέθοδο, δηλαδή όταν μια συγκεκριμένη μέθοδος λαμβάνει ένα συγκεκριμένο ποσοστό της επισκεψιμότητας:
Για 20 ml.c5d.18xlarge περιπτώσεις, βλέπουμε τις ακόλουθες μετρήσεις επίκλησης στο amazoncloudwatch κονσόλα. Αυτές οι τιμές παραμένουν αρκετά συνεπείς και στα τρία μοτίβα επισκεψιμότητας. Για να κατανοήσετε καλύτερα τις μετρήσεις του CloudWatch για συμπέρασμα σε πραγματικό χρόνο SageMaker και MME, ανατρέξτε στο Μετρήσεις επίκλησης τελικού σημείου SageMaker.
Μπορείτε να βρείτε τα υπόλοιπα σενάρια Locust στο κατάλογος locus-utils στο αποθετήριο GitHub.
Χαρακτηριστικά
Σε αυτήν την ανάρτηση, συζητήσαμε πώς ένα MME μπορεί να προσαρμόσει δυναμικά την υπολογιστική ισχύ που εκχωρείται σε κάθε μοντέλο με βάση το μοτίβο κίνησης του μοντέλου. Αυτή η λειτουργία που κυκλοφόρησε πρόσφατα είναι διαθέσιμη σε όλες τις Περιφέρειες AWS όπου είναι διαθέσιμο το SageMaker. Σημειώστε ότι τη στιγμή της ανακοίνωσης, υποστηρίζονται μόνο παρουσίες CPU. Για να μάθετε περισσότερα, ανατρέξτε στο Υποστηριζόμενοι αλγόριθμοι, πλαίσια και παρουσίες.
Σχετικά με τους Συγγραφείς
Ram Vegiraju είναι αρχιτέκτονας ML με την ομάδα του SageMaker Service. Επικεντρώνεται στο να βοηθά τους πελάτες να δημιουργήσουν και να βελτιστοποιήσουν τις λύσεις AI/ML τους στο Amazon SageMaker. Στον ελεύθερο χρόνο του λατρεύει τα ταξίδια και το γράψιμο.
Κινγκγουέι Λι είναι ειδικός μηχανικής μάθησης στο Amazon Web Services. Έλαβε το διδακτορικό του στην Έρευνα Επιχειρήσεων αφού έσπασε τον λογαριασμό επιχορήγησης έρευνας του συμβούλου του και απέτυχε να παραδώσει το βραβείο Νόμπελ που υποσχέθηκε. Επί του παρόντος, βοηθά τους πελάτες του κλάδου των χρηματοοικονομικών υπηρεσιών και των ασφαλιστικών εταιρειών να δημιουργήσουν λύσεις μηχανικής μάθησης στο AWS. Στον ελεύθερο χρόνο του, του αρέσει να διαβάζει και να διδάσκει.
Τζέιμς Γου είναι Senior AI/ML Specialist Solution Architect στο AWS. βοηθώντας τους πελάτες να σχεδιάσουν και να δημιουργήσουν λύσεις AI/ML. Το έργο του James καλύπτει ένα ευρύ φάσμα περιπτώσεων χρήσης ML, με πρωταρχικό ενδιαφέρον για την όραση υπολογιστών, τη βαθιά μάθηση και την κλιμάκωση της ML σε όλη την επιχείρηση. Πριν από την ένταξή του στην AWS, ο James ήταν αρχιτέκτονας, προγραμματιστής και ηγέτης τεχνολογίας για περισσότερα από 10 χρόνια, συμπεριλαμβανομένων 6 ετών στη μηχανική και 4 ετών σε βιομηχανίες μάρκετινγκ και διαφήμισης.
Saurabh Trikande είναι Ανώτερος Διευθυντής Προϊόντων για το Amazon SageMaker Inference. Είναι παθιασμένος με τη συνεργασία με πελάτες και παρακινείται από τον στόχο του εκδημοκρατισμού της μηχανικής μάθησης. Εστιάζει στις βασικές προκλήσεις που σχετίζονται με την ανάπτυξη πολύπλοκων εφαρμογών ML, μοντέλων ML πολλαπλών μισθωτών, βελτιστοποιήσεις κόστους και καθιστώντας την ανάπτυξη μοντέλων βαθιάς μάθησης πιο προσιτή. Στον ελεύθερο χρόνο του, ο Saurabh απολαμβάνει την πεζοπορία, μαθαίνει για καινοτόμες τεχνολογίες, ακολουθεί το TechCrunch και περνά χρόνο με την οικογένειά του.
Xu Deng είναι Διευθυντής Μηχανικού Λογισμικού με την ομάδα SageMaker. Επικεντρώνεται στο να βοηθά τους πελάτες να δημιουργήσουν και να βελτιστοποιήσουν την εμπειρία συμπερασμάτων AI/ML στο Amazon SageMaker. Στον ελεύθερο χρόνο του, λατρεύει τα ταξίδια και το snowboard.
Σιντάρθ Βενκατεσάν είναι Μηχανικός Λογισμικού στο AWS Deep Learning. Επί του παρόντος εστιάζει στην κατασκευή λύσεων για εξαγωγή συμπερασμάτων μεγάλων μοντέλων. Πριν από το AWS εργάστηκε στον οργανισμό Amazon Grocery δημιουργώντας νέες δυνατότητες πληρωμής για πελάτες σε όλο τον κόσμο. Εκτός δουλειάς, του αρέσει το σκι, η ύπαιθρος και να παρακολουθεί αθλήματα.
Rohith Nallamaddi είναι Μηχανικός Ανάπτυξης Λογισμικού στην AWS. Εργάζεται στη βελτιστοποίηση του φόρτου εργασίας βαθιάς εκμάθησης σε GPU, στη δημιουργία συμπερασμάτων ML υψηλής απόδοσης και σε λύσεις εξυπηρέτησης. Πριν από αυτό, εργάστηκε στην κατασκευή μικροϋπηρεσιών με βάση το AWS για τις επιχειρήσεις Amazon F3. Εκτός δουλειάς του αρέσει να παίζει και να παρακολουθεί αθλήματα.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- PlatoData.Network Vertical Generative Ai. Ενδυναμώστε τον εαυτό σας. Πρόσβαση εδώ.
- PlatoAiStream. Web3 Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- PlatoESG. Ανθρακας, Cleantech, Ενέργεια, Περιβάλλον, Ηλιακός, Διαχείριση των αποβλήτων. Πρόσβαση εδώ.
- PlatoHealth. Ευφυΐα βιοτεχνολογίας και κλινικών δοκιμών. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/machine-learning/run-ml-inference-on-unplanned-and-spiky-traffic-using-amazon-sagemaker-multi-model-endpoints/
- :είναι
- :που
- $UP
- 000
- 1
- 10
- 100
- 116
- 118
- 12
- 16
- 17
- 20
- 23
- 31
- 600
- 7
- 9
- a
- Σχετικα
- επιταχυντής
- πρόσβαση
- προσιτός
- φιλοξενώ
- Λογαριασμός
- Κατορθώνω
- απέναντι
- πράξεις
- προσθέτω
- Πρόσθετος
- Πλεονέκτημα
- Διαφήμιση
- Μετά το
- AI / ML
- αλγόριθμοι
- ευθυγράμμιση
- Όλα
- διανέμω
- διατεθεί
- επιτρέπουν
- επιτρέπει
- κατά μήκος
- ήδη
- Επίσης
- πάντοτε
- Amazon
- Amazon EC2
- Amazon Sage Maker
- Amazon υπηρεσίες Web
- ποσό
- an
- και
- Ανακοίνωσεις
- Άλλος
- κάθε
- Apache
- api
- APIs
- Εφαρμογή
- εφαρμογές
- εφαρμοσμένος
- κατάλληλα
- αρχιτεκτονική
- ΕΙΝΑΙ
- γύρω
- τεχνητός
- AS
- ανατεθεί
- υποθέτω
- At
- αυτόματη
- Αυτοματοποιημένη
- αυτομάτως
- διαθέσιμος
- AWS
- πίσω
- Backend
- βάση
- βασίζονται
- δοσοληψία
- BE
- επειδή
- πίσω
- Καλύτερα
- μεταξύ
- σώμα
- ώθηση
- όρια
- Κουτί
- Διακοπή
- φέρω
- έσπασε
- χτίζω
- Κτίριο
- χτισμένο
- επιχείρηση
- αλλά
- by
- που ονομάζεται
- CAN
- ικανότητα
- Χωρητικότητα
- ο οποίος
- περίπτωση
- περιπτώσεις
- κύτταρο
- κεντρική
- ορισμένες
- προκλήσεις
- έλεγχοι
- τάξη
- πελάτης
- πελάτες
- κωδικός
- έρχεται
- πλήρης
- Ολοκληρώθηκε το
- συγκρότημα
- συστατικό
- Αποτελείται
- Υπολογίστε
- υπολογιστή
- Computer Vision
- χρήση υπολογιστή
- υπολογιστική ισχύ
- ανταγωνιστής
- διαμόρφωση
- συνεπής
- με συνέπεια
- πρόξενος
- καταναλώνουν
- περιέχουν
- Δοχείο
- συμφραζόμενα
- συνεχίζεται
- πυρήνας
- Κόστος
- Δικαστικά έξοδα
- Καλύμματα
- δημιουργία
- δημιουργήθηκε
- δημιουργία
- Τη στιγμή
- έθιμο
- Πελάτες
- ημερομηνία
- ημέρα
- βαθύς
- βαθιά μάθηση
- Προεπιλογή
- ορίζεται
- ορίζεται
- Ορίζει
- παραδώσει
- Ζήτηση
- διαδήλωση
- Δημοκρατικός
- εξαρτήσεις
- Σε συνάρτηση
- απεικονίζεται
- παρατάσσω
- αναπτυχθεί
- ανάπτυξη
- ανάπτυξη
- Υπηρεσίες
- σχεδιασμένα
- Προσδιορίστε
- καθορίζει
- Εργολάβος
- Ανάπτυξη
- συσκευή
- Συσκευές
- διάγραμμα
- διαφορετικές
- δύσκολος
- κατευθείαν
- κατάλογο
- συζητήσουν
- συζήτηση
- διανομή
- Λιμενεργάτης
- Όχι
- Μην
- κάτω
- κατεβάσετε
- κατέβασμα
- δυναμικός
- δυναμικά
- κάθε
- Νωρίτερα
- αποτελεσματικός
- αποτελεσματικά
- ΧΩΡΙΣ κοπο
- είτε
- αλλού
- ενσωμάτωση
- ενεργοποιήσετε
- δίνει τη δυνατότητα
- έγκλειστα
- από άκρη σε άκρη
- Τελικό σημείο
- Κινητήρας
- μηχανικός
- Μηχανική
- αρκετά
- εξασφαλίζω
- Εταιρεία
- Περιβάλλον
- σφάλμα
- Even
- παράδειγμα
- εξαίρεση
- αναμένουν
- αναμένει
- εμπειρία
- επεκτείνουν
- Πρόσωπο
- Απέτυχε
- αρκετά
- οικογένεια
- Χαρακτηριστικό
- Χαρακτηριστικά
- λίγοι
- Αρχεία
- Αρχεία
- οικονομικός
- χρηματοπιστωτικές υπηρεσίες
- Εύρεση
- Όνομα
- καθορίζεται
- ΣΤΟΛΟΣ
- εστιάζει
- Εξής
- εξής
- Για
- μορφή
- Πλαίσιο
- πλαισίων
- συχνά
- από
- frontend
- πλήρη
- πλήρως
- λειτουργίες
- παράγουν
- παίρνω
- παίρνει
- GitHub
- γκολ
- GPU
- GPU
- χορηγεί
- μεγαλύτερη
- λαβή
- συμβαίνω
- υλικού
- Έχω
- he
- βοήθεια
- βοήθεια
- βοηθά
- εδώ
- Ψηλά
- υψηλότερο
- υψηλά
- του
- οικοδεσπότης
- φιλοξενείται
- φιλοξενία
- ΚΑΥΤΌ
- Πως
- Πώς να
- Ωστόσο
- HTML
- http
- HTTPS
- Idle
- if
- απεικονίζει
- εικόνα
- εφαρμογή
- εκτέλεση
- εισαγωγή
- in
- περιλαμβάνουν
- περιλαμβάνει
- Συμπεριλαμβανομένου
- Εισερχόμενος
- Αυξάνουν
- αύξηση
- βιομηχανίες
- βιομηχανία
- πληροφορίες
- Υποδομή
- αρχικός
- καινοτόμες
- καινοτόμες τεχνολογίες
- εισαγωγή
- εγκατασταθεί
- παράδειγμα
- αντί
- ασφάλιση
- ολοκλήρωση
- ολοκληρώσεις
- τόκος
- περιβάλλον λειτουργίας
- σε
- επικαλείται
- ζήτημα
- θέματα
- IT
- ΤΟΥ
- james
- Java
- Δουλειά
- ενώνει
- jpg
- μόλις
- Γλώσσα
- large
- μεγαλύτερος
- Αφάνεια
- αργότερο
- ξεκίνησε
- οδηγήσει
- ηγέτης
- Οδηγεί
- ΜΑΘΑΊΝΩ
- μάθηση
- ας
- Επίπεδο
- Βιβλιοθήκη
- Μου αρέσει
- συμπαθεί
- LIMIT
- γραμμικός
- Λιστα
- φορτίο
- φόρτωση
- φορτία
- τοπικός
- λογική
- πλέον
- αγαπά
- Χαμηλός
- χαμηλότερα
- μηχανή
- μάθηση μηχανής
- Κυρίως
- Η πλειοψηφία
- κάνω
- ΚΑΝΕΙ
- Κατασκευή
- διαχειρίζεται
- διευθυντής
- διαχείριση
- πολοί
- Μάρκετινγκ
- Μάρκετινγκ & Διαφήμιση
- ανώτατο όριο
- Ενδέχεται..
- μηχανισμούς
- Μνήμη
- Μεταδεδομένα
- μέθοδος
- μέθοδοι
- Metrics
- μικροεπιχειρήσεις
- ενδέχεται να
- ελάχιστο
- λεπτό
- Μετριάζω
- ML
- Τρόπος
- μοντέλο
- μοντέλα
- Μονάδα μέτρησης
- περισσότερο
- πλέον
- κίνητρα
- πολλαπλούς
- όνομα
- εγγενώς
- απαραίτητος
- Ανάγκη
- που απαιτούνται
- Νέα
- πρόσφατα
- βραβείο Νόμπελ
- Ν/Α
- σημείωση
- σημειωματάριο
- τώρα
- αριθμός
- πολλοί
- of
- προσφορά
- προσφορές
- on
- ONE
- αποκλειστικά
- ανοίξτε
- ανοικτού κώδικα
- λειτουργίες
- απέναντι
- βελτιστοποιήσεις
- Βελτιστοποίηση
- βελτιστοποιημένη
- βελτιστοποίηση
- Επιλογές
- or
- ΑΛΛΑ
- δικός μας
- έξω
- ύπαιθρο
- παραγωγή
- εκτός
- επί
- δική
- Παράλληλο
- παράμετροι
- μέρος
- Ειδικότερα
- εξαρτήματα
- παθιασμένος
- μονοπάτι
- μονοπάτια
- πρότυπο
- πρότυπα
- πληρωμή
- για
- ποσοστό
- Εκτελέστε
- επίδοση
- σωλήνας
- πλατφόρμες
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- παιχνίδι
- Plugins
- Σημείο
- πολιτική
- Πισίνες
- Δημοφιλής
- Θέση
- δύναμη
- πρακτικές
- προηγείται
- πρόβλεψη
- Προβλέψεις
- προηγούμενος
- προηγουμένως
- πρωταρχικός
- Πριν
- βραβείο
- Πρόβλημα
- διαδικασια μας
- μεταποίηση
- Προϊόν
- υπεύθυνος προϊόντων
- παραγωγή
- Προγραμματισμός
- υποσχόμενος
- δεόντως
- ιδιότητες
- Αποδείξτε
- παρέχουν
- παρέχει
- πρόβλεψη
- σκοπός
- σκοποί
- Σπρώξτε
- πίεσε
- Python
- pytorch
- τυχαίος
- σειρά
- Διάβασε
- Ανάγνωση
- έτοιμος
- σε πραγματικό χρόνο
- λαμβάνω
- έλαβε
- λαμβάνει
- λήψη
- συνιστάται
- παραπέμπω
- Ανεξάρτητα
- περιοχή
- περιοχές
- σχετίζεται με
- παραμένουν
- αντικαθιστώ
- Αποθήκη
- εκπροσωπώ
- ζητήσει
- αιτήματα
- απαιτήσεις
- έρευνα
- Υποστηρικτικό υλικό
- απάντησης
- ΠΕΡΙΦΕΡΕΙΑ
- αποτέλεσμα
- Επιστροφές
- επαναχρησιμοποίηση
- Διαδρομή
- δρομολόγια
- δρομολόγηση
- τρέξιμο
- τρέχει
- runtime
- SaaS
- σοφός
- Συμπεράσματα SageMaker
- ίδιο
- δείγμα
- Αποθήκευση
- λένε
- Κλίμακα
- λεπιδωτός
- Ζυγός
- απολέπιση
- γραφή
- Εφαρμογές
- Δεύτερος
- δευτερόλεπτα
- δείτε
- δει
- ΕΑΥΤΟΣ
- στείλετε
- αρχαιότερος
- εξυπηρετούν
- σερβίρεται
- διακομιστής
- Διακομιστές
- υπηρεσία
- Υπηρεσίες
- εξυπηρετούν
- σειρά
- Σέτς
- setup
- διάφοροι
- θα πρέπει να
- βιτρίνα
- παρουσιάζεται
- Δείχνει
- Απλούς
- υποκρίνομαι
- ταυτοχρόνως
- ενιαίας
- ενικός
- Μέγεθος
- small
- Απόσπασμα
- So
- λογισμικό
- λογισμικό ως υπηρεσία
- ανάπτυξη λογισμικού
- Μηχανικός Λογισμικού
- λύση
- Λύσεις
- μερικοί
- Πηγή
- ειδικός
- συγκεκριμένες
- Δαπάνες
- διαίρεση
- Αθλητισμός
- σωρός
- στατικός
- Βήμα
- χώρος στο δίσκο
- κατάστημα
- αποθηκεύονται
- ειλικρινής
- μεταγενέστερος
- τέτοιος
- προτείνω
- υποστήριξη
- υποστηριζόνται!
- Υποστηρίζει
- βέβαιος
- συστήματα
- Πάρτε
- παίρνει
- λήψη
- στόχος
- στόχευση
- Διδασκαλία
- TechCrunch
- Τεχνολογίες
- Τεχνολογία
- λέει
- tensorflow
- Δοκιμές
- δοκιμές
- από
- ότι
- Η
- τους
- Τους
- τότε
- Εκεί.
- επομένως
- Αυτοί
- αυτοί
- αυτό
- εκείνοι
- χίλια
- χιλιάδες
- τρία
- Μέσω
- διακίνηση
- ώρα
- φορές
- προς την
- πολύ
- εργαλείο
- κορυφή
- προς
- Tps
- τροχιά
- ΚΙΝΗΣΗ στους ΔΡΟΜΟΥΣ
- Τρένο
- εκπαιδευμένο
- Εκπαίδευση
- Συναλλαγές
- μετασχηματιστές
- Ταξίδια
- προσπαθώ
- δύο
- τύπος
- συνήθως
- υπό
- υποκείμενες
- καταλαβαίνω
- κατανόηση
- Παγκόσμιος
- URL
- χρήση
- περίπτωση χρήσης
- μεταχειρισμένος
- χρησιμοποιεί
- χρησιμοποιώντας
- συνήθως
- αξιοποιώντας
- αξία
- Αξίες
- μεταβλητή
- διάφορα
- όραμα
- vs
- θέλω
- ήταν
- παρακολουθείτε
- we
- ιστός
- διαδικτυακές υπηρεσίες
- βάρος
- Τι
- πότε
- ενώ
- Ποιό
- ευρύς
- Ευρύ φάσμα
- θα
- με
- εντός
- Εργασία
- εργάστηκαν
- εργάτης
- εργαζομένων
- ροής εργασίας
- ροές εργασίας
- εργαζόμενος
- λειτουργεί
- θα
- γραφή
- γραπτή
- X
- χρόνια
- Εσείς
- Σας
- zephyrnet