Μονάδα 7 / 11

MLOps και ανάπτυξη: Μετακίνηση του μοντέλου από το εργαστήριο στην παραγωγή

Κέρδη:

  • Δυνατότητα αναγνώρισης των ειδικών προκλήσεων της ML που σχετίζονται με το τρίο και το πακέτο κωδικών-δεδομένων-μοντέλων και παρουσίασης του μοντέλου online ή ομαδικά σύμφωνα με τις ανάγκες της επιχείρησης.
  • Δυνατότητα εφαρμογής προτύπων ανάπτυξης σταδιακής και επαναφοράς (σκιά, καναρίνι, A/B, επαναφορά) και προσθήκη δοκιμασμένου σχεδίου επαναφοράς σε κάθε ανάπτυξη
  • Δυνατότητα διατήρησης της ανιχνεύσιμης σύνδεσης δεδομένων-κωδικού-μετρικού μοντέλου που τέθηκε σε παραγωγή με CI/CD ελεγχόμενο από το όριο αξιολόγησης και μητρώο μοντέλου

Το να αποκτήσετε ένα μοντέλο με ακρίβεια 95% στο σημειωματάριο είναι μόνο η μισή ιστορία. Το άλλο μισό —συχνά το δύσκολο μέρος— είναι να μεταφέρετε αυτό το μοντέλο σε πραγματικούς χρήστες με αξιόπιστο, επεκτάσιμο και διατηρήσιμο τρόπο. Το MLOps (Λειτουργίες Μηχανικής Εκμάθησης: η πειθαρχία της τοποθέτησης, λειτουργίας και διατήρησης μοντέλων ML στην παραγωγή) συνδυάζει τις πρακτικές DevOps της μηχανικής λογισμικού με τις μοναδικές προκλήσεις της ML. Σε αυτήν την ενότητα, καλύπτουμε τα βήματα μετακίνησης του μοντέλου στην παραγωγή και πώς η τεχνητή νοημοσύνη βοηθά σε αυτή τη διαδικασία.

Γιατί το ML διαφέρει από το κανονικό λογισμικό;

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

  • Μετατόπιση δεδομένων: Τα δεδομένα στην παραγωγή απομακρύνονται από τα δεδομένα στην εκπαίδευση με την πάροδο του χρόνου. το μοντέλο γίνεται ξεπερασμένο.
  • Πρέπει να εκδώσετε τρία πράγματα: Κώδικα, δεδομένα και μοντέλο—και τα τρία.
  • Αθόρυβη αποτυχία: Ένα μοντέλο μπορεί να αποτύχει χωρίς να καταρρεύσει, χωρίς να δώσει λάθη, απλώς με την παραγωγή εσφαλμένων προβλέψεων. Η σύλληψη αυτού απαιτεί παρακολούθηση.

Γι' αυτό και υπάρχει μεγάλη διαφορά ανάμεσα σε ένα «μοντέλο εργασίας» και σε «μοντέλο έτοιμο για παραγωγή».

Συσκευασία και παρουσίαση μοντέλου

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

Δύο βασικά μοτίβα εξυπηρέτησης του μοντέλου:

  • Online/σε πραγματικό χρόνο (online): Το μοντέλο βρίσκεται πίσω από ένα API, επιστρέφοντας μια άμεση πρόβλεψη για κάθε εισερχόμενο αίτημα. Η χαμηλή καθυστέρηση είναι κρίσιμη.
  • Παρτίδα: Το μοντέλο επεξεργάζεται μεγάλα σύνολα δεδομένων περιοδικά (π.χ. δημιουργεί βαθμολογίες για όλους τους πελάτες τη νύχτα). Η καθυστέρηση είναι άσχετη, η αποτελεσματικότητα είναι σημαντική.

Ποιο είναι το σωστό εξαρτάται από τις ανάγκες της επιχείρησης: άμεση σύσταση στο διαδίκτυο, μηνιαίος βαθμός κινδύνου σε παρτίδες.

Συμβουλή: Το "σε πραγματικό χρόνο" είναι ένα κόστος, όχι το προεπιλεγμένο. Η παρτίδα είναι πολύ φθηνότερη και απλούστερη εάν το αποτέλεσμα χρησιμοποιηθεί εντός ωρών. Χρειάζεστε πραγματικά μια άμεση απάντηση; Ρωτήστε το πρώτα.

Ασφαλείς στρατηγικές διανομής

