Οι καλύτερες πρακτικές της Google και της Uber για βαθιά εκμάθηση

Υπάρχουν περισσότερα για την οικοδόμηση μιας βιώσιμης λύσης Deep Learning από αυτό που παρέχεται από τα πλαίσια Deep Learning όπως το TensorFlow και το PyTorch. Αυτά τα πλαίσια είναι αρκετά καλά για την έρευνα, αλλά δεν λαμβάνουν υπόψη τα προβλήματα που προκύπτουν από την ανάπτυξη της παραγωγής. Έχω γράψει προηγουμένως για το τεχνικό χρέος και την ανάγκη από πιο προσαρμοστικές βιολογικές αρχιτεκτονικές. Για να υποστηρίξετε μια βιώσιμη επιχείρηση χρησιμοποιώντας το Deep Learning, χρειάζεστε απολύτως μια αρχιτεκτονική που υποστηρίζει τη βιώσιμη βελτίωση, με την παρουσία συχνών και μη αναμενόμενων αλλαγών στο περιβάλλον. Το τρέχον πλαίσιο βαθιάς εκμάθησης παρέχει ένα μόνο μέρος μιας ολοκληρωμένης λύσης.

Ευτυχώς, το Google και το Uber έδωσαν μια γεύση από τις εσωτερικές αρχιτεκτονικές τους. Οι αρχιτεκτονικές αυτών των δύο γίγαντες μπορούν να είναι δύο εξαιρετικές βάσεις-κατασκηνώσεις αν χρειαστεί να φτιάξετε τη δική σας έτοιμη παραγωγή Deep Learning λύση.

Τα βασικά κίνητρα του συστήματος του Uber, Michelangelo, ήταν ότι "δεν υπήρχαν συστήματα για την κατασκευή αξιόπιστων, ομοιόμορφων και αναπαραγώγιμων αγωγών για τη δημιουργία και διαχείριση δεδομένων κατάρτισης και πρόβλεψης σε κλίμακα." Στην εργασία τους περιγράφουν τους περιορισμούς των υφιστάμενων πλαισίων με τα θέματα της ανάπτυξης και της διαχείρισης του τεχνικού χρέους. Το έγγραφο έχει αρκετά επιχειρήματα που πρέπει να πείσουν οποιονδήποτε σκεπτικιστή ότι τα υπάρχοντα πλαίσια είναι ανεπαρκή για την παραγωγή.

Δεν πρόκειται να περάσω από το χαρτί του Uber στο σύνολό του. Αντίθετα, πρόκειται απλώς να επισημάνω μερικά σημαντικά σημεία για την αρχιτεκτονική τους. Το σύστημα Uber δεν είναι ένα σύστημα αυστηρά βαθιάς εκμάθησης, αλλά ένα σύστημα εκμάθησης μηχανών που μπορεί να χρησιμοποιεί πολλές μεθόδους ML ανάλογα με την καταλληλότητα. Είναι κατασκευασμένο από τα ακόλουθα στοιχεία ανοιχτής πηγής: HDFS, Spark, Samza, Cassandra, MLLib, XGBoost και TensorFlow. Έτσι, είναι ένα συμβατικό σύστημα BigData που ενσωματώνει εξαρτήματα Machine Learning για τα αναλυτικά του:

Το Michelangelo είναι χτισμένο πάνω από τα δεδομένα και την υπολογιστική υποδομή της Uber, παρέχοντας μια λίμνη δεδομένων που αποθηκεύει όλα τα συναλλακτικά και καταγεγραμμένα δεδομένα της Uber, τους μεσίτες Kafka που συγκεντρώνουν τα μηνύματα από όλες τις υπηρεσίες της Uber, έναν υπολογιστικό μηχανισμό ροής Samza, διαχειριζόμενοι clusters της Cassandra - εργαλεία παροχής και εγκατάστασης υπηρεσιών σπιτιών.

Η αρχιτεκτονική υποστηρίζει την ακόλουθη ροή εργασίας:

  1. Διαχείριση δεδομένων
  2. Μοντέλα τρένων
  3. Αξιολογήστε μοντέλα
  4. Ανάπτυξη, πρόβλεψη και παρακολούθηση

