Jednotka 4 / 11

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

zisky:

  • Schopnost rozhodnout se na zařízení nebo cloudu a vybrat správný nástroj (ML Kit, Core ML, TensorFlow Lite) na základě soukromí, potřeby offline, velikosti modelu a kritérií baterie
  • Schopnost zabránit tichým chybám ověřením vstupního předběžného zpracování (velikost a normalizace) z dokumentu modelu v integraci modelu
  • Schopnost vyhodnotit skóre spolehlivosti a měřit výsledek se souhlasem uživatele a na skutečném zařízení, aniž by byly předpovědi s nízkou spolehlivostí prezentovány jako absolutní pravda.

Doposud jsme AI používali jako pomůcku pro urychlení procesu vývoje. Nyní přejdeme k druhé roli AI: talentu vloženému do aplikace. Moderní telefony mají schopnost spouštět modely umělé inteligence, jako je rozpoznávání obrázků, překlad textu, přepis řeči atd. přímo na zařízení (na zařízení — ve vlastním procesoru telefonu, aniž by museli jít na server). AI na zařízení; Oproti cloudovým řešením nabízí velké výhody v rychlosti, soukromí a offline provozu. V této jednotce se naučíme, jak vložit umělou inteligenci do aplikace pomocí Core ML iOS, crossplatformního TensorFlow Lite (nyní známého jako LiteRT) a hotového řešení Google ML Kit a jak používat umělou inteligenci jako asistenta při této integraci.

Na zařízení nebo v cloudu?

Toto je první a nejdůležitější architektonické rozhodnutí. Umělá inteligence na zařízení neodstraňuje data z telefonu – obrovská výhoda pro ochranu soukromí. Je také okamžitý a funguje offline, protože nedochází k latenci sítě. Je však omezena výpočtovým výkonem zařízení a pamětí; Velmi velké modely (např. modely s obřím jazykem) se do telefonu nevejdou nebo budou vybíjet baterii. Cloud AI na druhé straně nabízí neomezený výkon, ale posílá data na server, vyžaduje síť a vytváří latenci.

kritérium

Na zařízení

Cloud (cloud API)

soukromí

Data zůstávají v zařízení, silná

Data jdou na server, vyžaduje pozornost

rychlost

Okamžitě, žádná síť

Závisí na latenci sítě

offline

Funguje to

nefunguje

Velikost modelu

Omezené (zdroj telefonu)

neomezené

baterie/teplo

Účinky při intenzivním používání

Server pod zatížením, zařízení je uvolněné

náklady

Zdarma (zdroj zařízení)

Poplatek za použití

Rozhodovací pravidlo: Zvolte na zařízení, pokud se zpracovávají osobní/citlivá data, potřebují pracovat offline nebo je nezbytná okamžitá reakce. Pokud potřebujete velmi velký model, obraťte se na cloud. Tato jednotka je zaměřena na zařízení; V další jednotce se budeme zabývat cloudovou AI.

Tip: Vždy nastavte na zařízení jako výchozí nastavení pro funkci, která zpracovává citlivá data (zdraví, biometrie, poloha). Fráze „data neopouštějí zařízení“ je neocenitelná jak pro dodržování ochrany osobních údajů, tak pro důvěru uživatelů a je velkým rozdílem v označení soukromí obchodu.

Tři způsoby: ML Kit, Core ML, TensorFlow Lite

ML Kit (Google) je nejjednodušší způsob, jak začít: poskytuje hotové funkce, jako je rozpoznávání textu (OCR — čtení textu v obrázku), detekce obličeje, čtení čárových kódů, překlad v několika řádcích. Nemusíte trénovat svůj vlastní model. Core ML (Apple) je nejefektivnější způsob, jak provozovat svůj vlastní model nebo hotový model na iOS; Využívá hardware Neural Engine (procesor umělé neuronové sítě) společnosti Apple. TensorFlow Lite/LiteRT je multiplatformní řešení, které vám umožní provozovat vlastní trénovaný model na Androidu i iOS.

