Yksikkö 4 / 11

Laitteen tekoäly: Core ML, TensorFlow Lite ja ML Kit

Voitot:

  • Kyky päättää laitteella tai pilvessä ja valita oikea työkalu (ML Kit, Core ML, TensorFlow Lite) yksityisyyden, offline-tarpeen, mallin koon ja akun kriteerien perusteella
  • Kyky estää hiljaiset virheet tarkistamalla syötteen esikäsittely (koko ja normalisointi) mallin dokumentista mallin integroinnissa
  • Kyky arvioida luottamuspisteitä ja mitata tulos käyttäjän hyväksynnällä ja todellisella laitteella esittämättä alhaisen luotettavuuden ennusteita absoluuttisena totuutena.

Toistaiseksi olemme käyttäneet tekoälyä apuvälineenä kehitysprosessin nopeuttamiseksi. Nyt siirrymme tekoälyn toiseen rooliin: sovellukseen upotettuun lahjakkuuteen. Nykyaikaisissa puhelimissa on kyky käyttää tekoälymalleja, kuten kuvantunnistusta, tekstin kääntämistä, puheen transkriptiota jne. suoraan laitteella (on-laite – puhelimen omassa prosessorissa ilman palvelimelle menemistä). AI laitteessa; Se tarjoaa suuria etuja pilviratkaisuihin verrattuna nopeuden, yksityisyyden ja offline-toiminnan suhteen. Tässä osiossa opimme upottamaan tekoälyn sovellukseen iOS:n Core ML:n, cross-platform TensorFlow Liten (nykyään LiteRT) ja Googlen valmiin ratkaisun ML Kitin avulla sekä kuinka tekoälyä käytetään avustajana tässä integraatiossa.

Laitteessa vai pilvessä?

Tämä on ensimmäinen ja tärkein arkkitehtoninen päätös. Laitteen tekoäly ei poista tietoja puhelimesta – valtava voitto yksityisyyden kannalta. Se on myös välitön ja toimii offline-tilassa, koska verkkoviivettä ei ole. Sitä rajoittaa kuitenkin laitteen prosessointiteho ja muisti; Erittäin suuret mallit (esim. jättiläiskielimallit) eivät mahdu puhelimeen tai ne kuluttavat akkua. Cloud AI puolestaan ​​tarjoaa rajattoman tehon, mutta lähettää dataa palvelimelle, vaatii verkkoa ja luo latenssia.

kriteeri

Laitteessa

Pilvi (pilvi API)

Yksityisyys

Tiedot pysyvät laitteella, vahvaa

Tiedot menevät palvelimelle, huomiota tarvitaan

nopeus

Välittömästi, ei verkkoa

Riippuu verkon latenssista

offline-tilassa

Se toimii

ei toimi

Mallin koko

Rajoitettu (puhelinresurssi)

rajoittamaton

akku/lämpö

Vaikutukset raskaaseen käyttöön

Palvelin kuormitettuna, laite rento

Kustannukset

Ilmainen (laitelähde)

Maksu per käyttö

Päätössääntö: Valitse laitteella, jos henkilökohtaisia/arkaluonteisia tietoja käsitellään, niiden on toimittava offline-tilassa tai välitön vastaus on välttämätöntä. Jos tarvitset erittäin suuren mallin, käänny pilveen. Tämä laite on keskittynyt laitteeseen; Käsittelemme pilvi tekoälyä seuraavassa yksikössä.

Vinkki: Aseta laitteesta aina oletusominaisuus, joka käsittelee arkaluontoisia tietoja (terveys, biometriset tiedot, sijainti). Ilmaus "data ei poistu laitteesta" on korvaamaton sekä tietosuojan noudattamisen että käyttäjien luottamuksen kannalta, ja sillä on suuri ero kaupan tietosuojamerkinnässä.

Kolme tapaa: ML Kit, Core ML, TensorFlow Lite

ML Kit (Google) on helpoin tapa aloittaa: se tarjoaa valmiita ominaisuuksia, kuten tekstintunnistuksen (OCR – tekstin lukeminen kuvassa), kasvojentunnistuksen, viivakoodin lukemisen, käännöksen muutamalla rivillä. Sinun ei tarvitse kouluttaa omaa malliasi. Core ML (Apple) on tehokkain tapa ajaa omaa mallia tai valmista mallia iOS:ssä; Se käyttää Applen Neural Engine (keinotekoinen hermoverkkoprosessori) -laitteistoa. TensorFlow Lite/LiteRT on monialustainen ratkaisu, jonka avulla voit käyttää omaa koulutettua malliasi sekä Androidilla että iOS:llä.

