Enhed 4 / 11

On-Device AI: Core ML, TensorFlow Lite og ML Kit

Gevinster:

  • Evne til at vælge på enheden eller skyen og vælge det rigtige værktøj (ML Kit, Core ML, TensorFlow Lite) baseret på privatliv, offline behov, modelstørrelse og batterikriterier
  • Mulighed for at forhindre tavse fejl ved at verificere input-forbehandling (størrelse og normalisering) fra modellens dokument i modelintegration
  • Evne til at evaluere konfidensscore og måle resultatet med brugergodkendelse og på den rigtige enhed uden at præsentere forudsigelser med lav tillid som absolut sandhed.

Indtil videre har vi brugt AI som en hjælp til at fremskynde udviklingsprocessen. Nu går vi videre til AI's anden rolle: talentet indlejret i applikationen. Moderne telefoner har magten til at køre AI-modeller såsom billedgenkendelse, tekstoversættelse, taletransskription osv. direkte på enheden (på enheden — i telefonens egen processor uden at gå til serveren). AI på enheden; Det giver store fordele i forhold til cloud-løsninger med hensyn til hastighed, privatliv og offline drift. I denne enhed lærer vi, hvordan man indlejrer AI i applikationen med iOS's Core ML, tværplatform TensorFlow Lite (nu kendt som LiteRT) og Googles færdige løsning ML Kit, og hvordan man bruger AI som assistent i denne integration.

On-device eller cloud?

Dette er den første og vigtigste arkitektoniske beslutning. On-device AI fjerner ikke data fra telefonen - en kæmpe gevinst for privatlivets fred. Det er også øjeblikkeligt og fungerer offline, da der ikke er nogen netværksforsinkelse. Det er dog begrænset af enhedens processorkraft og hukommelse; Meget store modeller (f.eks. gigantiske tungemodeller) passer ikke i telefonen eller vil dræne batteriet. Cloud AI tilbyder på den anden side ubegrænset kraft, men sender data til serveren, kræver netværk og skaber latency.

kriterium

På enheden

Cloud (cloud API)

Privatliv

Data forbliver på enheden, stærke

Data går til serveren, opmærksomhed påkrævet

hastighed

Øjeblikkeligt, intet netværk

Afhænger af netværksforsinkelse

offline

Det virker

Virker ikke

Modelstørrelse

Begrænset (telefonressource)

ubegrænset

batteri/varme

Effekter ved hård brug

Server under belastning, enheden afslappet

Omkostninger

Gratis (enhedskilde)

Gebyr pr. brug

Beslutningsregel: Vælg på enheden, hvis personlige/følsomme data behandles, skal fungere offline, eller øjeblikkelig respons er afgørende. Hvis du har brug for en meget stor model, så vend dig til skyen. Denne enhed er fokuseret på enheden; Vi vil dække cloud AI i den næste enhed.

Tip: Gør altid på enheden til din standard for en funktion, der håndterer følsomme data (sundhed, biometri, placering). Sætningen "data forlader ikke enheden" er uvurderlig for både overholdelse af privatlivets fred og brugertillid og gør en stor forskel i butikkens privatlivsmærke.

Tre måder: ML Kit, Core ML, TensorFlow Lite

ML Kit (Google) er den nemmeste måde at starte på: Det giver færdige funktioner såsom tekstgenkendelse (OCR — læsning af tekst i et billede), ansigtsgenkendelse, stregkodelæsning, oversættelse på få linjer. Du behøver ikke at træne din egen model. Core ML (Apple) er den mest effektive måde at køre din egen model eller en færdiglavet model på iOS; Den bruger Apples Neural Engine (kunstig neural netværksprocessor) hardware. TensorFlow Lite/LiteRT er en cross-platform løsning, der giver dig mulighed for at køre din egen trænede model på både Android og iOS.

Det generelle integrationsflow med AI går sådan her:

  1. Talent definition. Et klart mål, såsom "Jeg vil læse teksten på billedet."
  2. Valg af vej. Hvis der er klar talent, ML Kit; Core ML/TF Lite, hvis specialmodel tilgængelig.
  3. Model format. .mlmodel (Core ML), .tflite (TF Lite). Forklarer AI-transformationstrinene.
  4. Integrationskode. Indlæsning af modellen, forbehandling af input, fortolkning af output.
  5. Præstationstest. Hastighed, hukommelse, batterimåling på rigtig enhed.
Forsigtig: Den mest almindelige AI-fejl i modelintegration på enheden er inputforbehandling - konvertering af billedet til den størrelse og det farveformat, som modellen forventer. Hvis modellen forventer 224x224 pixels, og du giver den 300x300, vil resultatet være meningsløst, men du vil ikke modtage en fejlmeddelelse. Bekræft forbehandlingsværdierne fra modellens dokument.

At kende modellens grænser

En on-device model træffer beslutninger baseret på de data, den blev trænet på. En objektgenkendelsesmodel, der kun trænes på billeder taget i løbet af dagen, vil være forkert på natbilleder. Modellen har en konfidensscore (tillid — hvor sikker modellen er på sit svar, normalt mellem 0 og 1); Det er farligt at præsentere resultater med lav tillid for brugeren som nøjagtige. For eksempel bør en hudpletscanningsapplikation ikke sige "bestemt godartet", men bør sige "modellens forudsigelse er dette, kontakt venligst en læge". Modelresultatet er en anbefaling, ikke en diagnose.

tre minisager

Tilfælde 1 — Acceleration med OCR. En udgiftssporingsapp har fjernet byrden ved manuelt at indtaste kvitteringer med ML Kit-tekstgenkendelse. Brugeren tager et billede af kvitteringen, og beløb og dato udfyldes automatisk. Manuel indtastningstid faldt fra 40 sekunder til 8 sekunder pr. kvittering. Holdet fik altid brugeren til at bekræfte det beløb, AI’en læste; fordi rynkede kvitteringer havde en fejlmargin på 6 %. Automation + menneskelig godkendelse var den rigtige balance.

