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

Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS

Σήμερα, πολλοί πελάτες AWS κατασκευάζουν πλατφόρμες μηχανικής εκμάθησης έτοιμες για επιχειρήσεις (ML). Υπηρεσία Amazon Elastic Kubernetes (Amazon EKS) χρησιμοποιώντας Kubeflow στο AWS (μια κατανομή του Kubeflow ειδικά για το AWS) σε πολλές περιπτώσεις χρήσης, συμπεριλαμβανομένης της όρασης υπολογιστή, της κατανόησης φυσικής γλώσσας, της μετάφρασης ομιλίας και της οικονομικής μοντελοποίησης.

Με την τελευταία έκδοση του ανοιχτού κώδικα Kubeflow v1.6.1, η κοινότητα Kubeflow συνεχίζει να υποστηρίζει αυτήν τη μεγάλης κλίμακας υιοθέτηση του Kubeflow για περιπτώσεις εταιρικής χρήσης. Η τελευταία έκδοση περιλαμβάνει πολλές νέες συναρπαστικές δυνατότητες όπως υποστήριξη για Kubernetes v1.22, συνδυασμένο Python SDK για PyTorch, MXNet, MPI, XGBoost στον κατανεμημένο Training Operator του Kubeflow, νέα ClusterServingRuntime και ServingRuntime CRD για την υπηρεσία μοντέλων και πολλά άλλα.

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

Σε αυτήν την ανάρτηση, συζητάμε τις νέες δυνατότητες του Kubeflow στο AWS v1.6.1 και επισημαίνουμε τρεις σημαντικές ενσωματώσεις που έχουν ομαδοποιηθεί σε μία πλατφόρμα για να σας προσφέρουν:

  • Λύση με ένα κλικ Infrastructure as Code (IaaC) που αυτοματοποιεί την εγκατάσταση από άκρο σε άκρο του Kubeflow, συμπεριλαμβανομένης της δημιουργίας συμπλέγματος EKS
  • Υποστήριξη για κατανεμημένη εκπαίδευση στις Amazon Sage Maker χρησιμοποιώντας Amazon SageMaker Operators για Kubernetes (ACK) και Στοιχεία SageMaker για αγωγούς Kubeflow και τοπικά στο Kubernetes χρησιμοποιώντας Εκπαιδευτικοί χειριστές Kubeflow. Πολλοί πελάτες χρησιμοποιούν αυτή τη δυνατότητα για να δημιουργήσουν υβριδικές αρχιτεκτονικές μηχανικής εκμάθησης, όπου αξιοποιούν τόσο τον υπολογισμό Kubernetes για πειραματική φάση όσο και το SageMaker για την εκτέλεση φόρτου εργασίας σε κλίμακα παραγωγής.
  • Βελτιωμένη παρακολούθηση και παρατηρησιμότητα για φόρτους εργασίας ML, συμπεριλαμβανομένων των μετρήσεων του Amazon EKS, του Kubeflow και των αρχείων καταγραφής εφαρμογών χρησιμοποιώντας Prometheus, Grafana και amazoncloudwatch ολοκληρώσεις

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

Kubeflow στο AWS

Το Kubeflow στο AWS 1.6.1 παρέχει μια σαφή διαδρομή για τη χρήση του Kubeflow, με την προσθήκη των ακόλουθων υπηρεσιών AWS πέρα ​​από τις υπάρχουσες δυνατότητες:

  • Ενσωμάτωση SageMaker με Kubeflow για εκτέλεση υβριδικών ροών εργασίας ML χρησιμοποιώντας SageMaker Operators for Kubernetes (ACK) και SageMaker Components για Kubeflow Pipelines.
  • Οι επιλογές αυτόματης ανάπτυξης έχουν βελτιωθεί και απλοποιηθεί χρησιμοποιώντας σενάρια Kustomize και διαγράμματα Helm.
  • Προστέθηκε υποστήριξη για την ανάπτυξη Infrastructure as Code (IaC) με ένα κλικ για το Kubeflow σε AWS χρησιμοποιώντας Terraform για όλα τα διαθέσιμα επιλογές ανάπτυξης. Αυτό το σενάριο αυτοματοποιεί τη δημιουργία των ακόλουθων πόρων AWS:
  • Υποστήριξη AWS PrivateLink για το Amazon S3 που επιτρέπει στους μη εμπορικούς χρήστες της Περιοχής να συνδέονται στα αντίστοιχα τερματικά σημεία S3 τους.
  • Προστέθηκε ενσωμάτωση με Διαχειριζόμενη υπηρεσία Amazon για τον Προμηθέα (AMP) και Η Amazon διαχειρίστηκε τη Grafana για την παρακολούθηση μετρήσεων με το Kubeflow στο AWS.
  • Ενημερωμένα κοντέινερ διακομιστών φορητών υπολογιστών Kubeflow με τις πιο πρόσφατες εικόνες κοντέινερ βαθιάς εκμάθησης που βασίζονται στο TensorFlow 2.10.0 και στο PyTorch 1.12.1.
  • Διανεμημένη ενσωμάτωση με DLC AWS για εκτέλεση εκπαίδευση και συμπέρασμα φόρτος εργασίας.

Το παρακάτω διάγραμμα αρχιτεκτονικής είναι ένα γρήγορο στιγμιότυπο όλων των ενσωματώσεων υπηρεσιών (συμπεριλαμβανομένων αυτών που έχουν ήδη αναφερθεί) που είναι διαθέσιμες για στοιχεία ελέγχου Kubeflow και επιπέδου δεδομένων στο Kubeflow στο AWS. Το επίπεδο ελέγχου Kubeflow είναι εγκατεστημένο πάνω από το Amazon EKS, το οποίο είναι μια διαχειριζόμενη υπηρεσία κοντέινερ που χρησιμοποιείται για την εκτέλεση και την κλιμάκωση των εφαρμογών Kubernetes στο cloud. Αυτές οι ενσωματώσεις υπηρεσιών AWS σάς επιτρέπουν να αποσυνδέσετε κρίσιμα μέρη του επιπέδου ελέγχου Kubeflow από την Kubernetes, παρέχοντας έναν ασφαλή, επεκτάσιμο, ανθεκτικό και βελτιστοποιημένο σχεδιασμό. Για περισσότερες λεπτομέρειες σχετικά με την αξία που προσθέτουν αυτές οι ενσωματώσεις υπηρεσιών σε σχέση με το Kubeflow ανοιχτού κώδικα, ανατρέξτε στο Δημιουργήστε και αναπτύξτε ένα επεκτάσιμο σύστημα μηχανικής εκμάθησης στο Kubernetes με το Kubeflow στο AWS.

