Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker

Amazon Sage Maker τώρα σας επιτρέπει να συγκρίνετε την απόδοση μιας νέας έκδοσης μιας στοίβας εξυπηρέτησης μοντέλων με την τρέχουσα αναπτυσσόμενη έκδοση πριν από την πλήρη διάθεση παραγωγής χρησιμοποιώντας μια πρακτική ασφάλειας κατά την ανάπτυξη γνωστή ως σκιώδης δοκιμή. Η σκιώδης δοκιμή μπορεί να σας βοηθήσει να εντοπίσετε πιθανά σφάλματα διαμόρφωσης και ζητήματα απόδοσης προτού επηρεάσουν τους τελικούς χρήστες. Με το SageMaker, δεν χρειάζεται να επενδύσετε στη δημιουργία υποδομής σκιωδών δοκιμών, επιτρέποντάς σας να εστιάσετε στην ανάπτυξη μοντέλων. Το SageMaker φροντίζει για την ανάπτυξη της νέας έκδοσης παράλληλα με την τρέχουσα έκδοση που εξυπηρετεί αιτήματα παραγωγής, δρομολογώντας ένα μέρος των αιτημάτων στη σκιώδη έκδοση. Στη συνέχεια, μπορείτε να συγκρίνετε την απόδοση των δύο εκδόσεων χρησιμοποιώντας μετρήσεις όπως η καθυστέρηση και το ποσοστό σφάλματος. Αυτό σας δίνει μεγαλύτερη εμπιστοσύνη ότι η διάθεση παραγωγής στα τελικά σημεία συμπερασμάτων του SageMaker δεν θα προκαλέσει παλινδρόμηση της απόδοσης και σας βοηθά να αποφύγετε διακοπές λόγω τυχαίων εσφαλμένων διαμορφώσεων.

Σε αυτήν την ανάρτηση, επιδεικνύουμε αυτή τη νέα δυνατότητα του SageMaker. Το αντίστοιχο δείγμα σημειωματάριου είναι διαθέσιμο σε αυτό το GitHub Αποθήκη.

Επισκόπηση της λύσης

Η υποδομή εξυπηρέτησης μοντέλων αποτελείται από το μοντέλο μηχανικής εκμάθησης (ML), το κοντέινερ εξυπηρέτησης ή το παράδειγμα υπολογισμού. Ας εξετάσουμε τα ακόλουθα σενάρια:

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

Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική λύσεών μας.

Για καθένα από αυτά τα σενάρια, επιλέξτε μια παραλλαγή παραγωγής με την οποία θέλετε να δοκιμάσετε και το SageMaker αναπτύσσει αυτόματα τη νέα παραλλαγή σε σκιώδη λειτουργία και δρομολογεί ένα αντίγραφο των αιτημάτων συμπερασμάτων σε αυτήν σε πραγματικό χρόνο μέσα στο ίδιο τελικό σημείο. Μόνο οι απαντήσεις της παραλλαγής παραγωγής επιστρέφονται στην εφαρμογή κλήσης. Μπορείτε να επιλέξετε να απορρίψετε ή να καταγράψετε τις απαντήσεις της παραλλαγής σκιάς για σύγκριση εκτός σύνδεσης. Προαιρετικά, μπορείτε να παρακολουθείτε τις παραλλαγές μέσω ενός ενσωματωμένου πίνακα εργαλείων με μια παράπλευρη σύγκριση των μετρήσεων απόδοσης. Μπορείτε να χρησιμοποιήσετε αυτήν τη δυνατότητα είτε μέσω των API ενημερωμένης έκδοσης συμπεράσματος του SageMaker είτε μέσω της κονσόλας SageMaker.

Οι σκιώδεις παραλλαγές βασίζονται στην ικανότητα παραλλαγής παραγωγής στα τελικά σημεία συμπερασμάτων SageMaker. Για να επαναλάβω, α παραλλαγή παραγωγής αποτελείται από το μοντέλο ML, το κοντέινερ σερβιρίσματος και το παράδειγμα ML. Επειδή κάθε παραλλαγή είναι ανεξάρτητη από άλλες, μπορείτε να έχετε διαφορετικά μοντέλα, κοντέινερ ή τύπους παρουσιών σε διάφορες παραλλαγές. Το SageMaker σάς επιτρέπει να καθορίζετε πολιτικές αυτόματης κλιμάκωσης ανά παραλλαγή, ώστε να μπορούν να κλιμακώνονται ανεξάρτητα με βάση το εισερχόμενο φορτίο. Το SageMaker υποστηρίζει έως και 10 παραλλαγές παραγωγής ανά τελικό σημείο. Μπορείτε είτε να διαμορφώσετε μια παραλλαγή ώστε να λαμβάνει ένα τμήμα της εισερχόμενης επισκεψιμότητας ορίζοντας βάρη παραλλαγών είτε να καθορίσετε την παραλλαγή προορισμού στο εισερχόμενο αίτημα. Η απάντηση από την παραλλαγή παραγωγής προωθείται πίσω στον παραλήπτη.

