Μονάδα 4 / 11

AI στη συσκευή: Core ML, TensorFlow Lite και ML Kit

Κέρδη:

  • Δυνατότητα επιλογής στη συσκευή ή στο cloud και επιλογή του σωστού εργαλείου (ML Kit, Core ML, TensorFlow Lite) με βάση το απόρρητο, την ανάγκη εκτός σύνδεσης, το μέγεθος μοντέλου και τα κριτήρια μπαταρίας
  • Δυνατότητα αποτροπής σιωπηλών σφαλμάτων επαληθεύοντας την προεπεξεργασία εισόδου (μέγεθος και κανονικοποίηση) από το έγγραφο του μοντέλου στην ενσωμάτωση μοντέλου
  • Δυνατότητα αξιολόγησης του δείκτη εμπιστοσύνης και μέτρησης του αποτελέσματος με έγκριση χρήστη και στην πραγματική συσκευή, χωρίς να παρουσιάζονται προβλέψεις χαμηλής εμπιστοσύνης ως απόλυτη αλήθεια.

Μέχρι στιγμής, χρησιμοποιήσαμε την τεχνητή νοημοσύνη ως βοήθημα για να επιταχύνουμε τη διαδικασία ανάπτυξης. Τώρα προχωράμε στον δεύτερο ρόλο της AI: το ταλέντο που είναι ενσωματωμένο στην εφαρμογή. Τα σύγχρονα τηλέφωνα έχουν τη δύναμη να εκτελούν μοντέλα AI, όπως αναγνώριση εικόνας, μετάφραση κειμένου, μεταγραφή ομιλίας κ.λπ. απευθείας στη συσκευή (στη συσκευή — στον επεξεργαστή του τηλεφώνου χωρίς να μεταβείτε στον διακομιστή). AI στη συσκευή. Προσφέρει μεγάλα πλεονεκτήματα σε σχέση με τις λύσεις cloud όσον αφορά την ταχύτητα, το απόρρητο και τη λειτουργία εκτός σύνδεσης. Σε αυτήν την ενότητα, θα μάθουμε πώς να ενσωματώνουμε την τεχνητή νοημοσύνη στην εφαρμογή με το Core ML του iOS, το TensorFlow Lite σε πολλαπλές πλατφόρμες (τώρα γνωστό ως LiteRT) και την έτοιμη λύση ML Kit της Google και πώς να χρησιμοποιείτε το AI ως βοηθό σε αυτήν την ενσωμάτωση.

Στη συσκευή ή στο cloud;

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

κριτήριο

Στη συσκευή

Cloud (Cloud API)

Απόρρητο

Τα δεδομένα παραμένουν στη συσκευή, ισχυρά

Τα δεδομένα πηγαίνουν στον διακομιστή, χρειάζεται προσοχή

ταχύτητα

Άμεση, χωρίς δίκτυο

Εξαρτάται από την καθυστέρηση δικτύου

εκτός σύνδεσης

Λειτουργεί

Δεν λειτουργεί

Μέγεθος μοντέλου

Περιορισμένος (πόρος τηλεφώνου)

απεριόριστο

μπαταρία/θερμότητα

Επιδράσεις με έντονη χρήση

Διακομιστής υπό φορτίο, η συσκευή χαλαρή

Κόστος

Δωρεάν (πηγή συσκευής)

Χρέωση ανά χρήση

Κανόνας απόφασης: Επιλέξτε στη συσκευή εάν τα προσωπικά/ευαίσθητα δεδομένα υποβάλλονται σε επεξεργασία, πρέπει να λειτουργούν εκτός σύνδεσης ή είναι απαραίτητη η άμεση απόκριση. Εάν χρειάζεστε ένα πολύ μεγάλο μοντέλο, απευθυνθείτε στο cloud. Αυτή η μονάδα εστιάζει στη συσκευή. Θα καλύψουμε το cloud AI στην επόμενη ενότητα.

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

Τρεις τρόποι: ML Kit, Core ML, TensorFlow Lite