Ας συζητήσουμε λεπτομερέστερα πώς τα βασικά χαρακτηριστικά του Kubeflow στο AWS 1.6.1 θα μπορούσαν να είναι χρήσιμα για τον οργανισμό σας.

Λεπτομέρειες χαρακτηριστικών Kubeflow στο AWS

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

Επιλογές ανάπτυξης

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

Εάν θέλετε να αναπτύξετε το Kubeflow με ελάχιστες αλλαγές, σκεφτείτε το βανίλια επιλογή ανάπτυξης. Όλες οι διαθέσιμες επιλογές ανάπτυξης μπορούν να εγκατασταθούν χρησιμοποιώντας Kustomize, Helm ή Terraform.

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

Επιλογές εγκατάστασης

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

Επιλογή 1: Terraform (IaC)

Αυτό δημιουργεί ένα σύμπλεγμα EKS και όλους τους σχετικούς πόρους υποδομής AWS και, στη συνέχεια, αναπτύσσει το Kubeflow όλα σε μία εντολή χρησιμοποιώντας το Terraform. Εσωτερικά, αυτό χρησιμοποιεί σχεδιαγράμματα EKS και διαγράμματα πηδαλίου.

Αυτή η επιλογή έχει τα ακόλουθα πλεονεκτήματα:

  • Παρέχει ευελιξία στις επιχειρήσεις να αναπτύξουν το Amazon EKS και το Kubeflow με μία εντολή χωρίς να χρειάζεται να ανησυχούν για συγκεκριμένες διαμορφώσεις στοιχείων Kubeflow. Αυτό θα βοηθήσει πάρα πολύ στην επιτάχυνση της αξιολόγησης της τεχνολογίας, της δημιουργίας πρωτοτύπων και του κύκλου ζωής της ανάπτυξης του προϊόντος, παρέχοντας ευελιξία στη χρήση των terraform modules και στην τροποποίησή τους για την κάλυψη οποιωνδήποτε ειδικών αναγκών του έργου.
  • Πολλοί οργανισμοί σήμερα που έχουν το Terraform ως το κέντρο της στρατηγικής τους στο cloud μπορούν τώρα να χρησιμοποιήσουν τη λύση Kubeflow στη λύση AWS Terraform για να επιτύχουν τους στόχους τους στο cloud.

Επιλογή 2: Προσαρμογή ή Χάρτες Κράνους:

Αυτή η επιλογή σάς επιτρέπει να αναπτύξετε το Kubeflow σε μια διαδικασία δύο βημάτων:

  1. Δημιουργήστε πόρους AWS όπως Amazon EKS, Amazon RDS, Amazon S3 και Amazon Cognito, είτε μέσω των αυτοματοποιημένων σεναρίων που περιλαμβάνονται στη διανομή AWS είτε με μη αυτόματο τρόπο ακολουθώντας μια Οδηγός βήμα προς βήμα.
  2. Εγκαταστήστε τις αναπτύξεις Kubeflow είτε χρησιμοποιώντας γραφήματα Helm είτε Kustomize.

Αυτή η επιλογή έχει τα ακόλουθα πλεονεκτήματα:

  • Ο κύριος στόχος αυτής της επιλογής εγκατάστασης είναι να παρέχει διαμορφώσεις Kubernetes που σχετίζονται με το Kubeflow. Επομένως, μπορείτε να επιλέξετε να δημιουργήσετε ή να φέρετε υπάρχοντα συμπλέγματα EKS ή οποιονδήποτε από τους σχετικούς πόρους AWS, όπως το Amazon RDS, το Amazon S3 και το Amazon Cognito, και να το διαμορφώσετε και να το διαχειριστείτε ώστε να λειτουργεί με το Kubeflow στο AWS.
  • Είναι πιο εύκολο να μετακινηθείτε από ένα ανοιχτού κώδικα Kustomize Kubeflow μανιφέστο στη διανομή AWS Kubeflow.

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

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

Ενσωμάτωση με το SageMaker

Το SageMaker είναι μια πλήρως διαχειριζόμενη υπηρεσία σχεδιασμένη και βελτιστοποιημένη ειδικά για τη διαχείριση ροών εργασίας ML. Καταργεί την αδιαφοροποίητη βαριά ανύψωση της διαχείρισης της υποδομής και εξαλείφει την ανάγκη επένδυσης σε IT και DevOps για τη διαχείριση συμπλεγμάτων για τη δημιουργία, την εκπαίδευση και την εξαγωγή συμπερασμάτων μοντέλων ML.

Πολλοί πελάτες AWS που έχουν απαιτήσεις φορητότητας ή τυπικούς περιορισμούς εσωτερικής εγκατάστασης χρησιμοποιούν το Amazon EKS για τη ρύθμιση επαναλαμβανόμενων αγωγών ML που εκτελούν φόρτους εργασίας εκπαίδευσης και συμπερασμάτων. Ωστόσο, αυτό απαιτεί από τους προγραμματιστές να γράψουν προσαρμοσμένο κώδικα για να βελτιστοποιήσουν την υποκείμενη υποδομή ML, να παρέχουν υψηλή διαθεσιμότητα και αξιοπιστία και να συμμορφώνονται με τις κατάλληλες απαιτήσεις ασφάλειας και ρυθμιστικών αρχών. Επομένως, αυτοί οι πελάτες θέλουν να χρησιμοποιήσουν το SageMaker για βελτιστοποιημένη και διαχειριζόμενη υποδομή για εκπαίδευση και ανάπτυξη μοντέλων και να συνεχίσουν να χρησιμοποιούν το Kubernetes για ενορχήστρωση και αγωγούς ML για να διατηρήσουν την τυποποίηση και τη φορητότητα.