Το άνοιγμα ενός νέου μοντέλου απευθείας σε όλη την κυκλοφορία είναι επικίνδυνο. Αν είναι λάθος, επηρεάζονται όλοι. Πρότυπα ασφαλούς διανομής:

  • Σκιώδης ανάπτυξη: Το νέο μοντέλο λαμβάνει κίνηση παραγωγής, αλλά οι προβλέψεις του δεν εμφανίζονται στον χρήστη, αλλά μόνο καταγράφονται. Συγκρίνεται με το παλιό μοντέλο για να δούμε αν είναι ασφαλές σε πραγματικά δεδομένα.
  • Ανάπτυξη Canary: Το νέο μοντέλο διατίθεται αρχικά σε ένα μικρό ποσοστό επισκεψιμότητας (π.χ. 5%). Εάν δεν υπάρχει πρόβλημα, αυξάνεται σταδιακά.
  • Δοκιμή A/B: Δύο μοντέλα παρουσιάζονται στον πραγματικό χρήστη παράλληλα και συγκρίνονται οι επιχειρηματικές μετρήσεις (μετατροπή, κλικ).
  • Επαναφορά: Δυνατότητα γρήγορης επαναφοράς στην παλιά έκδοση εάν το νέο μοντέλο αποδειχθεί κακό. Κάθε ανάπτυξη θα πρέπει να έχει ένα σχέδιο επαναφοράς.
Προσοχή: Μια ανάπτυξη χωρίς σχέδιο επαναφοράς δεν έχει ολοκληρωθεί. Η δυνατότητα επαναφοράς στην παλιά έκδοση μέσα σε λίγα λεπτά προστατεύει τον χρήστη όταν το νέο μοντέλο συμπεριφέρεται απροσδόκητα στην παραγωγή. Δοκιμάστε το πριν από την ανάπτυξη.

Αδύναμη προσέγγιση / Δυνατή προσέγγιση

Αδύναμος: «Το μοντέλο ήταν καλό στις δοκιμές, βγήκαμε live, το ανοίξαμε σε όλους».

Güçlü: "Κάναμε κοντέινερ στο μοντέλο, το χαρακτηρίσαμε ως έκδοση. Πρώτα, το χρησιμοποιήσαμε σε σκιώδη λειτουργία με κίνηση παραγωγής για 3 ημέρες, συγκρίνοντας τις προβλέψεις με το παλιό μοντέλο — η απόκλιση ήταν αποδεκτή. Στη συνέχεια, το ανοίξαμε με 5% καναρίνι, παρακολουθήσαμε τις μετρήσεις απόδοσης και την καθυστέρηση. Όταν δεν υπήρχαν προβλήματα, αυξήσαμε σταδιακά το 0% πριν από τη δοκιμή."

Η διαφορά: η ισχυρή προσέγγιση είναι σταδιακή, μετρημένη και αναστρέψιμη. Ο κίνδυνος είναι περιορισμένος σε κάθε βήμα.

CI/CD και αυτοματισμός

Το CI/CD (Continuous Integration / Continuous Deployment: αγωγός αυτόματης δοκιμής και απελευθέρωσης αλλαγών κώδικα) στο ML καλύπτει όχι μόνο τον κώδικα αλλά και τα βήματα δεδομένων και μοντέλου. Μια καλή διοχέτευση ML CI/CD: εκτελεί δοκιμές όταν αλλάζει ο κώδικας, εκτελεί επικύρωση δεδομένων, επανεκπαιδεύει το μοντέλο (εάν είναι απαραίτητο), ελέγχει τα όρια αξιολόγησης και προωθεί την ανάπτυξη μόνο εάν ισχύουν τα όρια. Η αρχή "η εκπαίδευση είναι αυτόματη, η ανάπτυξη βασίζεται στο κατώφλι" εμποδίζει το κακό μοντέλο να διαρρεύσει σιωπηλά στην παραγωγή.

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

Υποδομή αναπαραγωγιμότητας

Προκειμένου να αναπαραχθεί η συμπεριφορά ενός μοντέλου στην παραγωγή, μητρώο μοντέλου: μια εγγραφή που διατηρεί ποιο μοντέλο εκπαιδεύτηκε με ποια δεδομένα και κώδικα και ποιες μετρήσεις έλαβε. Για κάθε μοντέλο παραγωγής, τα ακόλουθα θα πρέπει να μπορούν να παρακολουθούνται: έκδοση δεδομένων εκπαίδευσης, έκδοση κώδικα (δέσμευση git), υπερπαράμετροι, βαθμολογίες αξιολόγησης και ημερομηνία ανάπτυξης. Όταν προκύπτει ένα πρόβλημα, θα πρέπει να μπορείτε να απαντήσετε στην ερώτηση "ποιο μοντέλο παρήγαγε αυτήν την πρόβλεψη, με ποια δεδομένα;" μέσα σε λίγα λεπτά. Θα το εμβαθύνουμε στην ενότητα 11.

