Αγωγοί Amazon SageMaker είναι μια υπηρεσία συνεχούς ενοποίησης και συνεχούς παράδοσης (CI/CD) που έχει σχεδιαστεί για περιπτώσεις χρήσης μηχανικής μάθησης (ML). Μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε, να αυτοματοποιήσετε και να διαχειριστείτε ροές εργασίας ML από άκρο σε άκρο. Αντιμετωπίζει την πρόκληση της ενορχήστρωσης κάθε βήματος μιας διαδικασίας ML, η οποία απαιτεί χρόνο, προσπάθεια και πόρους. Για να διευκολυνθεί η χρήση του, είναι διαθέσιμα πολλά πρότυπα που μπορείτε να προσαρμόσετε ανάλογα με τις ανάγκες σας.
Οι υπηρεσίες ανάλυσης εικόνας και βίντεο με πλήρη διαχείριση έχουν επίσης επιταχύνει την υιοθέτηση λύσεων Computer vision. Το AWS προσφέρει μια προεκπαιδευμένη και πλήρως διαχειριζόμενη υπηρεσία AWS AI που ονομάζεται Αναγνώριση Amazon που μπορούν να ενσωματωθούν σε εφαρμογές υπολογιστικής όρασης χρησιμοποιώντας κλήσεις API και δεν απαιτούν εμπειρία ML. Απλά πρέπει να δώσετε μια εικόνα στο API αναγνώρισης Amazon και μπορεί να αναγνωρίσει τα απαιτούμενα αντικείμενα σύμφωνα με προκαθορισμένες ετικέτες. Είναι επίσης δυνατό να παρέχετε προσαρμοσμένες ετικέτες ειδικά για την περίπτωση χρήσης σας και να δημιουργήσετε ένα προσαρμοσμένο μοντέλο όρασης υπολογιστή με ελάχιστη έως καθόλου ανάγκη για τεχνογνωσία ML.
Σε αυτήν την ανάρτηση, αντιμετωπίζουμε ένα συγκεκριμένο πρόβλημα όρασης υπολογιστή: ταξινόμηση δερματικών αλλοιώσεων και χρησιμοποιούμε Pipelines προσαρμόζοντας ένα υπάρχον πρότυπο και προσαρμόζοντάς το σε αυτήν την εργασία. Η ακριβής ταξινόμηση των δερματικών αλλοιώσεων μπορεί να βοηθήσει στην έγκαιρη διάγνωση των ασθενειών του καρκίνου. Ωστόσο, είναι ένα δύσκολο έργο στον ιατρικό τομέα, επειδή υπάρχει μεγάλη ομοιότητα μεταξύ διαφορετικών ειδών δερματικών βλαβών. Το Pipelines μας επιτρέπει να εκμεταλλευτούμε μια ποικιλία υπαρχόντων μοντέλων και αλγορίθμων και να δημιουργήσουμε έναν αγωγό παραγωγής από άκρο σε άκρο με ελάχιστο κόπο και χρόνο.
Επισκόπηση λύσεων
Σε αυτήν την ανάρτηση, κατασκευάζουμε έναν αγωγό από άκρο σε άκρο χρησιμοποιώντας Pipelines για να ταξινομήσουμε δερματοσκοπικές εικόνες κοινών μελαγχρωματικών βλαβών του δέρματος. Χρησιμοποιούμε το Στούντιο Amazon SageMaker πρότυπο έργου Πρότυπο MLOps για κατασκευή, εκπαίδευση και ανάπτυξη μοντέλων και τον κωδικό στα παρακάτω Αποθετήριο GitHub. Η αρχιτεκτονική που προκύπτει φαίνεται στο παρακάτω σχήμα.
Για αυτόν τον αγωγό, χρησιμοποιούμε το σύνολο δεδομένων HAM10000 ("Human Against Machine with 10000 training images"), το οποίο αποτελείται από 10,015 δερματοσκοπικές εικόνες. Ο στόχος είναι μια ταξινόμηση πολλαπλών τάξεων στον τομέα της όρασης υπολογιστών. Αυτό το σύνολο δεδομένων απεικονίζει έξι από τις πιο σημαντικές διαγνωστικές κατηγορίες στον τομέα των μελαγχρωματικών βλαβών: ακτινικές κερατώσεις και ενδοεπιθηλιακό καρκίνωμα ή νόσος του Bowen (akiec
), βασικοκυτταρικό καρκίνωμα (bcc
), καλοήθεις βλάβες που μοιάζουν με κεράτωση (ηλιακές φακές ή σμηγματορροϊκές κερατώσεις και κερατώσεις όπως ο λειχήνας, bkl
), δερματοΐνωμα (df
), μελάνωμα (mel
), μελανοκυτταρικοί σπίλοι (nv
και αγγειακές βλάβες (αγγειώματα, αγγειοκερατώματα, πυογόνα κοκκιώματα και αιμορραγίες, vasc
).
Για τη μορφή της εισαγωγής του μοντέλου, χρησιμοποιούμε το RecordIO
μορφή. Πρόκειται για μια συμπαγή μορφή που αποθηκεύει δεδομένα εικόνας μαζί για συνεχή ανάγνωση και επομένως ταχύτερη και αποτελεσματικότερη εκπαίδευση. Επιπλέον, μία από τις προκλήσεις της χρήσης του συνόλου δεδομένων HAM10000 είναι η ανισορροπία κλάσης. Ο παρακάτω πίνακας απεικονίζει την κατανομή της τάξης.
Τάξη | akiec | bcc | bkl | df | mel | nv | vasc |
Αριθμός εικόνων | 327 | 514 | 1099 | 115 | 1113 | 6705 | 142 |
Σύνολο | 10015 |
Για να αντιμετωπίσουμε αυτό το ζήτημα, επαυξάνουμε το σύνολο δεδομένων χρησιμοποιώντας τυχαίους μετασχηματισμούς (όπως περικοπή, αναστροφή, κατοπτρισμό και περιστροφή) για να έχουμε όλες τις κλάσεις με περίπου τον ίδιο αριθμό εικόνων.
Αυτό το βήμα προεπεξεργασίας χρησιμοποιεί MXNet και OpenCV, επομένως χρησιμοποιεί μια προκατασκευασμένη εικόνα κοντέινερ MXNet. Οι υπόλοιπες εξαρτήσεις εγκαθίστανται χρησιμοποιώντας a requirements.txt
αρχείο. Εάν θέλετε να δημιουργήσετε και να χρησιμοποιήσετε μια προσαρμοσμένη εικόνα, ανατρέξτε στο Δημιουργήστε έργα Amazon SageMaker με αγωγούς δημιουργίας εικόνας CI/CD.
Για το βήμα εκπαίδευσης, χρησιμοποιούμε τον εκτιμητή που είναι διαθέσιμος από την ενσωματωμένη εικόνα Scikit Docker του SageMaker για ταξινόμηση εικόνων και ορίζουμε τις παραμέτρους ως εξής:
Για περισσότερες λεπτομέρειες σχετικά με την εικόνα του κοντέινερ, ανατρέξτε στο Αλγόριθμος ταξινόμησης εικόνων.
Δημιουργήστε ένα έργο Studio
Για λεπτομερείς οδηγίες σχετικά με τον τρόπο ρύθμισης του Studio, ανατρέξτε στο Ενσωματωμένη στον τομέα Amazon SageMaker με χρήση γρήγορης εγκατάστασης. Για να δημιουργήσετε το έργο σας, ολοκληρώστε τα παρακάτω βήματα:
- Στο Studio, επιλέξτε το Έργα μενού στο Πόροι SageMaker μενού.
Στη σελίδα έργων, μπορείτε να εκκινήσετε ένα προρυθμισμένο πρότυπο MLOps του SageMaker. - Επιλέξτε Πρότυπο MLOps για κατασκευή μοντέλων, εκπαίδευση και ανάπτυξη.
- Επιλέξτε Επιλέξτε πρότυπο έργου.
- Εισαγάγετε ένα όνομα έργου και μια σύντομη περιγραφή.
- Επιλέξτε Δημιουργία έργου.
Το έργο διαρκεί λίγα λεπτά για να δημιουργηθεί.
Προετοιμάστε το σύνολο δεδομένων
Για να προετοιμάσετε το σύνολο δεδομένων, ολοκληρώστε τα ακόλουθα βήματα:
- Πηγαίνετε στο Harvard DataVerse.
- Επιλέξτε Πρόσβαση σε σύνολο δεδομένων, και ελέγξτε την άδεια Creative Commons Attribution-NonCommercial 4.0 International Public License.
- Εάν αποδέχεστε την άδεια, επιλέξτε Αρχική μορφή Zip και κατεβάστε το αρχείο ZIP.
- Δημιουργία ενός Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κουβά και επιλέξτε ένα όνομα που αρχίζει από
sagemaker
(αυτό επιτρέπει στο SageMaker να έχει πρόσβαση στον κάδο χωρίς επιπλέον δικαιώματα). - Μπορείτε να ενεργοποιήσετε την καταγραφή πρόσβασης και την κρυπτογράφηση για βέλτιστες πρακτικές ασφάλειας.
- Μεταφόρτωση
dataverse_files.zip
στον κουβά. - Αποθηκεύστε τη διαδρομή του κάδου S3 για μελλοντική χρήση.
- Σημειώστε το όνομα του κάδου στον οποίο έχετε αποθηκεύσει τα δεδομένα και τα ονόματα τυχόν επόμενων φακέλων, για χρήση αργότερα.
Προετοιμαστείτε για προεπεξεργασία δεδομένων
Επειδή χρησιμοποιούμε το MXNet και το OpenCV στο βήμα προεπεξεργασίας μας, χρησιμοποιούμε μια προ-ενσωματωμένη εικόνα MXNet Docker και εγκαθιστούμε τις υπόλοιπες εξαρτήσεις χρησιμοποιώντας το requirements.txt
αρχείο. Για να το κάνετε αυτό, πρέπει να το αντιγράψετε και να το επικολλήσετε κάτω pipelines/skin
στο sagemaker--modelbuild
αποθήκη. Επιπλέον, προσθέστε το MANIFEST.in
αρχείο στο ίδιο επίπεδο με setup.py
, για να πει στην Python να συμπεριλάβει το requirements.txt
αρχείο. Για περισσότερες πληροφορίες σχετικά με MANIFEST.in, αναφέρομαι σε Συμπερίληψη αρχείων σε διανομές πηγής με το MANIFEST.in. Και τα δύο αρχεία βρίσκονται στο Αποθετήριο GitHub.
Αλλάξτε το πρότυπο Pipelines
Για να ενημερώσετε το πρότυπο Pipelines, ολοκληρώστε τα παρακάτω βήματα:
- Δημιουργήστε έναν φάκελο μέσα στον προεπιλεγμένο κάδο.
- Βεβαιωθείτε ότι ο ρόλος εκτέλεσης του Studio έχει πρόσβαση στον προεπιλεγμένο κάδο καθώς και στον κάδο που περιέχει το σύνολο δεδομένων.
- Από τη λίστα των έργων, επιλέξτε αυτό που μόλις δημιουργήσατε.
- Στις Αποθετήρια καρτέλα, επιλέξτε τους υπερσυνδέσμους για τοπικά κλωνοποίηση AWS CodeCommit αποθετήρια στην τοπική σας παρουσία του Studio.
- Πλοηγηθείτε με το
pipelines
κατάλογο μέσα στοsagemaker--modelbuild
κατάλογο και μετονομάστε τοabalone
στον κατάλογοskin
. - Ανοίξτε το
codebuild-buildspec.yml
αρχείο στοsagemaker--modelbuild
κατάλογο και τροποποιήστε τη διαδρομή διοχέτευσης εκτέλεσης απόrun-pipeline —module-name pipelines.abalone.pipeline
(γραμμή 15) στα ακόλουθα: - Αποθηκεύστε το αρχείο.
- Αντικαταστήστε τα αρχεία
pipelines.py
,preprocess.py
, και εvaluate.py
στον κατάλογο αγωγών με τα αρχεία από το Αποθετήριο GitHub. - Ενημερώστε το
preprocess.py
αρχείο (γραμμές 183-186) με τη θέση S3 (SKIN_CANCER_BUCKET
) και όνομα φακέλου (SKIN_CANCER_BUCKET_PATH
) όπου ανεβάσατε τοdataverse_files.zip
αρχείο:skin_cancer_bucket=””
skin_cancer_bucket_path=””
skin_cancer_files=””
skin_cancer_files_ext=””
Στο προηγούμενο παράδειγμα, το σύνολο δεδομένων θα αποθηκευτεί κάτω από s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip
.
Ενεργοποιήστε τη λειτουργία του αγωγού
Η προώθηση δεσμευμένων αλλαγών στο αποθετήριο CodeCommit (που γίνεται στην καρτέλα ελέγχου πηγής του Studio) ενεργοποιεί μια νέα εκτέλεση διοχέτευσης, επειδή Amazon EventBridge οθόνες συμβάντων για δεσμεύσεις. Μπορούμε να παρακολουθήσουμε την εκτέλεση επιλέγοντας τη διοχέτευση μέσα στο έργο SageMaker. Το ακόλουθο στιγμιότυπο οθόνης δείχνει ένα παράδειγμα αγωγού που εκτελούσε με επιτυχία.
- Για να πραγματοποιήσετε τις αλλαγές, μεταβείτε στην ενότητα Git στο αριστερό παράθυρο.
- Στάδιο όλες τις σχετικές αλλαγές. Δεν χρειάζεται να παρακολουθείτε το
-checkpoint
αρχείο. Μπορείτε να προσθέσετε μια καταχώρηση στο.gitignore
αρχείο με*checkpoint.*
να τους αγνοήσει. - Κάντε τις αλλαγές παρέχοντας μια περίληψη καθώς και το όνομά σας και μια διεύθυνση email.
- Πιέστε τις αλλαγές.
- Πλοηγηθείτε πίσω στο έργο και επιλέξτε το Αγωγοί τμήμα.
- Εάν επιλέξετε τους αγωγούς σε εξέλιξη, εμφανίζονται τα βήματα του αγωγού.
Αυτό σας επιτρέπει να παρακολουθείτε το βήμα που εκτελείται αυτήν τη στιγμή. Μπορεί να χρειαστούν μερικά λεπτά για να εμφανιστεί η διοχέτευση. Για να ξεκινήσει η λειτουργία του αγωγού, ακολουθήστε τα βήματα που ορίζονται στο CI/CDcodebuild-buildspec.yml
πρέπει να τρέξει με επιτυχία. Για να ελέγξετε την κατάσταση αυτών των βημάτων, μπορείτε να χρησιμοποιήσετε AWS CodeBuild. Για περισσότερες πληροφορίες, ανατρέξτε στο AWS CodeBuild (AMS SSPS). - Όταν ολοκληρωθεί η διοχέτευση, επιστρέψτε στη σελίδα του έργου και επιλέξτε το Ομάδες μοντέλων καρτέλα για να επιθεωρήσετε τα μεταδεδομένα που επισυνάπτονται στα τεχνουργήματα του μοντέλου.
- Εάν όλα φαίνονται καλά, επιλέξτε το Ενημέρωση κατάστασης καρτέλα και εγκρίνετε μη αυτόματα το μοντέλο.Η προεπιλογή
ModelApprovalStatus
έχει οριστεί σεPendingManualApproval
. Εάν το μοντέλο μας έχει ακρίβεια μεγαλύτερη από 60%, προστίθεται στο μητρώο μοντέλων, αλλά δεν αναπτύσσεται έως ότου ολοκληρωθεί η μη αυτόματη έγκριση. - Πλοηγηθείτε με το Τελικά σημεία σελίδα στην κονσόλα SageMaker, όπου μπορείτε να δείτε ένα τελικό σημείο σταδιακής δημιουργίας. Μετά από λίγα λεπτά, το τελικό σημείο παρατίθεται με το
InService
κατάστασης. - Για να αναπτύξετε το τελικό σημείο στην παραγωγή, στο
CodePipeline
κονσόλα, επιλέξτε τοsagemaker--modeldeploy
αγωγού που βρίσκεται αυτή τη στιγμή σε εξέλιξη. - Στο τέλος του
DeployStaging
φάση, πρέπει να εγκρίνετε με μη αυτόματο τρόπο την ανάπτυξη.
Μετά από αυτό το βήμα, μπορείτε να δείτε το τελικό σημείο παραγωγής να αναπτύσσεται στο SageMaker Τελικά σημεία σελίδα. Μετά από λίγο, το τελικό σημείο εμφανίζεται ως InService
.
εκκαθάριση
Μπορείτε εύκολα να καθαρίσετε όλους τους πόρους που δημιουργήθηκαν από το έργο SageMaker.
- Στο παράθυρο πλοήγησης στο Studio, επιλέξτε Πόροι SageMaker.
- Επιλέξτε Έργα από το αναπτυσσόμενο μενού και επιλέξτε το έργο σας.
- Στις Δράσεις μενού, επιλέξτε Διαγραφή για να διαγράψετε όλους τους σχετικούς πόρους.
Αποτελέσματα και επόμενα βήματα
Χρησιμοποιήσαμε με επιτυχία το Pipelines για να δημιουργήσουμε ένα πλαίσιο MLOps από άκρο σε άκρο για ταξινόμηση δερματικών αλλοιώσεων χρησιμοποιώντας ένα ενσωματωμένο μοντέλο στο σύνολο δεδομένων HAM10000. Για τις παραμέτρους που παρέχονται στο αποθετήριο, λάβαμε τα ακόλουθα αποτελέσματα στο σύνολο δοκιμών.
Μετρικός | Ακρίβεια | Ανάκληση | Βαθμολογία F1 |
αξία | 0.643 | 0.8 | 0.713 |
Μπορείτε να εργαστείτε περαιτέρω για τη βελτίωση της απόδοσης του μοντέλου ρυθμίζοντας με ακρίβεια τις υπερπαραμέτρους του, προσθέτοντας περισσότερους μετασχηματισμούς για αύξηση δεδομένων ή χρησιμοποιώντας άλλες μεθόδους, όπως η τεχνική συνθετικής μειοψηφίας υπερδειγματοληψίας (SMOTE) ή τα δίκτυα δημιουργίας αντιπάλων (GANs). Επιπλέον, μπορείτε να χρησιμοποιήσετε το δικό σας μοντέλο ή αλγόριθμο για εκπαίδευση χρησιμοποιώντας ενσωματωμένες εικόνες SageMaker Docker ή προσαρμόζοντας το δικό σας κοντέινερ ώστε να λειτουργεί στο SageMaker. Για περισσότερες λεπτομέρειες, ανατρέξτε στο Χρήση δοχείων Docker με το SageMaker.
Μπορείτε επίσης να προσθέσετε πρόσθετες λειτουργίες στο pipeline σας. Εάν θέλετε να συμπεριλάβετε την παρακολούθηση, μπορείτε να επιλέξετε το Πρότυπο MLOps για κατασκευή, εκπαίδευση, ανάπτυξη και παρακολούθηση μοντέλων πρότυπο κατά τη δημιουργία του έργου SageMaker. Η αρχιτεκτονική που προκύπτει έχει ένα πρόσθετο βήμα παρακολούθησης. Ή εάν έχετε ένα υπάρχον αποθετήριο Git τρίτου μέρους, μπορείτε να το χρησιμοποιήσετε επιλέγοντας το Πρότυπο MLOps για δημιουργία μοντέλων, εκπαίδευση και ανάπτυξη με αποθετήρια Git τρίτου κατασκευαστή χρησιμοποιώντας Jenkins έργο και παροχή πληροφοριών τόσο για την κατασκευή μοντέλων όσο και για τα αποθετήρια ανάπτυξης μοντέλων. Αυτό σας επιτρέπει να χρησιμοποιήσετε οποιονδήποτε υπάρχοντα κώδικα και σας εξοικονομεί χρόνο ή προσπάθεια για την ενοποίηση μεταξύ του SageMaker και του Git. Ωστόσο, για αυτήν την επιλογή, α AWS CodeStar απαιτείται σύνδεση.
Συμπέρασμα
Σε αυτήν την ανάρτηση, δείξαμε πώς να δημιουργήσετε μια ροή εργασίας ML από άκρο σε άκρο χρησιμοποιώντας το Studio και αυτοματοποιημένες σωληνώσεις. Η ροή εργασίας περιλαμβάνει τη λήψη του συνόλου δεδομένων, την αποθήκευσή του σε ένα μέρος προσβάσιμο στο μοντέλο ML, τη διαμόρφωση μιας εικόνας κοντέινερ για προεπεξεργασία και, στη συνέχεια, την τροποποίηση του κώδικα λέβητα ώστε να προσαρμόζεται αυτή η εικόνα. Στη συνέχεια δείξαμε πώς ενεργοποιείται ο αγωγός, τα βήματα που ακολουθεί ο αγωγός και πώς λειτουργούν. Συζητήσαμε επίσης τον τρόπο παρακολούθησης της απόδοσης του μοντέλου και την ανάπτυξη του μοντέλου σε ένα τελικό σημείο.
Πραγματοποιήσαμε τις περισσότερες από αυτές τις εργασίες μέσα στο Studio, το οποίο λειτουργεί ως ένα ολοκληρωμένο ML IDE και επιταχύνει την ανάπτυξη και την ανάπτυξη τέτοιων μοντέλων.
Αυτή η λύση δεν δεσμεύεται στην εργασία ταξινόμησης δέρματος. Μπορείτε να το επεκτείνετε σε οποιαδήποτε εργασία ταξινόμησης ή παλινδρόμησης χρησιμοποιώντας οποιονδήποτε από τους ενσωματωμένους αλγόριθμους του SageMaker ή προεκπαιδευμένα μοντέλα.
Σχετικά με τους συγγραφείς
Μαριέμ Κθηρή είναι σύμβουλος AI/ML στην AWS Professional Services Globals και είναι μέλος της ομάδας Health Care and Life Science (HCLS). Είναι παθιασμένη με την οικοδόμηση λύσεων ML για διάφορα προβλήματα και πάντα πρόθυμη να κάνει άλματα σε νέες ευκαιρίες και πρωτοβουλίες. Ζει στο Μόναχο της Γερμανίας και θέλει να ταξιδέψει και να ανακαλύψει άλλα μέρη του κόσμου.
Γιασίν Ζααφούρη είναι σύμβουλος AI/ML στις Επαγγελματικές Υπηρεσίες της AWS. Επιτρέπει στους πελάτες των παγκόσμιων επιχειρήσεων να δημιουργήσουν και να αναπτύξουν λύσεις AI/ML στο cloud για να ξεπεράσουν τις επιχειρηματικές τους προκλήσεις. Στον ελεύθερο χρόνο του, του αρέσει να παίζει και να παρακολουθεί αθλήματα και να ταξιδεύει σε όλο τον κόσμο.
Φωτεινός Κυριακίδης είναι Μηχανικός AI/ML στις Επαγγελματικές Υπηρεσίες στο AWS. Είναι παθιασμένος με τη χρήση της τεχνολογίας για την παροχή αξίας στους πελάτες και την επίτευξη επιχειρηματικών αποτελεσμάτων. Βάση στο Λονδίνο, στον ελεύθερο χρόνο του αρέσει να τρέχει και να εξερευνά.
Anna Zapaishchykova ήταν σύμβουλος ProServe στο AI/ML και μέλος του Amazon Healthcare TFC. Είναι παθιασμένη με την τεχνολογία και τον αντίκτυπο που μπορεί να έχει στην υγειονομική περίθαλψη. Το υπόβαθρό της είναι στην κατασκευή MLOps και λύσεων με τεχνητή νοημοσύνη σε προβλήματα πελατών σε διάφορους τομείς όπως η ασφάλιση, η αυτοκινητοβιομηχανία και η υγειονομική περίθαλψη.
- AI
- αι τέχνη
- ι γεννήτρια τέχνης
- ρομπότ ai
- Amazon Sage Maker
- τεχνητή νοημοσύνη
- πιστοποίηση τεχνητής νοημοσύνης
- τεχνητή νοημοσύνη στον τραπεζικό τομέα
- ρομπότ τεχνητής νοημοσύνης
- ρομπότ τεχνητής νοημοσύνης
- λογισμικό τεχνητής νοημοσύνης
- Μηχανική εκμάθηση AWS
- blockchain
- συνέδριο blockchain ai
- Coingenius
- συνομιλητική τεχνητή νοημοσύνη
- κρυπτοσυνεδριο αι
- του νταλ
- βαθιά μάθηση
- έχεις google
- μάθηση μηχανής
- Πλάτων
- πλάτων αι
- Πληροφορία δεδομένων Plato
- Παιχνίδι Πλάτωνας
- Πλάτωνα δεδομένα
- platogaming
- κλίμακα αι
- σύνταξη
- zephyrnet