Για την αντιμετώπιση αυτής της ανάγκης, το AWS σάς επιτρέπει να εκπαιδεύσετε, να συντονίσετε και να αναπτύξετε μοντέλα στο SageMaker από το Amazon EKS, χρησιμοποιώντας τις ακόλουθες δύο επιλογές:

  • Amazon SageMaker ACK Operators for Kubernetes, οι οποίοι βασίζονται στο Ελεγκτές AWS για Kubernetes πλαίσιο (ACK). Το ACK είναι η στρατηγική AWS που φέρνει τυποποίηση για τη δημιουργία προσαρμοσμένων ελεγκτών Kubernetes που επιτρέπουν στους χρήστες του Kubernetes να παρέχουν πόρους AWS όπως βάσεις δεδομένων ή ουρές μηνυμάτων απλά χρησιμοποιώντας το Kubernetes API. Οι χειριστές SageMaker ACK διευκολύνουν τους προγραμματιστές ML και τους επιστήμονες δεδομένων που χρησιμοποιούν το Kubernetes ως επίπεδο ελέγχου τους να εκπαιδεύουν, να συντονίζουν και να αναπτύσσουν μοντέλα ML στο SageMaker χωρίς να συνδέονται στην κονσόλα SageMaker.
  • Η Στοιχεία SageMaker για αγωγούς Kubeflow, που σας επιτρέπουν να ενσωματώσετε το SageMaker με τη φορητότητα και την ενορχήστρωση των Kubeflow Pipelines. Με τα στοιχεία SageMaker, κάθε εργασία στη ροή εργασιών διοχέτευσης εκτελείται στο SageMaker αντί για το τοπικό σύμπλεγμα Kubernetes. Αυτό σας επιτρέπει να δημιουργείτε και να παρακολουθείτε εγγενείς εργασίες εκπαίδευσης, συντονισμού, ανάπτυξης τελικού σημείου και ομαδικών μετασχηματισμών του SageMaker από τους αγωγούς Kubeflow σας, επιτρέποντάς σας έτσι να μετακινήσετε πλήρεις υπολογισμούς, συμπεριλαμβανομένων εργασιών επεξεργασίας δεδομένων και εκπαίδευσης από το σύμπλεγμα Kubernetes στη διαχειριζόμενη υπηρεσία βελτιστοποιημένης μηχανικής μάθησης του SageMaker.

Ξεκινώντας με το Kubeflow στο AWS v1.6.1, όλες οι διαθέσιμες επιλογές ανάπτυξης του Kubeflow συγκεντρώνουν και τις δύο επιλογές ενοποίησης του Amazon SageMaker από προεπιλογή σε μία πλατφόρμα. Αυτό σημαίνει ότι μπορείτε τώρα να υποβάλετε εργασίες SageMaker χρησιμοποιώντας τελεστές SageMaker ACK από έναν ίδιο τον διακομιστή Notebook Kubeflow υποβάλλοντας τον προσαρμοσμένο πόρο SageMaker ή από το βήμα διοχέτευσης Kubeflow χρησιμοποιώντας στοιχεία SageMaker.

Υπάρχουν δύο εκδόσεις του SageMaker Components – Boto3 (AWS SDK για AWS SDK για Python) στοιχεία που βασίζονται στην έκδοση 1 και στοιχεία SageMaker Operator για K8s (ACK) που βασίζονται στην έκδοση 2. Η νέα έκδοση 2 των στοιχείων SageMaker υποστηρίζει τα πιο πρόσφατα εκπαιδευτικά apis του SageMaker και θα συνεχίσουμε να προσθέτουμε περισσότερες δυνατότητες του SageMaker σε αυτήν την έκδοση του στοιχείου. Ωστόσο, έχετε την ευελιξία να συνδυάσετε στοιχεία Sagemaker έκδοση 2 για εκπαίδευση και έκδοση 1 για άλλες δυνατότητες του SageMaker όπως συντονισμός υπερπαραμέτρων, εργασίες επεξεργασίας, φιλοξενία και πολλά άλλα.

Ένταξη με Προμηθέα και Γραφάνα

Το Prometheus είναι ένα εργαλείο συγκέντρωσης μετρήσεων ανοιχτού κώδικα που μπορείτε να ρυθμίσετε ώστε να εκτελείται σε συμπλέγματα Kubernetes. Όταν εκτελείται σε συμπλέγματα Kubernetes, ένας κύριος διακομιστής Prometheus διαγράφει περιοδικά τα τελικά σημεία pod.

Τα στοιχεία Kubeflow, όπως το Kubeflow Pipelines (KFP) και το Notebook, εκπέμπουν μετρήσεις Prometheus για να επιτρέπουν την παρακολούθηση πόρων στοιχείων, όπως ο αριθμός των πειραμάτων που εκτελούνται ή ο αριθμός των σημειωματάριων.

Αυτές οι μετρήσεις μπορούν να συγκεντρωθούν από έναν διακομιστή Prometheus που εκτελείται στο σύμπλεγμα Kubernetes και να υποβληθούν ερωτήματα χρησιμοποιώντας τη γλώσσα ερωτημάτων Prometheus (PromQL). Για περισσότερες λεπτομέρειες σχετικά με τις δυνατότητες που υποστηρίζει ο Prometheus, ανατρέξτε στο Τεκμηρίωση Προμηθέας.