Tilfælde 2 — Forbehandlingsfejl. Et team integrerede en plantegenkendelsesmodel med TensorFlow Lite; På testeren var resultaterne tilfældige. Problemet var, at koden, som AI’en genererede, ikke normaliserede billedet til det område [0,1] modellen forventede (pixelværdier blev efterladt på 0-255). Når normalisering blev tilføjet, steg nøjagtigheden fra 30 % til 89 %. Lektion: Forbehandling er tavs, men dødbringende.

Case 3 — Fortjeneste på privatlivets fred. En sundhedsapplikation registrerede uregelmæssigheder fra pulsdata med Core ML-modellen på enheden. Dataene gik aldrig til serveren. Dette valg gjorde det muligt for applikationen at modtage sætningen "samler ikke data" i App Store-beskyttelsesetiketten og øgede dens downloadhastighed sammenlignet med konkurrenterne. Valget på enheden var både etisk og kommercielt rentabelt.

Svag prompt / Stærk prompt

Svag prompt: "Tilføj billedgenkendelse til min app."

Kraftig prompt: "Tilføj mængde- og datolæsningsfunktionen til min Android/Kotlin-applikation. - Brug Google ML Kit-tekstgenkendelse (på enheden, offline) - Tag billede fra kamera eller galleri - Udtræk mængden og datoen fra den genkendte tekst med regex - Præsenter resultatet for brugeren til godkendelse i feltet REDIGERBARE, automatisk lagring og genbearbejdning af kamerasituationen - Håndtering af kameraet og genbearbejdning. forklar trinene."

Kopierbare skabeloner

Stivalgsskabelon: "Jeg vil lave følgende funktion: [funktion]. Skal det være på enheden eller skyen? Sammenlign baseret på: privatliv, offlinebehov, modelstørrelse, batteri, pris. Anbefal det passende værktøj (ML Kit / Core ML / TF Lite) og begrund."

Integrationsskabelon:"Skriv [model/kapacitet]-integration til [platform]:1) Modelindlæsning2) Input-forbehandling (forventet størrelse og normalisering)3) Inference call4) Outputfortolkning og kontrol af konfidensscore5) Advarsel til bruger om resultat med lav tillid. Mind mig om at verificere forbehandlingsværdierne fra modellens dokumentation."

Tillidsscoreskabelon:"Overvej tillidsscore i denne slutningskode:- Nuværende resultat 'præcis' under tærskelværdien (f.eks. 0,6)- Vis 'dette er et skøn'-notat til brugeren- Henvis til ekspert, hvis kritisk område (sundhed, sikkerhed)[kode]"

Ydeevnebekræftelsesskabelon: "Liste de metrics, jeg skal måle på den faktiske enhed for denne modelintegration på enheden: slutningstid, hukommelsesforøgelse, batteripåvirkning, opvarmning. Fortæl målemetoden for hver."

Almindelige fejl

  • Springer forbehandling over eller gør det forkert. Forkert størrelse/normalisering giver lydløst forkert resultat.
  • Ignorerer tillidsscoren. At præsentere et lavkonfidensestimat som nøjagtigt vil vildlede brugeren.
  • Test af modellen i emulatoren. Enhedens faktiske hastighed og batteri er meget forskellige; mål altid på ægte hardware.
  • Sender følsomme data til skyen unødigt. At vælge cloud, når det er muligt på enheden, er en privatlivsrisiko.
  • Ignorerer modelstørrelse. Store modelapps øger downloadstørrelsen og går ned på lav hardware.
  • Glemmer træningsgrænsen for modellen. Modellen tager fejl i den tilstand, hvor den ikke ser (nat, andet sprog); Gør dette klart for brugeren.

Sammenfattende

On-device AI giver privatliv, hastighed og offline drift ved at opbevare data på telefonen; Grænsen er enhedens effekt og modelstørrelse. ML Kit bruges til out-of-the-box-funktioner, Core ML (iOS) og TensorFlow Lite (cross-platform) bruges til brugerdefinerede modeller. Integrationens tavse dræber er ukorrekt forbehandling; Inputstørrelsen og normaliseringen er verificeret fra modellens dokumentation. Hvert resultat kommer med en tillidsscore, og forudsigelser med lav tillid præsenteres ikke som absolut sandhed. Beslutninger måles på den rigtige enhed, ikke emulatoren.

Ansøgningsopgave

For en "tekstlæsning fra foto" eller "stregkodelæsning"-funktion skal du spørge AI'en, om den skal være på enheden eller skyen med "Stivalgskabelonen", og bede derefter om en ML Kit-baseret blueprint med "Integrationsskabelonen". Bekræft, at forbehandlingstrinnet og brugergodkendelse/redigeringsflow er til stede i koden. Indstil en tillidsscoretærskel og skriv, hvad du vil gøre, hvis resultatet er lav tillid.

tjekliste

  • [ ] Jeg tog beslutningen på enheden/skyen baseret på kriterier
  • [ ] Jeg valgte det rigtige værktøj (ML Kit / Core ML / TF Lite)
  • [ ] Jeg verificerede forbehandlingsdimensionen og normaliseringen fra modellens dokumentation
  • [ ] Jeg tjekkede tillidsscore og advarede om lave tillidsresultater
  • [ ] Jeg præsenterede resultatet for brugeren med godkendelse/redigering, jeg gemte det ikke blindt
  • [ ] Jeg målte ydeevne på den rigtige enhed, ikke emulatoren