Οι αρχιτεκτονικές του Michaelangelo της Uber απεικονίζονται ως εξής:

Πρόκειται να παρακάμψω τις συνήθεις ανησυχίες για την αρχιτεκτονική Big Data και να επισημάνω μερικές αξιοσημείωτες ιδέες που σχετίζονται περισσότερο με τη μηχανική μάθηση.

Ο Michaelangelo διαιρεί τη διαχείριση των δεδομένων μεταξύ αγωγών σε απευθείας σύνδεση και εκτός σύνδεσης. Επιπλέον, για να επιτρέπεται η ανταλλαγή γνώσεων και η επαναχρησιμοποίηση σε ολόκληρο τον οργανισμό, διατίθεται ένα "κατάστημα χαρακτηριστικών":

Προς το παρόν, έχουμε περίπου 10.000 χαρακτηριστικά γνωρίσματα στο Feature Store που χρησιμοποιούνται για την επιτάχυνση των έργων μηχανοκίνητης εκμάθησης και οι ομάδες σε όλη την εταιρεία προσθέτουν νέες συνεχώς. Τα χαρακτηριστικά γνωρίσματα του Store Feature υπολογίζονται και ενημερώνονται αυτόματα καθημερινά.

Η Uber δημιούργησε μια συγκεκριμένη γλώσσα τομέα (DSL) για τους μοντελιστές να επιλέγουν, να μετασχηματίζουν και να συνδυάζουν το χαρακτηριστικό πριν από την αποστολή ενός μοντέλου στην εκπαίδευση και την πρόβλεψη. Οι υποστηριζόμενες σήμερα μέθοδοι ML είναι δέντρα απόφασης, γραμμικά και λογικά μοντέλα, k-μέσα, χρονοσειρά και βαθιά νευρωνικά δίκτυα.

Η διαμόρφωση μοντέλου καθορίζει τον τύπο, τις υπερπαραμετρικές παραμέτρους, τις αναφορές προέλευσης δεδομένων, τις εκφράσεις χαρακτηριστικών DSL και τις απαιτήσεις υπολογιστικών πόρων (δηλ. Cpus, μνήμη, χρήση GPU, κλπ.). Η εκπαίδευση πραγματοποιείται είτε σε σύμπλεγμα YARN είτε σε Mesos.

Μετά την εκπαίδευση του μοντέλου, οι μετρήσεις απόδοσης υπολογίζονται και παρέχονται σε μια έκθεση αξιολόγησης. Όλες οι πληροφορίες, δηλαδή η διαμόρφωση μοντέλου, το μαθησιακό μοντέλο και η έκθεση αξιολόγησης, αποθηκεύονται σε ένα αποθεματοποιημένο μοντέλο εκδόσεων για ανάλυση και ανάπτυξη. Οι πληροφορίες μοντέλου περιέχουν:

  • Ποιος εκπαιδεύτηκε το μοντέλο
  • Ώρα έναρξης και λήξης της εργασίας κατάρτισης
  • Πλήρης διαμόρφωση μοντέλου (χαρακτηριστικά που χρησιμοποιούνται, τιμές υπέρ-παραμέτρων κ.λπ.)
  • Αναφορά σε σύνολα δεδομένων εκπαίδευσης και δοκιμών
  • Διανομή και σχετική σημασία κάθε χαρακτηριστικού
  • Μετρήσεις ακρίβειας μοντέλου
  • Τυπικά διαγράμματα και γραφήματα για κάθε τύπο μοντέλου (π.χ. καμπύλη ROC, καμπύλη PR και μήτρα σύγχυσης για δυαδικό ταξινομητή)
  • Πλήρεις παραμέτρους παραλαβής του μοντέλου
  • Συνοπτικά στατιστικά στοιχεία για απεικόνιση μοντέλου

