Dobici:
- Sposobnost odlučivanja na uređaju ili u oblaku i odabir pravog alata (ML Kit, Core ML, TensorFlow Lite) na temelju privatnosti, izvanmrežnih potreba, veličine modela i kriterija baterije
- Sposobnost sprječavanja tihih pogrešaka provjerom pretprocesiranja ulaza (veličina i normalizacija) iz dokumenta modela u integraciji modela
- Sposobnost evaluacije rezultata pouzdanosti i mjerenja rezultata uz odobrenje korisnika i na stvarnom uređaju, bez predstavljanja predviđanja niske pouzdanosti kao apsolutne istine.
Do sada smo AI koristili kao pomoć za ubrzavanje procesa razvoja. Sada prelazimo na drugu ulogu umjetne inteligencije: talent ugrađen u aplikaciju. Moderni telefoni imaju moć pokretanja AI modela kao što su prepoznavanje slika, prijevod teksta, transkripcija govora itd. izravno na uređaju (na uređaju — u vlastitom procesoru telefona bez odlaska na poslužitelj). AI na uređaju; Nudi velike prednosti u odnosu na rješenja u oblaku u pogledu brzine, privatnosti i izvanmrežnog rada. U ovoj jedinici naučit ćemo kako ugraditi AI u aplikaciju s iOS-ovim Core ML-om, višeplatformskim TensorFlow Lite (sada poznatim kao LiteRT) i Googleovim gotovim rješenjem ML Kit te kako koristiti AI kao pomoćnika u ovoj integraciji.
Na uređaju ili u oblaku?
To je prva i najvažnija arhitektonska odluka. AI na uređaju ne uklanja podatke s telefona — velika prednost za privatnost. Također je trenutačno i radi izvanmrežno jer nema kašnjenja mreže. Međutim, ograničen je procesorskom snagom i memorijom uređaja; Vrlo veliki modeli (npr. modeli s ogromnim jezikom) neće stati u telefon ili će isprazniti bateriju. Cloud AI, s druge strane, nudi neograničenu snagu, ali šalje podatke na poslužitelj, zahtijeva mrežu i stvara latenciju.
kriterij
Na uređaju
Oblak (API za oblak)
Privatnost
Podaci ostaju na uređaju, jak
Podaci idu na poslužitelj, potrebna pozornost
brzina
Trenutačno, bez mreže
Ovisi o kašnjenju mreže
izvan mreže
Djeluje
Ne radi
Veličina modela
Ograničeno (telefonski resurs)
neograničeno
baterija/toplina
Učinci kod teške uporabe
Poslužitelj pod opterećenjem, uređaj opušten
trošak
Besplatno (izvor uređaja)
Naknada po korištenju
Pravilo odluke: Odaberite na uređaju ako se osobni/osjetljivi podaci obrađuju, treba raditi izvan mreže ili je trenutni odgovor bitan. Ako vam je potreban vrlo velik model, okrenite se oblaku. Ova je jedinica usmjerena na uređaj; Obradit ćemo AI u oblaku u sljedećoj jedinici.
Savjet: Uvijek postavite na uređaju svoju zadanu značajku koja obrađuje osjetljive podatke (zdravlje, biometrija, lokacija). Izraz "podaci ne napuštaju uređaj" neprocjenjiv je i za usklađenost s pravilima o privatnosti i za povjerenje korisnika, te čini veliku razliku u oznaci privatnosti u trgovini.
Tri načina: ML Kit, Core ML, TensorFlow Lite
ML Kit (Google) je najlakši način za početak: daje gotove mogućnosti kao što je prepoznavanje teksta (OCR — čitanje teksta na slici), prepoznavanje lica, čitanje crtičnog koda, prijevod u nekoliko redaka. Ne morate trenirati vlastiti model. Core ML (Apple) je najučinkovitiji način pokretanja vlastitog modela ili gotovog modela na iOS-u; Koristi Appleov hardver Neural Engine (procesor umjetne neuronske mreže). TensorFlow Lite/LiteRT je višeplatformsko rješenje koje vam omogućuje pokretanje vlastitog obučenog modela na Androidu i iOS-u.
Opći tijek integracije s AI ide ovako:
- Definicija talenta. Jasan cilj, poput "Želim pročitati tekst na fotografiji."
- Odabir staze. Ako postoji spreman talent, ML Kit; Core ML/TF Lite ako je dostupan poseban model.
- Format modela. .mlmodel (Core ML), .tflite (TF Lite). Objašnjava korake AI transformacije.
- Integracijski kod. Učitavanje modela, pretprocesiranje ulaza, tumačenje izlaza.
- Test performansi. Mjerenje brzine, memorije, baterije na stvarnom uređaju.
Oprez: najčešća pogreška umjetne inteligencije u integraciji modela na uređaju je predprocesiranje ulaza — pretvaranje slike u format veličine i boje koji model očekuje. Ako model očekuje 224x224 piksela, a vi mu date 300x300, rezultat će biti besmislen, ali nećete dobiti poruku o pogrešci. Provjerite vrijednosti predprocesiranja iz dokumenta modela.
Poznavanje granica modela
Model na uređaju donosi odluke na temelju podataka na kojima je treniran. Model prepoznavanja objekata obučen samo na fotografijama snimljenim tijekom dana bit će pogrešan na noćnim slikama. Model ima ocjenu pouzdanosti (pouzdanje — koliko je model siguran u svoj odgovor, obično između 0 i 1); Opasno je rezultate niske pouzdanosti predstavljati korisniku kao točne. Na primjer, aplikacija za skeniranje mrlja na koži ne bi trebala pisati "definitivno benigno", već bi trebala pisati "predviđanje modela je ovo, obratite se liječniku". Rezultat modela je preporuka, a ne dijagnoza.
tri mini kućišta
Slučaj 1 — Ubrzanje s OCR-om. Aplikacija za praćenje troškova uklonila je teret ručnog unosa potvrda s prepoznavanjem teksta ML Kit. Korisnik fotografira račun, a iznos i datum se automatski popunjavaju. Vrijeme ručnog unosa smanjeno je s 40 sekundi na 8 sekundi po računu. Tim je uvijek tražio od korisnika potvrdu količine koju je AI pročitao; jer su naborane potvrde imale 6% margine pogreške. Automatizacija + ljudsko odobrenje bila je prava ravnoteža.
Slučaj 2 — Pogreška pretprocesiranja. Jedan je tim integrirao model prepoznavanja biljaka s TensorFlow Lite; Na testeru su rezultati bili slučajni. Problem je bio u tome što kod koji je generirao AI nije normalizirao sliku na raspon [0,1] koji je model očekivao (vrijednosti piksela ostale su na 0-255). Kada je dodana normalizacija, točnost se povećala s 30% na 89%. Lekcija: pretprocesiranje je tiho, ali smrtonosno.
Slučaj 3 — Dobitak privatnosti. Zdravstvena aplikacija otkrila je anomaliju iz podataka o otkucajima srca s modelom Core ML na uređaju. Podaci nikada nisu otišli na poslužitelj. Ovaj izbor omogućio je da aplikacija dobije frazu "ne prikuplja podatke" u oznaci privatnosti App Storea i povećala brzinu preuzimanja u usporedbi s konkurencijom. Odabir na uređaju bio je i etički i komercijalno isplativ.
Slab upit / Jak upit
Slab upit: "Dodaj prepoznavanje slika mojoj aplikaciji."
Snažan upit: "Dodajte značajku čitanja iznosa i datuma u moju Android/Kotlin aplikaciju. - Koristite Google ML Kit Text Recognition (na uređaju, izvanmrežno) - Snimite sliku iz kamere ili galerije - Izdvojite iznos i datum iz prepoznatog teksta pomoću regularnog izraza - Predstavite rezultat korisniku na odobrenje u polju UREĐIVANJE, automatsko spremanje - Upravljajte protokom dopuštenja za kameru i odbijanjem. Zapišite prethodne obrade i situacije pogreške, objasnite korake."
Predlošci koji se mogu kopirati
Predložak odabira staze: "Želim napraviti sljedeću značajku: [značajka]. Treba li to biti na uređaju ili u oblaku? Usporedite na temelju: privatnosti, izvanmrežne potrebe, veličine modela, baterije, cijene. Preporučite odgovarajući alat (ML Kit / Core ML / TF Lite) i opravdajte."
Integracijski predložak: "Napišite [model/mogućnost] integraciju za [platformu]:1) Učitavanje modela2) Ulazna predobrada (očekivana veličina i normalizacija)3) Inferencijski poziv4) Izlazna interpretacija i provjera rezultata pouzdanosti 5) Upozorenje korisniku na rezultate niske pouzdanosti Podsjeti me da provjerim vrijednosti pretprocesiranja iz dokumentacije modela."
Predložak ocjene pouzdanosti: "Razmotrite ocjenu pouzdanosti u ovom kodu zaključivanja: - Sadašnji rezultat 'točan' ispod praga (npr. 0,6) - Pokažite korisniku napomenu 'ovo je procjena' - Obratite se stručnjaku ako je kritično područje (zdravlje, sigurnost) [kod]"
Predložak za provjeru performansi: "Navedite metrike koje trebam mjeriti na stvarnom uređaju za ovu integraciju modela na uređaju: vrijeme zaključivanja, povećanje memorije, utjecaj baterije, grijanje. Recite metodu mjerenja za svaku."
Uobičajene greške
- Preskakanje predobrade ili izvođenje neispravno. Pogrešna veličina/normalizacija tiho proizvodi pogrešan rezultat.
- Ignoriranje ocjene povjerenja. Predstavljanje procjene niske pouzdanosti kao točne dovest će korisnika u zabludu.
- Testiranje modela u emulatoru. Stvarna brzina uređaja i baterija vrlo su različite; uvijek mjerite na stvarnom hardveru.
- Nepotrebno slanje osjetljivih podataka u oblak. Odabir oblaka kada je na uređaju moguć rizik je privatnosti.
- Zanemarivanje veličine modela. Aplikacije velikog modela povećavaju veličinu preuzimanja i ruše se na slabom hardveru.
- Zaboravljanje granice treninga modela. Model je pogrešan u stanju u kojem ne vidi (noć, drugačiji jezik); Objasnite to korisniku.
Ukratko
AI na uređaju pruža privatnost, brzinu i izvanmrežni rad čuvanjem podataka na telefonu; Ograničenje je snaga uređaja i veličina modela. ML Kit se koristi za mogućnosti izvan okvira, Core ML (iOS) i TensorFlow Lite (cross-platform) koriste se za prilagođene modele. Tihi ubojica integracije je nepravilna predprocesiranje; Ulazna veličina i normalizacija potvrđuju se iz dokumentacije modela. Svaki rezultat dolazi s ocjenom pouzdanosti, a predviđanja niske pouzdanosti ne predstavljaju se kao apsolutna istina. Odluke se mjere na stvarnom uređaju, a ne na emulatoru.
Zadatak aplikacije
Za značajku "čitanje teksta s fotografije" ili "čitanje crtičnog koda", pitajte AI treba li biti na uređaju ili u oblaku s "Predloškom odabira puta", zatim zatražite nacrt temeljen na ML Kitu s "Predloškom integracije". Provjerite jesu li u kodu prisutni korak pretprocesiranja i tijek korisničkog odobrenja/uređivanja. Postavite prag povjerenja i napišite što ćete učiniti ako rezultat bude nizak.
popis za provjeru
- [ ] Donio sam odluku na uređaju/oblaku na temelju kriterija
- [ ] Izabrao sam pravi alat (ML Kit / Core ML / TF Lite)
- [ ] Provjerio sam dimenziju pretprocesiranja i normalizaciju iz dokumentacije modela
- [ ] Provjerio sam rezultat povjerenja i upozorio na niske rezultate povjerenja
- [ ] Rezultat sam predstavio korisniku uz odobrenje/uređivanje, nisam ga naslijepo spremio
- [ ] Mjerio sam performanse na stvarnom uređaju, ne na emulatoru