Единици
1. Вовед во вештачката интелигенција во развојот на мобилните телефони: улоги, граници, автентикација и безбедност 2. Генерирање на мобилни кодови со вештачка интелигенција: Котлин, Свифт и развој на повеќе платформи 3. Дизајн на интерфејс и генерирање на код за интерфејс со вештачка интелигенција 4. ВИ на уредот: Core ML, TensorFlow Lite и ML Kit 5. Интеграција на Cloud AI и LLM API: разговор, проток и безбедност 6. Тест генерирање со вештачка интелигенција: Тестови за единица, интерфејс и автоматизација 7. Дебагирање и анализа на падови со вештачка интелигенција 8. Перформанси и оптимизација на батеријата: Брзи и ефикасни апликации со вештачка интелигенција 9. Приватност, дозволи и безбедно користење 10. Издание во продавницата: App Store, Google Play и AI компатибилност 11. Проект од крај до крај, одговорна употреба на вештачка интелигенција и патоказ во професијата
Единица 4 / 11

ВИ на уредот: Core ML, TensorFlow Lite и ML Kit

Добивки:

  • Способност да се одлучи на уред или облак и да се избере вистинската алатка (ML Kit, Core ML, TensorFlow Lite) врз основа на приватноста, потребата офлајн, големината на моделот и критериумите за батеријата
  • Способност да се спречат тивки грешки со проверка на претходна обработка на влезот (големина и нормализација) од документот на моделот во интеграцијата на моделот
  • Способност да се процени резултатот на доверба и да се измери резултатот со одобрение од корисникот и на вистински уред, без да се претстават предвидувањата со ниска доверба како апсолутна вистина.

Досега ја користевме вештачката интелигенција како помош за забрзување на процесот на развој. Сега преминуваме на втората улога на вештачката интелигенција: талентот вграден во апликацијата. Современите телефони имаат моќ да извршуваат модели со вештачка интелигенција, како што се препознавање слики, превод на текст, транскрипција на говор итн. директно на уредот (на-уред — во сопствениот процесор на телефонот без одење на серверот). ВИ на уредот; Тој нуди големи предности во однос на облак решенијата во однос на брзината, приватноста и офлајн работењето. Во оваа единица, ќе научиме како да ја вградиме вештачката интелигенција во апликацијата со Core ML на iOS, крос-платформа TensorFlow Lite (сега познат како LiteRT) и подготвеното решение на Google ML Kit, и како да ја користиме вештачката интелигенција како асистент во оваа интеграција.

На уред или облак?

Ова е првата и најважна архитектонска одлука. Вештачката интелигенција на уредот не ги отстранува податоците од телефонот - огромна победа за приватноста. Исто така е моментален и работи офлајн бидејќи нема мрежна доцнење. Сепак, тоа е ограничено од процесорската моќ и меморијата на уредот; Многу големи модели (на пр. модели на џиновски јазици) нема да се вклопат во телефонот или ќе ја трошат батеријата. Cloud AI, од друга страна, нуди неограничена моќност, но испраќа податоци до серверот, бара мрежа и создава латентност.

критериум

На-уред

Облак (облак API)

Приватност

Податоците остануваат на уредот, силни

Податоците одат на серверот, потребно е внимание

брзина

Инстант, без мрежа

Зависи од латентноста на мрежата

офлајн

Тоа функционира

Не функционира

Големина на моделот

Ограничено (ресурс на телефонот)

неограничено

батерија/топлина

Ефекти со тешка употреба

Серверот е под оптоварување, уредот е опуштен

Цена

Бесплатно (извор на уред)

Надомест по употреба

Правило за одлучување: Изберете на уредот ако се обработуваат лични/чувствителни податоци, треба да работат офлајн или ако е неопходен моменталниот одговор. Ако ви треба многу голем модел, свртете се кон облакот. Оваа единица е фокусирана на уредот; Ќе ја покриеме облак AI во следната единица.

Совет: секогаш направете го вашиот уред како стандарден за функција која се справува со чувствителни податоци (здравје, биометрика, локација). Фразата „податоците не го напуштаат уредот“ е непроценлива и за усогласеноста со приватноста и за довербата на корисниците и прави голема разлика во етикетата за приватност на продавницата.