Η ιδέα είναι να εκδημοκρατιστεί η πρόσβαση σε μοντέλα ML, να μοιραστούμε με άλλους για να βελτιώσουμε τις οργανωτικές γνώσεις. Το μοναδικό χαρακτηριστικό της προσέγγισης της Uber είναι η εμφάνιση ενός "Store Store" που επιτρέπει σε πολλά διαφορετικά μέρη να μοιράζονται τα δεδομένα τους σε διαφορετικά μοντέλα ML.

Οι λαοί στο Google έχουν πρόσφατο χαρτί "TFX: Μια πλατφόρμα εκμάθησης μηχανών μάθησης TensorFlow" που περιγράφει λεπτομερώς το εσωτερικό τους σύστημα.

Το χαρτί είναι δομημένο παρόμοιο με το χαρτί της Uber, επειδή καλύπτει την ίδια ροή εργασίας:

  1. Διαχείριση δεδομένων - Ανάλυση δεδομένων, μετατροπή και επικύρωση
  2. Μοντέλα αμαξοστοιχιών - Εκπαίδευση μοντέλων: Προετοιμασία θερμότητας και προδιαγραφή μοντέλου
  3. Αξιολόγηση μοντέλων - Αξιολόγηση μοντέλου και επικύρωση
  4. Ανάπτυξη, πρόβλεψη και παρακολούθηση - Πρότυπο εξυπηρέτησης

Η αρχιτεκτονική της Google βασίζεται στις ακόλουθες αναφερόμενες κατευθυντήριες γραμμές υψηλού επιπέδου:

  • Καταγράψτε τις ανωμαλίες δεδομένων νωρίς.
  • Αυτοματοποιήστε την επικύρωση δεδομένων.
  • Αντιμετωπίστε λάθη δεδομένων με την ίδια αυστηρότητα όπως ο κώδικας.
  • Υποστηρίξτε τη συνεχή εκπαίδευση.
  • Ομοιόμορφη διαμόρφωση για τη βελτίωση της κοινής χρήσης.
  • Αξιόπιστη και επεκτάσιμη παραγωγή και εξυπηρέτηση.

Ας σκάψουμε λίγο βαθύτερα στις μοναδικές δυνατότητες του TFX της Google. Υπάρχουν πολλά tidbits της σοφίας, καθώς και μια εισαγωγή με πολλές μοναδικές δυνατότητες.

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

Το TFX χειρίζεται τα δεδομένα που διαμαρτύρονται και αποθηκεύει τους μετασχηματισμούς για να διατηρηθεί η συνέπεια. Επιπλέον, το σύστημα παρέχει ομοιόμορφο και συνεπές πλαίσιο για τη διαχείριση χαρτογραφήσεων χαρακτηριστικών προς ακέραια.

Το TFX αποδεικνύει ένα σχήμα που είναι μια έκδοση που καθορίζει τις προσδοκίες για τα δεδομένα. Αυτό το σχήμα χρησιμοποιείται για να επισημάνει τυχόν ανωμαλίες που εντοπίστηκαν και επίσης να παρέχει συστάσεις για ενέργειες όπως η παρεμπόδιση της εκπαίδευσης ή η απόρριψη χαρακτηριστικών. Τα εργαλεία παρέχουν αυτόματη δημιουργία αυτού του σχήματος για να είναι εύκολο στη χρήση για νέα έργα. Αυτή είναι μια μοναδική δυνατότητα που αντλεί έμπνευση από τον έλεγχο στατικού τύπου που βρίσκεται στις γλώσσες προγραμματισμού.

Το TFX χρησιμοποιεί το TensorFlow ως περιγραφή μοντέλου. Το TFX έχει αυτή την έννοια της "ζεστής εκκίνησης" που εμπνέεται από τη τεχνική μεταφοράς μαθημάτων που βρίσκεται στη βαθιά μάθηση. Η ιδέα είναι να μειωθεί το ύψος της κατάρτισης με την αξιοποίηση της υπάρχουσας κατάρτισης. Σε αντίθεση με την εκμάθηση μεταφοράς που χρησιμοποιεί ένα υπάρχον προ-εκπαιδευμένο δίκτυο, η θερμότητα εκκίνησης επισημαίνει επιλεκτικά ένα δίκτυο γενικών χαρακτηριστικών ως σημείο εκκίνησης. Το δίκτυο που εκπαιδεύεται σε γενικά χαρακτηριστικά χρησιμοποιείται ως βάση για την κατάρτιση πιο εξειδικευμένων δικτύων. Αυτή η λειτουργία φαίνεται να εφαρμόζεται στο TF-Slim.

