Jednotka 4 / 11

AI na zariadení: Core ML, TensorFlow Lite a ML Kit

zisky:

  • Schopnosť rozhodnúť sa na zariadení alebo cloude a vybrať si správny nástroj (ML Kit, Core ML, TensorFlow Lite) na základe súkromia, potreby offline, veľkosti modelu a kritérií batérie
  • Schopnosť zabrániť tichým chybám overením vstupného predspracovania (veľkosť a normalizácia) z dokumentu modelu v integrácii modelu
  • Schopnosť vyhodnotiť skóre spoľahlivosti a merať výsledok so súhlasom používateľa a na skutočnom zariadení bez toho, aby sa predpovede s nízkou spoľahlivosťou prezentovali ako absolútna pravda.

Doteraz sme AI používali ako pomôcku na urýchlenie procesu vývoja. Teraz prejdeme k druhej úlohe AI: talentu vloženému do aplikácie. Moderné telefóny majú schopnosť spúšťať modely AI, ako je rozpoznávanie obrázkov, preklad textu, prepis reči atď. priamo na zariadení (na zariadení – vo vlastnom procesore telefónu bez toho, aby museli ísť na server). AI na zariadení; Oproti cloudovým riešeniam ponúka veľké výhody z hľadiska rýchlosti, súkromia a offline prevádzky. V tejto lekcii sa naučíme, ako vložiť AI do aplikácie pomocou iOS Core ML, multiplatformového TensorFlow Lite (teraz známeho ako LiteRT) a hotového riešenia Google ML Kit a ako používať AI ako asistenta pri tejto integrácii.

Na zariadení alebo v cloude?

Toto je prvé a najdôležitejšie architektonické rozhodnutie. Umelá inteligencia na zariadení neodstraňuje údaje z telefónu, čo je obrovská výhoda pre súkromie. Je tiež okamžitý a funguje offline, pretože nedochádza k oneskoreniu siete. Je však obmedzený výpočtovým výkonom zariadenia a pamäťou; Veľmi veľké modely (napr. modely s obrovským jazykom) sa nezmestia do telefónu alebo budú vybíjať batériu. Cloud AI, na druhej strane, ponúka neobmedzený výkon, ale posiela dáta na server, vyžaduje sieť a vytvára latenciu.

kritérium

Na zariadení

Cloud (cloud API)

Ochrana osobných údajov

Dáta zostanú v zariadení, silné

Dáta idú na server, je potrebná pozornosť

rýchlosť

Okamžité, žiadna sieť

Závisí od latencie siete

offline

funguje to

nefunguje

Veľkosť modelu

Obmedzené (zdroj telefónu)

neobmedzené

batéria/teplo

Účinky pri intenzívnom používaní

Server je zaťažený, zariadenie je uvoľnené

náklady

Zadarmo (zdroj zariadenia)

Poplatok za použitie

Pravidlo rozhodovania: Ak sa spracúvajú osobné/citlivé údaje, ak je potrebné pracovať v režime offline alebo je nevyhnutná okamžitá reakcia, vyberte si na zariadení. Ak potrebujete veľmi veľký model, obráťte sa na cloud. Táto jednotka je zameraná na zariadenie; V ďalšej časti sa budeme venovať cloudovej AI.

Tip: Vždy nastavte na zariadení predvolenú funkciu pre funkciu, ktorá spracováva citlivé údaje (zdravie, biometria, poloha). Fráza „údaje neopúšťajú zariadenie“ je neoceniteľná z hľadiska súladu s ochranou osobných údajov a dôvery používateľov a predstavuje veľký rozdiel v označení ochrany osobných údajov v obchode.

Tri spôsoby: ML Kit, Core ML, TensorFlow Lite

ML Kit (Google) je najjednoduchší spôsob, ako začať: poskytuje hotové funkcie, ako je rozpoznávanie textu (OCR – čítanie textu na obrázku), detekcia tváre, čítanie čiarových kódov, preklad v niekoľkých riadkoch. Nemusíte trénovať svoj vlastný model. Core ML (Apple) je najefektívnejší spôsob, ako spustiť vlastný model alebo hotový model v systéme iOS; Využíva hardvér Neural Engine (procesor umelej neurónovej siete) od spoločnosti Apple. TensorFlow Lite/LiteRT je multiplatformové riešenie, ktoré vám umožňuje spustiť vlastný natrénovaný model na Androide aj iOS.

