Kasu:
- Võimalus otsustada seadmes või pilves ja valida õige tööriist (ML Kit, Core ML, TensorFlow Lite) privaatsuse, võrguühenduseta vajaduse, mudeli suuruse ja aku kriteeriumide alusel
- Võimalus vältida vaikivaid vigu, kontrollides sisendi eeltöötlust (suurus ja normaliseerimine) mudeli dokumendist mudeli integreerimisel
- Võimalus hinnata usaldusskoori ja mõõta tulemust kasutaja nõusolekul ja reaalses seadmes, esitamata madala usaldusväärsusega ennustusi absoluutse tõena.
Seni oleme kasutanud tehisintellekti arendusprotsessi kiirendamiseks abivahendina. Nüüd liigume edasi tehisintellekti teise rolli juurde: rakendusse manustatud talent. Kaasaegsetel telefonidel on võime käivitada tehisintellekti mudeleid nagu pildituvastus, teksti tõlkimine, kõne transkriptsioon jne otse seadmes (seadmes – telefoni enda protsessoris ilma serverisse minemata). AI seadmes; See pakub pilvelahenduste ees suuri eeliseid kiiruse, privaatsuse ja võrguühenduseta toimimise osas. Selles üksuses õpime, kuidas manustada tehisintellekti rakendusse iOS-i Core ML-i, platvormidevahelise TensorFlow Lite'i (praegu tuntud kui LiteRT) ja Google'i valmislahenduse ML Kitiga ning kuidas kasutada tehisintellekti selle integratsiooni abilisena.
Seadmes või pilves?
See on esimene ja kõige olulisem arhitektuurne otsus. Seadmesisene AI ei eemalda telefonist andmeid – see on privaatsuse suur võit. See on ka hetkeline ja töötab võrguühenduseta, kuna puudub võrgu latentsusaeg. Seda piirab aga seadme töötlemisvõimsus ja mälu; Väga suured mudelid (nt hiiglasliku keelega mudelid) ei mahu telefoni või tühjendavad akut. Cloud AI seevastu pakub piiramatut võimsust, kuid saadab andmeid serverisse, nõuab võrku ja loob latentsust.
kriteerium
Seadmes
Pilv (pilve API)
Privaatsus
Andmed jäävad seadmesse, tugevad
Andmed lähevad serverisse, tähelepanu on vaja
kiirust
Kohe, pole võrku
Oleneb võrgu latentsusest
võrguühenduseta
See toimib
Ei tööta
Mudeli suurus
Piiratud (telefoniressurss)
piiramatu
aku/küte
Mõju intensiivse kasutamise korral
Server on koormatud, seade on pingevaba
Maksumus
Tasuta (seadme allikas)
Kasutustasu
Otsustusreegel: valige seadmesisene, kui töödeldakse isiklikke/tundlikke andmeid, kui need peavad töötama võrguühenduseta või kui kiire reageerimine on hädavajalik. Kui vajate väga suurt mudelit, pöörduge pilve poole. See seade on keskendunud seadmele; Järgmises üksuses käsitleme pilve AI-d.
Nõuanne. Määrake alati seadmes olev vaikefunktsiooniks funktsioon, mis käsitleb tundlikke andmeid (tervis, biomeetria, asukoht). Fraas "andmed ei lahku seadmest" on hindamatu väärtusega nii privaatsusnõuete järgimise kui ka kasutajate usalduse seisukohast ning muudab poe privaatsussildi oluliseks.
Kolm võimalust: ML Kit, Core ML, TensorFlow Lite
ML Kit (Google) on lihtsaim viis alustamiseks: see annab valmis võimalused nagu tekstituvastus (OCR — teksti lugemine pildil), näotuvastus, vöötkoodi lugemine, tõlkimine mõne reaga. Te ei pea oma mudelit koolitama. Core ML (Apple) on kõige tõhusam viis oma mudeli või valmismudeli käitamiseks iOS-is; See kasutab Apple'i Neural Engine'i (kunstliku närvivõrgu protsessori) riistvara. TensorFlow Lite/LiteRT on platvormideülene lahendus, mis võimaldab käitada oma koolitatud mudelit nii Androidis kui iOS-is.
Üldine AI-ga integreerimise voog on järgmine:
- Talendi määratlus. Selge eesmärk, näiteks "Ma tahan lugeda fotol olevat teksti".
- Tee valik. Kui on valmis talente, ML Kit; Core ML/TF Lite, kui erimudel on saadaval.
- Mudeli formaat. .mlmodel (Core ML), .tflite (TF Lite). Selgitab AI teisendamise etappe.
- Integratsioonikood. Mudeli laadimine, sisendi eeltöötlus, väljundi tõlgendamine.
- Jõudluskatse. Kiirus, mälu, aku mõõtmine päris seadmes.
Ettevaatust. Kõige tavalisem AI viga seadmesiseste mudelite integreerimisel on sisendi eeltöötlus – pildi teisendamine mudeli ootuspärasesse suuruse- ja värvivormingusse. Kui mudel eeldab 224x224 pikslit ja annate sellele 300x300, on tulemus mõttetu, aga veateadet ei tule. Kontrollige eeltöötlusväärtusi mudeli dokumendist.
Mudeli piiride tundmine
Seadmesisene mudel teeb otsuseid väljaõppe saanud andmete põhjal. Ainult päeval tehtud fotodel treenitud objektituvastusmudel eksib ööpiltidel. Mudelil on usaldusskoor (usaldus – kui kindel mudel on oma vastuses, tavaliselt vahemikus 0 kuni 1); Madala usaldusväärsuse tulemuste esitamine kasutajale täpsena on ohtlik. Näiteks nahapunktide skaneerimise rakendus ei tohiks öelda "kindlasti healoomuline", vaid peaks ütlema "mudeli ennustus on selline, palun konsulteerige arstiga". Mudeli tulemus on soovitus, mitte diagnoos.
kolm minikarpi
Juhtum 1 – kiirendus OCR-iga. Kulude jälgimise rakendus on eemaldanud kviitungite käsitsi sisestamise koormuse ML Kit tekstituvastusega. Kasutaja teeb kviitungist foto ning summa ja kuupäev sisestatakse automaatselt. Käsitsi sisestamise aeg vähenes 40 sekundilt 8 sekundile kviitungi kohta. Meeskond lasi kasutajal alati kinnitada AI loetud koguse; sest kortsus kviitungite veamäär oli 6%. Automatiseerimine + inimeste heakskiit oli õige tasakaal.
Juhtum 2 – eeltöötlusviga. Üks meeskond integreeris taimede tuvastamise mudeli TensorFlow Lite'iga; Testeril olid tulemused juhuslikud. Probleem oli selles, et tehisintellekti loodud kood ei normaliseerinud pilti mudeli oodatud vahemikku [0,1] (pikslite väärtused jäeti vahemikku 0–255). Normaliseerimise lisamisel tõusis täpsus 30%-lt 89%-le. Õppetund: eeltöötlus on vaikne, kuid surmav.
Juhtum 3 – privaatsuse suurendamine. Terviserakendus tuvastas seadmes oleva Core ML mudeliga südame löögisageduse andmetest anomaalia. Andmed ei jõudnud kunagi serverisse. See valik võimaldas rakendusel saada App Store'i privaatsussildil fraasi "ei kogu andmeid" ja suurendas selle allalaadimise määra võrreldes konkurentidega. Seadmesisene valik oli nii eetiline kui ka äriliselt tulus.
Nõrk viip / Tugev viip
Nõrk viip: "Lisa minu rakendusele pildituvastus."
Võimas viip: "Lisage minu Androidi/Kotlini rakendusse summa ja kuupäeva lugemise funktsioon. - Kasutage Google'i ML-komplekti tekstituvastust (seadmes, võrguühenduseta) - Tehke pilt kaamerast või galeriist - Eraldage tuvastatud tekstist summa ja kuupäev regexi abil - Esitage tulemus kasutajale kinnitamiseks väljal MUUDATAVAD, automaatne salvestamine - Käsitsege kaamera tõrketeadete luba, selgitage voolu ja tõrketeateid. sammud."
Kopeeritavad mallid
Tee valiku mall: "Soovin teha järgmise funktsiooni: [funktsioon]. Kas see peaks olema seadmes või pilves? Võrrelge: privaatsus, võrguühenduseta vajadus, mudeli suurus, aku, maksumus. Soovitage sobivat tööriista (ML Kit / Core ML / TF Lite) ja põhjendage."
Integratsioonimall: "Kirjutage [mudel/võimekus] integratsioon [platvormile]:1) Mudeli laadimine2) Sisendite eeltöötlus (eeldatav suurus ja normaliseerimine)3) Järelduskutse4) Väljundi tõlgendamine ja usaldusskoori kontroll5) Hoiatus kasutajale madala usaldusväärsusega tulemuse korral Tuletage meelde, et kontrolliksin mudeli dokumentatsiooni eeltöötlusväärtusi."
Usaldusskoori mall: "Kaaluge selle järelduskoodi usaldusskoori: - Esitage tulemus "täpne" allpool läve (nt 0,6) - Näita kasutajale märkust "See on hinnanguline" - Kriitilise valdkonna (tervishoid, ohutus) [kood] korral pöörduge eksperdi poole."
Toimivuse kinnitamise mall: "Loetlege mõõdikud, mida pean selle seadmesiseste mudelite integreerimise jaoks tegelikus seadmes mõõtma: järeldusaeg, mälu suurenemine, aku mõju, kuumutamine. Öelge iga mõõtmismeetod."
Levinud vead
- Eeltöötluse vahelejätmine või valesti tegemine. Vale suurus/normaliseerimine annab vaikselt vale tulemuse.
- Usaldusskoori ignoreerimine. Madala usaldusväärsusega hinnangu esitamine täpsena eksitab kasutajat.
- Mudeli testimine emulaatoris. Seadme tegelik kiirus ja aku on väga erinevad; mõõta alati päris riistvaraga.
- Tundlike andmete tarbetu saatmine pilve. Pilve valimine, kui see on seadmes võimalik, on privaatsusrisk.
- Mudeli suuruse ignoreerimine. Suured mudelirakendused suurendavad allalaadimise mahtu ja jooksevad kokku madala riistvara korral.
- Unustades mudeli treeninglimiidi. Mudel eksib seisundis, kus ta ei näe (öö, erinev keel); Tehke see kasutajale selgeks.
Kokkuvõttes
Seadmesisene AI tagab privaatsuse, kiiruse ja võrguühenduseta toimimise, hoides andmeid telefonis; Piirang on seadme võimsus ja mudeli suurus. ML-komplekti kasutatakse kasutusvalmis võimaluste jaoks, Core ML-i (iOS) ja TensorFlow Lite'i (platvormideülene) kasutatakse kohandatud mudelite jaoks. Integratsiooni vaikne tapja on vale eeltöötlus; Sisestussuurus ja normaliseerimine on kontrollitud mudeli dokumentatsioonist. Iga tulemusega kaasneb usaldusskoor ja madala usaldusväärsusega ennustusi ei esitata absoluutse tõena. Otsuseid mõõdetakse reaalses seadmes, mitte emulaatoris.
Rakenduse ülesanne
Funktsiooni "Foto teksti lugemise" või "vöötkoodi lugemise" jaoks küsige tehisintellektilt, kas see peaks olema seadmes või pilves, kasutades "Tee valiku malli", seejärel küsige ML-komplektil põhinevat kavandit koos "Integratsioonimalliga". Veenduge, et eeltöötlusetapp ja kasutaja kinnitus/redigeerimisvoog oleksid koodis olemas. Määra usaldusskoori lävi ja kirjuta, mida teete, kui tulemuseks on madal usaldus.
kontrollnimekiri
- [ ] Tegin seadmes/pilvepõhise otsuse kriteeriumide alusel
- [ ] Valisin õige tööriista (ML Kit / Core ML / TF Lite)
- [ ] Kontrollisin eeltöötluse dimensiooni ja normaliseerimist mudeli dokumentatsioonist
- [ ] Kontrollisin usaldusskoori ja hoiatasin madala usaldusväärsuse tulemuste eest
- [ ] Tulemuse esitasin kasutajale heakskiiduga/toimetamisega, pimesi ei salvestanud
- [ ] Mõõtsin jõudlust päris seadmes, mitte emulaatoris