Η διανομή Kubeflow στη διανομή AWS παρέχει υποστήριξη για την ενοποίηση με τις ακόλουθες διαχειριζόμενες υπηρεσίες AWS:

  1. Η Amazon Managed Prometheus (AMP) δηλαδή α Προμηθέας-συμβατή υπηρεσία παρακολούθησης για υποδομές εμπορευματοκιβωτίων και μετρήσεις εφαρμογών για εμπορευματοκιβώτια που διευκολύνει τους πελάτες να παρακολουθούν με ασφάλεια περιβάλλοντα εμπορευματοκιβωτίων σε κλίμακα. Χρησιμοποιώντας το AMP, μπορείτε να οπτικοποιήσετε, να αναλύσετε και να ειδοποιήσετε τις μετρήσεις, τα αρχεία καταγραφής και τα ίχνη που συλλέγονται από πολλαπλές πηγές δεδομένων στο σύστημα παρατηρησιμότητας, συμπεριλαμβανομένων των AWS, ISV τρίτων και άλλων πόρων στο χαρτοφυλάκιό σας πληροφορικής.
  2. Η Amazon Managed Grafana, μια πλήρως διαχειριζόμενη και ασφαλής υπηρεσία οπτικοποίησης δεδομένων που βασίζεται στον ανοιχτό κώδικα Γκράφανα έργο, που επιτρέπει στους πελάτες να αναζητούν άμεσα, να συσχετίζουν και να οπτικοποιούν λειτουργικές μετρήσεις, αρχεία καταγραφής και ίχνη για τις εφαρμογές τους από πολλές πηγές δεδομένων. Το Amazon Managed Grafana εκφορτώνει τη λειτουργική διαχείριση του Grafana κλιμακώνοντας αυτόματα την υποδομή υπολογιστών και βάσης δεδομένων καθώς αυξάνονται οι απαιτήσεις χρήσης, με αυτοματοποιημένες ενημερώσεις εκδόσεων και επιδιορθώσεις ασφαλείας.

Η διανομή Kubeflow στο AWS παρέχει υποστήριξη για την ενσωμάτωση της υπηρεσίας διαχείρισης Amazon για τον Prometheus και του Amazon Managed Grafana για τη διευκόλυνση της απορρόφησης και της απεικόνισης των μετρήσεων Prometheus με ασφάλεια σε κλίμακα.

Οι ακόλουθες μετρήσεις απορροφώνται και μπορούν να οπτικοποιηθούν:

Για να διαμορφώσετε την υπηρεσία διαχείρισης Amazon για τον Prometheus και την Amazon Managed Grafana για το σύμπλεγμα Kubeflow, ανατρέξτε στο Χρησιμοποιήστε Prometheus, Amazon Managed Service για Prometheus και Amazon Managed Grafana για να παρακολουθείτε μετρήσεις με το Kubeflow στο AWS.

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

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

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

Βεβαιωθείτε ότι πληροίτε τις ακόλουθες προϋποθέσεις:

  • Έχετε ένα Λογαριασμός AWS.
  • Βεβαιωθείτε ότι είστε στο us-west-2 Περιοχή για να εκτελέσετε αυτό το παράδειγμα.
  • Χρησιμοποιήστε το Google Chrome για αλληλεπίδραση με το Κονσόλα διαχείρισης AWS και Kubeflow.
  • Βεβαιωθείτε ότι ο λογαριασμός σας έχει όριο τύπου πόρων SageMaker Training για ml.p3.2xlarge που έχει αυξηθεί σε 2 χρησιμοποιώντας την κονσόλα Service Quotas.
  • Προαιρετικά, μπορείτε να χρησιμοποιήσετε AWS Cloud9, ένα ολοκληρωμένο περιβάλλον ανάπτυξης που βασίζεται σε σύννεφο (IDE) που επιτρέπει την ολοκλήρωση όλης της εργασίας από το πρόγραμμα περιήγησής σας. Για οδηγίες ρύθμισης, ανατρέξτε στο Ρύθμιση του Cloud9 IDE. Επιλέξτε Ubuntu Server 18.04 ως πλατφόρμα στις ρυθμίσεις AWS Cloud9.Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Στη συνέχεια, από το περιβάλλον AWS Cloud9, επιλέξτε το σύμβολο συν και ανοίξτε το νέο τερματικό.

Μπορείτε επίσης να διαμορφώσετε ένα Διεπαφή γραμμής εντολών AWS προφίλ (AWS CLI). Για να το κάνετε αυτό, χρειάζεστε ένα αναγνωριστικό κλειδιού πρόσβασης και ένα μυστικό κλειδί πρόσβασης ενός Διαχείριση ταυτότητας και πρόσβασης AWS (ΕΓΩ ΕΙΜΑΙ) χρήστη λογαριασμό με δικαιώματα διαχειριστή (επισυνάψτε την υπάρχουσα διαχειριζόμενη πολιτική) και πρόσβαση μέσω προγραμματισμού. Δείτε τον παρακάτω κώδικα:

aws configure --profile=kubeflow

AWS Access Key ID [None]: 
AWS Secret Access Key [None]: 
Default region name [None]: us-west-2
Default output format [None]: json

# (In Cloud9, select “Cancel” and “Permanently disable” when the AWS managed temporary credentials dialog pops up)

export AWS_PROFILE=kubeflow

Επαληθεύστε τα δικαιώματα που θα χρησιμοποιήσει το cloud9 για την κλήση πόρων AWS.

aws sts get-caller-identity

Επαληθεύστε από την παρακάτω έξοδο ότι βλέπετε το arn του χρήστη διαχειριστή που έχετε διαμορφώσει στο προφίλ AWS CLI. Σε αυτό το παράδειγμα είναι "kubeflow-user"

{
    "UserId": "*******",
    "Account": "********",
    "Arn": "arn:aws:iam::*******:user/kubeflow-user"
}

Εγκαταστήστε το Amazon EKS και το Kubeflow στο AWS