Všeobecný postup integrácie s AI vyzerá takto:

  1. Definícia talentu. Jasný cieľ, napríklad „chcem si prečítať text na fotke“.
  2. Výber cesty. Ak je pripravený talent, ML Kit; Core ML/TF Lite, ak je k dispozícii špeciálny model.
  3. Formát modelu. .mlmodel (Core ML), .tflite (TF Lite). Vysvetľuje kroky transformácie AI.
  4. Integračný kód. Načítanie modelu, predspracovanie vstupu, interpretácia výstupu.
  5. Výkonnostný test. Meranie rýchlosti, pamäte, batérie na reálnom zariadení.
Upozornenie: Najčastejšou chybou AI pri integrácii modelu na zariadení je predspracovanie vstupu – konvertovanie obrázka na veľkosť a formát farieb, ktoré model očakáva. Ak model očakáva 224 x 224 pixelov a vy mu dáte 300 x 300, výsledok bude bezvýznamný, ale nedostanete chybové hlásenie. Overte hodnoty predbežného spracovania z dokumentu modelu.

Poznať limity modelu

Model na zariadení sa rozhoduje na základe údajov, na ktorých bol trénovaný. Model rozpoznávania objektov natrénovaný iba na fotografiách urobených cez deň bude na nočných snímkach nesprávny. Model má skóre spoľahlivosti (dôvera – ako si je model istý svojou odpoveďou, zvyčajne medzi 0 a 1); Je nebezpečné prezentovať používateľovi výsledky s nízkou spoľahlivosťou ako presné. Napríklad aplikácia na skenovanie kožných škvŕn by nemala povedať „určite benígna“, ale mala by povedať „predpoveď modelu je toto, poraďte sa s lekárom“. Výsledkom modelu je odporúčanie, nie diagnóza.

tri mini prípady

Prípad 1 – Zrýchlenie pomocou OCR. Aplikácia na sledovanie výdavkov odstránila bremeno manuálneho zadávania účteniek pomocou rozpoznávania textu súpravy ML. Používateľ si účtenku odfotí a suma a dátum sa doplnia automaticky. Čas manuálneho zadávania sa znížil zo 40 sekúnd na 8 sekúnd na potvrdenie. Tím vždy nechal používateľa potvrdiť množstvo, ktoré AI prečítal; pretože pokrčené účtenky mali 6 % chybovosť. Automatizácia + súhlas človeka bola správna rovnováha.

Prípad 2 – Chyba predbežného spracovania. Jeden tím integroval model rozpoznávania rastlín s TensorFlow Lite; Na testeri boli výsledky náhodné. Problém bol v tom, že kód vygenerovaný AI nenormalizoval obraz na rozsah [0,1], ktorý model očakával (hodnoty pixelov boli ponechané na 0-255). Po pridaní normalizácie sa presnosť zvýšila z 30 % na 89 %. Ponaučenie: predbežné spracovanie je tiché, ale smrteľné.

Prípad 3 – Zisk súkromia. Zdravotná aplikácia zistila anomáliu z údajov o srdcovej frekvencii s modelom Core ML na zariadení. Údaje sa nikdy nedostali na server. Táto voľba umožnila aplikácii získať frázu „nezbiera údaje“ na štítku ochrany osobných údajov App Store a zvýšila rýchlosť sťahovania v porovnaní s konkurenciou. Voľba na zariadení bola etická aj komerčne zisková.

Slabá výzva / Silná výzva

Slabá výzva: „Pridať rozpoznávanie obrázkov do mojej aplikácie.“

Výkonná výzva: „Pridajte funkciu čítania sumy a dátumu do mojej aplikácie Android/Kotlin. – Použiť rozpoznávanie textu súpravy Google ML Kit (na zariadení, offline) – Nasnímať obrázok z fotoaparátu alebo galérie – extrahovať množstvo a dátum z rozpoznaného textu pomocou regulárneho výrazu – prezentovať výsledok používateľovi na schválenie v poli UPRAVIŤ, automaticky uložiť – zaznamenať postup predbežného spracovania a odmietnutia oprávnenia fotoaparátu.“

Kopírovateľné šablóny