Три начини: ML Kit, Core ML, TensorFlow Lite

ML Kit (Google) е најлесниот начин за почеток: дава готови можности како што се препознавање текст (OCR — читање текст во слика), откривање лица, читање баркод, превод во неколку редови. Не треба да тренирате сопствен модел. Core ML (Apple) е најефикасниот начин за извршување на сопствен модел или готов модел на iOS; Го користи хардверот на Apple Neural Engine (процесор за вештачка невронска мрежа). TensorFlow Lite/LiteRT е крос-платформско решение кое ви овозможува да го стартувате вашиот сопствен обучен модел и на Android и на iOS.

Општиот тек на интеграција со вештачката интелигенција оди вака:

  1. Дефиниција за талент. Јасна цел, како на пример „Сакам да го прочитам текстот на фотографијата“.
  2. Избор на патека. Ако има подготвен талент, ML Kit; Core ML/TF Lite доколку е достапен посебен модел.
  3. Формат на модел. .mlmodel (Core ML), .tflite (TF Lite). Ги објаснува чекорите на трансформација на ВИ.
  4. Код за интеграција. Вчитување на моделот, претходна обработка на влезот, толкување на излезот.
  5. Тест за изведба. Брзина, меморија, мерење на батеријата на вистински уред.
Внимание: Најчеста грешка со вештачката интелигенција во интеграцијата на моделите на уредот е претпроцесирање на влезот - конвертирање на сликата во големината и форматот на бојата што ги очекува моделот. Ако моделот очекува 224x224 пиксели, а вие му дадете 300x300, резултатот ќе биде бесмислен, но нема да добиете порака за грешка. Потврдете ги вредностите за предобработка од документот на моделот.

Познавање на границите на моделот

Моделот на уред донесува одлуки врз основа на податоците за кои е обучен. Моделот за препознавање објекти обучен само на фотографии направени во текот на денот ќе биде погрешен на ноќните слики. Моделот има оценка за доверба (доверба — колку моделот е уверен во својот одговор, обично помеѓу 0 и 1); Опасно е на корисникот да му се прикажат резултатите со ниска доверба како точни. На пример, апликацијата за скенирање на дамки на кожата не треба да пишува „дефинитивно бенигна“, туку треба да каже „предвидувањето на моделот е ова, ве молиме консултирајте се со лекар“. Резултатот од моделот е препорака, а не дијагноза.

три мини футроли

Случај 1 - Забрзување со OCR. Апликација за следење трошоци го отстрани товарот од рачно внесување сметки со препознавање текст ML Kit. Корисникот ја фотографира сметката, а износот и датумот се пополнуваат автоматски. Времето за рачно внесување се намали од 40 секунди на 8 секунди по сметка. Тимот секогаш бараше од корисникот да ја потврди сумата што ја прочитал вештачката интелигенција; бидејќи збрчканите сметки имале 6% маргина на грешка. Автоматизација + човечко одобрување беше вистинската рамнотежа.

Случај 2 - Грешка при претходна обработка. Еден тим интегрираше модел за препознавање растенија со TensorFlow Lite; На тестерот, резултатите беа случајни. Проблемот беше што кодот што го генерираше вештачката интелигенција не ја нормализираше сликата во опсегот [0,1] што го очекуваше моделот (вредностите на пикселите беа оставени на 0-255). Кога беше додадена нормализацијата, точноста се зголеми од 30% на 89%. Поука: преработката е тивка, но смртоносна.

Случај 3 - Придобивка од приватност. Здравствена апликација откри аномалија од податоците за отчукувањата на срцето со моделот Core ML на уредот. Податоците никогаш не отишле на серверот. Овој избор ѝ овозможи на апликацијата да ја прима фразата „не собира податоци“ во етикетата за приватност на App Store и ја зголеми нејзината стапка на преземање во споредба со конкурентите. Изборот на уредот беше и етички и комерцијално профитабилен.

Слаб промпт / Силен промпт

Слаба порака: „Додај препознавање слика во мојата апликација“.