Για να εγκαταστήσετε το Amazon EKS και το Kubeflow στο AWS, ολοκληρώστε τα παρακάτω βήματα:

  1. Ρυθμίστε το περιβάλλον σας για την ανάπτυξη του Kubeflow στο AWS:
    #Clone the awslabs/kubeflow-manifests and the kubeflow/manifests repositories and check out the release branches of your choosing
    export KUBEFLOW_RELEASE_VERSION=v1.6.1
    export AWS_RELEASE_VERSION=v1.6.1-aws-b1.0.0
    git clone https://github.com/awslabs/kubeflow-manifests.git && cd kubeflow-manifests
    git checkout ${AWS_RELEASE_VERSION}
    git clone --branch ${KUBEFLOW_RELEASE_VERSION} https://github.com/kubeflow/manifests.git upstream
    
    export MANIFEST_DIR=$PWD

    #Install the necessary tools with the following command:
    make install-tools
    source ~/.bash_profile

  2. Αναπτύξτε την έκδοση vanilla του Kubeflow σε AWS και σχετικούς πόρους AWS όπως το EKS χρησιμοποιώντας Terraform. Λάβετε υπόψη ότι οι τόμοι EBS που χρησιμοποιούνται στην ομάδα κόμβων EKS δεν είναι κρυπτογραφημένοι από προεπιλογή:
    #Define the following environment variables
    
    #Region to create the cluster in
    export CLUSTER_REGION=us-west-2
    #Name of the cluster to create
    export CLUSTER_NAME=

    cd deployments/vanilla/terraform
    
    #Save the variables to a .tfvars file
    cat < sample.auto.tfvars
    cluster_name="${CLUSTER_NAME}"
    cluster_region="${CLUSTER_REGION}"
    EOF
    
    #Run the following one-click command to deploy terraform to install EKS infrastructure and Kubeflow
    make deploy

Ρυθμίστε τα δικαιώματα Kubeflow

  1. Προσθέστε δικαιώματα στο Notebook pod και στο Pipeline component για να πραγματοποιήσετε κλήσεις SageMaker, S3 και IAM api χρησιμοποιώντας kubeflow_iam_permissions.sh γραφή.
    export NAMESPACE=kubeflow-user-example-com
    
    wget https://raw.githubusercontent.com/aws-samples/eks-kubeflow-cloudformation-quick-start/9e46662d97e1be7edb0be7fc31166e545655636a/utils/kubeflow_iam_permissions.sh
    chmod +x kubeflow_iam_permissions.sh
    ./kubeflow_iam_permissions.sh $NAMESPACE $CLUSTER_NAME $CLUSTER_REGION

  2. Δημιουργήστε τον ρόλο εκτέλεσης του SageMaker για να επιτρέψετε στην εργασία εκπαίδευσης του SageMaker να έχει πρόσβαση στο σύνολο δεδομένων εκπαίδευσης από την υπηρεσία S3 χρησιμοποιώντας sagemaker_role.sh γραφή.
    wget https://raw.githubusercontent.com/aws-samples/eks-kubeflow-cloudformation-quick-start/9e46662d97e1be7edb0be7fc31166e545655636a/utils/sagemaker_role.sh
    chmod +x sagemaker_role.sh
    ./sagemaker_role.sh

Πρόσβαση στον πίνακα εργαλείων Kubeflow

Για πρόσβαση στον πίνακα εργαλείων Kubeflow, ολοκληρώστε τα παρακάτω βήματα:

  1. Μπορείτε να εκτελέσετε τον πίνακα ελέγχου Kubeflow τοπικά στο περιβάλλον Cloud9 χωρίς να εκθέσετε τις διευθύνσεις URL σας στο δημόσιο διαδίκτυο εκτελώντας τις παρακάτω εντολές.
    # Configure Kubecontext
    $(terraform output -raw configure_kubectl)
    
    cd ${MANIFEST_DIR}
    make port-forward

  2. Επιλέξτε Προεπισκόπηση Εκτελούμενη εφαρμογή.Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
  3. Επιλέξτε το εικονίδιο στη γωνία του πίνακα ελέγχου Kubeflow για να το ανοίξετε ως ξεχωριστή καρτέλα στο Chrome.
  4. Εισαγάγετε τα προεπιλεγμένα διαπιστευτήρια (user@example.com/12341234) για να συνδεθείτε στον πίνακα εργαλείων Kubeflow.Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ρυθμίστε το περιβάλλον Kubeflow σε AWS

Μόλις συνδεθείτε στον πίνακα ελέγχου Kubeflow, βεβαιωθείτε ότι έχετε τον σωστό χώρο ονομάτων (kubeflow-user-example-com) επιλεγμένο. Ολοκληρώστε τα παρακάτω βήματα για να ρυθμίσετε το Kubeflow σε περιβάλλον AWS:

  1. Στον πίνακα εργαλείων Kubeflow, επιλέξτε Φορητοί υπολογιστές στο παράθυρο πλοήγησης.
  2. Επιλέξτε Νέος φορητός υπολογιστής.
  3. Για Όνομα, εισαγω aws-nb.
  4. Για Εικόνα Jupyter Docket, επιλέξτε την εικόνα jupyter-pytorch:1.12.0-cpu-py38-ubuntu20.04-ec2-2022-09-20 (το πιο πρόσφατο διαθέσιμο jupyter-pytorch εικόνα DLC).
  5. Για CPU, εισαγω 1.
  6. Για Μνήμη, εισαγω 5.
  7. Για GPU, αφήστε ως Κανένας.
  8. Μην κάνετε καμία αλλαγή στο Χώρος εργασίας και Τόμοι δεδομένων ενότητες.Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
  9. Αγορά Επιτρέψτε την πρόσβαση στους αγωγούς Kubeflow στο διαμορφώσεις ενότητα και επιλέξτε Εκκίνηση.Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
  10. Βεβαιωθείτε ότι το σημειωματάριό σας δημιουργήθηκε με επιτυχία (μπορεί να χρειαστούν μερικά λεπτά).Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
  11. Επιλέξτε Connect για να συνδεθείτε στο JupyterLab.
  12. Κλωνοποιήστε το repo εισάγοντας https://github.com/aws-samples/eks-kubeflow-cloudformation-quick-start.git στο Κλωνοποιήστε ένα repo τομέα.
  13. Επιλέξτε Κλώνος.Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εκτελέστε ένα κατανεμημένο παράδειγμα εκπαίδευσης