A παραλλαγή σκιάς (νέα) έχει τα ίδια εξαρτήματα με μια παραλλαγή παραγωγής. Ένα τμήμα των αιτημάτων που καθορίζεται από τον χρήστη, γνωστό ως το ποσοστό δειγματοληψίας κίνησης, προωθείται στην παραλλαγή σκιάς. Μπορείτε να επιλέξετε να καταγράψετε την απόκριση της παραλλαγής σκιάς Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) ή πετάξτε το.

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

Αφού ρυθμίσετε τις παραλλαγές παραγωγής και σκιάς, μπορείτε να παρακολουθήσετε το μετρήσεις επίκλησης τόσο για παραλλαγές παραγωγής όσο και για σκιές σε amazoncloudwatch σύμφωνα με το AWS/SageMaker χώρο ονομάτων. Όλες οι ενημερώσεις στο τελικό σημείο του SageMaker ενορχηστρώνονται χρησιμοποιώντας μπλε/πράσινες αναπτύξεις και εμφανίζονται χωρίς απώλεια διαθεσιμότητας. Τα τελικά σημεία σας θα συνεχίσουν να ανταποκρίνονται σε αιτήματα παραγωγής καθώς προσθέτετε, τροποποιείτε ή αφαιρείτε σκιώδεις παραλλαγές.

Μπορείτε να χρησιμοποιήσετε αυτή τη δυνατότητα με έναν από τους δύο τρόπους:

  • Διαχειριζόμενη σκιώδη δοκιμή χρησιμοποιώντας την Κονσόλα SageMaker – Μπορείτε να αξιοποιήσετε την κονσόλα για μια καθοδηγούμενη εμπειρία για να διαχειριστείτε το ταξίδι από άκρο σε άκρο των δοκιμών σκιών. Αυτό σας επιτρέπει να ρυθμίζετε σκιώδεις δοκιμές για μια προκαθορισμένη χρονική διάρκεια, να παρακολουθείτε την πρόοδο μέσω ενός ζωντανού πίνακα εργαλείων, να καθαρίζετε μετά την ολοκλήρωση και να ενεργείτε βάσει των αποτελεσμάτων.
  • Σκιώδης δοκιμή αυτοεξυπηρέτησης χρησιμοποιώντας τα API SageMaker Inference – Εάν η ροή εργασιών ανάπτυξης χρησιμοποιεί ήδη API δημιουργίας/ενημέρωσης/διαγραφής τελικού σημείου, μπορείτε να συνεχίσετε να τα χρησιμοποιείτε για τη διαχείριση παραλλαγών σκιάς.

Στις επόμενες ενότητες, περιγράφουμε καθένα από αυτά τα σενάρια.

Σενάριο 1 – Διαχειριζόμενη σκιώδης δοκιμή χρησιμοποιώντας την Κονσόλα SageMaker

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

Προϋποθέσεις

Τα μοντέλα παραγωγής και σκιάς πρέπει να δημιουργηθούν στο SageMaker. Ανατρέξτε στο CreateModel API εδώ.

Βήμα 1 – Δημιουργήστε ένα σκιερό τεστ

Πλοηγηθείτε με το Συμπέρασμα τμήμα του αριστερού πίνακα πλοήγησης της κονσόλας SageMaker και, στη συνέχεια, επιλέξτε Δοκιμές σκιών. Αυτό θα σας οδηγήσει σε έναν πίνακα εργαλείων με όλες τις προγραμματισμένες, εκτελούμενες και ολοκληρωμένες δοκιμές σκιών. Κάντε κλικ 'δημιουργήστε ένα σκιερό τεστ». Εισαγάγετε ένα όνομα για τη δοκιμή και επιλέξτε επόμενο.