Το ML Kit (Google) είναι ο πιο εύκολος τρόπος για να ξεκινήσετε: παρέχει έτοιμες δυνατότητες όπως αναγνώριση κειμένου (OCR — ανάγνωση κειμένου σε εικόνα), ανίχνευση προσώπου, ανάγνωση γραμμωτού κώδικα, μετάφραση σε λίγες γραμμές. Δεν χρειάζεται να εκπαιδεύσετε το δικό σας μοντέλο. Το Core ML (Apple) είναι ο πιο αποτελεσματικός τρόπος για να εκτελέσετε το δικό σας μοντέλο ή ένα έτοιμο μοντέλο στο iOS. Χρησιμοποιεί το υλικό Neural Engine (επεξεργαστής τεχνητού νευρωνικού δικτύου) της Apple. Το TensorFlow Lite/LiteRT είναι μια λύση πολλαπλών πλατφορμών που σας επιτρέπει να εκτελέσετε το δικό σας εκπαιδευμένο μοντέλο τόσο σε Android όσο και σε iOS.

Η γενική ροή ολοκλήρωσης με το AI έχει ως εξής:

  1. Ορισμός ταλέντου. Ένας ξεκάθαρος στόχος, όπως «θέλω να διαβάσω το κείμενο στη φωτογραφία».
  2. Επιλογή διαδρομής. Αν υπάρχει έτοιμο ταλέντο, ML Kit? Core ML/TF Lite εάν διατίθεται ειδικό μοντέλο.
  3. Μορφή μοντέλου. .mlmodel (Core ML), .tflite (TF Lite). Εξηγεί τα βήματα μετασχηματισμού AI.
  4. Κωδικός ενσωμάτωσης. Φόρτωση του μοντέλου, προεπεξεργασία της εισόδου, ερμηνεία της εξόδου.
  5. Δοκιμή απόδοσης. Μέτρηση ταχύτητας, μνήμης, μπαταρίας σε πραγματική συσκευή.
Προσοχή: Το πιο συνηθισμένο λάθος AI στην ενσωμάτωση μοντέλων στη συσκευή είναι η προεπεξεργασία εισόδου — η μετατροπή της εικόνας στο μέγεθος και τη μορφή χρώματος που αναμένει το μοντέλο. Εάν το μοντέλο αναμένει 224x224 pixel και του δώσετε 300x300, το αποτέλεσμα δεν θα έχει νόημα, αλλά δεν θα λάβετε μήνυμα σφάλματος. Επαληθεύστε τις τιμές προεπεξεργασίας από το έγγραφο του μοντέλου.

Γνωρίζοντας τα όρια του μοντέλου

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

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

Περίπτωση 1 — Επιτάχυνση με OCR. Μια εφαρμογή παρακολούθησης δαπανών έχει αφαιρέσει το βάρος της μη αυτόματης εισαγωγής αποδείξεων με την αναγνώριση κειμένου ML Kit. Ο χρήστης φωτογραφίζει την απόδειξη και το ποσό και η ημερομηνία συμπληρώνονται αυτόματα. Ο χρόνος χειροκίνητης εισαγωγής μειώθηκε από 40 δευτερόλεπτα σε 8 δευτερόλεπτα ανά απόδειξη. Η ομάδα έβαζε πάντα τον χρήστη να επιβεβαιώσει το ποσό που διάβασε το AI. γιατί οι τσαλακωμένες αποδείξεις είχαν περιθώριο σφάλματος 6%. Ο αυτοματισμός + η ανθρώπινη έγκριση ήταν η σωστή ισορροπία.

Περίπτωση 2 — Σφάλμα προεπεξεργασίας. Μια ομάδα ενσωμάτωσε ένα μοντέλο αναγνώρισης φυτών με το TensorFlow Lite. Στον ελεγκτή, τα αποτελέσματα ήταν τυχαία. Το πρόβλημα ήταν ότι ο κώδικας που δημιούργησε το AI δεν κανονικοποίησε την εικόνα στο [0,1] εύρος που αναμενόταν το μοντέλο (οι τιμές pixel παρέμειναν στο 0-255). Όταν προστέθηκε η κανονικοποίηση, η ακρίβεια αυξήθηκε από 30% σε 89%. Μάθημα: η προεπεξεργασία είναι αθόρυβη αλλά θανατηφόρα.