Αφού ρυθμίσετε το σημειωματάριο Jupyter, μπορείτε να εκτελέσετε ολόκληρη την επίδειξη χρησιμοποιώντας τα ακόλουθα βήματα υψηλού επιπέδου από το φάκελο eks-kubeflow-cloudformation-quick-start/workshop/pytorch-distributed-training στο κλωνοποιημένο αποθετήριο:

  1. Εκτελέστε το σενάριο εκπαίδευσης PyTorch Distributed Data Parallel (DDP). – Ανατρέξτε στο σενάριο εκπαίδευσης PyTorch DDP cifar10-distributed-gpu-final.py, το οποίο περιλαμβάνει ένα δείγμα συνελικτικού νευρωνικού δικτύου και λογική για τη διανομή εκπαίδευσης σε ένα σύμπλεγμα CPU και GPU πολλαπλών κόμβων.
  2. Δημιουργήστε έναν αγωγό Kubeflow – Εκτελέστε το σημειωματάριο STEP1.0_create_pipeline_k8s_sagemaker.ipynb για να δημιουργήσετε μια διοχέτευση που εκτελείται και αναπτύσσει μοντέλα στο SageMaker. Βεβαιωθείτε ότι έχετε εγκαταστήσει τη βιβλιοθήκη SageMaker ως μέρος του πρώτου κελιού σημειωματάριου και επανεκκινήστε τον πυρήνα προτού εκτελέσετε τα υπόλοιπα κελιά του σημειωματάριου.
  3. Επικαλέστε ένα τελικό σημείο του SageMaker – Εκτελέστε το σημειωματάριο STEP1.1_invoke_sagemaker_endpoint.ipynb για να καλέσετε και να δοκιμάσετε το τελικό σημείο συμπερασμάτων του μοντέλου SageMaker που δημιουργήθηκε στο προηγούμενο σημειωματάριο.

Στις επόμενες ενότητες, θα συζητήσουμε κάθε ένα από αυτά τα βήματα λεπτομερώς.

Εκτελέστε το σενάριο εκπαίδευσης PyTorch DDP

Ως μέρος της κατανεμημένης εκπαίδευσης, εκπαιδεύουμε ένα μοντέλο ταξινόμησης που δημιουργήθηκε από ένα απλό συνελικτικό νευρωνικό δίκτυο που λειτουργεί στο σύνολο δεδομένων CIFAR10. Το σενάριο εκπαίδευσης cifar10-distributed-gpu-final.py περιέχει μόνο τις βιβλιοθήκες ανοιχτού κώδικα και είναι συμβατό για εκτέλεση τόσο σε συμπλέγματα εκπαίδευσης Kubernetes και SageMaker είτε σε συσκευές GPU είτε σε παρουσίες CPU. Ας δούμε μερικές σημαντικές πτυχές του σεναρίου εκπαίδευσης προτού εκτελέσουμε τα παραδείγματα του σημειωματάριου μας.

Χρησιμοποιούμε το torch.distributed ενότητα, η οποία περιέχει υποστήριξη PyTorch και πρωτόγονα επικοινωνίας για παραλληλισμό πολλαπλών διεργασιών μεταξύ κόμβων στο σύμπλεγμα:

...
import torch
import torch.distributed as dist
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import torch.utils.data
import torch.utils.data.distributed
import torchvision
from torchvision import datasets, transforms
...

Δημιουργούμε ένα απλό μοντέλο ταξινόμησης εικόνων χρησιμοποιώντας έναν συνδυασμό συνελικτικών, μέγιστων επιπέδων συγκέντρωσης και γραμμικών επιπέδων στα οποία relu Η λειτουργία ενεργοποίησης εφαρμόζεται στο μπροστινό πέρασμα του μοντέλου εκπαίδευσης:

# Define models
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(3, 6, 5)
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)

def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 16 * 5 * 5)
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x

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

device = "cuda" if torch.cuda.is_available() else "cpu"
...

Πριν εκτελέσετε κατανεμημένη εκπαίδευση χρησιμοποιώντας το PyTorch DistributedDataParallel για να εκτελέσετε κατανεμημένη επεξεργασία σε πολλούς κόμβους, πρέπει να αρχικοποιήσετε το κατανεμημένο περιβάλλον καλώντας init_process_group. Αυτό αρχικοποιείται σε κάθε μηχανή του εκπαιδευτικού συμπλέγματος.

dist.init_process_group(backend=args.backend, rank=host_rank, world_size=world_size)
...

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

model = Net().to(device)

if is_distributed:
model = torch.nn.parallel.DistributedDataParallel(model)

...

Δημιουργήστε έναν αγωγό Kubeflow

Το σημειωματάριο χρησιμοποιεί το Kubeflow Pipelines SDK και το παρεχόμενο σύνολο πακέτων Python για τον καθορισμό και την εκτέλεση των αγωγών ροής εργασίας ML. Ως μέρος αυτού του SDK, χρησιμοποιούμε τον διακοσμητή πακέτων για συγκεκριμένη γλώσσα (DSL). dsl.pipeline, το οποίο διακοσμεί τις συναρτήσεις Python για να επιστρέψει μια διοχέτευση.

