Как стать автором
Обновить

Приемы повышения производительности инференса глубоких моделей с DL Workbench. Часть 1 — введение и установка

Время на прочтение6 мин
Количество просмотров2.5K
Всего голосов 6: ↑6 и ↓0+6
Комментарии6

Комментарии 6

Немного диссонанс возник:
> Приемы повышения производительности инференса глубоких моделей
> установим Docker на Windows 10 и запустим DL Workbench

В том смысле, что оптимизация инференсов, имеющая в результате полезность (в скорости И/ИЛИ деньгах) для продакшн сред вряд ли начиналась бы с Docker под Windows.

Иначе говоря — как можно применить OpenVINO в условиях какой-то более «продакшн» среды, например Docker-K8s на ресурсах AWS/GCP?

Или это вопрос для следующих частей цикла? :)

Идея поста — познакомить с тем, что вообще есть проблема оптимизации инференса и как можно ее решить с помощью DL Workbench, причем не на словах, а действительно попробовать запустить Workbench и потестить производительность, выбрать наилучшие параметры. Для AWS точно также запускается DL Workbench из Docker и определяется оптимальный размер пачки / количество реквестов, которые потом нужно будет использовать в вашем проекте.


Интеграция с вашим приложением может быть выполнена различным образом, на уровне C++ или Python кода, либо же создание REST-сервиса, тут всем подходят разные варианты. Для небольших приложений думаю подойдет создание Deployment Package.


Если это интересно читателям, то можно сделать и такой эксперимент.

Сугубо лично мне было бы полезно!
Осмелюсь предположить и надеюсь, что всё же не только мне.

Вторая часть уже готова, в ней будет про INT8 и Throughput mode. А вот третья часть не планировалась пока, можно попробовать.

Хехе, но вся загвоздка и трудность вот тут «В OpenVINO можно сконвертировать, оптимизировать и запустить модели в форматах Caffe, TensorFlow, MXNet, ONNX» так как обычная сначала требуется обратная операция, а потому уже все эти оптимизации на уровне фьюзинга слоев. Хотелось бы видеть в подобных гайдах как например сделать такой трюк например с Vit. Сам порой трачу по паре недель чтоб написать подобные модельки с использованием tensorrt c++, где есть возможность отладиться по слоям, что уж тут говорить о различных конвертерах которые часто выплевывают абракадрабру и все на этом, иди гугли, пиши ишшью и жди ответа по неделе.

При конвертации моделей в OpenVINO можно все оптимизации выключить, это делается добавлением ключей конвертации: https://docs.openvinotoolkit.org/latest/openvino_docs_MO_DG_prepare_model_Model_Optimization_Techniques.html
Если хочется отлаживаться по слоям в любом фреймворке, то можно просто делать копию промежуточного тензора и сделать его выходным, тогда на выходе можно получить значения после каждого слоя. Через DL Workbench посмотреть значения по-моему нельзя, только время выполнения каждого слоя.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий