Jedinica 4 / 11

AI na uređaju: Core ML, TensorFlow Lite i ML Kit

Dobici:

  • Mogućnost odlučivanja na uređaju ili oblaku i odabir pravog alata (ML Kit, Core ML, TensorFlow Lite) na osnovu privatnosti, vanmrežnih potreba, veličine modela i kriterija baterije
  • Sposobnost sprječavanja tihih grešaka provjeravanjem 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 koristili AI kao pomoć za ubrzanje procesa razvoja. Sada prelazimo na drugu ulogu AI: talenat ugrađen u aplikaciju. Moderni telefoni imaju moć pokretanja AI modela kao što su prepoznavanje slika, prevođenje teksta, transkripcija govora itd. direktno na uređaju (na uređaju — u vlastitom procesoru telefona bez odlaska na server). AI na uređaju; Nudi velike prednosti u odnosu na rješenja u oblaku u smislu brzine, privatnosti i rada van mreže. U ovoj cjelini naučit ćemo kako ugraditi AI u aplikaciju sa iOS-ovim Core ML-om, cross-platform TensorFlow Lite-om (sada poznat kao LiteRT) i Google-ovim gotovim rješenjem ML Kit, te kako koristiti AI kao pomoćnika u ovoj integraciji.

Na uređaju ili u oblaku?

Ovo je prva i najvažnija arhitektonska odluka. AI na uređaju ne uklanja podatke sa telefona – velika pobjeda za privatnost. Takođe je trenutno i radi van mreže jer nema kašnjenja mreže. Međutim, ograničeno je procesorskom snagom i memorijom uređaja; Veoma veliki modeli (npr. modeli sa ogromnim jezikom) neće stati u telefon ili će isprazniti bateriju. Cloud AI, s druge strane, nudi neograničenu snagu, ali šalje podatke na server, zahtijeva mrežu i stvara kašnjenje.

kriterijum

Na uređaju

Cloud (Cloud API)

Privatnost

Podaci ostaju na uređaju, jaki

Podaci idu na server, potrebna je pažnja

brzina

Instant, bez mreže

Zavisi od kašnjenja mreže

offline

Radi

Ne radi

Veličina modela

Ograničeno (telefonski resursi)

neograničeno

baterija/toplina

Efekti kod teške upotrebe

Server pod opterećenjem, uređaj opušten

Troškovi

Besplatno (izvor uređaja)

Naknada po upotrebi

Pravilo odluke: Odaberite na uređaju ako se lični/osetljivi podaci obrađuju, ako treba da rade van mreže ili je trenutni odgovor neophodan. Ako vam je potreban veoma veliki model, obratite se oblaku. Ova jedinica je fokusirana na uređaj; U sljedećoj jedinici ćemo pokriti AI u oblaku.

Savjet: Za funkciju koja obrađuje osjetljive podatke (zdravlje, biometrija, lokacija) uvijek postavite na uređaj kao zadanu. Izraz “podaci ne napuštaju uređaj” je neprocjenjiv i za usklađenost s privatnošću i za povjerenje korisnika, i čini veliku razliku u oznaci privatnosti trgovine.

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 su prepoznavanje teksta (OCR — čitanje teksta na slici), prepoznavanje lica, čitanje bar koda, prijevod u nekoliko redova. Ne morate da trenirate sopstveni model. Core ML (Apple) je najefikasniji način za pokretanje 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ćava da pokrenete vlastiti obučeni model na Androidu i iOS-u.

Opšti tok integracije sa AI ide ovako:

  1. Definicija talenata. Jasan cilj, kao što je "Želim pročitati tekst na fotografiji."
  2. Odabir putanje. Ako postoji spreman talenat, ML Kit; Core ML/TF Lite ako je dostupan poseban model.
  3. Format modela. .mlmodel (Core ML), .tflite (TF Lite). Objašnjava korake transformacije AI.
  4. Integracioni kod. Učitavanje modela, predobrada ulaza, interpretacija izlaza.
  5. Test performansi. Mjerenje brzine, memorije, baterije na stvarnom uređaju.
Oprez: Najčešća AI greška u integraciji modela na uređaju je prethodna obrada 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 grešci. Provjerite vrijednosti za prethodnu obradu iz dokumenta modela.

Poznavanje granica modela

Model na uređaju donosi odluke na osnovu podataka na kojima je obučen. Model za prepoznavanje objekata obučen samo na fotografijama snimljenim tokom 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 prikazati rezultate niske pouzdanosti korisniku kao tačne. Na primjer, aplikacija za skeniranje mrlja na koži ne bi trebala reći "definitivno benigno", već bi trebala reći "predviđanje modela je ovo, obratite se liječniku". Rezultat modela je preporuka, a ne dijagnoza.

tri mini kofera

Slučaj 1 — Ubrzanje sa OCR. Aplikacija za praćenje troškova uklonila je teret ručnog unosa računa pomoću ML Kit prepoznavanja teksta. Korisnik fotografira račun, a iznos i datum se automatski popunjavaju. Vrijeme ručnog unosa smanjeno je sa 40 sekundi na 8 sekundi po računu. Tim je uvijek tražio od korisnika da potvrdi količinu koju je AI pročitao; jer su naborani računi imali marginu greške od 6%. Automatizacija + ljudsko odobrenje bila je prava ravnoteža.

