Egység 4 / 11

Készüléken lévő mesterséges intelligencia: Core ML, TensorFlow Lite és ML Kit

Nyereség:

  • Képes az eszközön vagy a felhőben dönteni, és kiválasztani a megfelelő eszközt (ML Kit, Core ML, TensorFlow Lite) az adatvédelem, az offline igény, a modell mérete és az akkumulátor kritériumai alapján
  • Képesség a csendes hibák megelőzésére a bemeneti előfeldolgozás (méret és normalizálás) ellenőrzésével a modell dokumentumából a modellintegrációban
  • Képes a megbízhatósági pontszám kiértékelésére és az eredmény mérésére a felhasználó jóváhagyásával és a valós eszközön anélkül, hogy az alacsony megbízhatóságú előrejelzéseket abszolút igazságként mutassák be.

Eddig az AI-t használtuk segédeszközként a fejlesztési folyamat felgyorsítására. Most áttérünk a mesterséges intelligencia második szerepére: az alkalmazásba ágyazott tehetségre. A modern telefonok képesek futtatni az olyan mesterséges intelligencia modelleket, mint a képfelismerés, szövegfordítás, beszédátírás stb., közvetlenül az eszközön (az eszközön – a telefon saját processzorában anélkül, hogy a szerverre mennének). AI az eszközön; Nagy előnyöket kínál a felhőmegoldásokkal szemben a sebesség, az adatvédelem és az offline működés tekintetében. Ebben az egységben megtanuljuk, hogyan ágyazzuk be az AI-t az alkalmazásba az iOS Core ML, a többplatformos TensorFlow Lite (jelenleg LiteRT) és a Google kész megoldása, az ML Kit segítségével, és hogyan használhatjuk az AI-t asszisztensként ebben az integrációban.

Eszközön vagy felhőben?

Ez az első és legfontosabb építészeti döntés. Az eszközön lévő mesterséges intelligencia nem távolítja el az adatokat a telefonról – ez óriási győzelem az adatvédelem szempontjából. Azonnali, és offline is működik, mivel nincs hálózati késleltetés. Ennek azonban az eszköz feldolgozási teljesítménye és memóriája korlátozza; A nagyon nagy modellek (pl. óriási nyelvű modellek) nem férnek el a telefonban, vagy lemerítik az akkumulátort. A Cloud AI viszont korlátlan teljesítményt kínál, de adatokat küld a szervernek, hálózatot igényel, és késleltetést hoz létre.

kritérium

Az eszközön

Felhő (felhő API)

Adatvédelem

Az adatok az eszközön maradnak, erősek

Az adatok a szerverre kerülnek, figyelem szükséges

sebesség

Azonnali, nincs hálózat

A hálózati késleltetéstől függ

offline módban

Működik

nem működik

Modell mérete

Korlátozott (telefonos forrás)

korlátlan

akkumulátor/fűtés

Erős használat esetén jelentkező hatások

A szerver terhelés alatt van, az eszköz laza

Költség

Ingyenes (eszköz forrása)

Használatonkénti díj

Döntési szabály: Válassza az eszközön, ha személyes/érzékeny adatok feldolgozása folyamatban van, ha offline módban kell működnie, vagy ha az azonnali válasz elengedhetetlen. Ha nagyon nagy modellre van szüksége, forduljon a felhőhöz. Ez az egység az eszközre fókuszál; A felhő MI-vel foglalkozunk a következő részben.

Tipp: Az érzékeny adatokat (egészségügyi, biometrikus adatok, hely) kezelő funkcióknál mindig az eszközön legyen az alapértelmezett. Az „adatok nem hagyják el az eszközt” kifejezés mind az adatvédelmi megfelelés, mind a felhasználói bizalom szempontjából felbecsülhetetlen értékű, és nagy különbséget jelent az üzlet adatvédelmi címkéjén.

Háromféleképpen: ML Kit, Core ML, TensorFlow Lite

Az ML Kit (Google) a legegyszerűbb módja a kezdésnek: olyan kész lehetőségeket ad, mint a szövegfelismerés (OCR – szöveg olvasása egy képen), arcfelismerés, vonalkód-olvasás, fordítás néhány sorban. Nem kell saját modellt képeznie. A Core ML (Apple) a leghatékonyabb módja saját vagy kész modelljének iOS-en való futtatásának; Az Apple Neural Engine (mesterséges neurális hálózati processzor) hardverét használja. A TensorFlow Lite/LiteRT egy többplatformos megoldás, amely lehetővé teszi saját betanított modelljének futtatását Androidon és iOS-en egyaránt.

