Ieguvumi:
- Iespēja izlemt ierīcē vai mākonī un izvēlēties pareizo rīku (ML Kit, Core ML, TensorFlow Lite), pamatojoties uz privātumu, bezsaistes nepieciešamību, modeļa izmēru un akumulatora kritērijiem
- Spēja novērst klusās kļūdas, pārbaudot ievades priekšapstrādi (izmēru un normalizāciju) no modeļa dokumenta modeļa integrācijā
- Spēja novērtēt ticamības rādītāju un izmērīt rezultātu ar lietotāja apstiprinājumu un reālajā ierīcē, neuzrādot zemas ticamības prognozes kā absolūtu patiesību.
Līdz šim mēs esam izmantojuši AI kā palīglīdzekli, lai paātrinātu izstrādes procesu. Tagad mēs pārejam pie otrās AI lomas: lietojumprogrammā iegultā talanta. Mūsdienu tālruņi spēj darbināt AI modeļus, piemēram, attēlu atpazīšanu, teksta tulkošanu, runas transkripciju utt., tieši ierīcē (ierīcē — paša tālruņa procesorā, nedodoties uz serveri). AI ierīcē; Tas piedāvā lielas priekšrocības salīdzinājumā ar mākoņa risinājumiem ātruma, privātuma un bezsaistes darbības ziņā. Šajā nodaļā mēs uzzināsim, kā iegult AI lietojumprogrammā ar iOS Core ML, starpplatformu TensorFlow Lite (tagad pazīstams kā LiteRT) un Google gatavu risinājumu ML Kit, un kā izmantot AI kā palīgu šajā integrācijā.
Ierīcē vai mākonī?
Šis ir pirmais un vissvarīgākais arhitektūras lēmums. Ierīces AI nenoņem datus no tālruņa — tas ir milzīgs ieguvums privātumam. Tas ir arī tūlītējs un darbojas bezsaistē, jo nav tīkla latentuma. Tomēr to ierobežo ierīces apstrādes jauda un atmiņa; Ļoti lieli modeļi (piemēram, modeļi ar milzīgu mēli) neietilps tālrunī vai izlādēs akumulatoru. Savukārt Cloud AI piedāvā neierobežotu jaudu, taču nosūta datus uz serveri, ir nepieciešams tīkls un rada latentumu.
kritērijs
Ierīcē
Mākonis (mākonis API)
Privātums
Dati paliek ierīcē, spēcīgi
Dati nonāk serverī, nepieciešama uzmanība
ātrumu
Tūlītēja, bez tīkla
Atkarīgs no tīkla latentuma
bezsaistē
Tas darbojas
Nedarbojas
Modeļa izmērs
Ierobežots (tālruņa resurss)
neierobežots
akumulators/siltums
Ietekme ar intensīvu lietošanu
Serveris ir noslogots, ierīce ir atslābināta
Izmaksas
Bezmaksas (ierīces avots)
Maksa par lietošanu
Lēmuma noteikums: izvēlieties ierīcē, ja tiek apstrādāti personas/sensitīvi dati, jādarbojas bezsaistē vai ir būtiska tūlītēja atbilde. Ja jums ir nepieciešams ļoti liels modelis, griezieties pie mākoņa. Šī ierīce ir fokusēta uz ierīci; Nākamajā vienībā mēs aptversim mākoņa AI.
Padoms. Vienmēr iestatiet ierīci par noklusējumu funkcijai, kas apstrādā sensitīvus datus (veselību, biometriju, atrašanās vietu). Frāze “dati neiziet no ierīces” ir nenovērtējama gan attiecībā uz privātuma ievērošanu, gan lietotāju uzticēšanos, un tā būtiski maina veikala konfidencialitātes etiķeti.
Trīs veidi: ML komplekts, Core ML, TensorFlow Lite
ML Kit (Google) ir vienkāršākais veids, kā sākt: tas nodrošina tādas gatavas iespējas kā teksta atpazīšana (OCR — teksta nolasīšana attēlā), sejas noteikšana, svītrkoda lasīšana, tulkošana dažās rindās. Jums nav jāapmāca savs modelis. Core ML (Apple) ir visefektīvākais veids, kā palaist savu modeli vai gatavu modeli operētājsistēmā iOS; Tas izmanto Apple Neural Engine (mākslīgā neironu tīkla procesora) aparatūru. TensorFlow Lite/LiteRT ir starpplatformu risinājums, kas ļauj palaist savu apmācītu modeli gan operētājsistēmā Android, gan iOS.
Vispārējā integrācijas plūsma ar AI ir šāda:
- Talantu definīcija. Skaidrs mērķis, piemēram, "Es gribu izlasīt fotoattēlā redzamo tekstu".
- Ceļa izvēle. Ja ir gatavs talants, ML Kit; Core ML/TF Lite, ja pieejams īpašs modelis.
- Modeļa formāts. .mlmodel (Core ML), .tflite (TF Lite). Izskaidro AI transformācijas soļus.
- Integrācijas kods. Modeļa ielāde, ievades priekšapstrāde, izvades interpretācija.
- Veiktspējas pārbaude. Ātruma, atmiņas, akumulatora mērījumi reālā ierīcē.
Uzmanību! Visizplatītākā AI kļūda ierīces modeļa integrācijā ir ievades priekšapstrāde — attēla pārveidošana modeļa sagaidāmajā izmēra un krāsu formātā. Ja modelis sagaida 224x224 pikseļus un jūs tam piešķirat 300x300, rezultāts būs bezjēdzīgs, bet jūs nesaņemsit kļūdas ziņojumu. Pārbaudiet pirmapstrādes vērtības no modeļa dokumenta.
Zinot modeļa robežas
Ierīcē iebūvēts modelis pieņem lēmumus, pamatojoties uz datiem, par kuriem tas tika apmācīts. Objektu atpazīšanas modelis, kas apmācīts tikai uz fotogrāfijām, kas uzņemtas dienas laikā, būs nepareizs nakts attēlos. Modelim ir ticamības rādītājs (pārliecība — cik pārliecināts modelis ir par savu atbildi, parasti no 0 līdz 1); Ir bīstami parādīt lietotājam zemas ticamības rezultātus kā precīzus. Piemēram, ādas plankumu skenēšanas lietojumprogrammā nevajadzētu teikt "noteikti labdabīgs", bet gan "modeles prognoze ir šāda, lūdzu, konsultējieties ar ārstu". Modeļa rezultāts ir ieteikums, nevis diagnoze.
trīs mini futrāļi
1. gadījums — paātrinājums ar OCR. Izdevumu izsekošanas lietotne ir novērsusi slogu manuāli ievadīt kvītis, izmantojot ML Kit teksta atpazīšanu. Lietotājs nofotografē čeku, un summa un datums tiek aizpildīti automātiski. Manuālās ievades laiks vienā kvītī tika samazināts no 40 sekundēm līdz 8 sekundēm. Komanda vienmēr lika lietotājam apstiprināt AI nolasīto daudzumu; jo saburzītiem čekiem bija 6% kļūdas robeža. Automatizācija + cilvēku apstiprinājums bija pareizais līdzsvars.
2. gadījums — priekšapstrādes kļūda. Viena komanda integrēja augu atpazīšanas modeli ar TensorFlow Lite; Testera rezultāti bija nejauši. Problēma bija tāda, ka AI ģenerētais kods nenormalizēja attēlu līdz [0,1] diapazonam, ko paredzēja modelis (pikseļu vērtības tika atstātas no 0 līdz 255). Pievienojot normalizāciju, precizitāte palielinājās no 30% līdz 89%. Nodarbība: pirmapstrāde ir klusa, bet nāvējoša.
3. gadījums — privātuma palielināšana. Veselības lietojumprogramma konstatēja anomāliju no sirdsdarbības ātruma datiem ar ierīces Core ML modeli. Dati nekad nenonāca serverī. Šī izvēle ļāva lietojumprogrammai saņemt frāzi "nevāc datus" App Store konfidencialitātes marķējumā un palielināja tās lejupielādes ātrumu salīdzinājumā ar konkurentiem. Ierīcē izvēlētā izvēle bija gan ētiska, gan komerciāli izdevīga.
Vāja uzvedne / spēcīga uzvedne
Vāja uzvedne: "Pievienot attēla atpazīšanu manai lietotnei."
Spēcīga uzvedne: "Pievienojiet manai Android/Kotlin lietojumprogrammai daudzuma un datuma lasīšanas funkciju. - Izmantojiet Google ML komplekta teksta atpazīšanu (ierīcē, bezsaistē) - Uzņemiet attēlu no kameras vai galerijas - Izņemiet summu un datumu no atpazītā teksta, izmantojot regulāro izteiksmi - Iesniedziet rezultātu lietotājam apstiprināšanai laukā REDIĢĒJAMĀ, automātiskā saglabāšana - Rīkojieties ar kameras iepriekšējas apstrādes atļauju, izskaidrojiet plūsmas un atkārtotas kļūdas atļauju. soļi."
Kopējamas veidnes
Ceļa atlases veidne: "Es vēlos izveidot šādu funkciju: [funkcija]. Vai tai jābūt ierīcē vai mākonī? Salīdziniet, pamatojoties uz: privātumu, bezsaistes nepieciešamību, modeļa izmēru, akumulatoru, izmaksām. Iesakiet atbilstošo rīku (ML Kit / Core ML / TF Lite) un pamatojiet."
Integrācijas veidne: “Rakstiet [modelis/iespēja] integrāciju [platformai]:1) Modeļa ielāde2) Ievades priekšapstrāde (paredzamais lielums un normalizācija)3) Secinājumu izsaukums4) Izvades interpretācija un uzticamības rādītāja pārbaude5) Brīdinājums lietotājam par zemas ticamības rezultātuAtgādināt man pārbaudīt priekšapstrādes vērtības no modeļa dokumentācijas.
Uzticības rezultāta veidne: "Ņemiet vērā uzticamības rādītāju šajā secinājuma kodā: - uzrādīt rezultātu "precīzi" zem sliekšņa (piemēram, 0,6) - Rādīt lietotājam piezīmi "šis ir aptuvens" - Kritiskās jomas (veselība, drošība) [kods] vērsieties pie eksperta."
Veiktspējas verifikācijas veidne: "Norādiet rādītājus, kas man ir jāizmēra faktiskajā ierīcē šīs ierīces modeļa integrācijai: secinājumu veikšanas laiks, atmiņas palielināšana, akumulatora ietekme, sildīšana. Katram norādiet mērījumu metodi."
Biežas kļūdas
- Priekšapstrādes izlaišana vai nepareiza veikšana. Nepareizs izmērs/normalizācija klusi rada nepareizu rezultātu.
- Pārliecības rādītāja ignorēšana. Zemas ticamības aprēķinu uzrādīšana kā precīza maldinās lietotāju.
- Modeļa pārbaude emulatorā. Faktiskais ierīces ātrums un akumulators ir ļoti atšķirīgi; vienmēr mēra uz īstas aparatūras.
- Sensitīvu datu nevajadzīga sūtīšana uz mākoni. Mākoņa izvēle, ja ir iespējama ierīcē, ir privātuma risks.
- Modeļa izmēra ignorēšana. Lielo modeļu lietotnes palielina lejupielādes lielumu un avarē zemas aparatūras gadījumā.
- Aizmirstot modeļa treniņu limitu. Modelis ir maldījies stāvoklī, kurā tas neredz (nakts, cita valoda); Skaidrojiet to lietotājam.
Rezumējot
Ierīces AI nodrošina privātumu, ātrumu un bezsaistes darbību, saglabājot datus tālrunī; Ierobežojums ir ierīces jauda un modeļa izmērs. ML komplekts tiek izmantots sākotnējām iespējām, Core ML (iOS) un TensorFlow Lite (starpplatformu) tiek izmantoti pielāgotiem modeļiem. Integrācijas klusais slepkava ir nepareiza pirmapstrāde; Ievades lielums un normalizācija tiek pārbaudīta no modeļa dokumentācijas. Katram rezultātam tiek pievienots ticamības rādītājs, un zemas ticamības prognozes netiek pasniegtas kā absolūta patiesība. Lēmumi tiek mērīti reālajā ierīcē, nevis emulatorā.
Lietojumprogrammas uzdevums
Lai izmantotu funkciju “teksta nolasīšana no fotoattēla” vai “svītrkoda lasīšana”, jautājiet AI, vai tai ir jābūt ierīcē vai mākonī, izmantojot “Ceļa atlases veidni”, pēc tam pieprasiet uz ML komplektu balstītu projektu ar “Integrācijas veidni”. Pārbaudiet, vai kodā ir ietverta pirmapstrādes darbība un lietotāja apstiprinājuma/rediģēšanas plūsma. Iestatiet uzticamības rādītāja slieksni un uzrakstiet, ko jūs darīsit, ja rezultāts būs zems.
kontrolsaraksts
- [ ] Es pieņēmu lēmumu ierīcē/mākonī, pamatojoties uz kritērijiem
- [ ] Es izvēlējos pareizo rīku (ML Kit / Core ML / TF Lite)
- [ ] Es pārbaudīju priekšapstrādes dimensiju un normalizāciju no modeļa dokumentācijas
- [ ] Es pārbaudīju uzticamības rādītāju un brīdināju par zemiem uzticamības rezultātiem
- [ ] Rezultātu prezentēju lietotājam ar apstiprinājumu/rediģēšanu, akli nesaglabāju
- [ ] Es mērīju veiktspēju reālajā ierīcē, nevis emulatorā