Unitate 4 / 11

AI pe dispozitiv: Core ML, TensorFlow Lite și ML Kit

Câștiguri:

  • Abilitatea de a decide pe dispozitiv sau în cloud și de a alege instrumentul potrivit (ML Kit, Core ML, TensorFlow Lite) în funcție de confidențialitate, nevoia offline, dimensiunea modelului și criteriile bateriei
  • Abilitatea de a preveni erorile silențioase prin verificarea preprocesării intrărilor (dimensiune și normalizare) din documentul modelului în integrarea modelului
  • Abilitatea de a evalua scorul de încredere și de a măsura rezultatul cu aprobarea utilizatorului și pe dispozitivul real, fără a prezenta predicțiile cu încredere scăzută ca adevăr absolut.

Până acum, am folosit AI ca ajutor pentru a accelera procesul de dezvoltare. Acum trecem la al doilea rol al AI: talentul încorporat în aplicație. Telefoanele moderne au puterea de a rula modele AI, cum ar fi recunoașterea imaginilor, traducerea textului, transcrierea vorbirii etc. direct pe dispozitiv (pe dispozitiv — în procesorul propriu al telefonului, fără a merge la server). AI pe dispozitiv; Oferă avantaje mari față de soluțiile cloud în ceea ce privește viteza, confidențialitatea și funcționarea offline. În această unitate, vom învăța cum să încorporam AI în aplicație cu Core ML de la iOS, TensorFlow Lite multiplatformă (cunoscut acum ca LiteRT) și soluția gata creată de la Google ML Kit și cum să folosim AI ca asistent în această integrare.

Pe dispozitiv sau în cloud?

Aceasta este prima și cea mai importantă decizie arhitecturală. Inteligența artificială de pe dispozitiv nu elimină datele de pe telefon - un câștig uriaș pentru confidențialitate. De asemenea, este instantaneu și funcționează offline, deoarece nu există latență în rețea. Cu toate acestea, este limitat de puterea de procesare și memoria dispozitivului; Modelele foarte mari (de exemplu, modelele cu limbă gigant) nu vor încăpea în telefon sau vor descărca bateria. Cloud AI, pe de altă parte, oferă putere nelimitată, dar trimite date către server, necesită rețea și creează latență.

criteriu

Pe dispozitiv

Cloud (API-ul cloud)

Confidențialitate

Datele rămân pe dispozitiv, puternice

Datele merg pe server, este nevoie de atenție

viteza

Instantaneu, fără rețea

Depinde de latența rețelei

offline

Funcționează

Nu funcționează

Dimensiunea modelului

Limitat (resursă telefonică)

nelimitat

baterie/caldura

Efecte cu utilizare intensă

Server sub încărcare, dispozitiv relaxat

Cost

Gratuit (sursa dispozitivului)

Taxa pe utilizare

Regula de decizie: alegeți pe dispozitiv dacă datele personale/sensibile sunt procesate, trebuie să funcționeze offline sau dacă răspunsul instantaneu este esențial. Dacă aveți nevoie de un model foarte mare, apelați la cloud. Această unitate este concentrată pe dispozitiv; Vom acoperi cloud AI în următoarea unitate.

Sfat: setați întotdeauna pe dispozitiv ca implicită pentru o funcție care gestionează date sensibile (sănătate, biometrie, locație). Expresia „datele nu părăsesc dispozitivul” este neprețuită atât pentru respectarea confidențialității, cât și pentru încrederea utilizatorilor și face o mare diferență în eticheta de confidențialitate a magazinului.

Trei moduri: ML Kit, Core ML, TensorFlow Lite

Kitul ML (Google) este cel mai simplu mod de a începe: oferă capabilități gata făcute, cum ar fi recunoașterea textului (OCR — citirea textului într-o imagine), detectarea feței, citirea codurilor de bare, traducerea în câteva rânduri. Nu trebuie să-ți antrenezi propriul model. Core ML (Apple) este cel mai eficient mod de a rula propriul model sau un model gata făcut pe iOS; Utilizează hardware-ul Apple Neural Engine (procesor de rețea neuronală artificială). TensorFlow Lite/LiteRT este o soluție multiplatformă care vă permite să rulați propriul model antrenat atât pe Android, cât și pe iOS.

