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

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

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

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

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

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

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

Етапи розробки

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

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

TensorFlow Lite — один з двох стандартів мобільного on-device ML (поряд з Core ML та ONNX Runtime). Його сила — у контролі: ви обираєте делегат, рівень квантизації та спосіб завантаження моделі. Його слабість — та ж гнучкість: неправильний делегат або неоптимізована модель дають гіршу продуктивність, ніж хмарний API.

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

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

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

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

Оптимізація моделі перед розгортанням

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

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

Використання tf.lite.TFLiteConverter з optimizations = [tf.lite.Optimize.DEFAULT] охоплює перші два. QAT налаштовується через tfmot.quantization.keras.quantize_model.

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

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

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

На iOS, CocoaPods pod 'TensorFlowLiteSwift' або Swift Package Manager (TFLite 2.13+). Обгорніть infer в actor для thread-safety:

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

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

Часові рамки

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