Slučaj 2 — Greška u prethodnoj obradi. Jedan tim je integrisao model za prepoznavanje biljaka sa TensorFlow Lite; Na testeru su rezultati bili nasumični. Problem je bio u tome što kod koji je AI generirao nije normalizirao sliku na raspon [0,1] koji je model očekivao (vrijednosti piksela su ostavljene na 0-255). Kada je dodana normalizacija, preciznost se povećala sa 30% na 89%. Pouka: prethodna obrada je tiha, ali smrtonosna.

Slučaj 3 — Dobitak privatnosti. Zdravstvena aplikacija je otkrila anomaliju iz podataka o pulsu s Core ML modelom na uređaju. Podaci nikada nisu otišli na server. Ovaj izbor je omogućio aplikaciji da primi frazu "ne prikuplja podatke" u oznaci privatnosti App Store-a i povećao stopu preuzimanja u odnosu na konkurente. Izbor na uređaju bio je i etički i komercijalno isplativ.

Slaba prompt / Jaka prompt

Slab upit: "Dodaj prepoznavanje slika u moju aplikaciju."

Snažan upit: "Dodajte funkciju čitanja količine i datuma u moju Android/Kotlin aplikaciju. - Koristite Google ML Kit Text Recognition (na uređaju, van mreže) - Uzmite sliku sa kamere ili galerije - Izvucite količinu i datum iz prepoznatog teksta pomoću regularnog izraza - Predstavite rezultat korisniku na odobrenje u polju za automatsko EDITABLE i reproducirajte kameru. prethodnu obradu i situacije greške, objasnite korake."

Predlošci koji se mogu kopirati

Predložak za odabir putanje: "Želim napraviti sljedeću značajku: [funkcija]. Da li treba biti na uređaju ili u oblaku? Uporedite na osnovu: privatnosti, potrebe van mreže, veličine modela, baterije, cijene. Preporučite odgovarajući alat (ML Kit / Core ML / TF Lite) i opravdajte."

Integracijski predložak: "Napišite [model/sposobnost] integraciju za [platformu]:1) Učitavanje modela2) Prethodna obrada ulaza (očekivana veličina i normalizacija)3) Poziv zaključivanja4) Interpretacija izlaza i provjera ocjene pouzdanosti5) Upozorenje korisniku o rezultatu niske pouzdanosti Podsjeti me da provjerim dokument vrijednosti za prethodnu obradu iz modela."

Predložak ocjene povjerenja: "Uzmite u obzir rezultat povjerenja u ovom kodu zaključka:- Sadašnji rezultat 'tačan' ispod praga (npr. 0,6)- Pokažite 'ovo je procjena' napomenu korisniku- Obratite se stručnjaku ako je kritična oblast (zdravlje, sigurnost)[šifra]"

Predložak za provjeru performansi: "Navedite metriku koju trebam izmjeriti na stvarnom uređaju za ovu integraciju modela na uređaju: vrijeme zaključivanja, povećanje memorije, udar baterije, grijanje. Recite metodu mjerenja za svaki."

Uobičajene greške

  • Preskakanje predprocesiranja ili ga radi pogrešno. Pogrešna veličina/normalizacija tiho proizvodi pogrešan rezultat.
  • Zanemarivanje rezultata samopouzdanja. Predstavljanje procjene niske pouzdanosti kao tačne dovešće korisnika u zabludu.
  • Testiranje modela u emulatoru. Stvarna brzina uređaja i baterija se veoma razlikuju; uvijek mjerite na pravom hardveru.
  • Slanje osjetljivih podataka u oblak nepotrebno. Odabir oblaka kada je moguće na uređaju predstavlja rizik za privatnost.
  • Zanemarivanje veličine modela. Aplikacije velikih modela povećavaju veličinu preuzimanja i padaju na niskom hardveru.
  • Zaboravljanje ograničenja treninga modela. Model griješi u stanju u kojem ne vidi (noć, drugi jezik); Objasnite ovo korisniku.

Ukratko

AI na uređaju pruža privatnost, brzinu i offline rad tako što čuva podatke na telefonu; Ograničenje je snaga uređaja i veličina modela. ML Kit se koristi za gotove mogućnosti, Core ML (iOS) i TensorFlow Lite (cross-platform) se koriste za prilagođene modele. Tihi ubica integracije je nepravilna predobrada; Veličina ulaza i normalizacija su provjereni iz dokumentacije modela. Svaki rezultat dolazi sa ocjenom pouzdanosti, a predviđanja s niskim povjerenjem se ne predstavljaju kao apsolutna istina. Odluke se mjere na stvarnom uređaju, a ne na emulatoru.

Zadatak aplikacije

Za funkciju „čitanja teksta sa fotografije“ ili „čitanja barkoda“, pitajte AI da li treba da bude na uređaju ili u oblaku sa „Šablonom za odabir putanje“, a zatim zatražite nacrt baziran na ML kompletu sa „Integracionim šablonom“. Provjerite da li su korak predobrade i tok odobrenja/uređivanja korisnika prisutni u kodu. Postavite prag povjerenja i napišite šta ćete učiniti ako je rezultat nisko povjerenje.

kontrolna lista

  • [ ] Donio sam odluku na uređaju/oblaku na osnovu kriterija
  • [ ] Izabrao sam pravi alat (ML Kit / Core ML / TF Lite)
  • [ ] Provjerio sam preprocesnu dimenziju i normalizaciju iz dokumentacije modela
  • [ ] Provjerio sam ocjenu povjerenja i upozorio na niske rezultate povjerenja
  • [ ] Predstavio sam rezultat korisniku uz odobrenje/uređivanje, nisam ga slijepo sačuvao
  • [ ] Izmjerio sam performanse na stvarnom uređaju, a ne na emulatoru