Комментарии 11
жалко что перевод, а то очень интересны некоторые аспекты?
насколько отклоняются результаты onnx на основном фреймворке в обоих случаях?
есть ли сравнение для jit моделей?
собственно если нужно качество моделей и скорость стоит ли смотреть в эту сторону? конкретнее для больших задач классификации на основе resnet для распознавания.
где можно побольше почитать по теме?
Сама по себе конвертация в onnx почти lossless( там есть некоторая разница в наборе операций и их представлении с TF/TFLite ). Года 3-4 назад, когда сталкивался, на чём-то вроде MobileNetV2 погрешность если и была, то на уровне точности fp32
а квантизация как влияет?
Точность ожидаемо проседает, но точнее не скажу - я не MLщик
Квантизация не особо сильно ухудшает качество модели (иногда в районе 1-го % или даже меньше). Но, всегда нужно держать под рукой тестовый датасет, чтобы можно было бы проверить - "а на сколько качество ухудшилось, и достаточно ли его теперь".
Зависит от модели, но по опыту практически нет изменений в точности (если рассматривать просто конвертацию).
Jit не особо много скорости привносит (в зависимости от модели пока встречал прирост в среднем в 1.5 по скорости).
Для resnet вполне можно смотреть в эту сторону. Плюс, если есть время и свой датасет - то можно рассмотреть пост-квантизацию, прунинг модели (они могут привнести очень большой прирост в скорости, но не слишком просесть по качеству).
Тема сама по себе не особо описанная, так как постоянно развивается. Поэтому тут только либо экспериментировать, либо надеяться на подобные статьи)
Если кому интересно, то с 18 года разрабатываю фреймворк для запуска обученных нейронных сетей на CPU:
https://github.com/ermig1979/Synet
Он ориентирован в основном на однопоточную производительность и оптимизирован под основные процессорные расширения (SSE, AVX, AVX-512, AMX, NEON) (по этому направлению опережает OpenVINO). Он поддерживает конвертацию из формата ONNX и OpenVINO. А также динамическую квантизацию моделей.
Так бы и сказали, что не можем сделать нормальный GPU. Обучать тоже на CPU советуют?
Хм, норм
В статье есть неточность: "OpenVINO не такой «гибкий»: инструмент умеет конвертировать только из ONNX". Это не так: https://docs.openvino.ai/2022.1/openvino_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html.
ONNX Runtime, OpenVINO и TVM: обзор инструментов для ускорения ML-моделей