τρεις μίνι θήκες

Περίπτωση 1 - Πρόβλημα που εντοπίστηκε από την κατανομή σκιών. Ένα μοντέλο σύστασης ξεπέρασε το παλιό στη δοκιμή. Διαπιστώθηκε ότι η εκτέλεση του με κίνηση παραγωγής σε σκιώδη λειτουργία παράγει πολύ κακές συστάσεις για ένα συγκεκριμένο τμήμα χρηστών (νέοι χρήστες) — τα δεδομένα δοκιμής δεν αντιπροσώπευαν καθόλου αυτό το τμήμα. Το μοντέλο επιδιορθώθηκε χωρίς να εμφανιστεί ποτέ στον χρήστη. Εάν άνοιγε απευθείας, η νέα εμπειρία χρήστη θα διαταραχθεί.

Περίπτωση 2 - Ανέκκλητη διανομή. Μια ομάδα παρουσίασε ένα νέο μοντέλο τιμολόγησης σε όλη την επισκεψιμότητα, χωρίς σχέδια επαναφοράς. Το μοντέλο κόστισε απροσδόκητα ορισμένα προϊόντα πολύ φθηνά. Η επαναφορά στην παλιά έκδοση κράτησε ώρες επειδή η διαδικασία δεν ήταν έτοιμη. Υπήρξε σοβαρή απώλεια εισοδήματος. Στη συνέχεια, προστέθηκε υποχρεωτική δοκιμή επαναφοράς σε κάθε ανάπτυξη.

Περίπτωση 3 - Αθόρυβη μετατόπιση δεδομένων. Ένα μοτίβο απάτης εμφανίστηκε για μήνες χωρίς σφάλματα. Αλλά οι τακτικές των απατεώνων άλλαξαν (data drift) και η ανάκληση του μοντέλου έπεσε σιωπηλά. Κανείς δεν το παρατήρησε γιατί δεν υπήρχε παρακολούθηση. Μόλις δημιουργήθηκε ένας πίνακας παρακολούθησης της διανομής προβλέψεων, η μετατόπιση έγινε ορατή νωρίς. Θα καλύψουμε την παρακολούθηση στην ενότητα 8.

Αντιγράψιμα πρότυπα

Γράψτε ένα προσχέδιο σχεδίου ανάπτυξης για αυτό το μοντέλο. Μοντέλο: [τι κάνει], χρήση: [διαδικτυακό ή παρτίδα;] Θα πρέπει να περιλαμβάνει:1) Συσκευασία (κοντέινερ, έκδοση) 2) Αυξητική στρατηγική ανάπτυξης (σκιά/καναρίνι/Α-Β) και γιατί3) Μετρήσεις για παρακολούθηση (επιχειρηματικό + τεχνικό + λανθάνον χρόνο) 4) Σχέδιο επαναφοράς και πώς να δοκιμάζετε

Ελέγξτε αυτήν τη διοχέτευση ML CI/CD:1) Είναι η επικύρωση δεδομένων στη γραμμή; 2) Μπορεί η ανάπτυξη να συνεχιστεί χωρίς να κρατηθεί το όριο αξιολόγησης (δεν θα έπρεπε);3) Είναι αυτόματη επαναφορά;4) Παρακολουθούνται δεδομένα+κωδικός+μετρήσεις στο μητρώο μοντέλου; Διαμόρφωση Pline: [config]

Βοηθήστε με να αποφασίσω εάν η παρουσίαση μέσω διαδικτύου ή παρτίδας είναι κατάλληλη για αυτό το μοντέλο. Πόσο καιρό θα χρησιμοποιηθεί το αποτέλεσμα: [στιγμιαία / λεπτό / ώρα / ημέρα]Αναμενόμενος όγκος αιτήματος: [αριθμός]Υπάρχει περιορισμός καθυστέρησης: [ms]Ποιο θα προτείνατε από άποψη κόστους και πολυπλοκότητας και γιατί;