Αυτό θα σας μεταφέρει στη σελίδα ρυθμίσεων σκιώδους δοκιμής. Μπορείτε να επιλέξετε έναν υπάρχοντα ρόλο IAM ή να δημιουργήσετε έναν που έχει το AmazonSageMakerFullAccess Επισυνάπτεται η πολιτική IAM. Στη συνέχεια, επιλέξτε 'Δημιουργήστε ένα νέο τελικό σημείο' και εισάγετε ένα όνομα (xgb-prod-shadow-1). Μπορείτε να προσθέσετε μία παραγωγή και μία παραλλαγή σκιάς που σχετίζεται με αυτό το τελικό σημείο κάνοντας κλικ στο 'Προσθήκη' στην ενότητα Παραλλαγές. Μπορείτε να επιλέξετε τα μοντέλα που έχετε δημιουργήσει στο 'Προσθήκη μοντέλου κουτί διαλόγου. Αυτό δημιουργεί μια παραγωγή ή παραλλαγή. Προαιρετικά, μπορείτε να αλλάξετε τον τύπο εμφάνισης και τον αριθμό που σχετίζεται με κάθε παραλλαγή.

Όλη η κίνηση πηγαίνει στην παραλλαγή παραγωγής και ανταποκρίνεται σε αιτήματα επίκλησης. Μπορείτε να ελέγξετε ένα τμήμα των αιτημάτων που δρομολογούνται στη σκιώδη παραλλαγή αλλάζοντας το Traffic Sampling Percentage.

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

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

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Βήμα 2 – Παρακολουθήστε μια σκιώδη δοκιμή

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

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Η ενότητα Μετρήσεις παρέχει μια σύγκριση των βασικών μετρήσεων και παρέχει επικαλυπτόμενα γραφήματα μεταξύ των παραλλαγών παραγωγής και σκιών, μαζί με περιγραφικά στατιστικά στοιχεία. Μπορείτε να συγκρίνετε μετρήσεις επίκλησης όπως π.χ ModelLatency και Invocation4xxErrors καθώς και μετρήσεις περιπτώσεων όπως CPUUtilization και DiskUtilization.

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Βήμα 3 – Προωθήστε την παραλλαγή Shadow στη νέα παραλλαγή παραγωγής

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

Εάν επιλέξετε να προωθήσετε, θα μεταφερθείτε σε μια σελίδα ανάπτυξης, όπου μπορείτε να επιβεβαιώσετε τις ρυθμίσεις παραλλαγής πριν από την ανάπτυξη. Πριν από την ανάπτυξη, συνιστούμε να δώσετε μέγεθος στις σκιώδεις παραλλαγές σας, ώστε να μπορείτε να χειρίζεστε το 100% της κίνησης επίκλησης. Εάν δεν χρησιμοποιείτε σκιώδη δοκιμή για την αξιολόγηση εναλλακτικών τύπων ή μεγεθών παρουσίας, μπορείτε να χρησιμοποιήσετε την επιλογή "διατήρηση των ρυθμίσεων παραλλαγής παραγωγής. Διαφορετικά, μπορείτε να επιλέξετε "διατήρηση των ρυθμίσεων παραλλαγής σκιάς. Εάν επιλέξετε αυτήν την επιλογή, βεβαιωθείτε ότι η δειγματοληψία επισκεψιμότητας έχει οριστεί στο 100%. Εναλλακτικά, μπορείτε να καθορίσετε τον τύπο παρουσίας και να μετρήσετε εάν θέλετε να παρακάμψετε αυτές τις ρυθμίσεις.

Μόλις επιβεβαιώσετε την ανάπτυξη, το SageMaker θα ξεκινήσει μια ενημέρωση στο τελικό σημείο σας για να προωθήσει τη σκιώδη παραλλαγή στη νέα παραλλαγή παραγωγής. Όπως συμβαίνει με όλες τις ενημερώσεις του SageMaker, το τελικό σημείο σας θα εξακολουθεί να λειτουργεί κατά τη διάρκεια της ενημέρωσης.

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Σενάριο 2: Σκιώδης δοκιμή χρησιμοποιώντας API συμπερασμάτων SageMaker

Αυτή η ενότητα καλύπτει τον τρόπο χρήσης των υπαρχόντων API δημιουργίας/ενημέρωσης/διαγραφής τελικού σημείου του SageMaker για την ανάπτυξη σκιωδών παραλλαγών.

