Σήμερα, πολλοί πελάτες 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 σε μια διαδικασία δύο βημάτων:
- Δημιουργήστε πόρους AWS όπως Amazon EKS, Amazon RDS, Amazon S3 και Amazon Cognito, είτε μέσω των αυτοματοποιημένων σεναρίων που περιλαμβάνονται στη διανομή AWS είτε με μη αυτόματο τρόπο ακολουθώντας μια Οδηγός βήμα προς βήμα.
- Εγκαταστήστε τις αναπτύξεις Kubeflow είτε χρησιμοποιώντας γραφήματα Helm είτε Kustomize.
Αυτή η επιλογή έχει τα ακόλουθα πλεονεκτήματα:
- Ο κύριος στόχος αυτής της επιλογής εγκατάστασης είναι να παρέχει διαμορφώσεις Kubernetes που σχετίζονται με το Kubeflow. Επομένως, μπορείτε να επιλέξετε να δημιουργήσετε ή να φέρετε υπάρχοντα συμπλέγματα EKS ή οποιονδήποτε από τους σχετικούς πόρους AWS, όπως το Amazon RDS, το Amazon S3 και το Amazon Cognito, και να το διαμορφώσετε και να το διαχειριστείτε ώστε να λειτουργεί με το Kubeflow στο AWS.
- Είναι πιο εύκολο να μετακινηθείτε από ένα ανοιχτού κώδικα Kustomize Kubeflow μανιφέστο στη διανομή AWS Kubeflow.
Το παρακάτω διάγραμμα απεικονίζει τις αρχιτεκτονικές και των δύο επιλογών.
Ενσωμάτωση με το 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:
- Η Amazon Managed Prometheus (AMP) δηλαδή α Προμηθέας-συμβατή υπηρεσία παρακολούθησης για υποδομές εμπορευματοκιβωτίων και μετρήσεις εφαρμογών για εμπορευματοκιβώτια που διευκολύνει τους πελάτες να παρακολουθούν με ασφάλεια περιβάλλοντα εμπορευματοκιβωτίων σε κλίμακα. Χρησιμοποιώντας το AMP, μπορείτε να οπτικοποιήσετε, να αναλύσετε και να ειδοποιήσετε τις μετρήσεις, τα αρχεία καταγραφής και τα ίχνη που συλλέγονται από πολλαπλές πηγές δεδομένων στο σύστημα παρατηρησιμότητας, συμπεριλαμβανομένων των AWS, ISV τρίτων και άλλων πόρων στο χαρτοφυλάκιό σας πληροφορικής.
- Η Amazon Managed Grafana, μια πλήρως διαχειριζόμενη και ασφαλής υπηρεσία οπτικοποίησης δεδομένων που βασίζεται στον ανοιχτό κώδικα Γκράφανα έργο, που επιτρέπει στους πελάτες να αναζητούν άμεσα, να συσχετίζουν και να οπτικοποιούν λειτουργικές μετρήσεις, αρχεία καταγραφής και ίχνη για τις εφαρμογές τους από πολλές πηγές δεδομένων. Το Amazon Managed Grafana εκφορτώνει τη λειτουργική διαχείριση του Grafana κλιμακώνοντας αυτόματα την υποδομή υπολογιστών και βάσης δεδομένων καθώς αυξάνονται οι απαιτήσεις χρήσης, με αυτοματοποιημένες ενημερώσεις εκδόσεων και επιδιορθώσεις ασφαλείας.
Η διανομή Kubeflow στο AWS παρέχει υποστήριξη για την ενσωμάτωση της υπηρεσίας διαχείρισης Amazon για τον Prometheus και του Amazon Managed Grafana για τη διευκόλυνση της απορρόφησης και της απεικόνισης των μετρήσεων Prometheus με ασφάλεια σε κλίμακα.
Οι ακόλουθες μετρήσεις απορροφώνται και μπορούν να οπτικοποιηθούν:
- Μετρήσεις που εκπέμπονται από στοιχεία Kubeflow, όπως το Kubeflow Pipelines και ο διακομιστής Notebook
- KubeFlow μετρήσεις επιπέδου ελέγχου
Για να διαμορφώσετε την υπηρεσία διαχείρισης 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.Στη συνέχεια, από το περιβάλλον AWS Cloud9, επιλέξτε το σύμβολο συν και ανοίξτε το νέο τερματικό.
Μπορείτε επίσης να διαμορφώσετε ένα Διεπαφή γραμμής εντολών AWS προφίλ (AWS CLI). Για να το κάνετε αυτό, χρειάζεστε ένα αναγνωριστικό κλειδιού πρόσβασης και ένα μυστικό κλειδί πρόσβασης ενός Διαχείριση ταυτότητας και πρόσβασης AWS (ΕΓΩ ΕΙΜΑΙ) χρήστη λογαριασμό με δικαιώματα διαχειριστή (επισυνάψτε την υπάρχουσα διαχειριζόμενη πολιτική) και πρόσβαση μέσω προγραμματισμού. Δείτε τον παρακάτω κώδικα:
Επαληθεύστε τα δικαιώματα που θα χρησιμοποιήσει το cloud9 για την κλήση πόρων AWS.
Επαληθεύστε από την παρακάτω έξοδο ότι βλέπετε το arn του χρήστη διαχειριστή που έχετε διαμορφώσει στο προφίλ AWS CLI. Σε αυτό το παράδειγμα είναι "kubeflow-user"
Εγκαταστήστε το Amazon EKS και το Kubeflow στο AWS
Για να εγκαταστήσετε το Amazon EKS και το Kubeflow στο AWS, ολοκληρώστε τα παρακάτω βήματα:
- Ρυθμίστε το περιβάλλον σας για την ανάπτυξη του Kubeflow στο AWS:
- Αναπτύξτε την έκδοση vanilla του Kubeflow σε AWS και σχετικούς πόρους AWS όπως το EKS χρησιμοποιώντας Terraform. Λάβετε υπόψη ότι οι τόμοι EBS που χρησιμοποιούνται στην ομάδα κόμβων EKS δεν είναι κρυπτογραφημένοι από προεπιλογή:
Ρυθμίστε τα δικαιώματα Kubeflow
- Προσθέστε δικαιώματα στο Notebook pod και στο Pipeline component για να πραγματοποιήσετε κλήσεις SageMaker, S3 και IAM api χρησιμοποιώντας
kubeflow_iam_permissions.sh
γραφή. - Δημιουργήστε τον ρόλο εκτέλεσης του SageMaker για να επιτρέψετε στην εργασία εκπαίδευσης του SageMaker να έχει πρόσβαση στο σύνολο δεδομένων εκπαίδευσης από την υπηρεσία S3 χρησιμοποιώντας
sagemaker_role.sh
γραφή.
Πρόσβαση στον πίνακα εργαλείων Kubeflow
Για πρόσβαση στον πίνακα εργαλείων Kubeflow, ολοκληρώστε τα παρακάτω βήματα:
- Μπορείτε να εκτελέσετε τον πίνακα ελέγχου Kubeflow τοπικά στο περιβάλλον Cloud9 χωρίς να εκθέσετε τις διευθύνσεις URL σας στο δημόσιο διαδίκτυο εκτελώντας τις παρακάτω εντολές.
- Επιλέξτε Προεπισκόπηση Εκτελούμενη εφαρμογή.
- Επιλέξτε το εικονίδιο στη γωνία του πίνακα ελέγχου Kubeflow για να το ανοίξετε ως ξεχωριστή καρτέλα στο Chrome.
- Εισαγάγετε τα προεπιλεγμένα διαπιστευτήρια (
user@example.com/12341234
) για να συνδεθείτε στον πίνακα εργαλείων Kubeflow.
Ρυθμίστε το περιβάλλον Kubeflow σε AWS
Μόλις συνδεθείτε στον πίνακα ελέγχου Kubeflow, βεβαιωθείτε ότι έχετε τον σωστό χώρο ονομάτων (kubeflow-user-example-com
) επιλεγμένο. Ολοκληρώστε τα παρακάτω βήματα για να ρυθμίσετε το Kubeflow σε περιβάλλον AWS:
- Στον πίνακα εργαλείων Kubeflow, επιλέξτε Φορητοί υπολογιστές στο παράθυρο πλοήγησης.
- Επιλέξτε Νέος φορητός υπολογιστής.
- Για Όνομα, εισαγω
aws-nb
. - Για Εικόνα Jupyter Docket, επιλέξτε την εικόνα
jupyter-pytorch:1.12.0-cpu-py38-ubuntu20.04-ec2-2022-09-20
(το πιο πρόσφατο διαθέσιμοjupyter-pytorch
εικόνα DLC). - Για CPU, εισαγω
1
. - Για Μνήμη, εισαγω
5
. - Για GPU, αφήστε ως Κανένας.
- Μην κάνετε καμία αλλαγή στο Χώρος εργασίας και Τόμοι δεδομένων ενότητες.
- Αγορά Επιτρέψτε την πρόσβαση στους αγωγούς Kubeflow στο διαμορφώσεις ενότητα και επιλέξτε Εκκίνηση.
- Βεβαιωθείτε ότι το σημειωματάριό σας δημιουργήθηκε με επιτυχία (μπορεί να χρειαστούν μερικά λεπτά).
- Επιλέξτε Connect για να συνδεθείτε στο JupyterLab.
- Κλωνοποιήστε το repo εισάγοντας
https://github.com/aws-samples/eks-kubeflow-cloudformation-quick-start.git
στο Κλωνοποιήστε ένα repo τομέα. - Επιλέξτε Κλώνος.
Εκτελέστε ένα κατανεμημένο παράδειγμα εκπαίδευσης
Αφού ρυθμίσετε το σημειωματάριο Jupyter, μπορείτε να εκτελέσετε ολόκληρη την επίδειξη χρησιμοποιώντας τα ακόλουθα βήματα υψηλού επιπέδου από το φάκελο eks-kubeflow-cloudformation-quick-start/workshop/pytorch-distributed-training
στο κλωνοποιημένο αποθετήριο:
- Εκτελέστε το σενάριο εκπαίδευσης PyTorch Distributed Data Parallel (DDP). – Ανατρέξτε στο σενάριο εκπαίδευσης PyTorch DDP
cifar10-distributed-gpu-final.py
, το οποίο περιλαμβάνει ένα δείγμα συνελικτικού νευρωνικού δικτύου και λογική για τη διανομή εκπαίδευσης σε ένα σύμπλεγμα CPU και GPU πολλαπλών κόμβων. - Δημιουργήστε έναν αγωγό Kubeflow – Εκτελέστε το σημειωματάριο
STEP1.0_create_pipeline_k8s_sagemaker.ipynb
για να δημιουργήσετε μια διοχέτευση που εκτελείται και αναπτύσσει μοντέλα στο SageMaker. Βεβαιωθείτε ότι έχετε εγκαταστήσει τη βιβλιοθήκη SageMaker ως μέρος του πρώτου κελιού σημειωματάριου και επανεκκινήστε τον πυρήνα προτού εκτελέσετε τα υπόλοιπα κελιά του σημειωματάριου. - Επικαλέστε ένα τελικό σημείο του SageMaker – Εκτελέστε το σημειωματάριο
STEP1.1_invoke_sagemaker_endpoint.ipynb
για να καλέσετε και να δοκιμάσετε το τελικό σημείο συμπερασμάτων του μοντέλου SageMaker που δημιουργήθηκε στο προηγούμενο σημειωματάριο.
Στις επόμενες ενότητες, θα συζητήσουμε κάθε ένα από αυτά τα βήματα λεπτομερώς.
Εκτελέστε το σενάριο εκπαίδευσης PyTorch DDP
Ως μέρος της κατανεμημένης εκπαίδευσης, εκπαιδεύουμε ένα μοντέλο ταξινόμησης που δημιουργήθηκε από ένα απλό συνελικτικό νευρωνικό δίκτυο που λειτουργεί στο σύνολο δεδομένων CIFAR10. Το σενάριο εκπαίδευσης cifar10-distributed-gpu-final.py
περιέχει μόνο τις βιβλιοθήκες ανοιχτού κώδικα και είναι συμβατό για εκτέλεση τόσο σε συμπλέγματα εκπαίδευσης Kubernetes και SageMaker είτε σε συσκευές GPU είτε σε παρουσίες CPU. Ας δούμε μερικές σημαντικές πτυχές του σεναρίου εκπαίδευσης προτού εκτελέσουμε τα παραδείγματα του σημειωματάριου μας.
Χρησιμοποιούμε το torch.distributed
ενότητα, η οποία περιέχει υποστήριξη PyTorch και πρωτόγονα επικοινωνίας για παραλληλισμό πολλαπλών διεργασιών μεταξύ κόμβων στο σύμπλεγμα:
Δημιουργούμε ένα απλό μοντέλο ταξινόμησης εικόνων χρησιμοποιώντας έναν συνδυασμό συνελικτικών, μέγιστων επιπέδων συγκέντρωσης και γραμμικών επιπέδων στα οποία relu
Η λειτουργία ενεργοποίησης εφαρμόζεται στο μπροστινό πέρασμα του μοντέλου εκπαίδευσης:
Εάν το εκπαιδευτικό σύμπλεγμα έχει GPU, το σενάριο εκτελεί την εκπαίδευση σε συσκευές CUDA και η μεταβλητή συσκευής διατηρεί την προεπιλεγμένη συσκευή CUDA:
Πριν εκτελέσετε κατανεμημένη εκπαίδευση χρησιμοποιώντας το PyTorch DistributedDataParallel
για να εκτελέσετε κατανεμημένη επεξεργασία σε πολλούς κόμβους, πρέπει να αρχικοποιήσετε το κατανεμημένο περιβάλλον καλώντας init_process_group
. Αυτό αρχικοποιείται σε κάθε μηχανή του εκπαιδευτικού συμπλέγματος.
Δημιουργούμε το μοντέλο του ταξινομητή και αντιγράφουμε πάνω από το μοντέλο στη συσκευή προορισμού. Εάν η κατανεμημένη εκπαίδευση είναι ενεργοποιημένη για εκτέλεση σε πολλούς κόμβους, το DistributedDataParallel
Η κλάση χρησιμοποιείται ως αντικείμενο περιτυλίγματος γύρω από το αντικείμενο μοντέλου, το οποίο επιτρέπει τη σύγχρονη κατανεμημένη εκπαίδευση σε πολλαπλές μηχανές. Τα δεδομένα εισόδου χωρίζονται στη διάσταση παρτίδας και ένα αντίγραφο του μοντέλου τοποθετείται σε κάθε μηχάνημα και κάθε συσκευή. Δείτε τον παρακάτω κώδικα:
Δημιουργήστε έναν αγωγό Kubeflow
Το σημειωματάριο χρησιμοποιεί το Kubeflow Pipelines SDK και το παρεχόμενο σύνολο πακέτων Python για τον καθορισμό και την εκτέλεση των αγωγών ροής εργασίας ML. Ως μέρος αυτού του SDK, χρησιμοποιούμε τον διακοσμητή πακέτων για συγκεκριμένη γλώσσα (DSL). dsl.pipeline
, το οποίο διακοσμεί τις συναρτήσεις Python για να επιστρέψει μια διοχέτευση.
Ο αγωγός Kubeflow χρησιμοποιεί το στοιχείο SageMaker V2 για την υποβολή εκπαίδευσης στο SageMaker χρησιμοποιώντας τους SageMaker ACK Operators. Η δημιουργία και η ανάπτυξη μοντέλου του SageMaker χρησιμοποιεί το στοιχείο SageMaker V1, το οποίο είναι στοιχεία SageMaker που βασίζονται στο Boto3. Χρησιμοποιούμε έναν συνδυασμό και των δύο στοιχείων σε αυτό το παράδειγμα για να δείξουμε την ευελιξία που έχετε στην επιλογή.
- Φορτώστε τα στοιχεία SageMaker χρησιμοποιώντας τον ακόλουθο κώδικα:
Στον παρακάτω κώδικα, δημιουργούμε τη διοχέτευση Kubeflow όπου εκτελούμε την κατανεμημένη εκπαίδευση του SageMaker χρησιμοποιώντας δύο
ml.p3.2xlarge
περιπτώσεις:Αφού οριστεί ο αγωγός, μπορείτε να μεταγλωττίσετε τον αγωγό σε μια προδιαγραφή Argo YAML χρησιμοποιώντας το Kubeflow Pipelines SDK's
kfp.compiler
πακέτο. Μπορείτε να εκτελέσετε αυτόν τον αγωγό χρησιμοποιώντας τον πελάτη Kubeflow Pipelines SDK, ο οποίος καλεί το τελικό σημείο της υπηρεσίας Pipelines και περνάει στις κατάλληλες κεφαλίδες ελέγχου ταυτότητας απευθείας από το σημειωματάριο. Δείτε τον παρακάτω κώδικα: - Επιλέξτε Λεπτομέρειες εκτέλεσης σύνδεσμος κάτω από το τελευταίο κελί για να προβάλετε τη σωλήνωση Kubeflow. Το ακόλουθο στιγμιότυπο οθόνης δείχνει τις λεπτομέρειες της διοχέτευσής μας για το στοιχείο εκπαίδευσης και ανάπτυξης του SageMaker.
- Επιλέξτε το βήμα εργασίας εκπαίδευσης και στο Logs καρτέλα, επιλέξτε το σύνδεσμο καταγραφής CloudWatch για να αποκτήσετε πρόσβαση στα αρχεία καταγραφής του SageMaker.
Το ακόλουθο στιγμιότυπο οθόνης δείχνει τα αρχεία καταγραφής του CloudWatch για καθεμία από τις δύο περιπτώσεις ml.p3.2xlarge. - Επιλέξτε οποιαδήποτε από τις ομάδες για να δείτε τα αρχεία καταγραφής.
- Καταγράψτε το τελικό σημείο του SageMaker επιλέγοντας το Sagemaker – Deploy Model βήμα και αντιγραφή του
endpoint_name
τιμή τεχνουργήματος εξόδου.
Επικαλέστε ένα τελικό σημείο του SageMaker
Το σημειωματάριο STEP1.1_invoke_sagemaker_endpoint.ipynb
καλεί το τελικό σημείο συμπερασμάτων SageMaker που δημιουργήθηκε στο προηγούμενο βήμα. Βεβαιωθείτε ότι έχετε ενημερώσει το όνομα τελικού σημείου:
εκκαθάριση
Για να καθαρίσετε τους πόρους σας, ακολουθήστε τα παρακάτω βήματα:
- Εκτελέστε τις ακόλουθες εντολές στο AWS Cloud9 για να διαγράψετε τους πόρους AWS:
- Διαγραφή ρόλου IAM "
sagemakerrole
” χρησιμοποιώντας την ακόλουθη εντολή AWS CLI: - Διαγράψτε το τελικό σημείο του SageMaker χρησιμοποιώντας την ακόλουθη εντολή AWS CLI:
Χαρακτηριστικά
Σε αυτήν την ανάρτηση, επισημάναμε την αξία που παρέχει το 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.
Σχετικά με τους συγγραφείς
Kanwaljit Khurmi είναι Senior Solutions Architect στο Amazon Web Services. Συνεργάζεται με τους πελάτες του AWS για να παρέχει καθοδήγηση και τεχνική βοήθεια βοηθώντας τους να βελτιώσουν την αξία των λύσεών τους όταν χρησιμοποιούν το AWS. Η Kanwaljit ειδικεύεται στο να βοηθά τους πελάτες με εφαρμογές κοντέινερ και μηχανικής εκμάθησης.
Kartik Kalamadi είναι Μηχανικός Ανάπτυξης Λογισμικού στο Amazon AI. Επί του παρόντος επικεντρώνεται σε έργα ανοιχτού κώδικα της Kubernetes Machine Learning, όπως το Kubeflow και το AWS SageMaker Controller για k8s. Στον ελεύθερο χρόνο μου μου αρέσει να παίζω PC Games και να ασχολούμαι με το VR χρησιμοποιώντας το Unity engine.
Ραχούλ Χαρσέ είναι Μηχανικός Ανάπτυξης Λογισμικού στην Amazon Web Services. Η δουλειά του επικεντρώνεται στην ενσωμάτωση υπηρεσιών AWS με πλατφόρμες ML Ops με κοντέινερ ανοιχτού κώδικα για τη βελτίωση της επεκτασιμότητας, της αξιοπιστίας και της ασφάλειάς τους. Εκτός από την εστίαση σε αιτήματα πελατών για χαρακτηριστικά, η Rahul απολαμβάνει επίσης να πειραματίζεται με τις πιο πρόσφατες τεχνολογικές εξελίξεις στον τομέα.
- Για προχωρημένους (300)
- AI
- αι τέχνη
- ι γεννήτρια τέχνης
- ρομπότ ai
- Amazon Sage Maker
- τεχνητή νοημοσύνη
- πιστοποίηση τεχνητής νοημοσύνης
- τεχνητή νοημοσύνη στον τραπεζικό τομέα
- ρομπότ τεχνητής νοημοσύνης
- ρομπότ τεχνητής νοημοσύνης
- λογισμικό τεχνητής νοημοσύνης
- Μηχανική εκμάθηση AWS
- blockchain
- συνέδριο blockchain ai
- Coingenius
- συνομιλητική τεχνητή νοημοσύνη
- κρυπτοσυνεδριο αι
- του νταλ
- βαθιά μάθηση
- έχεις google
- KubeFlow
- μάθηση μηχανής
- Πλάτων
- πλάτων αι
- Πληροφορία δεδομένων Plato
- Παιχνίδι Πλάτωνας
- Πλάτωνα δεδομένα
- platogaming
- κλίμακα αι
- σύνταξη
- zephyrnet