Ο αγωγός Kubeflow χρησιμοποιεί το στοιχείο SageMaker V2 για την υποβολή εκπαίδευσης στο SageMaker χρησιμοποιώντας τους SageMaker ACK Operators. Η δημιουργία και η ανάπτυξη μοντέλου του SageMaker χρησιμοποιεί το στοιχείο SageMaker V1, το οποίο είναι στοιχεία SageMaker που βασίζονται στο Boto3. Χρησιμοποιούμε έναν συνδυασμό και των δύο στοιχείων σε αυτό το παράδειγμα για να δείξουμε την ευελιξία που έχετε στην επιλογή.

  1. Φορτώστε τα στοιχεία SageMaker χρησιμοποιώντας τον ακόλουθο κώδικα:
    # Loads SageMaker training components v2 for Kubeflow pipeline from the URL
    sagemaker_train_ack_op = components.load_component_from_url('https://raw.githubusercontent.com/kubeflow/pipelines/d4aaa03035f221351ebe72fbd74fcfccaf25bb66/components/aws/sagemaker/TrainingJob/component.yaml')
    
    # Loads SageMaker components v1 for Kubeflow pipeline from the URL
    sagemaker_model_op = components.load_component_from_url('https://raw.githubusercontent.com/kubeflow/pipelines/cb36f87b727df0578f4c1e3fe9c24a30bb59e5a2/components/aws/sagemaker/model/component.yaml')
    sagemaker_deploy_op = components.load_component_from_url('https://raw.githubusercontent.com/kubeflow/pipelines/cb36f87b727df0578f4c1e3fe9c24a30bb59e5a2/components/aws/sagemaker/deploy/component.yaml')

    Στον παρακάτω κώδικα, δημιουργούμε τη διοχέτευση Kubeflow όπου εκτελούμε την κατανεμημένη εκπαίδευση του SageMaker χρησιμοποιώντας δύο ml.p3.2xlarge περιπτώσεις:

    # Create Kubeflow Pipeline using Amazon SageMaker Service
    @dsl.pipeline(name="PyTorch Training pipeline", description="Sample training job test")
    def pytorch_cnn_pipeline(region=target_region,
    train_image=aws_dlc_sagemaker_train_image,
    serving_image=aws_dlc_sagemaker_serving_image,
    learning_rate='0.01',
    pytorch_backend='gloo',
    training_job_name=pytorch_distributed_jobname,
    instance_type='ml.p3.2xlarge',
    instance_count='2',
    network_isolation='False',
    traffic_encryption='False',
    ):
    
    # Step to run training on SageMaker using SageMaker Components V2 for Pipeline.
    training = sagemaker_train_ack_op(
    region=region,
    algorithm_specification=(f'{{ '
    f'"trainingImage": "{train_image}",'
    '"trainingInputMode": "File"'
    f'}}'),
    training_job_name=training_job_name,
    hyper_parameters=(f'{{ '
    f'"backend": "{pytorch_backend}",'
    '"batch-size": "64",'
    '"epochs": "10",'
    f'"lr": "{learning_rate}",'
    '"model-type": "custom",'
    '"sagemaker_container_log_level": "20",'
    '"sagemaker_program": "cifar10-distributed-gpu-final.py",'
    f'"sagemaker_region": "{region}",'
    f'"sagemaker_submit_directory": "{source_s3}"'
    f'}}'),
    resource_config=(f'{{ '
    f'"instanceType": "{instance_type}",'
    f'"instanceCount": {instance_count},'
    '"volumeSizeInGB": 50'
    f'}}'),
    input_data_config=training_input(datasets),
    output_data_config=training_output(bucket_name),
    enable_network_isolation=network_isolation,
    enable_inter_container_traffic_encryption=traffic_encryption,
    role_arn=role,
    stopping_condition={"maxRuntimeInSeconds": 3600}
    )
    
    model_artifact_url = get_s3_model_artifact_op(
    training.outputs["model_artifacts"]
    ).output
    
    # This step creates SageMaker Model which refers to model artifacts and inference script to deserialize the input image
    create_model = sagemaker_model_op(
    region=region,
    model_name=training_job_name,
    image=serving_image,
    model_artifact_url=model_artifact_url,
    network_isolation=network_isolation,
    environment=(f'{{ '
    '"SAGEMAKER_CONTAINER_LOG_LEVEL": "20",'
    '"SAGEMAKER_PROGRAM": "inference.py",'
    f'"SAGEMAKER_REGION": "{region}",'
    f'"SAGEMAKER_SUBMIT_DIRECTORY": "{model_artifact_url}"'
    f'}}'),
    role=role
    )
    
    # This step creates SageMaker Endpoint which will be called to run inference
    prediction = sagemaker_deploy_op(
    region=region,
    model_name_1=create_model.output,
    instance_type_1='ml.c5.xlarge'
    )
    
    #Disable pipeline cache
    training.execution_options.caching_strategy.max_cache_staleness = "P0D"

    Αφού οριστεί ο αγωγός, μπορείτε να μεταγλωττίσετε τον αγωγό σε μια προδιαγραφή Argo YAML χρησιμοποιώντας το Kubeflow Pipelines SDK's kfp.compiler πακέτο. Μπορείτε να εκτελέσετε αυτόν τον αγωγό χρησιμοποιώντας τον πελάτη Kubeflow Pipelines SDK, ο οποίος καλεί το τελικό σημείο της υπηρεσίας Pipelines και περνάει στις κατάλληλες κεφαλίδες ελέγχου ταυτότητας απευθείας από το σημειωματάριο. Δείτε τον παρακάτω κώδικα:

    # DSL Compiler that compiles pipeline functions into workflow yaml.
    kfp.compiler.Compiler().compile(pytorch_cnn_pipeline, "pytorch_cnn_pipeline.yaml")
    
    # Connect to Kubeflow Pipelines using the Kubeflow Pipelines SDK client
    client = kfp.Client()
    
    experiment = client.create_experiment(name="ml_workflow")
    
    # Run a specified pipeline
    my_run = client.run_pipeline(experiment.id, "pytorch_cnn_pipeline", "pytorch_cnn_pipeline.yaml")
    
    # Please click “Run details” link generated below this cell to view your pipeline. You can click every pipeline step to see logs.

  2. Επιλέξτε Λεπτομέρειες εκτέλεσης σύνδεσμος κάτω από το τελευταίο κελί για να προβάλετε τη σωλήνωση Kubeflow. Το ακόλουθο στιγμιότυπο οθόνης δείχνει τις λεπτομέρειες της διοχέτευσής μας για το στοιχείο εκπαίδευσης και ανάπτυξης του SageMaker.Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
  3. Επιλέξτε το βήμα εργασίας εκπαίδευσης και στο Logs καρτέλα, επιλέξτε το σύνδεσμο καταγραφής CloudWatch για να αποκτήσετε πρόσβαση στα αρχεία καταγραφής του SageMaker.
    Το ακόλουθο στιγμιότυπο οθόνης δείχνει τα αρχεία καταγραφής του CloudWatch για καθεμία από τις δύο περιπτώσεις ml.p3.2xlarge.Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
  4. Επιλέξτε οποιαδήποτε από τις ομάδες για να δείτε τα αρχεία καταγραφής.Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
  5. Καταγράψτε το τελικό σημείο του SageMaker επιλέγοντας το Sagemaker – Deploy Model βήμα και αντιγραφή του endpoint_name τιμή τεχνουργήματος εξόδου.Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Επικαλέστε ένα τελικό σημείο του SageMaker