Για αυτό το παράδειγμα, έχουμε δύο μοντέλα XGBoost που αντιπροσωπεύουν δύο διαφορετικές εκδόσεις των μοντέλων που έχουν προεκπαιδευτεί. model.tar.gz είναι το μοντέλο που χρησιμοποιείται επί του παρόντος στην παραγωγή. model2 είναι το νεότερο μοντέλο και θέλουμε να δοκιμάσουμε την απόδοσή του όσον αφορά τις λειτουργικές μετρήσεις, όπως η καθυστέρηση, πριν αποφασίσουμε να το χρησιμοποιήσουμε στην παραγωγή. αναπτύσσουμε model2 ως σκιώδης παραλλαγή του model.tar.gz. Και τα δύο προεκπαιδευμένα μοντέλα αποθηκεύονται στον δημόσιο κάδο S3 s3://sagemaker-sample-files. Κατεβάζουμε πρώτα το μοντέλο του τοπικού μας υπολογιστικού στιγμιότυπου και, στη συνέχεια, το ανεβάζουμε στο S3.

Τα μοντέλα σε αυτό το παράδειγμα χρησιμοποιούνται για την πρόβλεψη της πιθανότητας ενός πελάτη κινητής τηλεφωνίας να εγκαταλείψει την τρέχουσα εταιρεία κινητής τηλεφωνίας του. Το σύνολο δεδομένων που χρησιμοποιούμε είναι δημόσια διαθέσιμο και αναφέρθηκε στο βιβλίο Ανακαλύπτοντας γνώσεις στα δεδομένα του Daniel T. Larose. Αυτά τα μοντέλα εκπαιδεύτηκαν χρησιμοποιώντας το Σημειωματάριο XGB Churn Prediction στο SageMaker. Μπορείτε επίσης να χρησιμοποιήσετε τα δικά σας προεκπαιδευμένα μοντέλα, οπότε μπορείτε να παραλείψετε τη λήψη από s3://sagemaker-sample-files και αντιγράψτε τα δικά σας μοντέλα απευθείας στο μοντέλο/φάκελο.

!aws s3 cp s3://sagemaker-sample-files/models/xgb-churn/xgb-churn-prediction-model.tar.gz model/
!aws s3 cp s3://sagemaker-sample-files/models/xgb-churn/xgb-churn-prediction-model2.tar.gz model/

Βήμα 1 – Δημιουργία μοντέλων

Ανεβάζουμε τα αρχεία μοντέλων στον δικό μας κάδο S3 και δημιουργούμε δύο μοντέλα SageMaker. Δείτε τον παρακάτω κώδικα:

