Οι πελάτες AWS βασίζονται στην Infrastructure as Code (IaC) για να σχεδιάσουν, να αναπτύξουν και να διαχειριστούν την υποδομή τους στο cloud. Το IaC διασφαλίζει ότι η υποδομή και οι υπηρεσίες πελατών είναι συνεπείς, επεκτάσιμες και αναπαραγώγιμες, ενώ είναι σε θέση να ακολουθούν τις βέλτιστες πρακτικές στον τομέα των λειτουργιών ανάπτυξης (DevOps).
Μια πιθανή προσέγγιση για τη διαχείριση της υποδομής και των υπηρεσιών AWS με το IaC είναι Terraform, το οποίο επιτρέπει στους προγραμματιστές να οργανώσουν την υποδομή τους σε επαναχρησιμοποιήσιμες μονάδες κώδικα. Αυτή η πτυχή αποκτά ολοένα και μεγαλύτερη σημασία στον τομέα της μηχανικής μάθησης (ML). Η ανάπτυξη και η διαχείριση αγωγών ML, συμπεριλαμβανομένης της εκπαίδευσης και των συμπερασμάτων με το Terraform ως IaC, σάς επιτρέπει να κλιμακώνεστε εύκολα για πολλαπλές περιπτώσεις χρήσης ML ή Περιοχές χωρίς να χρειάζεται να αναπτύξετε την υποδομή από την αρχή. Επιπλέον, παρέχει συνοχή για την υποδομή (για παράδειγμα, τύπο και μέγεθος παράδειγμα) για εκπαίδευση και εξαγωγή συμπερασμάτων σε διαφορετικές υλοποιήσεις του αγωγού ML. Αυτό σας επιτρέπει να δρομολογείτε τα αιτήματα και την εισερχόμενη κίνηση σε διαφορετικά Amazon Sage Maker καταληκτικά σημεία.
Σε αυτήν την ανάρτηση, σας δείχνουμε πώς να αναπτύσσετε και να διαχειρίζεστε αγωγούς ML χρησιμοποιώντας Terraform και Amazon SageMaker.
Επισκόπηση λύσεων
Αυτή η ανάρτηση παρέχει κώδικα και σας καθοδηγεί στα βήματα που είναι απαραίτητα για την ανάπτυξη της υποδομής AWS για αγωγούς ML με το Terraform για εκπαίδευση μοντέλων και εξαγωγή συμπερασμάτων χρησιμοποιώντας το Amazon SageMaker. Η διαχείριση του αγωγού ML γίνεται μέσω Λειτουργίες βημάτων AWS για την ενορχήστρωση των διαφορετικών βημάτων που εφαρμόζονται στον αγωγό ML, όπως φαίνεται στο παρακάτω σχήμα.
Βήμα Λειτουργίες ξεκινά ένα AWS Lambda λειτουργία, δημιουργώντας ένα μοναδικό αναγνωριστικό εργασίας, το οποίο στη συνέχεια χρησιμοποιείται κατά την έναρξη μιας εργασίας εκπαίδευσης του SageMaker. Το Step Functions δημιουργεί επίσης ένα μοντέλο, διαμόρφωση τελικού σημείου και τελικό σημείο που χρησιμοποιούνται για εξαγωγή συμπερασμάτων. Οι πρόσθετοι πόροι περιλαμβάνουν τα ακόλουθα:
- Διαχείριση ταυτότητας και πρόσβασης AWS (IAM) ρόλους και πολιτικές που συνδέονται με τους πόρους προκειμένου να καταστεί δυνατή η αλληλεπίδραση με άλλους πόρους
- Απλή υπηρεσία αποθήκευσης Amazon Κάδοι (Amazon S3) για δεδομένα εκπαίδευσης και έξοδο μοντέλου
- An Μητρώο εμπορευματοκιβωτίων Amazon Elastic (Amazon ECR) αποθετήριο για το Λιμενεργάτης εικόνα που περιέχει τη λογική εκπαίδευσης και συμπερασμάτων
Ο κώδικας που σχετίζεται με το ML για εκπαίδευση και εξαγωγή συμπερασμάτων με μια εικόνα Docker βασίζεται κυρίως στην υπάρχουσα εργασία που ακολουθεί Αποθετήριο GitHub.
Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική λύσης:
Σας καθοδηγούμε στα ακόλουθα βήματα υψηλού επιπέδου:
- Αναπτύξτε την υποδομή AWS σας με το Terraform.
- Σπρώξτε την εικόνα Docker στο Amazon ECR.
- Εκτελέστε τη διοχέτευση ML.
- Επικαλέστε το τελικό σημείο σας.
Δομή αποθετηρίου
Μπορείτε να βρείτε το αποθετήριο που περιέχει τον κώδικα και τα δεδομένα που χρησιμοποιούνται για αυτήν την ανάρτηση παρακάτω Αποθετήριο GitHub.
Το αποθετήριο περιλαμβάνει τους ακόλουθους καταλόγους:
/terraform
– Αποτελείται από τους ακόλουθους υποφακέλους:./infrastructure
– Περιέχει το αρχείο main.tf που καλεί τη μονάδα αγωγού ML, επιπλέον των δηλώσεων μεταβλητών που χρησιμοποιούμε για την ανάπτυξη της υποδομής./ml-pipeline-module
– Περιέχει τη μονάδα αγωγού Terraform ML, την οποία μπορούμε να χρησιμοποιήσουμε ξανά
/src
– Αποτελείται από τους ακόλουθους υποφακέλους:./container
– Περιέχει παράδειγμα κώδικα για εκπαίδευση και συμπέρασμα με τους ορισμούς για την εικόνα Docker./lambda_function
– Περιέχει τον κώδικα Python για τις διαμορφώσεις που δημιουργεί τη συνάρτηση Lambda, όπως ένα μοναδικό αναγνωριστικό εργασίας για την εργασία εκπαίδευσης SageMaker
/data
– Περιέχει το ακόλουθο αρχείο:./iris.csv
– Περιέχει δεδομένα για την εκπαίδευση του μοντέλου ML
Προϋποθέσεις
Για αυτήν την καθοδήγηση, θα πρέπει να έχετε τις ακόλουθες προϋποθέσεις:
- Ένας λογαριασμός AWS
- Terraform έκδοση 0.13.5 ή νεότερη
- Διεπαφή γραμμής εντολών AWS (AWS CLI) v2
- Python 3.7 ή μεγαλύτερη
- Λιμενεργάτης
Αναπτύξτε την υποδομή AWS σας με το Terraform
Για να αναπτύξετε τη διοχέτευση ML, πρέπει να προσαρμόσετε μερικές μεταβλητές και ονόματα σύμφωνα με τις ανάγκες σας. Ο κωδικός για αυτό το βήμα βρίσκεται στο /terraform
Κατάλογο.
Κατά την προετοιμασία για πρώτη φορά, ανοίξτε το αρχείο terraform/infrastructure/terraform.tfvars
και προσαρμόστε τη μεταβλητή όνομα_προγράμματος στο όνομα του έργου σας, εκτός από τη μεταβλητή περιοχή εάν θέλετε να αναπτυχθείτε σε άλλη Περιφέρεια. Μπορείτε επίσης να αλλάξετε πρόσθετες μεταβλητές, όπως τύπους παρουσιών για εκπαίδευση και συμπέρασμα.
Στη συνέχεια, χρησιμοποιήστε τις ακόλουθες εντολές για να αναπτύξετε την υποδομή με το Terraform:
Ελέγξτε την έξοδο και βεβαιωθείτε ότι οι προγραμματισμένοι πόροι εμφανίζονται σωστά και επιβεβαιώστε με ναι στο στάδιο εφαρμογής εάν όλα είναι σωστά. Στη συνέχεια, μεταβείτε στην κονσόλα ECR του Amazon (ή ελέγξτε την έξοδο του Terraform στο τερματικό) και λάβετε τη διεύθυνση URL για το αποθετήριο ECR που δημιουργήσατε μέσω του Terraform.
Η έξοδος θα πρέπει να μοιάζει με την ακόλουθη εμφανιζόμενη έξοδο, συμπεριλαμβανομένης της διεύθυνσης URL του αποθετηρίου ECR:
Σπρώξτε την εικόνα Docker στο Amazon ECR
Για να εκπαιδεύσουν η διοχέτευση ML και το SageMaker και να παρέχουν ένα τελικό σημείο του SageMaker για συμπεράσματα, πρέπει να παρέχετε μια εικόνα Docker και να την αποθηκεύσετε στο Amazon ECR. Μπορείτε να βρείτε ένα παράδειγμα στον κατάλογο src/container
. Εάν έχετε ήδη εφαρμόσει την υποδομή AWS από το προηγούμενο βήμα, μπορείτε να προωθήσετε την εικόνα Docker όπως περιγράφεται. Αφού αναπτυχθεί η εικόνα του Docker, μπορείτε να κάνετε τις ακόλουθες ενέργειες και να την προωθήσετε στο Amazon ECR (προσαρμόστε τη διεύθυνση URL ECR του Amazon σύμφωνα με τις ανάγκες σας):
Εάν έχετε ήδη εφαρμόσει την υποδομή AWS με το Terraform, μπορείτε να προωθήσετε τις αλλαγές του κώδικα και της εικόνας Docker απευθείας στο Amazon ECR χωρίς να πραγματοποιήσετε ξανά ανάπτυξη μέσω Terraform.
Εκτελέστε τη διοχέτευση ML
Για να εκπαιδεύσετε και να εκτελέσετε τη διοχέτευση ML, μεταβείτε στην κονσόλα Step Functions και ξεκινήστε την υλοποίηση. Μπορείτε να ελέγξετε την πρόοδο κάθε βήματος στην οπτικοποίηση της μηχανής κατάστασης. Μπορείτε επίσης να ελέγξετε την πρόοδο της εργασίας εκπαίδευσης του SageMaker και την κατάσταση του τελικού σημείου του SageMaker.
Αφού εκτελέσετε επιτυχώς το μηχάνημα κατάστασης στις Λειτουργίες Βήματος, μπορείτε να δείτε ότι το τελικό σημείο του SageMaker έχει δημιουργηθεί. Στην κονσόλα SageMaker, επιλέξτε Συμπέρασμα στο παράθυρο πλοήγησης, λοιπόν Τελικά σημεία. Φροντίστε να περιμένετε να αλλάξει η κατάσταση σε InService.
Επικαλέστε το τελικό σημείο σας
Για να καλέσετε το τελικό σας σημείο (σε αυτό το παράδειγμα, για το σύνολο δεδομένων iris), μπορείτε να χρησιμοποιήσετε το ακόλουθο σενάριο Python με το AWS SDK για Python (Boto3). Μπορείτε να το κάνετε αυτό από ένα σημειωματάριο SageMaker ή να ενσωματώσετε το ακόλουθο απόσπασμα κώδικα σε μια συνάρτηση Lambda:
εκκαθάριση
Μπορείτε να καταστρέψετε την υποδομή που δημιουργήθηκε από το Terraform με την εντολή terraform death, αλλά πρέπει πρώτα να διαγράψετε τα δεδομένα και τα αρχεία στους κάδους S3. Επιπλέον, το τελικό σημείο του SageMaker (ή πολλά τελικά σημεία του SageMaker εάν εκτελούνται πολλές φορές) δημιουργείται μέσω των Λειτουργιών Βήματος και δεν διαχειρίζεται μέσω Terraform. Αυτό σημαίνει ότι η ανάπτυξη πραγματοποιείται όταν εκτελείται η διοχέτευση ML με Λειτουργίες Βήματος. Επομένως, βεβαιωθείτε ότι έχετε διαγράψει επίσης το τελικό σημείο του SageMaker ή τα τελικά σημεία που δημιουργήθηκαν μέσω της διοχέτευσης Step Functions ML για να αποφύγετε περιττό κόστος. Ολοκληρώστε τα παρακάτω βήματα:
- Στην κονσόλα Amazon S3, διαγράψτε το σύνολο δεδομένων στον κάδο εκπαίδευσης S3.
- Διαγράψτε όλα τα μοντέλα που εκπαιδεύσατε μέσω της διοχέτευσης ML στον κάδο μοντέλων S3, είτε μέσω της κονσόλας Amazon S3 είτε μέσω του AWS CLI.
- Καταστρέψτε την υποδομή που δημιουργήθηκε μέσω Terraform:
- Διαγράψτε τα τελικά σημεία του SageMaker, τη διαμόρφωση τελικού σημείου και τα μοντέλα που δημιουργήθηκαν μέσω των Λειτουργιών Βήματος, είτε στην κονσόλα SageMaker είτε μέσω του AWS CLI.
Συμπέρασμα
Συγχαρητήρια! Έχετε αναπτύξει μια διοχέτευση ML χρησιμοποιώντας το SageMaker με το Terraform. Αυτό το παράδειγμα λύσης δείχνει πώς μπορείτε εύκολα να αναπτύξετε υποδομές και υπηρεσίες AWS για αγωγούς ML με επαναχρησιμοποιήσιμο τρόπο. Αυτό σας επιτρέπει να κλιμακώνετε για περιπτώσεις πολλαπλών χρήσεων ή Περιοχές και επιτρέπει την εκπαίδευση και την ανάπτυξη μοντέλων ML με ένα κλικ με συνεπή τρόπο. Επιπλέον, μπορείτε να εκτελέσετε τη διοχέτευση ML πολλές φορές, για παράδειγμα, όταν είναι διαθέσιμα νέα δεδομένα ή θέλετε να αλλάξετε τον κώδικα αλγορίθμου. Μπορείτε επίσης να επιλέξετε να δρομολογήσετε αιτήματα ή κυκλοφορία σε διαφορετικά τελικά σημεία του SageMaker.
Σας ενθαρρύνω να εξερευνήσετε την προσθήκη χαρακτηριστικών ασφαλείας και την υιοθέτηση βέλτιστων πρακτικών ασφαλείας σύμφωνα με τις ανάγκες σας και τα πιθανά εταιρικά πρότυπα. Επιπλέον, η ενσωμάτωση αυτής της λύσης στους αγωγούς CI/CD θα σας δώσει περαιτέρω δυνατότητες για την υιοθέτηση και τη δημιουργία βέλτιστων πρακτικών και προτύπων DevOps σύμφωνα με τις απαιτήσεις σας.
Σχετικά με το Συγγραφέας
Oliver Zollikofer είναι Επιστήμονας Δεδομένων στο Amazon Web Services. Επιτρέπει στους πελάτες παγκόσμιων επιχειρήσεων να δημιουργήσουν, να εκπαιδεύσουν και να αναπτύξουν μοντέλα μηχανικής εκμάθησης, καθώς και να διαχειριστούν τον κύκλο ζωής του μοντέλου ML με τα MLOps. Επιπλέον, κατασκευάζει και αρχιτέκτονα σχετικές λύσεις cloud.
- Coinsmart. Το καλύτερο ανταλλακτήριο Bitcoin και Crypto στην Ευρώπη.
- Platoblockchain. Web3 Metaverse Intelligence. Ενισχύθηκε η γνώση. ΕΛΕΥΘΕΡΗ ΠΡΟΣΒΑΣΗ.
- CryptoHawk. Ραντάρ Altcoin. Δωρεάν δοκιμή.
- Πηγή: https://aws.amazon.com/blogs/machine-learning/deploy-and-manage-machine-learning-pipelines-with-terraform-using-amazon-sagemaker/
- "
- 100
- 7
- πρόσβαση
- Σύμφωνα με
- απέναντι
- ενεργειών
- Επιπλέον
- Πρόσθετος
- αλγόριθμος
- Όλα
- ήδη
- Amazon
- Amazon υπηρεσίες Web
- Άλλος
- πλησιάζω
- αρχιτεκτονική
- ΠΕΡΙΟΧΗ
- διαθέσιμος
- AWS
- είναι
- ΚΑΛΎΤΕΡΟΣ
- βέλτιστες πρακτικές
- σώμα
- σύνορο
- χτίζω
- Χτίζει
- δυνατότητες
- περιπτώσεις
- CD
- αλλαγή
- Επιλέξτε
- Backup
- cloud infrastructure
- κωδικός
- εταίρα
- διαμόρφωση
- πρόξενος
- Δοχείο
- Περιέχει
- Δικαστικά έξοδα
- δημιουργήθηκε
- δημιουργεί
- πελάτης
- Πελάτες
- ημερομηνία
- επιστήμονας δεδομένων
- παρατάσσω
- αναπτυχθεί
- ανάπτυξη
- ανάπτυξη
- περιγράφεται
- Υπηρεσίες
- καταστρέψει
- καταστράφηκαν
- ανάπτυξη
- αναπτύχθηκε
- προγραμματιστές
- ανάπτυξη
- Ανάπτυξη
- διαφορετικές
- κατευθείαν
- Λιμενεργάτης
- εύκολα
- ενεργοποιήσετε
- ενθαρρύνει
- Τελικό σημείο
- Εταιρεία
- πάντα
- παράδειγμα
- υφιστάμενα
- διερευνήσει
- Μόδα
- Χαρακτηριστικά
- Εικόνα
- Όνομα
- πρώτη φορά
- ακολουθήστε
- Εξής
- λειτουργία
- περαιτέρω
- παραγωγής
- Παγκόσμιο
- που έχει
- Πως
- Πώς να
- HTTPS
- Ταυτότητα
- εικόνα
- εκτέλεση
- εφαρμοστεί
- σπουδαιότητα
- περιλαμβάνουν
- περιλαμβάνει
- Συμπεριλαμβανομένου
- όλο και περισσότερο
- Υποδομή
- εισαγωγή
- αλληλεπίδραση
- IT
- Δουλειά
- αργότερο
- μάθηση
- γραμμή
- μηχανή
- μάθηση μηχανής
- διαχείριση
- διαχειρίζεται
- διαχείριση
- ML
- μοντέλο
- μοντέλα
- πολλαπλούς
- ονόματα
- Πλοήγηση
- απαραίτητος
- σημειωματάριο
- ανοίξτε
- λειτουργίες
- τάξη
- ΑΛΛΑ
- Πολιτικές
- δυνατός
- δυναμικού
- σχέδιο
- παρέχουν
- παρέχει
- Αποθήκη
- ζητήσει
- αιτήματα
- απαιτήσεις
- Υποστηρικτικό υλικό
- απάντησης
- Διαδρομή
- τρέξιμο
- τρέξιμο
- επεκτάσιμη
- Κλίμακα
- Επιστήμονας
- SDK
- ασφάλεια
- Υπηρεσίες
- παρόμοιες
- Απλούς
- Μέγεθος
- στέρεο
- λύση
- Λύσεις
- Στάδιο
- πρότυπα
- Εκκίνηση
- ξεκινά
- Κατάσταση
- Κατάσταση
- χώρος στο δίσκο
- κατάστημα
- Επιτυχώς
- τερματικό
- επομένως
- Μέσω
- ώρα
- ΚΙΝΗΣΗ στους ΔΡΟΜΟΥΣ
- Εκπαίδευση
- μοναδικός
- χρήση
- οραματισμός
- περιμένετε
- ιστός
- διαδικτυακές υπηρεσίες
- ενώ
- χωρίς
- Εργασία