Obecný postup integrace s AI vypadá takto:

  1. Definice talentu. Jasný cíl, například „chci si přečíst text na fotce“.
  2. Výběr cesty. Pokud je připraven talent, ML Kit; Core ML/TF Lite, pokud je k dispozici speciální model.
  3. Formát modelu. .mlmodel (Core ML), .tflite (TF Lite). Vysvětluje kroky transformace AI.
  4. Integrační kód. Načtení modelu, předzpracování vstupu, interpretace výstupu.
  5. Test výkonu. Měření rychlosti, paměti, baterie na reálném zařízení.
Upozornění: Nejčastější chybou umělé inteligence při integraci modelu na zařízení je vstupní předběžné zpracování – převod obrazu na velikost a formát barev, které model očekává. Pokud model očekává 224x224 pixelů a vy mu dáte 300x300, bude výsledek nesmyslný, ale neobdržíte chybovou zprávu. Ověřte hodnoty předběžného zpracování z dokumentu modelu.

Znát limity modelu

Model na zařízení se rozhoduje na základě dat, na kterých byl trénován. Model rozpoznávání objektů natrénovaný pouze na fotografiích pořízených ve dne bude na nočních snímcích chybný. Model má skóre spolehlivosti (důvěra – jak si je model jistý svou odpovědí, obvykle mezi 0 a 1); Je nebezpečné prezentovat uživateli nedůvěryhodné výsledky jako přesné. Například aplikace pro skenování kožních skvrn by neměla říkat „rozhodně benigní“, ale měla by říkat „předpověď modelu je toto, poraďte se s lékařem“. Výsledkem modelu je doporučení, nikoli diagnóza.

tři mini pouzdra

Případ 1 — Akcelerace pomocí OCR. Aplikace pro sledování výdajů odstranila břemeno ručního zadávání účtenek pomocí rozpoznávání textu sady ML. Uživatel si účtenku vyfotí, částka a datum se doplní automaticky. Čas ručního zadávání se snížil ze 40 sekund na 8 sekund na účtenku. Tým vždy nechal uživatele potvrdit částku, kterou AI přečetl; protože pomačkané účtenky měly 6% chybovost. Automatizace + lidské schválení byla správná rovnováha.

Případ 2 — Chyba předběžného zpracování. Jeden tým integroval model rozpoznávání rostlin s TensorFlow Lite; Na testeru byly výsledky náhodné. Problém byl v tom, že kód vygenerovaný AI nenormalizoval obraz na rozsah [0,1], který model očekával (hodnoty pixelů byly ponechány na 0-255). Když byla přidána normalizace, přesnost se zvýšila z 30 % na 89 %. Ponaučení: předběžné zpracování je tiché, ale smrtící.

Případ 3 – Získání soukromí. Zdravotní aplikace zjistila anomálii z dat srdeční frekvence s modelem Core ML na zařízení. Data se nikdy nedostala na server. Tato volba umožnila aplikaci získat frázi „neshromažďuje data“ na štítku ochrany osobních údajů App Store a zvýšila rychlost stahování ve srovnání s konkurencí. Volba na zařízení byla etická i komerčně zisková.

Slabá výzva / Silná výzva

Slabá výzva: „Přidat rozpoznávání obrázků do mé aplikace.“

Výkonná výzva: „Přidejte funkci čtení částky a data do mé aplikace Android/Kotlin. – Použijte rozpoznávání textu sady Google ML Kit (na zařízení, offline) – Pořiďte snímek z fotoaparátu nebo galerie – Vytáhněte množství a datum z rozpoznaného textu pomocí regulárního výrazu – Předložte výsledek uživateli ke schválení v poli UPRAVIT, automatické ukládání – Zapište si postup předzpracování a vysvětlete chyby fotoaparátu.“

Kopírovatelné šablony

