Οι πρόσφατες εξελίξεις στη μηχανική μάθηση (ML) έχουν οδηγήσει σε ολοένα και πιο μεγάλα μοντέλα, μερικά από τα οποία απαιτούν εκατοντάδες δισεκατομμύρια παραμέτρους. Αν και είναι πιο ισχυρά, η εκπαίδευση και η εξαγωγή συμπερασμάτων σε αυτά τα μοντέλα απαιτούν σημαντικούς υπολογιστικούς πόρους. Παρά τη διαθεσιμότητα προηγμένων κατανεμημένων βιβλιοθηκών εκπαίδευσης, είναι σύνηθες για τις εργασίες εκπαίδευσης και συμπερασμάτων να χρειάζονται εκατοντάδες επιταχυντές (GPU ή ειδικά κατασκευασμένα τσιπ ML όπως π. Aws trainium και Αίσθηση AWS), και επομένως δεκάδες ή εκατοντάδες περιπτώσεις.
Σε τέτοια κατανεμημένα περιβάλλοντα, η παρατηρησιμότητα τόσο των παρουσιών όσο και των τσιπ ML γίνεται το κλειδί για τη βελτίωση της απόδοσης του μοντέλου και τη βελτιστοποίηση του κόστους. Οι μετρήσεις επιτρέπουν στις ομάδες να κατανοήσουν τη συμπεριφορά του φόρτου εργασίας και να βελτιστοποιήσουν την κατανομή και τη χρήση πόρων, να διαγνώσουν ανωμαλίες και να αυξήσουν τη συνολική απόδοση της υποδομής. Για τους επιστήμονες δεδομένων, η χρήση και ο κορεσμός των τσιπ ML σχετίζονται επίσης με τον προγραμματισμό χωρητικότητας.
Αυτή η ανάρτηση σας καθοδηγεί στο Μοτίβο παρατηρητικότητας ανοιχτού κώδικα για το AWS Inferentia, το οποίο σας δείχνει πώς να παρακολουθείτε την απόδοση των τσιπ ML, που χρησιμοποιούνται σε ένα Υπηρεσία Amazon Elastic Kubernetes (Amazon EKS) σύμπλεγμα, με κόμβους επιπέδου δεδομένων που βασίζονται σε Amazon Elastic Compute Cloud (Amazon EC2) περιπτώσεις του τύπου Inf1 και Inf2.
Το μοτίβο είναι μέρος του AWS CDK Observability Accelerator, ένα σύνολο ενοτήτων με γνώμη που θα σας βοηθήσουν να ορίσετε την παρατηρησιμότητα για τα συμπλέγματα Amazon EKS. Το AWS CDK Observability Accelerator είναι οργανωμένο γύρω από μοτίβα, τα οποία είναι επαναχρησιμοποιήσιμες μονάδες για την ανάπτυξη πολλαπλών πόρων. Το σύνολο μοτίβων παρατηρησιμότητας ανοιχτού κώδικα οργάνων παρατηρητικότητας με Η Amazon διαχειρίστηκε τη Grafana ταμπλό, an AWS Distro για OpenTelemetry συλλέκτης για τη συλλογή μετρήσεων και Διαχειριζόμενη υπηρεσία Amazon για τον Προμηθέα για να τα αποθηκεύσετε.
Επισκόπηση λύσεων
Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική λύσεων.
Αυτή η λύση αναπτύσσει ένα σύμπλεγμα Amazon EKS με μια ομάδα κόμβων που περιλαμβάνει παρουσίες Inf1.
Ο τύπος AMI της ομάδας κόμβων είναι AL2_x86_64_GPU
, το οποίο χρησιμοποιεί το Το Amazon EKS βελτιστοποίησε το επιταχυνόμενο Amazon Linux AMI. Εκτός από την τυπική διαμόρφωση AMI βελτιστοποιημένης από το Amazon EKS, η επιταχυνόμενη AMI περιλαμβάνει Χρόνος εκτέλεσης NeuronX.
Για πρόσβαση στα τσιπ ML από το Kubernetes, το μοτίβο αναπτύσσει το AWS Neuron πρόσθετο συσκευής.
Οι μετρήσεις εκτίθενται στη διαχειριζόμενη υπηρεσία Amazon για τον Prometheus από το neuron-monitor
Το DaemonSet, το οποίο αναπτύσσει ένα ελάχιστο κοντέινερ, με το Εργαλεία νευρώνων εγκατασταθεί. Συγκεκριμένα, το neuron-monitor
Το DaemonSet εκτελεί το neuron-monitor
εντολή που διοχετεύεται στο neuron-monitor-prometheus.py
συνοδευτικό σενάριο (και οι δύο εντολές αποτελούν μέρος του κοντέινερ):
Η εντολή χρησιμοποιεί τα ακόλουθα στοιχεία:
neuron-monitor
συλλέγει μετρήσεις και στατιστικά από τις εφαρμογές Neuron που εκτελούνται στο σύστημα και μεταδίδει τα συλλεγμένα δεδομένα στο stdout στο Μορφή JSONneuron-monitor-prometheus.py
χαρτογραφεί και εκθέτει τα δεδομένα τηλεμετρίας από τη μορφή JSON σε μορφή συμβατή με το Prometheus
Τα δεδομένα οπτικοποιούνται στο Amazon Managed Grafana από τον αντίστοιχο πίνακα εργαλείων.
Η υπόλοιπη ρύθμιση για τη συλλογή και την οπτικοποίηση μετρήσεων με την υπηρεσία διαχείρισης Amazon για Prometheus και Amazon Managed Grafana είναι παρόμοια με αυτή που χρησιμοποιείται σε άλλα μοτίβα που βασίζονται σε ανοιχτό κώδικα, τα οποία περιλαμβάνονται στο AWS Observability Accelerator for CDK
Αποθήκη GitHub.
Προϋποθέσεις
Χρειάζεστε τα ακόλουθα για να ολοκληρώσετε τα βήματα σε αυτήν την ανάρτηση:
Ρυθμίστε το περιβάλλον
Ολοκληρώστε τα παρακάτω βήματα για να ρυθμίσετε το περιβάλλον σας:
- Ανοίξτε ένα παράθυρο τερματικού και εκτελέστε τις ακόλουθες εντολές:
- Ανακτήστε τα αναγνωριστικά χώρου εργασίας οποιουδήποτε υπάρχοντος διαχειριζόμενου χώρου εργασίας του Amazon Grafana:
Το παρακάτω είναι το δείγμα εξόδου μας:
- Εκχωρήστε τις τιμές του
id
καιendpoint
στις ακόλουθες μεταβλητές περιβάλλοντος:
COA_AMG_ENDPOINT_URL
πρέπει να περιλαμβάνει https://
.
- Δημιουργήστε ένα κλειδί API Grafana από τον χώρο εργασίας του Amazon Managed Grafana:
- Βάλτε ένα μυστικό Διευθυντής συστημάτων AWS:
Το μυστικό θα είναι προσβάσιμο από το πρόσθετο External Secrets και θα διατίθεται ως εγγενές μυστικό Kubernetes στο σύμπλεγμα EKS.
Εκκινήστε το περιβάλλον AWS CDK
Το πρώτο βήμα για οποιαδήποτε ανάπτυξη AWS CDK είναι η εκκίνηση του περιβάλλοντος. Χρησιμοποιείτε το cdk bootstrap
εντολή στο AWS CDK CLI για προετοιμασία του περιβάλλοντος (συνδυασμός λογαριασμού AWS και Περιοχής AWS) με πόρους που απαιτούνται από το AWS CDK για την εκτέλεση αναπτύξεων σε αυτό το περιβάλλον. Απαιτείται bootstrapping AWS CDK για κάθε συνδυασμό λογαριασμού και Περιοχής, επομένως, εάν έχετε ήδη κάνει bootstrapping AWS CDK σε μια Περιοχή, δεν χρειάζεται να επαναλάβετε τη διαδικασία εκκίνησης.
Αναπτύξτε τη λύση
Ολοκληρώστε τα παρακάτω βήματα για να αναπτύξετε τη λύση:
- Κλωνοποιήστε το cdk-aws-observability-accelerator αποθετήριο και εγκαταστήστε τα πακέτα εξάρτησης. Αυτό το αποθετήριο περιέχει κώδικα AWS CDK v2 γραμμένο σε TypeScript.
Οι πραγματικές ρυθμίσεις για τα αρχεία JSON του πίνακα ελέγχου Grafana αναμένεται να καθοριστούν στο πλαίσιο του AWS CDK. Πρέπει να ενημερώσετε context
στο cdk.json
αρχείο, που βρίσκεται στον τρέχοντα κατάλογο. Η θέση του ταμπλό καθορίζεται από το fluxRepository.values.GRAFANA_NEURON_DASH_URL
παράμετρος και neuronNodeGroup
χρησιμοποιείται για τον ορισμό του τύπου, του αριθμού και του στιγμιότυπου Κατάστημα Amazon Elastic Block (Amazon EBS) μέγεθος που χρησιμοποιείται για τους κόμβους.
- Εισαγάγετε το παρακάτω απόσπασμα
cdk.json
, αντικαθιστώνταςcontext
:
Μπορείτε να αντικαταστήσετε τον τύπο παρουσίας Inf1 με Inf2 και να αλλάξετε το μέγεθος όπως απαιτείται. Για να ελέγξετε τη διαθεσιμότητα στην επιλεγμένη περιοχή σας, εκτελέστε την ακόλουθη εντολή (τροποποίηση Values
όπως σας ταιριάζει):
- Εγκαταστήστε τις εξαρτήσεις του έργου:
- Εκτελέστε τις ακόλουθες εντολές για να αναπτύξετε το μοτίβο παρατηρησιμότητας ανοιχτού κώδικα:
Επικυρώστε τη λύση
Ολοκληρώστε τα παρακάτω βήματα για να επικυρώσετε τη λύση:
- Εκτελέστε το
update-kubeconfig
εντολή. Θα πρέπει να μπορείτε να λάβετε την εντολή από το μήνυμα εξόδου της προηγούμενης εντολής:
- Επαληθεύστε τους πόρους που δημιουργήσατε:
Το παρακάτω στιγμιότυπο οθόνης δείχνει το δείγμα εξόδου μας.
- Βεβαιωθείτε ότι η
neuron-device-plugin-daemonset
Το DaemonSet εκτελείται:
Το ακόλουθο είναι το αναμενόμενο αποτέλεσμα:
- Επιβεβαιώστε ότι το
neuron-monitor
Το DaemonSet εκτελείται:
Το ακόλουθο είναι το αναμενόμενο αποτέλεσμα:
- Για να επαληθεύσετε ότι οι συσκευές και οι πυρήνες Neuron είναι ορατές, εκτελέστε το
neuron-ls
καιneuron-top
εντολές από, για παράδειγμα, την ομάδα παρακολούθησης νευρώνων σας (μπορείτε να λάβετε το όνομα της ομάδας από την έξοδο τουkubectl get pods -A
):
Το παρακάτω στιγμιότυπο οθόνης δείχνει την αναμενόμενη έξοδο μας.
Το παρακάτω στιγμιότυπο οθόνης δείχνει την αναμενόμενη έξοδο μας.
Οπτικοποιήστε δεδομένα χρησιμοποιώντας τον πίνακα εργαλείων Grafana Neuron
Συνδεθείτε στον χώρο εργασίας σας στο Amazon Managed Grafana και μεταβείτε στο Dashboards πίνακας. Θα πρέπει να δείτε έναν πίνακα ελέγχου με το όνομα Νευρώνας / Μόνιτορ.
Για να δούμε μερικές ενδιαφέρουσες μετρήσεις στον πίνακα ελέγχου Grafana, εφαρμόζουμε την ακόλουθη δήλωση:
Αυτό είναι ένα δείγμα φόρτου εργασίας που μεταγλωττίζει το μοντέλο Torchvision ResNet50 και εκτελεί επαναλαμβανόμενα συμπεράσματα σε έναν βρόχο για τη δημιουργία δεδομένων τηλεμετρίας.
Για να επαληθεύσετε ότι το pod αναπτύχθηκε με επιτυχία, εκτελέστε τον ακόλουθο κώδικα:
Θα πρέπει να δείτε μια ομάδα με το όνομα pytorch-inference-resnet50
.
Μετά από λίγα λεπτά, κοιτάζοντας το Νευρώνας / Μόνιτορ πίνακα ελέγχου, θα πρέπει να δείτε τις συγκεντρωμένες μετρήσεις παρόμοιες με τα παρακάτω στιγμιότυπα οθόνης.
Το Grafana Operator και το Flux συνεργάζονται πάντα για να συγχρονίσουν τους πίνακες εργαλείων σας με το Git. Εάν διαγράψετε τους πίνακες εργαλείων σας κατά λάθος, θα τροφοδοτηθούν εκ νέου αυτόματα.
εκκαθάριση
Μπορείτε να διαγράψετε ολόκληρη τη στοίβα CDK AWS με την ακόλουθη εντολή:
Συμπέρασμα
Σε αυτήν την ανάρτηση, σας δείξαμε πώς να εισάγετε την παρατηρησιμότητα, με εργαλεία ανοιχτού κώδικα, σε ένα σύμπλεγμα EKS που διαθέτει ένα επίπεδο δεδομένων που εκτελεί περιπτώσεις EC2 Inf1. Ξεκινήσαμε επιλέγοντας το βελτιστοποιημένο από το Amazon EKS επιταχυνόμενο AMI για τους κόμβους επιπέδου δεδομένων, το οποίο περιλαμβάνει τον χρόνο εκτέλεσης κοντέινερ Neuron, παρέχοντας πρόσβαση σε συσκευές AWS Inferentia και Trainium Neuron. Στη συνέχεια, για να εκθέσουμε τους πυρήνες και τις συσκευές Neuron στο Kubernetes, αναπτύξαμε την προσθήκη συσκευής Neuron. Η πραγματική συλλογή και χαρτογράφηση δεδομένων τηλεμετρίας σε μορφή συμβατή με τον Προμηθέα επιτεύχθηκε μέσω neuron-monitor
και neuron-monitor-prometheus.py
. Οι μετρήσεις προέρχονται από την υπηρεσία διαχείρισης της Amazon για τον Prometheus και εμφανίζονται στον πίνακα ελέγχου Neuron του Amazon Managed Grafana.
Σας συνιστούμε να εξερευνήσετε πρόσθετα μοτίβα παρατηρησιμότητας στο AWS Observability Accelerator για CDK Αποθετήριο GitHub. Για να μάθετε περισσότερα για το Neuron, ανατρέξτε στο Τεκμηρίωση AWS Neuron.
Σχετικά με το Συγγραφέας
Riccardo Freschi είναι Sr. Solutions Architect στο AWS, με επίκεντρο τον εκσυγχρονισμό εφαρμογών. Συνεργάζεται στενά με συνεργάτες και πελάτες για να τους βοηθήσει να μεταμορφώσουν τα τοπία πληροφορικής τους στο ταξίδι τους προς το AWS Cloud, ανακατασκευάζοντας υπάρχουσες εφαρμογές και δημιουργώντας νέες.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- PlatoData.Network Vertical Generative Ai. Ενδυναμώστε τον εαυτό σας. Πρόσβαση εδώ.
- PlatoAiStream. Web3 Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- PlatoESG. Ανθρακας, Cleantech, Ενέργεια, Περιβάλλον, Ηλιακός, Διαχείριση των αποβλήτων. Πρόσβαση εδώ.
- PlatoHealth. Ευφυΐα βιοτεχνολογίας και κλινικών δοκιμών. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/machine-learning/open-source-observability-for-aws-inferentia-nodes-within-amazon-eks-clusters/