Το σημειωματάριο STEP1.1_invoke_sagemaker_endpoint.ipynb καλεί το τελικό σημείο συμπερασμάτων SageMaker που δημιουργήθηκε στο προηγούμενο βήμα. Βεβαιωθείτε ότι έχετε ενημερώσει το όνομα τελικού σημείου:

# Invoke SageMaker Endpoint. * Ensure you update the endpoint
# You can grab the SageMaker Endpoint name by either 1) going to the pipeline visualization of Kubeflow console and click the component for deployment, or 2) Go to SageMaker console and go to the list of endpoints, and then substitute the name to the EndpointName='...' in this cell.

endpointName=''

response = client.invoke_endpoint(EndpointName=endpointName,
ContentType='application/x-image',
Body=payload)

pred = json.loads(response['Body'].read().decode())

output_vector_list=pred['score']

# Get outout vector of 10 classes
output_vector = output_vector_list[0]

# Find the class with highest probability
max=output_vector[0]
index = 0
for i in range(1,len(output_vector)):
if output_vector[i] > max:
max = output_vector[i]
index = i

print(f'Index of the maximum value is : {index}')

labels = ['airplane','automobile','bird','cat','deer','dog','frog','horse','ship','truck']

print(labels[index])

εκκαθάριση

Για να καθαρίσετε τους πόρους σας, ακολουθήστε τα παρακάτω βήματα:

  1. Εκτελέστε τις ακόλουθες εντολές στο AWS Cloud9 για να διαγράψετε τους πόρους AWS:
    cd ${MANIFEST_DIR}/deployments/vanilla/terraform
    make delete

  2. Διαγραφή ρόλου IAM "sagemakerrole” χρησιμοποιώντας την ακόλουθη εντολή AWS CLI:
    aws iam detach-role-policy --role-name sagemakerrole --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
    aws iam detach-role-policy --role-name sagemakerrole --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
    aws iam delete-role --role-name sagemakerrole

  3. Διαγράψτε το τελικό σημείο του SageMaker χρησιμοποιώντας την ακόλουθη εντολή AWS CLI:
    aws sagemaker delete-endpoint --endpoint-name  --region us-west-2

Χαρακτηριστικά

Σε αυτήν την ανάρτηση, επισημάναμε την αξία που παρέχει το Kubeflow στο AWS 1.6.1 μέσω των εγγενών ενσωματώσεων υπηρεσιών που διαχειρίζονται το AWS για την αντιμετώπιση της ανάγκης περιπτώσεων χρήσης AI και ML σε εταιρικό επίπεδο. Μπορείτε να επιλέξετε από πολλές επιλογές ανάπτυξης για να εγκαταστήσετε το Kubeflow στο AWS με διάφορες ενσωματώσεις υπηρεσιών χρησιμοποιώντας Terraform, Kustomize ή Helm. Η περίπτωση χρήσης σε αυτήν την ανάρτηση έδειξε μια ενσωμάτωση του Kubeflow με το SageMaker που χρησιμοποιεί ένα σύμπλεγμα εκπαίδευσης διαχειριζόμενο από το SageMaker για την εκτέλεση κατανεμημένης εκπαίδευσης για ένα μοντέλο ταξινόμησης εικόνας και τελικό σημείο του SageMaker για την ανάπτυξη του μοντέλου.

Έχουμε επίσης διαθέσει ένα παράδειγμα αγωγού δείγματος που χρησιμοποιεί τα πιο πρόσφατα στοιχεία του SageMaker. μπορείτε να το εκτελέσετε απευθείας από τον πίνακα εργαλείων Kubeflow. Αυτός ο αγωγός απαιτεί την Δεδομένα Amazon S3 και Ρόλος IAM εκτέλεσης του SageMaker ως τις απαιτούμενες εισροές.

Για να ξεκινήσετε με το Kubeflow στο AWS, ανατρέξτε στις διαθέσιμες επιλογές ανάπτυξης που είναι ενσωματωμένες στο AWS Kubeflow στο AWS. Μπορείτε να ακολουθήσετε το Αποθετήριο AWS Labs για να παρακολουθείτε όλες τις συνεισφορές AWS στο Kubeflow. Μπορείτε επίσης να μας βρείτε στο Kubeflow #AWS Slack Channel; Τα σχόλιά σας εκεί θα μας βοηθήσουν να δώσουμε προτεραιότητα στις επόμενες δυνατότητες που θα συνεισφέρουμε στο έργο Kubeflow.


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

Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Kanwaljit Khurmi είναι Senior Solutions Architect στο Amazon Web Services. Συνεργάζεται με τους πελάτες του AWS για να παρέχει καθοδήγηση και τεχνική βοήθεια βοηθώντας τους να βελτιώσουν την αξία των λύσεών τους όταν χρησιμοποιούν το AWS. Η Kanwaljit ειδικεύεται στο να βοηθά τους πελάτες με εφαρμογές κοντέινερ και μηχανικής εκμάθησης.

Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Kartik Kalamadi είναι Μηχανικός Ανάπτυξης Λογισμικού στο Amazon AI. Επί του παρόντος επικεντρώνεται σε έργα ανοιχτού κώδικα της Kubernetes Machine Learning, όπως το Kubeflow και το AWS SageMaker Controller για k8s. Στον ελεύθερο χρόνο μου μου αρέσει να παίζω PC Games και να ασχολούμαι με το VR χρησιμοποιώντας το Unity engine.

Ενεργοποίηση υβριδικών ροών εργασίας ML στο Amazon EKS και στο Amazon SageMaker με ένα κλικ Kubeflow στην ανάπτυξη AWS PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ραχούλ Χαρσέ είναι Μηχανικός Ανάπτυξης Λογισμικού στην Amazon Web Services. Η δουλειά του επικεντρώνεται στην ενσωμάτωση υπηρεσιών AWS με πλατφόρμες ML Ops με κοντέινερ ανοιχτού κώδικα για τη βελτίωση της επεκτασιμότητας, της αξιοπιστίας και της ασφάλειάς τους. Εκτός από την εστίαση σε αιτήματα πελατών για χαρακτηριστικά, η Rahul απολαμβάνει επίσης να πειραματίζεται με τις πιο πρόσφατες τεχνολογικές εξελίξεις στον τομέα.

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

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