Розгортання AI на Google Coral: інференс на Edge TPU з 180 FPS
Наш клієнт з логістики інтегрував детекцію дефектів на конвеєрі — обрав Coral USB Accelerator для роботи на Raspberry Pi 4. Модель EfficientDet-Lite1 у FP32 видавала 5 FPS при необхідних 25. Після INT8 квантизації та компіляції ми отримали 180 FPS при 1.5 Вт. Окупність рішення — менше 6 місяців за рахунок зниження витрат на хмарні обчислення. Ключовий фактор — вибір правильного representative dataset для квантизації, щоб зберегти mAP на рівні 0.87.
Google Coral — платформа для високоефективного ML inference на edge. Edge TPU — спеціалізований ASIC для INT8 inference: 4 TOPS при 0.5–2 Вт споживання. Згідно з офіційною документацією, ASIC забезпечує максимальну продуктивність при мінімальному енергоспоживанні, ідеально для battery-powered або low-power applications.
Форм-фактори Coral
| Модель |
Інтерфейс |
Цільове застосування |
Споживання |
| USB Accelerator |
USB 3.0 |
Raspberry Pi / x86 |
1.5 Вт |
| PCIe M.2 Accelerator (A+E) |
M.2 |
Вбудовані системи |
2 Вт |
| Dev Board |
SoC i.MX 8M |
Автономний комп'ютер |
5 Вт |
| Dev Board Mini |
SoC i.MX 8M |
Компактні пристрої |
3 Вт |
Чому Edge TPU швидший за CPU?
Edge TPU — це ASIC, оптимізований під INT8 матричні множення. На відміну від універсального CPU, він не витрачає енергію на розгалуження та кешування. Результат: 400 FPS на MobileNet SSD при 28 мВт. Для порівняння, той самий код на Raspberry Pi 4 CPU дає близько 8 FPS при 3 Вт. Економія енергоспоживання сягає 90%. Це робить Coral ідеальним для інференсу на краю (edge inference).
Як оптимізувати модель для Edge TPU?
Основний workflow включає чотири кроки: навчання моделі в TensorFlow → пост-тренувальна INT8 квантизація з representative dataset → компіляція через edgetpu_compiler → деплой з PyCoral API. Критично, щоб всі операції підтримувалися TPU (Conv2D, DepthwiseConv, ReLU та ін.). Несумісні операції автоматично переносяться на CPU, різко знижуючи швидкість. Ми перевіряємо сумісність на етапі аудиту та підбираємо квантизаційний датасет, щоб уникнути падіння точності.
Приклад команди компіляції:
edgetpu_compiler model_quant.tflite
Популярні моделі та їх продуктивність на Coral USB Accelerator
| Модель |
Розмір |
FPS (INT8) |
Затримка (ms) |
| MobileNetV2 SSD |
6.2 MB |
230 |
4.3 |
| EfficientDet-Lite1 |
7.8 MB |
180 |
5.6 |
| InceptionV3 |
7.5 MB |
95 |
10.5 |
| ResNet50 |
6.8 MB |
110 |
9.1 |
Типові проблеми при деплої
- Розмір моделі перевищує 8 МБ — частина обчислень йде на CPU, падіння швидкості.
- Використання операцій, що не підтримуються TPU (наприклад, Select, StridedSlice) — автоматичний fallback на CPU.
- Відсутність representative dataset при квантизації — велика помилка в метриках.
Ми вирішуємо ці проблеми на етапі аудиту моделі: перевіряємо сумісність, підбираємо квантизаційний датасет, застосовуємо pruning або knowledge distillation.
Як ми це робимо: кейс деплою на Coral USB Accelerator (з нашої практики)
Для клієнта зі сфери логістики вимагалося детектувати пошкодження коробок на конвеєрі. Ми обрали MobileNet SSD, конвертували в TFLite з INT8 квантизацією на 500 репрезентативних кадрах. Після компіляції отримали 230 FPS на USB Accelerator при затримці менше 10 ms. Рішення запущено на 20 Raspberry Pi 4 — відхилення FPS менше 5%. Економія на хмарних обчисленнях склала близько 40%.
Процес роботи
- Аналіз моделі та датасету – перевірка сумісності операцій, оцінка точності після квантизації.
- Оптимізація – pruning, quantization-aware training (QAT) або підбір representative dataset.
- Компіляція та інтеграція – збірка під цільовий пристрій, налаштування PyCoral або C++ API.
- Тестування – перевірка на реальних даних, виміри latency p99, споживання енергії.
- Деплой – розгортання на парку пристроїв, моніторинг.
Що входить в роботу
- Звіт щодо сумісності моделі з Edge TPU.
- Конвертація та компіляція (TFLite → Edge TPU).
- Інтеграція з PyCoral або C++ на цільовий пристрій.
- Тестування на вашому залізі (до 3 пристроїв).
- Документація з розгортання та експлуатації.
Терміни та вартість
Терміни: від 1 до 3 тижнів залежно від складності моделі. Вартість розраховується індивідуально після аудиту. Замовте безкоштовний аудит вашої моделі — ми оцінимо проект за 2 робочі дні. Отримайте консультацію, щоб обговорити деталі та терміни.
Чому обирають нас
- 30+ успішних проєктів на Coral та інших платформах.
- Гарантія: доведемо модель до робочого стану на вашому пристрої.
- Індивідуальний підхід: підбираємо стек під задачу, включаючи pruning або knowledge distillation.
Зв'яжіться з нами, щоб прискорити деплой вашого AI-рішення на Coral Edge TPU.
Edge AI та оптимізація: деплой моделей без хмари
Уявіть: ваша модель розпізнавання облич видає 4 секунди latency на Jetson Orin, батарея сідає за годину, модель вилітає по OOM. Ми — команда інженерів з Edge AI — оптимізували понад 150 моделей для граничних пристроїв. Без профілювання та правильного вибору квантизації або дистиляції проект приречений. Розрив між дослідницьким кодом та edge-деплоєм — окрема інженерна дисципліна, і ми допомагаємо її освоїти за 2–16 тижнів під ключ. Справа не в експорті, а в системній роботі із залізом: GPU utilization, latency p99, memory bandwidth.
Чому просто «експортувати модель» не працює?
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 — основні бібліотеки.
Зв'яжіться з нами для безкоштовного профілювання вашої моделі — ми оцінимо latency та запропонуємо план оптимізації.
| Метод |
Час реалізації |
Деградація точності |
Інструменти |
| 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 |
Прунінг та дистиляція: коли квантизації недостатньо
Структурний прунінг видаляє канали або шари. Наприклад, видалення 40% каналів ResNet-50 з наступним fine-tuning дає -35% розміру, -28% latency при втраті top-1 accuracy лише на 1.2%. Інструменти: torch.nn.utils.prune, для transformer — прунінг attention heads (movement pruning, LTP). Глибша техніка — N:M sparsity, коли з кожних M ваг залишаються N ненульових (NVIDIA Ampere підтримує 2:4).
Knowledge distillation — навчаємо маленьку student імітувати велику teacher через KLDivLoss на soft labels. Feature distillation на проміжних шарах (hint-based) дає краще збереження якості. Hugging Face DistilBERT: 66M vs 110M параметрів, -40% latency, -3% на GLUE. Температура дистиляції — ключовий гіперпараметр (типово 4–8).
Комбінований підхід: дистиляція → прунінг → 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 — прискорення в 3.5 рази.
Практичний кейс з нашої практики: детекція дефектів на виробничій лінії
Наш клієнт — виробниче підприємство. Завдання: виявлення подряпин на металі в реальному часі, 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 години. Замовте безкоштовне профілювання прямо зараз.