model_url = S3Uploader.upload(
    local_path="model/xgb-churn-prediction-model.tar.gz",
    desired_s3_uri=f"s3://{bucket}/{prefix}",
)
model_url2 = S3Uploader.upload(
    local_path="model/xgb-churn-prediction-model2.tar.gz",
    desired_s3_uri=f"s3://{bucket}/{prefix}",
from sagemaker import image_uris
image_uri = image_uris.retrieve("xgboost", boto3.Session().region_name, "0.90-1")
image_uri2 = image_uris.retrieve("xgboost", boto3.Session().region_name, "0.90-2")

model_name = f"DEMO-xgb-churn-pred-{datetime.now():%Y-%m-%d-%H-%M-%S}"
model_name2 = f"DEMO-xgb-churn-pred2-{datetime.now():%Y-%m-%d-%H-%M-%S}"

resp = sm.create_model(
    ModelName=model_name,
    ExecutionRoleArn=role,
    Containers=[{"Image": image_uri, "ModelDataUrl": model_url}],
)

resp = sm.create_model(
    ModelName=model_name2,
    ExecutionRoleArn=role,
    Containers=[{"Image": image_uri2, "ModelDataUrl": model_url2}],
)

Βήμα 2 – Αναπτύξτε τα δύο μοντέλα ως παραλλαγές παραγωγής και σκιάς σε ένα τελικό σημείο συμπερασμάτων σε πραγματικό χρόνο

Δημιουργούμε μια διαμόρφωση τελικού σημείου με τις παραλλαγές παραγωγής και σκιάς. ο ProductionVariants και ShadowProductionVariants παρουσιάζουν ιδιαίτερο ενδιαφέρον. Και οι δύο αυτές παραλλαγές έχουν στιγμιότυπα ml.m5.xlarge με 4 vCPU και 16 GiB μνήμης και ο αρχικός αριθμός παρουσιών έχει οριστεί σε 1. Δείτε τον ακόλουθο κώδικα:

ep_config_name = f"Shadow-EpConfig-{datetime.now():%Y-%m-%d-%H-%M-%S}"
production_variant_name = "production"
shadow_variant_name = "shadow"
create_endpoint_config_response = sm.create_endpoint_config(
    EndpointConfigName=ep_config_name,
    ProductionVariants=[
    # Type: Array of ProductionVariant (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html) objects
      { 
         "VariantName": shadow_variant_name,
        {
            "VariantName": production_variant_name,
            "ModelName": model_name,
            "InstanceType": "ml.m5.xlarge",
            "InitialInstanceCount": 2,
            "InitialVariantWeight": 1,
        }
    ],
     # Type: Array of ShadowProductionVariants 
    ShadowProductionVariants = [
         "ModelName": model_name2,
         "InitialInstanceCount": 1,
         "InitialVariantWeight": 0.5,
         "InstanceType": "ml.m5.xlarge" 
      }
   ]
)

Τέλος, δημιουργούμε την παραλλαγή παραγωγής και σκιάς:

endpoint_name = f"xgb-prod-shadow-{datetime.now():%Y-%m-%d-%H-%M-%S}"
create_endpoint_api_response = sm.create_endpoint(
                                    EndpointName=endpoint_name,
                                    EndpointConfigName=ep_config_name,
                                )

Βήμα 3 – Επικαλέστε το τελικό σημείο για δοκιμή

Αφού δημιουργηθεί επιτυχώς το τελικό σημείο, μπορείτε να αρχίσετε να το καλείτε. Στέλνουμε περίπου 3,000 αιτήματα με διαδοχικό τρόπο:

def invoke_endpoint(endpoint_name, wait_interval_sec=0.01, should_raise_exp=False):
    with open("test_data/test-dataset-input-cols.csv", "r") as f:
        for row in f:
            payload = row.rstrip("n")
            try:
                for i in range(10): #send the same payload 10 times for testing purpose
                    response = sm_runtime.invoke_endpoint(
                        EndpointName=endpoint_name, ContentType="text/csv", Body=payload
                    )
            except Exception as e:
                print("E", end="", flush=True)
                if should_raise_exp:
                    raise e

invoke_endpoint(endpoint_name)

Βήμα 4 – Συγκρίνετε μετρήσεις

Τώρα που έχουμε αναπτύξει τόσο τα μοντέλα παραγωγής όσο και τα σκιώδη μοντέλα, ας συγκρίνουμε τις μετρήσεις επίκλησης. Για μια λίστα με τις μετρήσεις επίκλησης που είναι διαθέσιμες για σύγκριση, ανατρέξτε στο Παρακολουθήστε το Amazon SageMaker με το Amazon CloudWatch. Ας ξεκινήσουμε συγκρίνοντας τις επικλήσεις μεταξύ των παραλλαγών παραγωγής και σκιάς.

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

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στη συνέχεια, ας συγκρίνουμε την καθυστέρηση του μοντέλου (ModelLatency μετρική) μεταξύ των παραλλαγών παραγωγής και σκιάς. Η καθυστέρηση μοντέλου είναι ο χρόνος που χρειάζεται ένα μοντέλο για να ανταποκριθεί όπως προβάλλεται από το SageMaker. Μπορούμε να παρατηρήσουμε πώς η λανθάνουσα κατάσταση του μοντέλου της παραλλαγής σκιάς συγκρίνεται με την παραλλαγή παραγωγής χωρίς να εκτίθενται οι τελικοί χρήστες στη σκιώδη παραλλαγή.

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Αναμένουμε την γενική καθυστέρηση (OverheadLatency μετρικό) να είναι συγκρίσιμο μεταξύ των παραλλαγών παραγωγής και σκιών. Ο γενικός λανθάνων χρόνος είναι το διάστημα που μετράται από τη στιγμή που το SageMaker λαμβάνει το αίτημα μέχρι να επιστρέψει μια απάντηση στον πελάτη, μείον την καθυστέρηση του μοντέλου.

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Βήμα 5- Προωθήστε την παραλλαγή σκιάς σας

Για να προωθήσετε το σκιώδες μοντέλο στην παραγωγή, δημιουργήστε μια νέα διαμόρφωση τελικού σημείου με ρεύμα ShadowProductionVariant ως το νέο ProductionVariant και αφαιρέστε το ShadowProductionVariant. Αυτό θα αφαιρέσει το ρεύμα ProductionVariant και προωθήστε την παραλλαγή σκιάς για να γίνει η νέα παραλλαγή παραγωγής. Όπως πάντα, όλες οι ενημερώσεις του SageMaker ενορχηστρώνονται ως μπλε/πράσινες αναπτύξεις κάτω από την κουκούλα και δεν υπάρχει απώλεια διαθεσιμότητας κατά την εκτέλεση της ενημέρωσης.

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

promote_ep_config_name = f"PromoteShadow-EpConfig-{datetime.now():%Y-%m-%d-%H-%M-%S}"

create_endpoint_config_response = sm.create_endpoint_config(
    EndpointConfigName=promote_ep_config_name,
    ProductionVariants=[
        {
            "VariantName": shadow_variant_name,
            "ModelName": model_name2,
            "InstanceType": "ml.m5.xlarge",
            "InitialInstanceCount": 2,
            "InitialVariantWeight": 1.0,
        }
    ],
)
print(f"Created EndpointConfig: {create_endpoint_config_response['EndpointConfigArn']}")

update_endpoint_api_response = sm.update_endpoint(
    EndpointName=endpoint_name,
    EndpointConfigName=promote_ep_config_name,
)

wait_for_endpoint_in_service(endpoint_name)

sm.describe_endpoint(EndpointName=endpoint_name)

Βήμα 6 – Καθαρισμός

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

dsm.delete_endpoint(EndpointName=endpoint_name)
sm.delete_endpoint_config(EndpointConfigName=ep_config_name)
sm.delete_endpoint_config(EndpointConfigName=promote_ep_config_name)
sm.delete_model(ModelName=model_name)
sm.delete_model(ModelName=model_name2)

Συμπέρασμα

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


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

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Raghu Ramesha είναι αρχιτέκτονας λύσεων μηχανικής μάθησης με την ομάδα του Amazon SageMaker Service. Επικεντρώνεται στο να βοηθά τους πελάτες να δημιουργήσουν, να αναπτύξουν και να μεταφέρουν φόρτους εργασίας παραγωγής ML στο SageMaker σε κλίμακα. Ειδικεύεται σε τομείς μηχανικής μάθησης, τεχνητής νοημοσύνης και όρασης υπολογιστών και είναι κάτοχος μεταπτυχιακού τίτλου στην Επιστήμη Υπολογιστών από το UT Dallas. Στον ελεύθερο χρόνο του, του αρέσουν τα ταξίδια και η φωτογραφία.

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Κινγκγουέι Λι είναι ειδικός μηχανικής μάθησης στο Amazon Web Services. Έλαβε το διδακτορικό του στην Έρευνα Επιχειρήσεων αφού έσπασε τον λογαριασμό επιχορήγησης έρευνας του συμβούλου του και απέτυχε να παραδώσει το βραβείο Νόμπελ που υποσχέθηκε. Επί του παρόντος, βοηθά τους πελάτες του κλάδου των χρηματοοικονομικών υπηρεσιών και των ασφαλιστικών εταιρειών να δημιουργήσουν λύσεις μηχανικής μάθησης στο AWS. Στον ελεύθερο χρόνο του, του αρέσει να διαβάζει και να διδάσκει.

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Qiyun Zhao είναι Ανώτερος Μηχανικός Ανάπτυξης Λογισμικού με την ομάδα Amazon SageMaker Inference Platform. Είναι ο κύριος προγραμματιστής των Deployment Guardrails και Shadow Deployments και εστιάζει στο να βοηθά τους πελάτες να διαχειρίζονται φόρτους εργασίας και αναπτύξεις ML σε κλίμακα με υψηλή διαθεσιμότητα. Εργάζεται επίσης σε εξελίξεις αρχιτεκτονικής πλατφόρμας για γρήγορη και ασφαλή ανάπτυξη εργασιών ML και εκτέλεση διαδικτυακών πειραμάτων ML με ευκολία. Στον ελεύθερο χρόνο του, του αρέσει το διάβασμα, τα παιχνίδια και τα ταξίδια.

Ελαχιστοποιήστε τον αντίκτυπο στην παραγωγή των ενημερώσεων μοντέλων ML με τη σκιώδη δοκιμή του Amazon SageMaker του PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ταρούν Σαϊράμ είναι Ανώτερος Διευθυντής Προϊόντων για το Amazon SageMaker Inference. Ενδιαφέρεται να μάθει για τις τελευταίες τάσεις στη μηχανική μάθηση και να βοηθήσει τους πελάτες να τις αξιοποιήσουν. Στον ελεύθερο χρόνο του, του αρέσει η ποδηλασία, το σκι και το τένις.

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

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