Оптимизация ML-модели для запуска на Edge-устройствах
Модель, обученная на сервере с 80 GB GPU, не запускается на Raspberry Pi. Оптимизация для edge — комплекс техник снижения размера и latency модели при сохранении приемлемого качества.
Техники оптимизации
Quantization: Самый impactful способ. Float32 → INT8: уменьшение размера 4x, ускорение 2–4x (на поддерживающем hardware). INT4: 8x уменьшение, потери качества зависят от задачи.
Post-Training Quantization (PTQ): быстро, нужен calibration dataset (100–1000 samples). Quantization-Aware Training (QAT): обучаешь с квантизацией, на 1–3% точнее PTQ.
Pruning: Удаление малозначимых весов. Unstructured pruning (80%+ sparsity) → сложно ускорить на стандартном hardware. Structured pruning (удаление фильтров/голов) → прямое ускорение на любом hardware.
Knowledge Distillation: Маленькая студенческая модель обучается воспроизводить выходы большой учительской. BERT → TinyBERT: 7.5x быстрее, 96% GLUE score.
Neural Architecture Search: Поиск оптимальной архитектуры под target latency/memory constraint. MobileNetV2 автоматически найдена NAS как оптимальная для мобильных устройств.
Operator Fusion: Слияние операций: Conv+BN+ReLU выполняется как одна operation. Реализовано в TFLite converter, ONNX Runtime, TensorRT.
Benchmark подход
Профилирование на целевом устройстве — единственный честный способ. Latency на RTX 4090 ≠ latency на Jetson Nano. Используем layer-wise profiling для выявления bottlenecks.