Fluxul general de integrare cu AI decurge astfel:

  1. Definirea talentului. Un obiectiv clar, cum ar fi „Vreau să citesc textul din fotografie”.
  2. Selectarea căii. Dacă există talent gata, ML Kit; Core ML/TF Lite dacă este disponibil un model special.
  3. Formatul modelului. .mlmodel (Core ML), .tflite (TF Lite). Explică pașii de transformare a AI.
  4. Cod de integrare. Încărcarea modelului, preprocesarea intrării, interpretarea ieșirii.
  5. Test de performanță. Viteza, memoria, măsurarea bateriei pe dispozitiv real.
Atenție: Cea mai frecventă greșeală AI în integrarea modelului pe dispozitiv este preprocesarea intrării - conversia imaginii la formatul de dimensiune și culoare pe care modelul le așteaptă. Dacă modelul așteaptă 224x224 pixeli și îi dai 300x300, rezultatul va fi lipsit de sens, dar nu vei primi un mesaj de eroare. Verificați valorile de preprocesare din documentul modelului.

Cunoașterea limitelor modelului

Un model pe dispozitiv ia decizii pe baza datelor pe care a fost antrenat. Un model de recunoaștere a obiectelor antrenat doar pe fotografiile făcute în timpul zilei va fi greșit pe imaginile de noapte. Modelul are un scor de încredere (încredere — cât de sigur este modelul în ceea ce privește răspunsul său, de obicei între 0 și 1); Este periculos să prezentați utilizatorului rezultate cu încredere scăzută ca fiind exacte. De exemplu, o aplicație de scanare a petelor de piele nu ar trebui să spună „cu siguranță benignă”, ci ar trebui să spună „predicția modelului este aceasta, vă rugăm să consultați un medic”. Rezultatul modelului este o recomandare, nu un diagnostic.

trei mini cutii

Cazul 1 — Accelerație cu OCR. O aplicație de urmărire a cheltuielilor a eliminat sarcina introducerii manuale a chitanțelor cu recunoașterea textului ML Kit. Utilizatorul face o fotografie a chitanței, iar suma și data sunt completate automat. Timpul de introducere manuală a scăzut de la 40 de secunde la 8 secunde per chitanță. Echipa a avut întotdeauna utilizatorul să confirme cantitatea citită de AI; deoarece chitanțele șifonate aveau o marjă de eroare de 6%. Automatizarea + aprobarea umană a fost echilibrul potrivit.

Cazul 2 — Eroare de preprocesare. O echipă a integrat un model de recunoaștere a plantelor cu TensorFlow Lite; Pe tester, rezultatele au fost aleatorii. Problema a fost că codul generat de AI nu a normalizat imaginea la intervalul [0,1] așteptat de model (valorile pixelilor au fost lăsate la 0-255). Când a fost adăugată normalizarea, precizia a crescut de la 30% la 89%. Lecție: preprocesarea este tăcută, dar mortală.

Cazul 3 – Câștig de confidențialitate. O aplicație de sănătate a detectat anomalii din datele privind ritmul cardiac cu modelul Core ML de pe dispozitiv. Datele nu au ajuns niciodată la server. Această alegere a permis aplicației să primească expresia „nu colectează date” în eticheta de confidențialitate App Store și a crescut rata de descărcare în comparație cu concurenții. Alegerea de pe dispozitiv a fost atât etică, cât și profitabilă din punct de vedere comercial.

Prompt slab / Prompt puternic

Solicitare slabă: „Adăugați recunoașterea imaginii în aplicația mea”.

Solicitare puternică: „Adăugați funcția de citire a sumei și a datei în aplicația mea Android/Kotlin. - Folosiți Google ML Kit Text Recognition (pe dispozitiv, offline) - Preluați o imagine din cameră sau din galerie - Extrageți cantitatea și data din textul recunoscut cu regex - Prezentați rezultatul utilizatorului pentru aprobare în câmpul EDITABLE, salvare automată - Gestionați fluxul de permisiuni ale camerei și explicați situațiile de respingere și respingere.

Șabloane copiabile

