Единицы
1. Введение в искусственный интеллект в мобильной разработке: роли, границы, аутентификация и безопасность 2. Генерация мобильного кода с помощью искусственного интеллекта: Kotlin, Swift и кроссплатформенная разработка 3. Проектирование интерфейсов и генерация кода пользовательского интерфейса с помощью искусственного интеллекта 4. Искусственный интеллект на устройстве: Core ML, TensorFlow Lite и комплект ML 5. Интеграция Cloud AI и LLM API: чат, потоки и безопасность 6. Генерация тестов с помощью искусственного интеллекта: юнит-тесты, тесты интерфейса и автоматизации 7. Отладка и анализ сбоев с помощью искусственного интеллекта 8. Оптимизация производительности и батареи: быстрые и эффективные приложения с искусственным интеллектом 9. Конфиденциальность, разрешения и безопасное использование 10. Версия для магазина: App Store, Google Play и совместимость с AI. 11. Комплексный проект, ответственное использование искусственного интеллекта и дорожная карта в профессии
Единица 4 / 11

Искусственный интеллект на устройстве: Core ML, TensorFlow Lite и комплект ML

Прибыль:

  • Возможность выбирать на устройстве или в облаке и выбирать правильный инструмент (ML Kit, Core ML, TensorFlow Lite) с учетом конфиденциальности, потребностей в автономном режиме, размера модели и критериев заряда батареи.
  • Возможность предотвращения скрытых ошибок путем проверки предварительной обработки входных данных (размера и нормализации) из документа модели при интеграции модели.
  • Возможность оценить показатель достоверности и измерить результат с одобрения пользователя и на реальном устройстве, не выдавая прогнозы с низкой достоверностью за абсолютную истину.

До сих пор мы использовали ИИ как средство ускорения процесса разработки. Теперь мы переходим ко второй роли ИИ: таланту, встроенному в приложение. Современные телефоны способны запускать модели искусственного интеллекта, такие как распознавание изображений, перевод текста, транскрипция речи и т. д., непосредственно на устройстве (на устройстве — в собственном процессоре телефона без обращения к серверу). ИИ на устройстве; Он предлагает большие преимущества перед облачными решениями с точки зрения скорости, конфиденциальности и работы в автономном режиме. В этом модуле мы узнаем, как встроить ИИ в приложение с помощью iOS Core ML, кроссплатформенного TensorFlow Lite (теперь известного как LiteRT) и готового решения Google ML Kit, а также как использовать ИИ в качестве помощника в этой интеграции.

На устройстве или в облаке?

Это первое и самое важное архитектурное решение. Искусственный интеллект на устройстве не удаляет данные с телефона — огромный выигрыш для конфиденциальности. Это также мгновенно и работает в автономном режиме, поскольку нет задержек в сети. Однако он ограничен вычислительной мощностью и памятью устройства; Очень большие модели (например, модели с гигантским язычком) не помещаются в телефон или разряжают аккумулятор. Облачный ИИ, с другой стороны, предлагает неограниченную мощность, но отправляет данные на сервер, требует сети и создает задержку.

критерий

На устройстве

Облако (облачный API)

Конфиденциальность

Данные остаются на устройстве, надежно

Данные поступают на сервер, требуется внимание

скорость

Мгновенно, без сети

Зависит от задержки сети

офлайн

Это работает

Не работает

Размер модели

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

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

батарея/нагрев

Эффекты при интенсивном использовании

Сервер под нагрузкой, устройство расслаблено

Стоимость

Бесплатно (источник устройства)

Плата за использование

Правило принятия решения: выбирайте на устройстве, если обрабатываются личные/конфиденциальные данные, требуется работа в автономном режиме или необходим мгновенный ответ. Если вам нужна очень большая модель, обратитесь к облаку. Это устройство ориентировано на устройства; Мы рассмотрим облачный ИИ в следующем разделе.

Совет: Всегда устанавливайте на устройстве функцию по умолчанию для функции, которая обрабатывает конфиденциальные данные (здоровье, биометрические данные, местоположение). Фраза «данные не покидают устройство» имеет неоценимое значение как для обеспечения соблюдения конфиденциальности, так и для доверия пользователей, а также имеет большое значение для метки конфиденциальности в магазине.

