Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OpenTalks.AI - Дмитрий Пагин, Ускорение сверточ...
Search
opentalks2
February 04, 2021
Business
0
400
OpenTalks.AI - Дмитрий Пагин, Ускорение сверточных сетей с помощью квантизации. Quantization aware training.
opentalks2
February 04, 2021
Tweet
Share
More Decks by opentalks2
See All by opentalks2
OpenTalks.AI - Сергей Терехов, Тензорная машина ассоциативного вывода
opentalks2
0
380
OpenTalks.AI - Максим Милков, Оптимизация бизнес-процессов и документооборота с использованием NLP технологий Бизнес-кейс: Цифровой аудитор
opentalks2
0
390
OpenTalks.AI - Анна Серебряникова, Влияние технологий ИИ на развитие машиночитаемого документооборота в России
opentalks2
0
340
OpenTalks.AI - Илья Жариков, Optimization of neural networks and their development
opentalks2
0
410
OpenTalks.AI - Никита Андриянов, Анализ эффективности распознавания образов на нестандартных типах изображений на примере радиолокационных изображений местности и рентгеновских снимков багажа и ручной клади
opentalks2
0
350
OpenTalks.AI - Сергей Алямкин, AutoDL или как сократить затраты на разработку и использование в проде нейронных сетей
opentalks2
0
450
Никитин.pdf
opentalks2
0
340
OpenTalks.AI - Александр Петюшко, Исследование устойчивости сверточных нейросетей на примере систем детекции и распознавания лиц
opentalks2
0
410
OpenTalks.AI - Сергей Лукашкин, Как ИИ повлиял на бизнес в 2020 году
opentalks2
0
380
Other Decks in Business
See All in Business
M&A戦略に関する資料
portpr
0
14k
第9回 情シス転職ミートアップ - わたしのミッションとLayerXに決めた理由
shimosyan
0
300
三井物産グループのデジタル証券〜銀座〜徹底解説セミナースライド(20250630)
c0rp_mdm
PRO
0
1.5k
Ускорение создания стратегии с помощью ИИ
alexanderbyndyu
0
640
航空機設計者がResearcherを社内に広めてみた
aonomasahiro
1
440
Recruitment Deck_Growth Strategy_202506
sixtypercent
0
280
VISASQ: ABOUT DEV TEAM
eikohashiba
4
30k
ベタートラップと夏
mosa_siru
8
3k
メドピアグループ紹介資料
medpeer_recruit
10
130k
How to use ‘Economies of Empowerment’ to get the benefits of both speed and scale - AgileAus 2025
matthewskelton
PRO
0
150
ユウミ会社説明資料
yumi2023
0
450
ポート株式会社_会社紹介資料(2025/06/13更新)
portpr
1
2.3k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
54
11k
It's Worth the Effort
3n
185
28k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Speed Design
sergeychernyshev
32
1k
Statistics for Hackers
jakevdp
799
220k
Embracing the Ebb and Flow
colly
86
4.7k
Thoughts on Productivity
jonyablonski
69
4.7k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Fireside Chat
paigeccino
37
3.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Transcript
Ускорение сверточных сетей с помощью квантизации. Quantization aware training. Dmitriy
Pagin, ML and CV developer
Задача
Задача • Детектировать и трекать автомобили с камер и дронов
Условия • Облачная обработка с клиентского приложения • Видеокарты среднего
сегмента - RTX 2060/2080 • Требуется минимум 30 fps скорости обработки
Сложности • Высокая скорость • Маленькие размеры (~10px)
> 70k cars on 4k images Dataset
Baseline 10 fps из коробки на FullHD фреймах
10 fps -> 12 fps -> 40 fps -> ???
OpenTalksAI 2020 pruning физичность данных
Как сделать быстрее?
Методы • Quantization • Quantization aware training
Quantization
Quantization Quantization - приведение весов и вычислений к типам меньшей
точности с целью ускорения инференса и уменьшения размера сети
Quantization
Quantization По умолчанию - float32 • float16 - округление •
int8 - округление + нормирование (256! значений) • int4 … • binary ...
Quantization
Quantization. INT8 error increasing
Мы поверили • low-precision инференс в float16 даёт бесплатное(?) 2-кратное
ускорение • low-precision инференс в int8 может ускорить до 4 раз, но часто ведет к западению метрик
FPS: +100% (40 fps -> 80 fps) mAP75: -1.2% (0.95
-> 0.938) Мы попробовали
Мы попробовали Сложный ролик с тенями Добор датасета Дообучение Тест
и замена модели
float32 float16 Мы попробовали
Quantization Aware Training
float32 float16 Потеря “нежных” фич: • тени • ночные ролики
• авто с прицепами Quantization aware training. Зачем?
float32 float16 Ухудшение для маленьких объектов: S (дисперсия координат для
объектов < 100px в ширину) = 5.1 px Quantization aware training. Зачем?
without Quantization aware training with float32 float32 float32 float32 float16
float16 float16 float16
Quantization aware training benefits • гарантированное сохранение метрик при TensorRT
float16 inference • 2x уменьшение размера модели • “gradient clipping” регуляризация -> лучшее обобщение
Quantization aware training Сложный ролик с тенями Добор датасета Quantization
aware дообучение Тест и замена модели
float32 float16 Quantization aware training
FPS: +100% (40 fps -> 80 fps) mAP75: -0.2% (0.95
-> 0.948)
Итоги • TensorRT low-precision must have -> 2x ускорение •
TensorRT low-precision лучше использовать после quantization aware training
10 fps -> 12 fps -> 40 fps -> 80
fps OpenTalksAI 2020 pruning физичность данных quantization
None
Thanks! Questions?
[email protected]
+7 952 335 65 70
Appendix. Examples
Appendix. Examples
Appendix. Examples
Learning and Fine-tuning - 608x608 px - batchSize = 3
- custom augmenters - Radam optimizer (instead warmup + reduce LR) - Hard negative mining for trucks
None
Appendix. Radam
Weights Pruning Pruning - уменьшение размера обученной сети без потери
точности путем удаления слабых узлов
Weights Pruning
Weights Pruning
Weights Pruning. Convs masking 1. Маскируем i-ую свертку 2. Прогоняем
тестовый датасет и запоминаем метрику 3. Повторяем шаг 1 для всех сверток end: удаляем свертки, которые слабо влияют на итоговую метрику для средних и больших моделей ДОЛГО
Weights Pruning. Low magnitude Гипотеза - свертки с малыми значениями
весов, вносят малый вклад в итоговое принятие решения 5 -3 1 1 1 2 3 1 -4 0 1 -1 1 1 0 0 1 -1
Weights Pruning. Low magnitude Гипотеза - свертки с малыми значениями
весов, вносят малый вклад в итоговое принятие решения 5 -3 1 1 1 2 3 1 -4 0 1 -1 1 1 0 0 1 -1
Weights Pruning. Цикл
Weights Pruning. Процесс Шаг mAP75 Число параметров, млн Размер сети,
мб От изначальной, % Время прогона, мс Условие вырезания 0 0.963 39 155 100 112 - 1 0.956 37 142 92 106 5% от всех 2 0.962 34 134 87 102 5% от всех 3 0.958 31 124 80 95 15% для слоев с 400+ сверток 4 0.934 29 116 75 90 10% для слоев с 100+ сверток
Weights Pruning -25% convs = size: 155 mb mAp: 0.963
inf: 112 ms size: 124 mb mAp: 0.958 inf: 90 ms Inference: +15% mAP75: -0,5%