Šablóna výberu cesty: "Chcem vytvoriť nasledujúcu funkciu: [funkcia]. Má to byť na zariadení alebo v cloude? Porovnajte na základe: súkromia, potreby offline, veľkosti modelu, batérie, ceny. Odporučte vhodný nástroj (ML Kit / Core ML / TF Lite) a zdôvodnite."

Šablóna integrácie: "Napíšte integráciu [model/schopnosť] pre [platformu]: 1) Načítanie modelu2) Predspracovanie vstupu (očakávaná veľkosť a normalizácia)3) Volanie záveru4) Interpretácia výstupu a kontrola skóre spoľahlivosti5) Upozornenie pre používateľa na výsledok s nízkou spoľahlivosťou Pripomeňte mi, aby som si overil hodnoty predbežného spracovania z dokumentácie modelu.“

Šablóna skóre spoľahlivosti: „Zvážte skóre spoľahlivosti v tomto kóde záveru:- Prezentujte výsledok 'presne' pod prahovou hodnotou (napr. 0,6)- Ukážte používateľovi poznámku „toto je odhad“- V prípade kritickej oblasti (zdravie, bezpečnosť) sa obráťte na odborníka[kód]“

Šablóna overenia výkonu: „Uveďte metriky, ktoré potrebujem zmerať na skutočnom zariadení pre túto integráciu modelu na zariadení: čas odvodenia, zvýšenie pamäte, vplyv batérie, zahrievanie. Povedzte pre každú metódu merania.“

Časté chyby

  • Preskočenie predbežného spracovania alebo nesprávne vykonanie. Nesprávna veľkosť/normalizácia v tichosti spôsobí nesprávny výsledok.
  • Ignorovanie skóre dôvery. Prezentácia odhadu s nízkou spoľahlivosťou ako presného môže používateľa zavádzať.
  • Testovanie modelu v emulátore. Skutočná rýchlosť zariadenia a batéria sú veľmi odlišné; vždy merajte na skutočnom hardvéri.
  • Zbytočné odosielanie citlivých údajov do cloudu. Výber cloudu, keď je to možné na zariadení, predstavuje riziko pre súkromie.
  • Ignorovanie veľkosti modelu. Aplikácie veľkých modelov zväčšujú veľkosť sťahovania a zlyhávajú pri nízkom hardvéri.
  • Zabudnutie na tréningový limit modelu. Model sa mýli v stave, keď nevidí (noc, iný jazyk); Objasnite to používateľovi.

V súhrne

Umelá inteligencia na zariadení poskytuje súkromie, rýchlosť a offline prevádzku tým, že uchováva údaje v telefóne; Limitom je výkon zariadenia a veľkosť modelu. ML Kit sa používa na okamžité funkcie, Core ML (iOS) a TensorFlow Lite (viacplatformové) sa používajú na vlastné modely. Tichým zabijakom integrácie je nesprávne predspracovanie; Vstupná veľkosť a normalizácia sú overené z dokumentácie modelu. Každý výsledok prichádza so skóre spoľahlivosti a predpovede s nízkou spoľahlivosťou nie sú prezentované ako absolútna pravda. Rozhodnutia sa merajú na skutočnom zariadení, nie na emulátore.

Aplikačná úloha

V prípade funkcie „čítanie textu z fotografie“ alebo „čítanie čiarových kódov“ sa opýtajte AI, či by to malo byť na zariadení alebo v cloude so „šablónou výberu cesty“, potom požiadajte o plán založený na súprave ML so „šablónou integrácie“. Overte, či sa v kóde nachádza krok predbežného spracovania a postup schválenia/úpravy používateľom. Nastavte prah skóre dôvery a napíšte, čo urobíte, ak výsledkom bude nízka dôvera.

kontrolný zoznam

  • [ ] Rozhodol som sa na zariadení/cloude na základe kritérií
  • [ ] Vybral som si správny nástroj (ML Kit / Core ML / TF Lite)
  • [ ] Rozmer predspracovania a normalizáciu som overil z dokumentácie modelu
  • [ ] Skontroloval som skóre dôveryhodnosti a varoval som pred nízkymi výsledkami dôveryhodnosti
  • [ ] Výsledok som predložil používateľovi so schválením/úpravou, slepo som ho neuložil
  • [ ] Meral som výkon na skutočnom zariadení, nie na emulátore