Περίπτωση 3 — Κέρδος ιδιωτικότητας. Μια εφαρμογή υγείας εντόπισε ανωμαλία από δεδομένα καρδιακού ρυθμού με το μοντέλο Core ML στη συσκευή. Τα δεδομένα δεν πήγαν ποτέ στον διακομιστή. Αυτή η επιλογή επέτρεψε στην εφαρμογή να λάβει τη φράση "δεν συλλέγει δεδομένα" στην ετικέτα απορρήτου του App Store και αύξησε το ποσοστό λήψης σε σύγκριση με τους ανταγωνιστές. Η επιλογή στη συσκευή ήταν τόσο ηθική όσο και εμπορικά κερδοφόρα.

Αδύναμη προτροπή / Ισχυρή προτροπή

Αδύναμο μήνυμα: "Προσθήκη αναγνώρισης εικόνας στην εφαρμογή μου."

Ισχυρή προτροπή: "Προσθήκη της δυνατότητας ανάγνωσης ποσού και ημερομηνίας στην εφαρμογή μου Android/Kotlin. - Χρησιμοποιήστε την Αναγνώριση κειμένου Google ML Kit (σε συσκευή, εκτός σύνδεσης) - Λήψη εικόνας από κάμερα ή συλλογή - Εξαγωγή του ποσού και της ημερομηνίας από το αναγνωρισμένο κείμενο με regex - Παρουσιάστε το αποτέλεσμα στον χρήστη για έγκριση στο πεδίο EDITABLE μετάδοση και επανάληψη ροής κάμερας. καταστάσεις προεπεξεργασίας και σφαλμάτων, εξηγήστε τα βήματα."

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

Πρότυπο επιλογής διαδρομής: "Θέλω να δημιουργήσω την ακόλουθη δυνατότητα: [χαρακτηριστικό]. Θα πρέπει να είναι στη συσκευή ή στο cloud; Συγκρίνετε με βάση: απόρρητο, ανάγκη εκτός σύνδεσης, μέγεθος μοντέλου, μπαταρία, κόστος. Προτείνετε το κατάλληλο εργαλείο (ML Kit / Core ML / TF Lite) και αιτιολογήστε."

Πρότυπο ενσωμάτωσης: "Εγγραφή [μοντέλου/δυνατότητας] ενσωμάτωσης για [πλατφόρμα]: 1) Φόρτωση μοντέλου2) Προεπεξεργασία εισόδου (αναμενόμενο μέγεθος και κανονικοποίηση) 3) Κλήση συμπερασμάτων4) Ερμηνεία εξόδου και έλεγχος βαθμολογίας εμπιστοσύνης5) Προειδοποίηση προς τον χρήστη σχετικά με αποτέλεσμα χαμηλής εμπιστοσύνης Υπενθύμισέ μου να επαληθεύσω την τεκμηρίωση των τιμών του μοντέλου προεπεξεργασίας από την."

Πρότυπο βαθμολογίας εμπιστοσύνης: "Λάβετε υπόψη τη βαθμολογία εμπιστοσύνης σε αυτόν τον κωδικό συμπερασμάτων: - Παρουσιάστε το αποτέλεσμα "ακριβώς" κάτω από το όριο (π.χ. 0,6) - Εμφάνιση σημείωσης "αυτή είναι μια εκτίμηση" στον χρήστη - Ανατρέξτε στον ειδικό σε περίπτωση κρίσιμης περιοχής (υγεία, ασφάλεια)[κωδικός]"

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