Три способа: 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 (на устройстве, в автономном режиме). – Возьмите изображение с камеры или галереи. – Извлеките сумму и дату из распознанного текста с помощью регулярного выражения. – Представьте результат пользователю на утверждение в поле EDITABLE, автосохранение. – Обработайте поток разрешений и отклонений камеры. Запишите предварительную обработку и ситуации с ошибками, объясните шаги».

Копируемые шаблоны

Шаблон выбора пути: «Я хочу создать следующую функцию: [функция]. Должна ли она быть на устройстве или в облаке? Сравните на основе: конфиденциальности, потребности в автономном режиме, размера модели, аккумулятора, стоимости. Порекомендуйте соответствующий инструмент (ML Kit/Core ML/TF Lite) и обоснуйте».

Шаблон интеграции: «Напишите интеграцию [модель/возможности] для [платформы]:1) Загрузка модели2) Предварительная обработка входных данных (ожидаемый размер и нормализация)3) Вызов вывода4) Интерпретация вывода и проверка оценки достоверности5) Предупреждение пользователю о результате с низкой достоверностьюНапомните мне проверить значения предварительной обработки из документации модели».

Шаблон оценки уверенности: «Учитывайте оценку уверенности в этом коде вывода: — Представьте «точный» результат ниже порогового значения (например, 0,6). — Покажите пользователю примечание «это оценка». — Обратитесь к эксперту, если критическая область (здоровье, безопасность) [код]»

Шаблон проверки производительности: «Перечислите показатели, которые мне нужно измерить на реальном устройстве для интеграции этой модели с устройством: время вывода, увеличение памяти, влияние батареи, нагрев. Укажите метод измерения для каждого».

Распространенные ошибки

  • Пропуск предварительной обработки или выполнение ее неправильно. Неправильный размер/нормализация молча приводит к неправильному результату.
  • Игнорирование оценки уверенности. Представление оценки с низкой степенью достоверности как точной введет пользователя в заблуждение.
  • Тестирование модели в эмуляторе. Фактическая скорость устройства и батарея сильно отличаются; всегда измеряйте на реальном оборудовании.
  • Отправка конфиденциальных данных в облако без необходимости. Выбор облака, когда возможно использование на устройстве, представляет собой риск для конфиденциальности.
  • Игнорирование размера модели. Приложения больших моделей увеличивают размер загрузки и аварийно завершают работу на низком оборудовании.
  • Забываем об обучающем пределе модели. Модель ошибается в состоянии, когда не видит (ночь, другой язык); Разъясните это пользователю.

В итоге

Искусственный интеллект на устройстве обеспечивает конфиденциальность, скорость и работу в автономном режиме, сохраняя данные на телефоне; Ограничением является мощность устройства и размер модели. ML Kit используется для готовых возможностей, Core ML (iOS) и TensorFlow Lite (кроссплатформенный) используются для пользовательских моделей. Тихий убийца интеграции — неправильная предварительная обработка; Входной размер и нормализация проверяются из документации модели. Каждый результат имеет оценку достоверности, а прогнозы с низкой достоверностью не представляются как абсолютная истина. Решения измеряются на реальном устройстве, а не на эмуляторе.

Задача приложения

Для функции «чтение текста с фотографии» или «чтение штрих-кода» спросите ИИ, должна ли она быть на устройстве или в облаке, с помощью «шаблона выбора пути», а затем запросите проект на основе ML Kit с «шаблоном интеграции». Убедитесь, что в коде присутствуют этап предварительной обработки и поток утверждения/редактирования пользователем. Установите порог оценки доверия и напишите, что вы будете делать, если результатом будет низкое доверие.

контрольный список

  • [ ] Я принял решение на устройстве/облаке на основе критериев
  • [ ] Я выбрал правильный инструмент (ML Kit/Core ML/TF Lite)
  • [ ] Я проверил размерность предварительной обработки и нормализацию из документации модели.
  • [ ] Я проверил рейтинг доверия и предупредил о низком уровне доверия
  • [ ] Я представил результат пользователю с одобрением/редактированием, я не сохранял его вслепую
  • [ ] Я измерял производительность на реальном устройстве, а не на эмуляторе.