Розробка ML (TensorFlow Lite) в мобільному додатку

Розробка машинного навчання (TensorFlow Lite) в мобільному додатку Ми інтегруємо [TensorFlow Lite](https://www.tensorflow.org/lite) в iOS та Android — від конвертації та квантизації до вибору делегата та OTA-оновлень. За 5 років на ринку ми виконали більше 50 проєктів з on-device ML: розпізнаванн

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка ML (TensorFlow Lite) в мобільному додатку
Складний
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Розробка машинного навчання (TensorFlow Lite) в мобільному додатку

Ми інтегруємо TensorFlow Lite в iOS та Android — від конвертації та квантизації до вибору делегата та OTA-оновлень. За 5 років на ринку ми виконали більше 50 проєктів з on-device ML: розпізнавання об'єктів, класифікація зображень, обробка звуку. Нижче — конкретний технічний досвід, накопичений на реальних кейсах.

Чому варто обрати TFLite для on-device ML?

TensorFlow Lite дає повний контроль над моделлю: ви вирішуєте, який делегат використовувати, рівень квантизації та спосіб завантаження. Втрата точності після квантизації — 1–3% при правильному налаштуванні, а швидкість інференсу на CPU зростає на 20–40%. На відміну від хмарних API, on-device ML не залежить від мережі, захищає дані користувача та не має затримок передачі.

Які проблеми вирішуємо: делегати та продуктивність

TfLiteGpuDelegateV2 на Android дає приріст лише на моделях з важкими згортками (EfficientDet, MobileNet SSD). На легких моделях (MobileNetV2 з 224×224 входом) GPU-делегат повільніший за CPU — ми профілювали на Xiaomi Redmi Note 11: CPU 78 ms, GPU 112 ms. Висновок: завжди вимірюйте на цільових пристроях, не на флагманах.

NNAPI-делегат (NnApiDelegate) теоретично використовує апаратний акселератор (DSP, NPU), але підтримка операцій нерівна. Якщо модель містить нестандартні op (наприклад, кастомний squeeze-excitation блок), NNAPI мовчки падає на CPU. Обов'язково логуйте InterpreterApi.Options.setNumThreads та перевіряйте через Interpreter.getSignatureInputs(), які операції реально виконуються на акселераторі.

На iOS TFLite використовує CoreMLDelegate — обгортку над Core ML. Якщо таргет >= iOS 12, CoreMLDelegate автоматично задіює Neural Engine для підтримуваних шарів. Інші шари падають на CPU-інтерпретатор. Змішане виконання дає непередбачувану латентність без профілювання.

Порівняння делегатів TFLite на мобільних пристроях

Делегат Коли ефективний Типова затримка Ризики
CPU Легкі моделі (MobileNetV2) 80–100 ms (Snapdragon 778G) Нема прискорення
GPU Важкі згортки (EfficientDet) 50–70 ms (Adreno 640) Overhead на передачу даних
NNAPI Сумісні моделі, DSP/NPU 18–40 ms (Pixel 7) Неповна підтримка операцій
CoreML iOS 12+, нейромережеві шари 15–30 ms (iPhone 13) Змішане виконання

Як оптимізувати модель перед деплоєм?

Квантизація — обов'язковий крок для мобіля. Три варіанти:

  • Post-training dynamic range quantization — найпростіший, ваги стискаються в INT8, активації залишаються float. Розмір моделі зменшується в ~4 рази, швидкість зростає на 20–40% на CPU.
  • Post-training integer quantization — ваги та активації в INT8, потребує калібрувальний датасет. Потрібен для NNAPI та Edge TPU.
  • Quantization-aware training (QAT) — найкраща точність при INT8, але потребує донавчання моделі.

Галузеве правило: завжди профілюйте квантизовані моделі на цільових пристроях.

Тип квантизації Розмір моделі Інференс (CPU) Точність
float32 100% 1x Еталон
dynamic range int8 ~25% 1.2–1.4x 1–2% втрата
full integer int8 ~25% 1.5–2x 1–3% втрата
QAT int8 ~25% 1.5–2x 0.5–1% втрата

Приклад з практики: додаток для розпізнавання рослин (класифікатор EfficientNetB0, 29 MB float32). Після full integer quantization — 7.4 MB, інференс з NNAPI на Pixel 7 — 18 ms проти 95 ms на float32 CPU. На Snapdragon 778G з NNAPI довелося відкотитися на CPU через непідтримувану LEAKY_RELU операцію — додали fallback через NnApiDelegate.Options.setAllowFp16PrecisionForFp32.

Чек-лист оптимізації моделі
  1. Вибір типу квантизації під цільовий делегат.
  2. Калібрування full integer quantization на репрезентативному датасеті.
  3. Профілювання на 3–5 пристроях різного класу.
  4. Fallback-стратегія при непідтримуваних операціях.
  5. Тестування точності на тестовій вибірці.

Що входить в роботу

  • Аналіз та конвертація — завантаження моделі з TensorFlow/Keras, PyTorch (через ONNX), вибір формату (float32/int8/float16).
  • Вибір делегата — профілюємо на 3–5 реальних пристроях, визначаємо оптимальний делегат (CPU/GPU/NNAPI/CoreML).
  • Інтеграція в код — підключаємо Task Library (ImageClassifier, ObjectDetector) для Android, обгортаємо в actor для iOS, забезпечуємо thread-safety.
  • OTA-оновлення — завантаження моделі за URL з верифікацією SHA-256, керування через Firebase Remote Config.
  • Тестування — навантажувальне тестування, перевірка точності на тестовій вибірці.
  • Документація та навчання — інструкція з оновлення моделі, контакти для підтримки.

Для точної оцінки вашої моделі зв'яжіться з нами — ми запропонуємо оптимальне рішення.

Інтеграція в додаток

На Android використовуємо org.tensorflow:tensorflow-lite + org.tensorflow:tensorflow-lite-gpu через Gradle. Для підтримки Task Library (ImageClassifier, ObjectDetector) — org.tensorflow:tensorflow-lite-task-vision. Task Library бере на себе передобробку зображення (ресайз, нормалізація), що прибирає значний пласт boilerplate.

На iOS — CocoaPods pod 'TensorFlowLiteSwift' або Swift Package Manager (починаючи з TFLite 2.13). Інференс обгортаємо в actor для thread-safety:

actor TFLiteInferenceService { private let interpreter: Interpreter func classify(pixelBuffer: CVPixelBuffer) throws -> [Float] { ... } } 

Завантаження моделі з бандла або за URL з верифікацією через SHA-256. Для OTA-оновлень — Firebase Remote Config з URL моделі, download через URLSession.downloadTask в фоні.

Терміни

Інтеграція готової TFLite-моделі з вибором делегата та базовою оптимізацією — від 1 тижня. Повний цикл з конвертацією, квантизацією, тестуванням на таргетних пристроях та OTA-оновленням — 2–3 тижні. Вартість розраховується індивідуально після аналізу моделі та вимог.

Зв'яжіться з нами — ми оцінимо вашу модель і запропонуємо оптимальне рішення за 1–2 дні. Гарантуємо прозорість кожного етапу. Замовте консультацію з оптимізації моделі.