Az AI-val való általános integrációs folyamat a következőképpen zajlik:

  1. A tehetség meghatározása. Egyértelmű cél, például "El akarom olvasni a szöveget a képen".
  2. Útvonal kiválasztása. Ha van kész tehetség, ML Kit; Core ML/TF Lite, ha elérhető speciális modell.
  3. Modell formátum. .mlmodel (Core ML), .tflite (TF Lite). Elmagyarázza az AI átalakítás lépéseit.
  4. Integrációs kód. A modell betöltése, a bemenet előfeldolgozása, a kimenet értelmezése.
  5. Teljesítményteszt. Sebesség, memória, akkumulátor mérés valódi eszközön.
Figyelem: A leggyakoribb mesterséges intelligencia hiba az eszközön belüli modellintegráció során a bemeneti előfeldolgozás – a kép konvertálása a modell által elvárt méretre és színformátumra. Ha a modell 224x224 pixelt vár és 300x300-at adsz meg, akkor az eredmény értelmetlen lesz, de hibaüzenetet nem kapsz. Ellenőrizze az előfeldolgozási értékeket a modell dokumentumából.

A modell határainak ismerete

Az eszközön lévő modell a betanított adatok alapján hoz döntéseket. A csak nappal készült fényképeken kiképzett tárgyfelismerő modell rossz lesz az éjszakai képeken. A modellnek megbízhatósági pontszáma van (megbízhatóság – mennyire biztos a modell a válaszában, általában 0 és 1 között van); Veszélyes az alacsony megbízhatóságú eredményeket pontosként bemutatni a felhasználónak. Például egy bőrfolt-szkennelő alkalmazásban nem szabad azt mondani, hogy „határozottan jóindulatú”, hanem azt, hogy „a modell előrejelzése ez, kérjük, forduljon orvoshoz”. A modell eredménye ajánlás, nem diagnózis.

három mini tok

1. eset – Gyorsítás OCR-rel. Egy költségkövető alkalmazás eltávolította a nyugták kézi bevitelének terhét az ML Kit szövegfelismeréssel. A felhasználó lefényképezi a nyugtát, az összeg és a dátum automatikusan kitöltésre kerül. A kézi beviteli idő 40 másodpercről 8 másodpercre csökkent nyugtánként. A csapat mindig megkérte a felhasználót, hogy erősítse meg az AI által leolvasott mennyiséget; mert a gyűrött nyugták 6%-os hibahatárral rendelkeztek. Automatizálás + emberi jóváhagyás volt a megfelelő egyensúly.

2. eset – Előfeldolgozási hiba. Az egyik csapat növényfelismerő modellt integrált a TensorFlow Lite-tal; A tesztelőn az eredmények véletlenszerűek voltak. A probléma az volt, hogy az AI által generált kód nem normalizálta a képet a modell által várt [0,1] tartományba (a pixelértékek 0-255 között maradtak). A normalizálás hozzáadásával a pontosság 30%-ról 89%-ra nőtt. Tanulság: az előfeldolgozás csendes, de halálos.

3. eset – Adatvédelmi nyereség. Egy egészségügyi alkalmazás anomáliát észlelt a pulzusszám adataiból az eszközön található Core ML modellel. Az adatok soha nem mentek a szerverre. Ez a választás lehetővé tette, hogy az alkalmazás megkapja a "nem gyűjt adatokat" kifejezést az App Store adatvédelmi címkéjén, és megnövelte a letöltési arányt a versenytársakhoz képest. Az eszközön történő választás etikus és kereskedelmi szempontból is nyereséges volt.

Gyenge felszólítás / Erős felszólítás

Gyenge prompt: "Képfelismerés hozzáadása az alkalmazásomhoz."

Hatékony prompt: "Adja hozzá a mennyiség és a dátum olvasási funkcióját az Android/Kotlin alkalmazásomhoz. - A Google ML Kit szövegfelismerés használata (eszközön, offline) - Kép készítése kamerából vagy galériából - A felismert szövegből reguláris kifejezéssel kivonja a mennyiséget és a dátumot - Bemutassa az eredményt a felhasználónak jóváhagyásra a SZERKESZTHETŐ mezőben, automatikus mentés - Kezelje a kamera hibalehetőségét, magyarázza el a helyzetet, és írja le a hibalehetőséget. lépések."

Másolható sablonok