Yleinen integraatioprosessi tekoälyn kanssa menee näin:

  1. Lahjakkuuden määritelmä. Selkeä tavoite, kuten "Haluan lukea valokuvan tekstin".
  2. Polun valinta. Jos on valmiita kykyjä, ML Kit; Core ML/TF Lite, jos erikoismalli saatavilla.
  3. Mallin muoto. .mlmodel (Core ML), .tflite (TF Lite). Selittää tekoälyn muunnosvaiheet.
  4. Integrointikoodi. Mallin lataus, syötteen esikäsittely, tulosteen tulkinta.
  5. Suorituskykytesti. Nopeus, muisti, akun mittaus oikealla laitteella.
Varoitus: Yleisin tekoälyvirhe laitteen mallin integroinnissa on syötteen esikäsittely – kuvan muuntaminen mallin odottamaan kokoon ja värimuotoon. Jos malli odottaa 224x224 pikseliä ja annat sille 300x300, tulos on merkityksetön, mutta et saa virheilmoitusta. Tarkista esikäsittelyarvot mallin dokumentista.

Tunnetaan mallin rajat

Laitteessa oleva malli tekee päätökset sen tietojen perusteella, joihin se on koulutettu. Vain päivällä otettuihin valokuviin koulutettu kohteen tunnistusmalli on väärä yökuvissa. Mallilla on luottamuspisteet (luottamus — kuinka varma malli on vastauksestaan, yleensä välillä 0–1); On vaarallista esittää heikosti luotettavia tuloksia käyttäjälle tarkkoina. Esimerkiksi ihopisteskannaussovelluksessa ei pitäisi sanoa "ehdottomasti hyvänlaatuinen", vaan "mallin ennuste on tämä, ota yhteyttä lääkäriin". Mallin tulos on suositus, ei diagnoosi.

kolme minilaukkua

Tapaus 1 – Kiihdytys OCR:llä. Kulujen seurantasovellus on poistanut kuittien manuaalisen syöttämisen ML Kit -tekstintunnistuksen avulla. Käyttäjä ottaa kuvan kuitista, ja summa ja päivämäärä täytetään automaattisesti. Manuaalinen syöttöaika lyheni 40 sekunnista 8 sekuntiin kuittia kohden. Tiimi pyysi käyttäjää aina vahvistamaan tekoälyn lukeman määrän; koska ryppyisten kuittien virhemarginaali oli 6 %. Automaatio + ihmisen hyväksyntä oli oikea tasapaino.

Tapaus 2 — Esikäsittelyvirhe. Yksi tiimi integroi kasvien tunnistusmallin TensorFlow Liten kanssa; Testerissä tulokset olivat satunnaisia. Ongelmana oli, että tekoälyn luoma koodi ei normalisoinut kuvaa mallin odotusalueelle [0,1] (pikseliarvot jätettiin välille 0-255). Kun normalisointi lisättiin, tarkkuus kasvoi 30 prosentista 89 prosenttiin. Oppitunti: esikäsittely on hiljaista, mutta tappavaa.

Tapaus 3 – Yksityisyyden suoja. Terveyssovellus havaitsi poikkeaman syketiedoista laitteen Core ML -mallilla. Tiedot eivät koskaan menneet palvelimelle. Tämä valinta mahdollisti sovelluksen vastaanottamaan ilmaisun "ei kerää tietoja" App Storen tietosuojamerkinnässä ja lisäsi latausnopeutta kilpailijoihin verrattuna. Laitteen valinta oli sekä eettinen että kaupallisesti kannattava.

Heikko kehote / Vahva kehote

Heikko kehote: "Lisää kuvantunnistus sovellukseeni."

Tehokas kehote: "Lisää määrän ja päivämäärän lukuominaisuus Android/Kotlin-sovellukseeni. - Käytä Google ML Kit -tekstintunnistusta (laitteessa, offline-tilassa) - Ota kuva kamerasta tai galleriasta - Poimi tunnistetusta tekstistä määrä ja päivämäärä säännöllisellä lausekkeella - Esitä tulos käyttäjälle hyväksyttäväksi MUOKKAAVA-kentässä, automaattinen tallennus - Käsittele kameran kulkua ja esikäsittelylupaa. askeleita."

Kopioitavat mallit

