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
390
OpenTalks.AI - Дмитрий Пагин, Ускорение сверточных сетей с помощью квантизации. Quantization aware training.
opentalks2
February 04, 2021
Tweet
Share
More Decks by opentalks2
See All by opentalks2
OpenTalks.AI - Сергей Терехов, Тензорная машина ассоциативного вывода
opentalks2
0
370
OpenTalks.AI - Максим Милков, Оптимизация бизнес-процессов и документооборота с использованием NLP технологий Бизнес-кейс: Цифровой аудитор
opentalks2
0
380
OpenTalks.AI - Анна Серебряникова, Влияние технологий ИИ на развитие машиночитаемого документооборота в России
opentalks2
0
340
OpenTalks.AI - Илья Жариков, Optimization of neural networks and their development
opentalks2
0
390
OpenTalks.AI - Никита Андриянов, Анализ эффективности распознавания образов на нестандартных типах изображений на примере радиолокационных изображений местности и рентгеновских снимков багажа и ручной клади
opentalks2
0
350
OpenTalks.AI - Сергей Алямкин, AutoDL или как сократить затраты на разработку и использование в проде нейронных сетей
opentalks2
0
440
Никитин.pdf
opentalks2
0
340
OpenTalks.AI - Александр Петюшко, Исследование устойчивости сверточных нейросетей на примере систем детекции и распознавания лиц
opentalks2
0
390
OpenTalks.AI - Сергей Лукашкин, Как ИИ повлиял на бизнес в 2020 году
opentalks2
0
380
Other Decks in Business
See All in Business
enechain company deck
enechain
PRO
8
97k
ネオス株式会社 会社紹介
neos
0
310
CFMフレームワークを活用した AWSコスト管理ガイドラインを策定した話
o2mami
2
460
WED Company Guide
wed
2
44k
フィリピンにおける獲得可能な事業機会
jpy
1
140
アッテル会社紹介資料/culture deck
attelu
10
14k
スマートキャンプ株式会社 会社紹介資料 / companydeck
smartcamp
18
650k
プロダクトマネージャーこそがリーダーだった!? リーダーシップ論から見るPdMとスクラムのいびつな関係
bonotake
5
4.1k
コンセンサスゲーム「NASAゲーム 2025 カード版」
chibanba1982
PRO
0
150
◆GrandCentral_Company deck
grandcentral_yoshida
0
120
アマチュア技術広報の振り返りと目標
bicstone
2
230
クロスマート株式会社_会社紹介資料
xmart_recruit
1
110
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
244
12k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Building Adaptive Systems
keathley
39
2.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
BBQ
matthewcrist
85
9.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
192
16k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Why Our Code Smells
bkeepers
PRO
335
57k
Side Projects
sachag
452
42k
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%