Dobički:
- Možnost odločitve v napravi ali oblaku in izbire pravega orodja (ML Kit, Core ML, TensorFlow Lite) glede na zasebnost, potrebe brez povezave, velikost modela in kriterije baterije
- Sposobnost preprečevanja tihih napak s preverjanjem predprocesiranja vnosa (velikost in normalizacija) iz dokumenta modela v integraciji modela
- Sposobnost ovrednotenja ocene zaupanja in merjenja rezultata z odobritvijo uporabnika in na resnični napravi, ne da bi napovedi nizkega zaupanja predstavili kot absolutno resnico.
Doslej smo AI uporabljali kot pomoč pri pospeševanju razvojnega procesa. Zdaj pa preidimo na drugo vlogo umetne inteligence: talent, vgrajen v aplikacijo. Sodobni telefoni imajo moč izvajati modele umetne inteligence, kot so prepoznavanje slik, prevajanje besedila, prepisovanje govora itd., neposredno v napravi (v napravi – v lastnem procesorju telefona, ne da bi šli na strežnik). AI na napravi; Ponuja velike prednosti pred rešitvami v oblaku glede hitrosti, zasebnosti in delovanja brez povezave. V tej enoti se bomo naučili, kako vdelati AI v aplikacijo z iOS-ovim Core ML, večplatformskim TensorFlow Lite (zdaj znanim kot LiteRT) in Googlovim že pripravljenim kompletom rešitev ML ter kako uporabiti AI kot pomočnika pri tej integraciji.
V napravi ali v oblaku?
To je prva in najpomembnejša arhitekturna odločitev. AI v napravi ne odstrani podatkov iz telefona – velika zmaga za zasebnost. Prav tako je takojšen in deluje brez povezave, saj ni zakasnitve omrežja. Vendar je omejena s procesorsko močjo in pomnilnikom naprave; Zelo veliki modeli (npr. modeli z ogromnim jezikom) se ne prilegajo v telefon ali pa izpraznijo baterijo. Po drugi strani AI v oblaku ponuja neomejeno moč, vendar pošilja podatke na strežnik, zahteva omrežje in ustvarja zakasnitev.
merilo
Na napravi
Oblak (API za oblak)
Zasebnost
Podatki ostanejo v napravi, močno
Podatki gredo v strežnik, potrebna je pozornost
hitrost
Takoj, brez omrežja
Odvisno od zakasnitve omrežja
brez povezave
Deluje
ne deluje
Velikost modela
Omejeno (telefonski vir)
neomejeno
baterija/gretje
Učinki pri intenzivni uporabi
Strežnik pod obremenitvijo, naprava sproščena
Stroški
Brezplačno (vir naprave)
Pristojbina na uporabo
Odločitveno pravilo: izberite v napravi, če se obdelujejo osebni/občutljivi podatki, mora delovati brez povezave ali je bistven takojšen odziv. Če potrebujete zelo velik model, se obrnite na oblak. Ta enota je osredotočena na napravo; V naslednji enoti bomo obravnavali AI v oblaku.
Namig: za funkcijo, ki obravnava občutljive podatke (zdravje, biometrija, lokacija), vedno nastavite funkcijo v napravi kot privzeto. Besedna zveza »podatki ne zapustijo naprave« je neprecenljiva tako za skladnost z zasebnostjo kot za zaupanje uporabnikov in pomeni veliko razliko v oznaki zasebnosti trgovine.
Trije načini: ML Kit, Core ML, TensorFlow Lite
ML Kit (Google) je najlažji način za začetek: ponuja že pripravljene zmožnosti, kot so prepoznavanje besedila (OCR — branje besedila v sliki), zaznavanje obrazov, branje črtne kode, prevajanje v nekaj vrsticah. Ni vam treba usposobiti lastnega modela. Core ML (Apple) je najučinkovitejši način za zagon lastnega modela ali že pripravljenega modela v sistemu iOS; Uporablja Applov Neural Engine (procesor umetne nevronske mreže) strojno opremo. TensorFlow Lite/LiteRT je rešitev za več platform, ki vam omogoča zagon lastnega usposobljenega modela v sistemih Android in iOS.
Splošni tok integracije z AI gre takole:
- Opredelitev talenta. Jasen cilj, na primer "Želim prebrati besedilo na fotografiji."
- Izbira poti. Če obstaja pripravljen talent, ML Kit; Core ML/TF Lite, če je na voljo poseben model.
- Format modela. .mlmodel (Core ML), .tflite (TF Lite). Pojasnjuje korake preobrazbe AI.
- Integracijska koda. Nalaganje modela, predprocesiranje vnosa, interpretacija izhoda.
- Test delovanja. Merjenje hitrosti, pomnilnika, baterije na resnični napravi.
Pozor: Najpogostejša napaka umetne inteligence pri integraciji modela v napravi je predhodna obdelava vnosa — pretvorba slike v obliko velikosti in barve, ki jo pričakuje model. Če model pričakuje 224x224 slikovnih pik, vi pa mu date 300x300, bo rezultat brez pomena, vendar ne boste prejeli sporočila o napaki. Preverite vrednosti predprocesiranja iz dokumenta modela.
Poznavanje meja modela
Model v napravi sprejema odločitve na podlagi podatkov, na podlagi katerih je bil usposobljen. Model za prepoznavanje objektov, ki je naučen samo na fotografijah, posnetih podnevi, bo na nočnih slikah napačen. Model ima oceno zaupanja (zaupanje – kako prepričan je model o svojem odgovoru, običajno med 0 in 1); Nevarno je uporabniku predstaviti rezultate z nizko stopnjo zaupanja kot točne. Aplikacija za skeniranje kožnih madežev na primer ne bi smela pisati "definitivno benigno", ampak "napoved modela je tole, posvetujte se z zdravnikom". Rezultat modela je priporočilo, ne diagnoza.
trije mini kovčki
Primer 1 – Pospeševanje z OCR. Aplikacija za sledenje stroškov je odstranila breme ročnega vnašanja računov s prepoznavanjem besedila ML Kit. Uporabnik fotografira račun, znesek in datum pa se samodejno izpolnita. Čas ročnega vnosa se je zmanjšal s 40 sekund na 8 sekund na potrdilo. Ekipa je vedno zahtevala, da uporabnik potrdi količino, ki jo je AI prebral; ker so imeli zgubani računi 6-odstotno stopnjo napake. Avtomatizacija + človeška odobritev je bilo pravo razmerje.
Primer 2 – Napaka pri predhodni obdelavi. Ena ekipa je integrirala model za prepoznavanje rastlin s TensorFlow Lite; Na testerju so bili rezultati naključni. Težava je bila v tem, da koda, ki jo je ustvaril AI, ni normalizirala slike na obseg [0,1], kot je pričakoval model (vrednosti slikovnih pik so ostale pri 0–255). Ko je bila dodana normalizacija, se je natančnost povečala s 30 % na 89 %. Nauk: predprocesiranje je tiho, a smrtonosno.
Primer 3 – pridobitev zasebnosti. Zdravstvena aplikacija je zaznala anomalijo iz podatkov o srčnem utripu z modelom Core ML v napravi. Podatki nikoli niso šli na strežnik. Ta izbira je aplikaciji omogočila, da je prejela besedno zvezo "ne zbira podatkov" v oznaki zasebnosti App Store in povečala stopnjo prenosa v primerjavi s konkurenti. Izbira na napravi je bila etična in komercialno donosna.
Šibek poziv/močan poziv
Šibek poziv: "Dodaj prepoznavanje slik moji aplikaciji."
Zmogljiv poziv: »Dodaj funkcijo branja zneska in datuma v mojo aplikacijo za Android/Kotlin. - Uporabi Google ML Kit Text Recognition (v napravi, brez povezave) - Posnemi sliko iz fotoaparata ali galerije - Izvleči količino in datum iz prepoznanega besedila z regularnim izrazom - Predstavi rezultat uporabniku v odobritev v polju UREJLJIVO, samodejno shrani - Upravljaj s tokom dovoljenj za kamero in zavrnitvijo. Zapiši predhodna obdelava in napake, razložite korake."
Kopirane predloge
Predloga za izbiro poti: "Želim narediti naslednjo funkcijo: [funkcija]. Ali naj bo v napravi ali v oblaku? Primerjaj glede na: zasebnost, potrebo brez povezave, velikost modela, baterijo, ceno. Priporočite ustrezno orodje (ML Kit / Core ML / TF Lite) in utemeljite."
Integracijska predloga: "Napišite [model/zmogljivost] integracijo za [platformo]: 1) Nalaganje modela 2) Predobdelava vhoda (pričakovana velikost in normalizacija) 3) Klic sklepanja 4) Interpretacija izhoda in preverjanje ocene zaupanja 5) Opozorilo uporabniku glede rezultatov z nizko stopnjo zaupanja. Opomni me, naj preverim vrednosti predprocesiranja iz dokumentacije modela."
Predloga za oceno zaupanja: »Upoštevajte oceno zaupanja v tej sklepni kodi: - Trenutni rezultat 'natančno' pod pragom (npr. 0,6) - Pokažite opombo 'to je ocena' uporabniku - Obrnite se na strokovnjaka, če je kritično področje (zdravje, varnost)[koda]«
Predloga za preverjanje zmogljivosti: "Navedite meritve, ki jih moram izmeriti na dejanski napravi za to integracijo modela v napravi: čas sklepanja, povečanje pomnilnika, vpliv baterije, ogrevanje. Povejte metodo merjenja za vsako."
Pogoste napake
- Preskok predprocesiranja ali nepravilno izvajanje. Napačna velikost/normalizacija tiho povzroči napačen rezultat.
- Ignoriranje ocene zaupanja. Predstavitev ocene z nizko stopnjo zaupanja kot natančne bo zavajala uporabnika.
- Testiranje modela v emulatorju. Dejanska hitrost naprave in baterija sta zelo različni; vedno meri na pravi strojni opremi.
- Po nepotrebnem pošiljanje občutljivih podatkov v oblak. Izbira oblaka, ko je na napravi mogoča, je tveganje za zasebnost.
- Ignoriranje velikosti modela. Aplikacije velikega modela povečajo velikost prenosa in se zrušijo pri nizki strojni opremi.
- Pozabite na omejitev usposabljanja modela. Model se moti v stanju, ko ne vidi (noč, drug jezik); To uporabniku pojasnite.
Če povzamem
AI v napravi zagotavlja zasebnost, hitrost in delovanje brez povezave s shranjevanjem podatkov v telefonu; Omejitev je moč naprave in velikost modela. ML Kit se uporablja za že pripravljene zmogljivosti, Core ML (iOS) in TensorFlow Lite (med platformami) pa se uporabljata za modele po meri. Tihi ubijalec integracije je nepravilna predprocesiranje; Vhodna velikost in normalizacija sta preverjeni iz dokumentacije modela. Vsak rezultat ima oceno zaupanja in napovedi nizkega zaupanja niso predstavljene kot absolutna resnica. Odločitve se merijo na resnični napravi, ne na emulatorju.
Aplikacijska naloga
Za funkcijo »branje besedila s fotografije« ali »branje črtne kode« vprašajte AI, ali naj bo v napravi ali v oblaku s »predlogo za izbiro poti«, nato s »predlogo za integracijo« zahtevajte načrt, ki temelji na ML Kit. Preverite, ali sta v kodi prisotna korak predprocesiranja in potek odobritve/urejanja uporabnika. Določite prag zaupanja in napišite, kaj boste storili, če bo rezultat nizek.
kontrolni seznam
- [ ] Odločitev v napravi/oblaku sem sprejel na podlagi meril
- [ ] Izbral sem pravo orodje (ML Kit / Core ML / TF Lite)
- [ ] Preveril sem dimenzijo predprocesiranja in normalizacijo iz dokumentacije modela
- [ ] Preveril sem rezultat zaupanja in opozoril na nizke rezultate zaupanja
- [ ] Rezultat sem predstavil uporabniku z odobritvijo/urejanjem, nisem ga na slepo shranil
- [ ] Učinkovitost sem izmeril na resnični napravi, ne na emulatorju