Συνήθη λάθη

  • Παράλειψη προεπεξεργασίας ή λανθασμένη εκτέλεση. Λάθος μέγεθος/κανονικοποίηση παράγει σιωπηλά λάθος αποτέλεσμα.
  • Αγνοώντας το σκορ αυτοπεποίθησης. Η παρουσίαση μιας εκτίμησης χαμηλής εμπιστοσύνης ως ακριβής θα παραπλανήσει τον χρήστη.
  • Δοκιμή του μοντέλου στον εξομοιωτή. Η πραγματική ταχύτητα της συσκευής και η μπαταρία είναι πολύ διαφορετικές. μετράτε πάντα σε πραγματικό υλικό.
  • Αποστολή ευαίσθητων δεδομένων στο cloud χωρίς λόγο. Η επιλογή του cloud όταν είναι δυνατή στη συσκευή είναι ένας κίνδυνος απορρήτου.
  • Αγνοώντας το μέγεθος του μοντέλου. Οι εφαρμογές μεγάλων μοντέλων διογκώνουν το μέγεθος λήψης και καταρρέουν σε χαμηλό υλικό.
  • Ξεχνώντας το όριο εκπαίδευσης του μοντέλου. Το μοντέλο είναι λάθος στην κατάσταση που δεν βλέπει (νύχτα, διαφορετική γλώσσα). Κάντε αυτό σαφές στον χρήστη.

Συνοπτικά

Το AI στη συσκευή παρέχει απόρρητο, ταχύτητα και λειτουργία εκτός σύνδεσης διατηρώντας δεδομένα στο τηλέφωνο. Το όριο είναι η ισχύς της συσκευής και το μέγεθος του μοντέλου. Το ML Kit χρησιμοποιείται για out-of-the-box δυνατότητες, το Core ML (iOS) και το TensorFlow Lite (cross-platform) χρησιμοποιούνται για προσαρμοσμένα μοντέλα. Ο σιωπηλός δολοφόνος της ενοποίησης είναι ακατάλληλη προεπεξεργασία. Το μέγεθος εισόδου και η κανονικοποίηση επαληθεύονται από την τεκμηρίωση του μοντέλου. Κάθε αποτέλεσμα συνοδεύεται από βαθμολογία εμπιστοσύνης και οι προβλέψεις χαμηλής εμπιστοσύνης δεν παρουσιάζονται ως απόλυτη αλήθεια. Οι αποφάσεις μετρώνται στην πραγματική συσκευή, όχι στον εξομοιωτή.

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

Για μια λειτουργία "ανάγνωση κειμένου από φωτογραφία" ή "ανάγνωση γραμμικού κώδικα", ρωτήστε το AI εάν θα πρέπει να είναι στη συσκευή ή στο cloud με το "Πρότυπο επιλογής διαδρομής" και, στη συνέχεια, ζητήστε ένα σχεδιάγραμμα που βασίζεται σε κιτ ML με το "Πρότυπο ενσωμάτωσης". Βεβαιωθείτε ότι το βήμα προεπεξεργασίας και η ροή έγκρισης/επεξεργασίας χρήστη υπάρχουν στον κώδικα. Ορίστε ένα όριο βαθμολογίας εμπιστοσύνης και γράψτε τι θα κάνετε εάν το αποτέλεσμα είναι χαμηλή εμπιστοσύνη.

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

  • [ ] Πήρα την απόφαση στη συσκευή/σύννεφο βάσει κριτηρίων
  • [ ] Επέλεξα το σωστό εργαλείο (ML Kit / Core ML / TF Lite)
  • [ ] Επιβεβαίωσα τη διάσταση προεπεξεργασίας και την κανονικοποίηση από την τεκμηρίωση του μοντέλου
  • [ ] Έλεγξα τη βαθμολογία εμπιστοσύνης και προειδοποίησα για αποτελέσματα χαμηλής εμπιστοσύνης
  • [ ] Παρουσίασα το αποτέλεσμα στον χρήστη με έγκριση/επεξεργασία, δεν το αποθήκευσα στα τυφλά
  • [ ] Μέτρησα την απόδοση στην πραγματική συσκευή, όχι στον εξομοιωτή