Šablona výběru cesty: "Chci vytvořit následující funkci: [funkce]. Mělo by to být na zařízení nebo cloud? Porovnejte na základě: soukromí, potřeby offline, velikosti modelu, baterie, ceny. Doporučte vhodný nástroj (ML Kit / Core ML / TF Lite) a zdůvodněte."

Šablona integrace: "Zapište [model/schopnost] integraci pro [platformu]:1) Načítání modelu2) Předzpracování vstupu (očekávaná velikost a normalizace)3) Volání odvození4) Interpretace výstupu a kontrola skóre spolehlivosti5) Upozornění pro uživatele na výsledek s nízkou spolehlivostí Připomeňte mi, abych ověřil hodnoty předběžného zpracování z dokumentace modelu."

Šablona skóre spolehlivosti: "Zvažte skóre spolehlivosti v tomto odvozeném kódu:- Prezentujte výsledek ‚přesný' pod prahovou hodnotou (např. 0,6)- Ukažte uživateli poznámku ‚toto je odhad'- V případě kritické oblasti (zdraví, bezpečnost) se obraťte na odborníka[kód]“

Šablona ověření výkonu: "Uveďte metriky, které potřebuji měřit na skutečném zařízení pro tuto integraci modelu na zařízení: čas odvození, nárůst paměti, vliv baterie, zahřívání. U každého uveďte způsob měření."

Časté chyby

  • Přeskakování předběžného zpracování nebo jeho provádění nesprávně. Nesprávná velikost/normalizace v tichosti vytváří nesprávný výsledek.
  • Ignorování skóre důvěry. Prezentace nedůvěryhodného odhadu jako přesného uživatele uvede v omyl.
  • Testování modelu v emulátoru. Skutečná rychlost zařízení a baterie jsou velmi odlišné; vždy měřte na skutečném hardwaru.
  • Zbytečné odesílání citlivých dat do cloudu. Volba cloudu, když je to možné na zařízení, představuje riziko pro soukromí.
  • Ignorování velikosti modelu. Velké modelové aplikace zvětšují velikost stahování a selhávají při nízkém hardwaru.
  • Zapomenutí tréninkového limitu modelu. Model se mýlí ve stavu, kdy nevidí (noc, jiný jazyk); Dejte to uživateli jasně najevo.

V souhrnu

Umělá inteligence na zařízení poskytuje soukromí, rychlost a provoz offline tím, že uchovává data v telefonu; Limitem je výkon zařízení a velikost modelu. ML Kit se používá pro funkce připravené z krabice, Core ML (iOS) a TensorFlow Lite (cross-platform) se používají pro vlastní modely. Tichým zabijákem integrace je nesprávné předběžné zpracování; Vstupní velikost a normalizace jsou ověřeny z dokumentace modelu. Každý výsledek přichází se skóre spolehlivosti a předpovědi s nízkou spolehlivostí nejsou prezentovány jako absolutní pravda. Rozhodnutí se měří na skutečném zařízení, nikoli na emulátoru.

Aplikační úkol

Pro funkci „čtení textu z fotografie“ nebo „čtení čárových kódů“ se zeptejte AI, zda by to mělo být na zařízení nebo v cloudu se „šablonou výběru cesty“, poté požádejte o plán založený na ML Kit se „šablonou integrace“. Ověřte, zda je v kódu přítomen krok předběžného zpracování a postup schválení/úprav uživatele. Nastavte práh skóre důvěry a napište, co uděláte, pokud bude výsledkem nízká důvěra.

kontrolní seznam

  • [ ] Rozhodoval jsem se na zařízení/cloudu na základě kritérií
  • [ ] Vybral jsem správný nástroj (ML Kit / Core ML / TF Lite)
  • [ ] Rozměr předzpracování a normalizaci jsem ověřil z dokumentace modelu
  • [ ] Zkontroloval jsem skóre důvěry a varoval jsem před výsledky nízké důvěry
  • [ ] Výsledek jsem uživateli předložil se schválením/úpravou, slepě jsem ho neukládal
  • [ ] Měřil jsem výkon na skutečném zařízení, ne na emulátoru