Моќен потсетник: „Додајте ја функцијата за читање износ и датум во мојата апликација за Android/Kotlin. - Користете препознавање текст на Google ML Kit (на уред, офлајн) - Сликајте слика од камера или галерија - Извлечете ја количината и датумот од препознаениот текст со регекс - Претставете го резултатот на корисникот за одобрување во полето УРЕДУВАЊЕ - ФОТОКРАНУВАЊЕ и повторно долу. претходна обработка и ситуации на грешка, објаснете ги чекорите“.

Шаблони за копирање

Шаблон за избор на патека: „Сакам да ја направам следнава карактеристика: [функција]. Дали треба да биде на уред или облак? Споредете врз основа на: приватност, потреба од офлајн, големина на модел, батерија, цена. Препорачете ја соодветната алатка (ML Kit / Core ML / TF Lite) и оправдајте."

Шаблон за интеграција: „Напишете интеграција на [модел/способност] за [платформа]: 1) Вчитување на модел2) Претходна обработка на влезот (очекувана големина и нормализација) 3) Повик за заклучок4) Толкување на излезот и проверка на резултатот на доверба5) Предупредување до корисникот за резултат со ниска доверливост Потсетете ме да ја потврдам документацијата за вредностите на моделот за предобработка од документот.

Шаблон за оценки за доверба: „Размислете за оценката за доверба во оваа шифра за заклучување: - Прикажете го резултатот „точно“ под прагот (на пр. 0,6) - Прикажете „ова е проценка“ на корисникот - повикајте се на експерт ако е критична област (здравје, безбедност)[шифра]“

Шаблон за потврда на перформансите: „Наведете ги метриките што треба да ги измерам на вистинскиот уред за оваа интеграција на моделот на уредот: време на заклучување, зголемување на меморијата, влијание на батеријата, греење. Кажете го методот на мерење за секој од нив“.

Вообичаени грешки

  • Прескокнување на предобработка или неправилно правење. Погрешната големина/нормализација тивко произведува погрешен резултат.
  • Игнорирање на резултатот за доверба. Презентирањето на проценка со ниска доверба како точна ќе го доведе корисникот во заблуда.
  • Тестирање на моделот во емулаторот. Вистинската брзина на уредот и батеријата се многу различни; секогаш мери на вистински хардвер.
  • Непотребно испраќање чувствителни податоци до облакот. Изборот на облак кога е можно на уредот е ризик за приватност.
  • Игнорирање на големината на моделот. Апликациите со големи модели ја зголемуваат големината на преземањето и паѓаат на низок хардвер.
  • Заборавајќи ја границата за обука на моделот. Моделот е погрешен во состојба каде што не гледа (ноќ, различен јазик); Дајте му го ова јасно на корисникот.

Сумирано

Вештачката интелигенција на уредот обезбедува приватност, брзина и офлајн работа со чување податоци на телефонот; Границата е моќноста на уредот и големината на моделот. ML Kit се користи за можности надвор од кутијата, Core ML (iOS) и TensorFlow Lite (крос-платформа) се користат за сопствени модели. Тивкиот убиец на интеграцијата е несоодветна претобработка; Влезната големина и нормализацијата се потврдени од документацијата на моделот. Секој резултат доаѓа со резултат на доверба, а предвидувањата со ниска доверба не се претставени како апсолутна вистина. Одлуките се мерат на вистинскиот уред, а не на емулаторот.

Задача за апликација

За функцијата „читање текст од фотографија“ или „читање бар-код“, прашајте ја вештачката интелигенција дали треба да биде на уредот или облакот со „шаблонот за избор на патека“, а потоа побарајте нацрт базиран на ML комплет со „шаблон за интегрирање“. Потврдете дека чекорот на претпроцесирање и протокот на одобрување/уредување на корисникот се присутни во кодот. Поставете праг на резултат на доверба и напишете што ќе направите ако резултатот е ниска доверба.

листа за проверка

  • [ ] Ја донесов одлуката на уредот/облакот врз основа на критериуми
  • [ ] Ја избрав вистинската алатка (ML Kit / Core ML / TF Lite)
  • [ ] Ја потврдив димензијата на преобработка и нормализацијата од документацијата на моделот
  • [ ] Го проверив резултатот за доверба и предупредив на ниски резултати на доверба
  • [ ] Го претставив резултатот на корисникот со одобрување/уредување, не го зачував слепо
  • [ ] Ги измерив перформансите на вистинскиот уред, а не на емулаторот