Интеграция AI в мобильное приложение
Разработчики мобильных приложений часто сталкиваются с дилеммой: разместить AI-модель на сервере или запускать прямо на устройстве. Cloud inference даёт доступ к мощным моделям, но добавляет latency и зависимость от сети. On-device inference обеспечивает приватность и мгновенный отклик, но ограничен размером модели и батареей. Мы решаем обе задачи, подбирая оптимальный гибридный подход для каждого кейса. Наша задача — сделать AI-функцию быстрой, надёжной и незаметной для пользователя.
Какие задачи решает AI в мобильном приложении?
AI в мобильных приложениях решает широкий спектр задач: реальное распознавание объектов на камере для ритейла или AR, персонализированные рекомендации на основе поведения пользователя, голосовое управление и чат-боты в офлайн-режиме, автоматический перевод текста и модерация контента. Например, для клиента из ритейла мы внедрили on-device детекцию товаров на YOLOv8n — latency 30 мс на iPhone 13, полная автономность без интернета. Результат — рост конверсии на 22% за счёт мгновенной обработки. Свяжитесь с нами, чтобы оценить, как on-device AI может улучшить ваше приложение.
Cloud AI: когда модель не помещается на устройство
Простейший путь: мобильное приложение → REST API → LLM/ML модель на сервере → ответ. Подходит для сложных задач, где модель не помещается на устройство. Недостатки: latency (100–2000 мс), зависимость от сети, затраты на сервер. Стек: iOS (URLSession), Android (Retrofit/OkHttp). Streaming responses для LLM (SSE/WebSocket). Мы используем GPU-инстансы для инференса и кэширование частых запросов, чтобы снизить затраты до 40%.
On-Device AI: запуск модели локально
Модель работает локально — приватность, offline-режим, нулевая latency. На iOS конвертируем PyTorch в Core ML через coremltools, на Android используем TensorFlow Lite с NNAPI. Аппаратное ускорение на Neural Engine (iPhone 12+) и Hexagon DSP (Qualcomm) даёт прирост до 10× по сравнению с CPU. Для маленьких LLM применяем квантование INT8 — падение качества менее 2%, но скорость в 2–3 раза выше.
Почему гибридная архитектура эффективнее чистого cloud или on-device?
Гибридный подход позволяет комбинировать сильные стороны: простые задачи (например, детекция лиц) выполняются на устройстве с latency 10 мс, а сложные (анализ эмоций) — в облаке. Это снижает нагрузку на сервер и обеспечивает быстрый отклик для критичных операций. В одном из проектов мы разделили пайплайн: on-device классификация изображений (MobileNet) дала 98% точности, а cloud-модуль (ResNet) обрабатывал только спорные случаи — это сократило облачные расходы на 60%. Получите консультацию, чтобы узнать, какой подход оптимален для вашего приложения.
Сравнение популярных моделей для on-device
| Модель |
Размер (MB) |
Latency (iPhone 13) |
Точность (Top-1) |
Применение |
| MobileNetV3 |
4.3 |
5 мс |
75% |
Классификация |
| YOLOv8n |
6.3 |
30 мс |
85% (mAP) |
Детекция объектов |
| DistilBERT |
120 |
25 мс |
97% (GLUE) |
NLP-задачи |
| Whisper tiny |
75 |
150 мс |
90% (WER) |
Распознавание речи |
Процесс работы
- Аналитика — изучаем бизнес-задачу, технические ограничения, нагрузочные тесты.
- Проектирование — выбираем стек, архитектуру, модель, метод оптимизации.
- Прототип — разворачиваем baseline модель, замеряем качество и скорость.
- Оптимизация — квантование, pruning, настройка батчей, аппаратное ускорение.
- Интеграция — встраиваем в нативный код, реализуем graceful degradation.
- Тестирование — на реальных устройствах (iPhone 12–16, Samsung Galaxy), замеры latency p99, батарея.
- Деплой — публикация в App Store/Google Play, мониторинг, сбор метрик.
Сравнение подходов Cloud vs On-Device vs Гибрид
| Критерий |
Cloud Inference |
On-Device Inference |
Гибрид |
| Latency |
100–2000 мс |
<10–50 мс |
10–200 мс |
| Приватность |
Данные на сервере |
Полная приватность |
Гибкая |
| Затраты |
Высокие (GPU-часы) |
Низкие (только батарея) |
Средние |
| Модели |
Любые (GPT-4, Stable Diffusion) |
Лёгкие (MobileNet, DistilBERT) |
Разделение |
| Offline |
Нет |
Да |
Частично |
Что входит в работу
- Документация: описание архитектуры, схема данных, инструкция по дообучению.
- Доступы: репозиторий с кодом, обученная модель, конфиги.
- Обучение команды: воркшоп по поддержке AI-функции.
- Гарантия: 3 месяца поддержки после запуска. Более 20 успешных проектов в retail, fintech, healthcare.
Сроки и стоимость
Сроки реализации: от 2 недель (прототип cloud) до 10 недель (полный цикл гибрид). Стоимость рассчитывается индивидуально после аудита проекта. Получите предварительную оценку: свяжитесь с нами. Закажите консультацию — мы бесплатно проанализируем вашу задачу и предложим оптимальное решение.
Edge AI и оптимизация: деплой моделей без облака
Представьте: ваша модель распознавания лиц выдаёт 4 секунды latency на Jetson Orin, батарея садится за час, модель вылетает по OOM. Мы — команда инженеров по Edge AI с 5+ лет опыта — оптимизировали более 150 моделей для граничных устройств. Без профилирования и правильного выбора квантизации или дистилляции проект обречён. Разрыв между исследовательским кодом и edge-деплоем — отдельная инженерная дисциплина, мы помогаем её освоить за 2–16 недель под ключ. Услуги Edge AI и оптимизация моделей — это не просто экспорт, а системная работа с железом.
Почему просто «экспортировать модель» не работает
PyTorch-модель с float32 и batch_size=32 не готова к edge. Типичные проблемы:
- ResNet-50 в fp32 занимает 98 MB, inference на Cortex-A78 — 380 мс. После INT8-квантизации
torch.ao.quantization — 24 MB, 95 мс. Экспорт в ONNX + TensorRT на Jetson — 28 мс.
- YOLOv8m на Raspberry Pi 5 в fp32 — 2.8 fps. TFLite INT8 — 9.4 fps. С XNNPACK делегатом — 14 fps.
- Transformer-энкодер на мобильном CPU: MobileBERT в fp16 через CoreML на iPhone 15 — 18 мс/инференс.
distilbert-base-uncased в ONNX — 42 мс.
Проблема не в выборе «квантизировать или нет» — правильный путь определяется устройством, задачей и допустимой деградацией метрики. Предлагаем оценку вашего проекта: за 24 часа скажем, насколько реально ускорить модель.
Какой метод квантизации выбрать для вашей задачи?
PTQ (Post-Training Quantization) — быстрый путь. Берёте обученную модель, прогоняете calibration dataset (200–1000 примеров), получаете INT8 или INT4 веса. Инструменты: torch.ao.quantization, ONNX Runtime quantization tool, bitsandbytes. Деградация точности: 0.5–2% на классификации. Красная зона — детекция мелких объектов и сегментация, где PTQ даёт -4–8% mAP.
QAT (Quantization-Aware Training) — обучение с симулированными квантизационными шумами. Дороже (переобучение), но деградация 0.1–0.5%. Оправдано, когда PTQ неприемлем. В PyTorch — torch.ao.quantization.prepare_qat().
GPTQ / AWQ — для LLM. AWQ лучше сохраняет качество при 4-bit квантизации. llm-compressor от Neural Magic или autoawq — основные библиотеки.
| Метод |
Время реализации |
Деградация точности |
Инструменты |
| PTQ |
1–2 дня |
0.5–2% (до 8% на детекции) |
torch.ao, ONNX RT, bitsandbytes |
| QAT |
1–3 недели |
0.1–0.5% |
torch.ao.prepare_qat, TF Quantization |
| GPTQ/AWQ |
3–7 дней |
1–3% (LLM) |
autoawq, llm-compressor |
Экономия от выбора правильного метода: до 350 000 ₽ в год на облачных инстансах за счёт снижения latency и энергопотребления. Стоимость проекта рассчитывается индивидуально — диапазон от 100 000 до 500 000 ₽ в зависимости от сложности модели.
Прунинг и дистилляция
Структурный прунинг удаляет каналы или слои. torch.nn.utils.prune — базовый инструмент. Для transformer — прунинг attention heads (LTP, movement pruning). Результат: ResNet-50 после удаления 40% каналов с fine-tuning — -35% размера, -28% latency, -1.2% top-1 accuracy.
Knowledge distillation — обучаем маленькую student имитировать большую teacher. Классика через KLDivLoss на soft labels. Feature distillation на промежуточных слоях эффективнее. Hugging Face DistilBERT: 66M vs 110M параметров, -40% latency, -3% на GLUE. Согласно Wikipedia, это техника сжатия модели.
Комбинированный подход: дистилляция → прунинг → QAT. Даёт максимальный эффект на ограниченном железе. Экономия на облачных вычислениях достигает 70% — мы фиксировали такую у нескольких клиентов.
Целевые платформы и инструменты
| Платформа |
Предпочтительный формат |
Инструмент |
Специфика |
| NVIDIA Jetson |
TensorRT engine |
trtexec, torch2trt |
INT8 calibration, DLA offload |
| Apple Silicon / iOS |
CoreML (.mlmodel) |
coremltools |
ANE (Neural Engine) автоматически |
| Android |
TFLite (.tflite) |
tf.lite.TFLiteConverter |
GPU delegate, NNAPI |
| x86 CPU |
ONNX + ORT |
onnxruntime |
AVX-512, VNNI |
| Arm Cortex |
TFLite / ONNX |
ort-arm, tflite |
XNNPACK, NEON |
| Qualcomm NPU |
QNN (.dlc) |
Qualcomm AI Hub |
Hexagon DSP |
TensorRT — главный инструмент для NVIDIA edge. TRT строит граф с fusion операторов, выбирает оптимальные ядра. На Jetson AGX Orin YOLOv8m в TRT INT8 даёт 78 fps против 22 fps в fp16 PyTorch.
Практический кейс: детекция дефектов на производственной линии
Задача: обнаружение царапин на металле в реальном времени, 30 fps, камера к Jetson Xavier NX (16GB). Исходная модель YOLOv8l mAP50 0.91, inference на сервере 28 мс, на Jetson в fp16 — 110 мс (9 fps). Не подходит.
Шаги оптимизации:
- Переход на YOLOv8m — mAP50 0.887 (-2.3%), 68 мс
- Экспорт в TensorRT FP16 через
yolo export format=engine half=True — 31 мс (32 fps)
- INT8 calibration на 500 кадрах — 22 мс (45 fps), mAP50 0.879
Итого: деградация 3.5% при 5× ускорении. Клиент получил engine и документацию. Гарантируем, что метрика не упадёт ниже оговорённого порога — прописано в договоре.
Пример профилирования модели (latency по слоям)
Срез профиля YOLOv8m на Jetson Xavier NX (fp16):
- Convolution (layer 1–5): 12 ms
- Bottleneck (layer 6–10): 8 ms
- Head (detection): 11 ms
Узкое место — последние слои head'а. После квантования head'а отдельно latency head снизилась до 4 ms.
Что входит в работу
- Отчёт по профилированию модели на целевом устройстве (latency по слоям, узкие места)
- Выбор и обоснование методов оптимизации (quantization / pruning / distillation)
- Оптимизированная модель (TensorRT engine / TFLite / CoreML / ONNX)
- Конфиги для воспроизведения (скрипты, Docker-образ, инструкция)
- Тестирование на реальном устройстве (не менее 10 000 инференсов)
- Обучение вашей команды (2 часа онлайн)
- Поддержка 1 месяц после передачи
Как заказать оптимизацию модели
- Оставьте заявку на сайте или свяжитесь с нами любым удобным способом.
- Мы проводим бесплатное профилирование вашей модели на целевом устройстве в течение 24 часов.
- Готовим план оптимизации с оценкой trade-off (скорость vs качество).
- Вы утверждаете план — мы приступаем к работе.
- После завершения передаём оптимизированную модель, конфиги и документацию.
- Проводим обучение вашей команды и предоставляем месячную поддержку.
Сроки: оптимизация готовой модели — 2–4 недели. Разработка с нуля под edge — 6–16 недель.
Получите консультацию — мы бесплатно оценим вашу модель и предложим план за 24 часа. Закажите бесплатное профилирование прямо сейчас.