Útvonal kiválasztási sablon: "A következő szolgáltatást szeretném elkészíteni: [szolgáltatás]. Eszközön vagy felhőben legyen? Hasonlítsa össze a következők alapján: adatvédelem, offline igény, modellméret, akkumulátor, költség. Javasolja a megfelelő eszközt (ML Kit / Core ML / TF Lite), és indokolja meg."

Integrációs sablon: "Írja meg a [modell/képesség] integrációt a [platform] számára:1) Modell betöltése2) Bemeneti előfeldolgozás (várható méret és normalizálás)3) Következtetési hívás4) Kimenet értelmezése és megbízhatósági pontszám ellenőrzése5) Figyelmeztetés a felhasználónak alacsony megbízhatóságú eredmény esetén.

Megbízhatósági pontszám sablon: "Vegye figyelembe a megbízhatósági pontszámot ebben a következtetési kódban: - A küszöbérték alatti "pontos" eredmény jelenjen meg (pl. 0,6) - Mutasson "ez egy becslés" megjegyzés a felhasználónak - Ha kritikus terület (egészségügy, biztonság)[kód], forduljon szakértőhöz."

Teljesítmény-ellenőrző sablon: "Sorozza fel azokat a mutatókat, amelyeket a tényleges eszközön kell mérnem ehhez az eszközön található modellintegrációhoz: következtetési idő, memóriabővítés, akkumulátorterhelés, fűtés. Mondja el mindegyik mérési módszerét."

Gyakori hibák

  • Az előfeldolgozás kihagyása vagy helytelen végrehajtása. A rossz méret/normalizálás csendben rossz eredményt ad.
  • A bizalmi pontszám figyelmen kívül hagyása. Az alacsony megbízhatóságú becslés pontos bemutatása félrevezeti a felhasználót.
  • A modell tesztelése az emulátorban. Az eszköz tényleges sebessége és az akkumulátor nagyon eltérő; mindig valódi hardveren mérjen.
  • Érzékeny adatok szükségtelen küldése a felhőbe. A felhő kiválasztása, ha az eszközön lehetséges, adatvédelmi kockázatot jelent.
  • A modell méretének figyelmen kívül hagyása. A nagy modellalkalmazások megnövelik a letöltési méretet, és alacsony hardver esetén összeomlanak.
  • Elfelejtve a modell képzési határát. A modell tévedésben van abban az állapotban, amikor nem lát (éjszaka, más nyelv); Tedd ezt világossá a felhasználó számára.

Összefoglalva

Az eszközön lévő mesterséges intelligencia adatvédelmet, sebességet és offline működést biztosít azáltal, hogy az adatokat a telefonon tárolja; A korlát az eszköz teljesítménye és a modell mérete. Az ML Kit a készenléti képességekhez használatos, a Core ML (iOS) és a TensorFlow Lite (cross-platform) pedig az egyedi modellekhez. Az integráció csendes gyilkosa a nem megfelelő előfeldolgozás; A bemeneti méret és a normalizálás a modell dokumentációjából igazolható. Minden eredményhez megbízhatósági pontszám tartozik, és az alacsony megbízhatóságú előrejelzéseket nem adják meg abszolút igazságként. A döntéseket a valós eszközön mérik, nem az emulátoron.

Pályázati feladat

„Szövegolvasás fényképről” vagy „vonalkódolvasás” funkcióhoz kérdezze meg az AI-t, hogy az eszközön vagy felhőben kell-e lennie az „Útvonalválasztó sablonnal”, majd kérjen egy ML Kit-alapú tervrajzot az „Integrációs sablonnal”. Ellenőrizze, hogy az előfeldolgozási lépés és a felhasználói jóváhagyási/szerkesztési folyamat szerepel-e a kódban. Állítson be egy megbízhatósági pontszám küszöböt, és írja meg, mit fog tenni, ha az eredmény alacsony a bizalom.

ellenőrző lista

  • [ ] Az eszközön/felhőben döntést kritériumok alapján hoztam meg
  • [ ] A megfelelő eszközt választottam (ML Kit / Core ML / TF Lite)
  • [ ] Az előfeldolgozási dimenziót és a normalizálást a modell dokumentációjából igazoltam
  • [ ] Ellenőriztem a megbízhatósági pontszámot, és figyelmeztettem az alacsony megbízhatósági eredményekre
  • [ ] Az eredményt jóváhagyással/szerkesztéssel bemutattam a felhasználónak, nem vakon mentettem el
  • [ ] A teljesítményt a valódi eszközön mértem, nem az emulátoron