Polunvalintamalli: "Haluan tehdä seuraavan ominaisuuden: [ominaisuus]. Pitäisikö sen olla laitteessa vai pilvessä? Vertaa tietojen perusteella: yksityisyys, offline-tarve, mallin koko, akku, hinta. Suosittele sopivaa työkalua (ML Kit / Core ML / TF Lite) ja perustele."

Integrointimalli: "Kirjoita [malli/ominaisuus]-integraatio [alustalle]:1) Mallin lataus2) Syötteen esikäsittely (odotettu koko ja normalisointi)3) Päätöskutsu4) Tulosten tulkinta ja luotettavuuspisteiden tarkistus5) Varoitus käyttäjälle heikosti luotettavista tuloksistaMuistuta minua tarkistamaan esikäsittelyarvot mallin dokumentaatiosta."

Luottamuspistemalli: "Ota huomioon tämän päättelykoodin luottamuspisteet: - Esitä tulos "tarkka" kynnyksen alapuolella (esim. 0,6) - Näytä "tämä on arvio" huomautus käyttäjälle - Käänny asiantuntijaan, jos kriittinen alue (terveys, turvallisuus)[koodi]"

Suorituskyvyn vahvistusmalli: "Luettelo mittarit, jotka minun on mitattava todellisella laitteella tätä laitteen mallin integrointia varten: päättelyaika, muistin lisäys, akun vaikutus, lämmitys. Kerro kunkin mittausmenetelmä."

Yleisiä virheitä

  • Esikäsittelyn väliin jääminen tai sen tekeminen väärin. Väärä koko/normalisointi tuottaa äänettömästi väärän tuloksen.
  • Luottamuspisteet huomioimatta. Alhaisen luotettavuuden arvion esittäminen oikeana johtaa käyttäjää harhaan.
  • Mallin testaus emulaattorissa. Laitteen todellinen nopeus ja akku ovat hyvin erilaisia; mittaa aina oikealla laitteistolla.
  • Arkaluontoisten tietojen lähettäminen pilveen tarpeettomasti. Pilven valitseminen, kun laitteella on mahdollista, on tietosuojariski.
  • Mallin kokoa huomioimatta. Suuret mallisovellukset lisäävät latauskokoa ja kaatuvat alhaisella laitteistolla.
  • Mallin harjoitusraja unohtuu. Malli erehtyy tilaan, jossa se ei näe (yö, eri kieli); Tee tämä selväksi käyttäjälle.

Yhteenvetona

Laitteen tekoäly tarjoaa yksityisyyttä, nopeutta ja offline-käyttöä pitämällä tiedot puhelimessa; Raja on laitteen teho ja mallin koko. ML Kitiä käytetään valmiisiin ominaisuuksiin, Core ML (iOS) ja TensorFlow Lite (cross-platform) mukautetuissa malleissa. Integraation hiljainen tappaja on väärä esikäsittely; Syöttökoko ja normalisointi tarkistetaan mallin dokumentaatiosta. Jokaisella tuloksella on luottamuspisteet, ja alhaisen luotettavuuden ennusteita ei esitetä absoluuttisena totuutena. Päätökset mitataan todellisessa laitteessa, ei emulaattorissa.

Sovellustehtävä

Jos haluat "tekstin lukemisen valokuvasta" tai "viivakoodin lukemisen" -ominaisuuden, kysy tekoälyltä, pitäisikö sen olla laitteella vai pilvessä "Polkun valintamallin" avulla, ja pyydä sitten ML Kit -pohjaista suunnitelmaa "Integraatiomallilla". Varmista, että esikäsittelyvaihe ja käyttäjän hyväksyntä/muokkauskulku ovat mukana koodissa. Aseta luottamuspistekynnys ja kirjoita, mitä teet, jos tuloksena on alhainen luottamus.

tarkistuslista

  • [ ] Tein laitteen/pilvi-päätöksen kriteerien perusteella
  • [ ] Valitsin oikean työkalun (ML Kit / Core ML / TF Lite)
  • [ ] Tarkastin esikäsittelyulottuvuuden ja normalisoinnin mallin dokumentaatiosta
  • [ ] Tarkistin luottamuspisteet ja varoitin heikosta luotettavuudesta
  • [ ] Esitin tuloksen käyttäjälle hyväksynnän/muokkauksen kanssa, en sokeasti tallentanut sitä
  • [ ] Mittasin suorituskykyä oikealla laitteella, en emulaattorilla