Șablon de selecție a căii: „Vreau să fac următoarea caracteristică: [funcție]. Ar trebui să fie pe dispozitiv sau în cloud? Comparați în funcție de: confidențialitate, nevoia offline, dimensiunea modelului, baterie, cost. Recomandați instrumentul adecvat (Kit ML / Core ML / TF Lite) și justificați."

Șablon de integrare: „Scrieți integrarea [modelului/capacității] pentru [platformă]: 1) Încărcarea modelului2) Preprocesarea intrării (dimensiunea așteptată și normalizare)3) Apel de inferență4) Interpretarea ieșirii și verificarea scorului de încredere5) Avertisment pentru utilizator cu privire la rezultatul cu încredere scăzută Amintește-mi să verific valorile de preprocesare din documentația modelului."

Șablon de scor de încredere: „Luați în considerare scorul de încredere în acest cod de inferență:- Prezentați rezultatul „exact” sub pragul (de exemplu, 0,6)- Afișați nota „aceasta este o estimare” pentru utilizator- Consultați expertul dacă are o zonă critică (sănătate, siguranță) [cod]”

Șablon de verificare a performanței: „Enumerați valorile pe care trebuie să le măsoare pe dispozitivul real pentru integrarea acestui model pe dispozitiv: timpul de inferență, creșterea memoriei, impactul bateriei, încălzirea. Spuneți metoda de măsurare pentru fiecare.”

Greșeli comune

  • Săriți peste preprocesare sau să o faceți incorect. Dimensiunea/normalizarea greșită produce în tăcere un rezultat greșit.
  • Ignorarea scorului de încredere. Prezentarea unei estimări cu încredere scăzută ca fiind exactă va induce în eroare utilizatorul.
  • Testarea modelului în emulator. Viteza reală a dispozitivului și bateria sunt foarte diferite; Măsurați întotdeauna pe hardware real.
  • Trimiterea de date sensibile către cloud în mod inutil. Alegerea cloud atunci când este posibilă pe dispozitiv este un risc pentru confidențialitate.
  • Ignorând dimensiunea modelului. Aplicațiile model mari măresc dimensiunea descărcării și se blochează pe hardware-ul scăzut.
  • Uitând limita de antrenament a modelului. Modelul se greseste in starea in care nu vede (noapte, limbaj diferit); Faceți acest lucru clar pentru utilizator.

În concluzie

AI pe dispozitiv oferă confidențialitate, viteză și operare offline prin păstrarea datelor pe telefon; Limita este puterea dispozitivului și dimensiunea modelului. Kitul ML este utilizat pentru capabilități ieșite din cutie, Core ML (iOS) și TensorFlow Lite (multplatform) sunt folosite pentru modele personalizate. Ucigașul tăcut al integrării este preprocesarea necorespunzătoare; Dimensiunea de intrare și normalizarea sunt verificate din documentația modelului. Fiecare rezultat vine cu un scor de încredere, iar predicțiile cu încredere scăzută nu sunt prezentate ca adevăr absolut. Deciziile sunt măsurate pe dispozitivul real, nu pe emulator.

Sarcina de aplicare

Pentru o funcție de „citire text din fotografie” sau „citire cod de bare”, întrebați AI dacă ar trebui să fie pe dispozitiv sau în cloud cu „Șablonul de selecție a căii”, apoi solicitați un plan bazat pe kit ML cu „Șablonul de integrare”. Verificați dacă pasul de preprocesare și fluxul de aprobare/editare a utilizatorului sunt prezente în cod. Setați un prag de scor de încredere și scrieți ce veți face dacă rezultatul este încredere scăzută.

lista de verificare

  • [ ] Am luat decizia pe dispozitiv/cloud pe baza unor criterii
  • [ ] Am ales instrumentul potrivit (ML Kit / Core ML / TF Lite)
  • [ ] Am verificat dimensiunea preprocesării și normalizarea din documentația modelului
  • [ ] Am verificat scorul de încredere și am avertizat despre rezultatele scăzute de încredere
  • [ ] Am prezentat rezultatul utilizatorului cu aprobare/editare, nu l-am salvat orbește
  • [ ] Am măsurat performanța pe dispozitivul real, nu pe emulator