Γράψτε μια διαδικασία επαναφοράς για αυτό το μοντέλο.- Ποια μέτρηση/κατώφλι ενεργοποιεί κακή απόδοση;- Ποια είναι τα βήματα επαναφοράς;- Πόσος χρόνος πρέπει να διαρκέσει η επαναφορά (στόχος);- Πώς μπορώ να δοκιμάσω αυτήν τη διαδικασία πριν από την παραγωγή;

Πίνακας μοτίβων παρουσίασης

κριτήριο

Online (σε πραγματικό χρόνο)

παρτίδα

καθυστέρηση

Κρίσιμο (ms)

ασήμαντο

Χρήση

Απαιτείται άμεση απάντηση

Περιοδική βαθμολογία

Κόστος

ψηλά

χαμηλά

πολυπλοκότητα

ψηλά

χαμηλά

παράδειγμα

Ζωντανή σύσταση, απάτη

Μηνιαίο σκορ κινδύνου

Συνήθη λάθη

  • Διανομή χωρίς σχέδιο ανάκτησης. Λάθος μοντέλο χτυπά ολόκληρο τον χρήστη.
  • Άνοιγμα απευθείας στο 100% επισκεψιμότητα. Περιορίστε τον κίνδυνο με κλιμακωτή διανομή.
  • Μη καθιέρωση παρακολούθησης. Το μοντέλο παράγει σφάλματα αθόρυβα, χωρίς σφάλματα.
  • Περιττή παρουσίαση σε πραγματικό χρόνο. Ενώ η παρτίδα είναι επαρκής, το κόστος και η πολυπλοκότητα διογκώνονται.
  • Μη σύνδεση εκδόσεων μοντέλου-δεδομένων-κώδικα. Δεν μπορείτε να αναπαράγετε το πρόβλημα.
  • Αυτόματη απελευθέρωση χωρίς όριο διανομής. Το κακό μοντέλο μπαίνει κρυφά μέσα σιωπηλά.

Συνοπτικά

Η μεταφορά του μοντέλου στην παραγωγή είναι ένα διαφορετικό και συχνά πιο δύσκολο έργο μηχανικής από την εκπαίδευσή του. Η ML απαιτεί πρόσθετη πειθαρχία επειδή εξαρτάται από το τρίο κώδικα-δεδομένων-μοντέλων: συσκευασία και έκδοση, μοτίβο παράδοσης (διαδικτυακό/παρτίδα) που ταιριάζει στις ανάγκες της επιχείρησης, σταδιακή και αναστρέψιμη ανάπτυξη, CI/CD ελεγχόμενου κατωφλίου και καταχώριση μοντέλου. Η τεχνητή νοημοσύνη είναι ένα ισχυρό βοήθημα στη δημιουργία του κώδικα και της διαμόρφωσης αυτής της υποδομής. αλλά τα όρια διανομής, η πολιτική clawback και οι αποφάσεις κινδύνου είναι δικά σας. Μια διανομή χωρίς σχέδιο επαναφοράς δεν έχει ολοκληρωθεί.

Εργασία εφαρμογής

Containerize (Docker) ένα μοντέλο και επισημάνετε την έκδοση. Αποφασίστε εάν θα προσφέρετε online ή ομαδικά με βάση τις επιχειρηματικές σας ανάγκες και γράψτε την αιτιολόγησή σας. Τεκμηριώστε ένα σχέδιο σταδιακής ανάπτυξης (σκιά ή καναρίνι) και μια δοκιμασμένη διαδικασία επαναφοράς. Φροντίστε να καταγράψετε την έκδοση δεδομένων, τη δέσμευση κώδικα και τις βαθμολογίες αξιολόγησης στο μητρώο μοντέλου.

λίστα ελέγχου

  • [ ] Το μοντέλο είναι συσκευασμένο και κατασκευασμένο (δοχείο + ετικέτα).
  • [ ] Το μοτίβο παρουσίασης (διαδικτυακό/παρτίδα) επιλέχθηκε σύμφωνα με τις ανάγκες της επιχείρησης.
  • [ ] Εφαρμόστηκε στρατηγική σταδιακής ανάπτυξης (σκιά/καναρίνι).
  • [ ] Διαδικασία επαναφοράς γραπτή και δοκιμασμένη.
  • [ ] Το CI/CD δεν προωθεί την ανάπτυξη προτού επιτευχθεί το όριο αξιολόγησης.
  • [ ] Το μητρώο μοντέλου περιέχει τον σύνδεσμο data+code+metric link.