Το TFX χρησιμοποιεί μια κοινή προδιαγραφή TensorFlow υψηλού επιπέδου (δείτε: TensorFlow Estimators: Διαχείριση απλότητας έναντι ευελιξίας σε πλαίσια υψηλού επιπέδου μάθησης μηχανών) για την παροχή ομοιομορφίας και την κωδικοποίηση βέλτιστων πρακτικών σε διάφορες εφαρμογές. Δείτε αυτό το άρθρο σχετικά με τους Εκτιμητές για περισσότερες λεπτομέρειες.

Το TFX χρησιμοποιεί το πλαίσιο εξυπηρέτησης TensorFlow για την ανάπτυξη και το σερβίρισμα. Το πλαίσιο επιτρέπει την εξυπηρέτηση διαφορετικών μοντέλων διατηρώντας ταυτόχρονα την ίδια αρχιτεκτονική και API. Το TensorFlow Serving παρέχει ένα "μαλακό μοντέλο-απομόνωση" για να επιτρέψει τη χρήση πολλαπλών μισθωτών. Το πλαίσιο έχει επίσης σχεδιαστεί για να υποστηρίζει κλιμακούμενα συμπεράσματα.

Το χαρτί TFX ανέφερε την ανάγκη να βελτιστοποιηθεί η αποεριοποίηση των μοντέλων. Προφανώς, δημιουργήθηκε μια προσαρμοσμένη ανάλυση παραμέτρων πρωτοκόλλου για τη βελτίωση της απόδοσης έως 2-5 φορές.

Το Dissecting Uber και η εσωτερική αρχιτεκτονική της Google παρέχουν καλή εικόνα για σημεία πόνου και λύσεις για την οικοδόμηση της δικής σας εσωτερικής πλατφόρμας. Σε σύγκριση με τα διαθέσιμα πλαίσια ανοικτού κώδικα DL, υπάρχει μεγαλύτερη έμφαση στη διαχείριση και ανταλλαγή μετα-πληροφοριών. Η προσέγγιση της Google απαιτεί επιπλέον προσπάθεια για να εξασφαλιστεί η ομοιομορφία καθώς και η αυτοματοποιημένη επικύρωση. Αυτές είναι πρακτικές που έχουμε δει στο παρελθόν σε συμβατικά προγράμματα λογισμικού-μηχανικής.

Οι πρακτικές εφαρμοσμένης μηχανικής λογισμικού, όπως η εξέλιξη της εξέλιξης των δοκιμών (TDD), η συνεχής ολοκλήρωση, η επαναφορά και η ανάκτηση, ο έλεγχος αλλαγής κλπ. Εισάγονται στις προηγμένες πρακτικές εκμάθησης μηχανών. Δεν αρκεί ένας ειδικός να αναπτυχθεί σε ένα σημειωματάριο Jupyter και να τον πετάξει πάνω από τον τοίχο σε μια ομάδα για να καταστεί λειτουργική. Οι ίδιες πρακτικές από άκρο σε άκρο που βρίσκουμε σήμερα στις καλύτερες εταιρίες μηχανικών θα απαιτηθούν και στις προσπάθειες μηχανικής μάθησης. Αυτό το βλέπουμε σήμερα τόσο στο Uber όσο και στο Google, οπότε θα πρέπει να το αναμένουμε σε οποιαδήποτε βιώσιμη πρακτική ML / DL.

Ενημέρωση: https://www.linkedin.com/pulse/ai-layer-diego-oppenheimer, https://arxiv.org/abs/1804.09997v1

Εξερευνήστε τη βαθιά μάθηση: Τεχνητή διαίσθηση: Η απίθανη επανάσταση βαθιάς εκμάθησηςExploit Deep Learning: Το Deep Learning AI Playbook