Изучаем ONNX для применения в трейдинге - страница 15

 

INT8 Исполнение обученных моделей с поддержкой квантования с использованием ONNX-TensorRT




INT8 Исполнение обученных моделей с поддержкой квантования с использованием ONNX-TensorRT

Дирадж Пери, инженер-программист по глубокому обучению в NVIDIA, объясняет основы квантования и то, как TensorRT поддерживает квантованные сети посредством различных слияний. Они сосредоточены на моделях, обученных с использованием платформы TensorFlow 2.0, и на том, как выполнять квантование после обучения (PTQ) и обучение с учетом квантования (QAT). Объясняется процесс развертывания модели, обученной с помощью набора инструментов квантования Nvidia TF2 с ONNX-TensorRT, и представлены результаты точности и задержки для различных моделей ResNet. В целом демонстрируется сквозной рабочий процесс QAT от TensorFlow до развертывания TensorRT через ONNX-TensorRT.

  • 00:00:00 В этом разделе Дирадж, инженер-программист по глубокому обучению в NVIDIA, обсуждает основы квантования и то, как TensorRT поддерживает квантованные сети посредством различных слияний. Он объясняет, что квантование — это процесс преобразования непрерывных значений в дискретный набор значений с использованием методов линейного или нелинейного масштабирования. Они сосредоточены на моделях, обученных с использованием платформы TensorFlow 2.0, и на том, как выполнять квантование после обучения (PTQ) и обучение с учетом квантования (QAT). Дирай также подчеркивает различия между набором инструментов квантования NVIDIA и набором инструментов TF mod, где узлы по-разному размещаются в слоях свертки.

  • 00:05:00 В этом разделе объясняется процесс развертывания модели, обученной с помощью набора инструментов квантования Nvidia TF2 с ONNX-TensorRT. Процесс включает в себя квантизацию предварительно обученной модели TensorFlow 2.0 с помощью набора инструментов Nvidia, ее тонкую настройку для небольшого количества эпох для имитации процесса квантования, а затем преобразование модели в формат ONNX. Затем граф ONNX используется для создания механизма TensorRT с использованием TensorRT API. Представлены результаты точности и задержки для различных моделей ResNet, и замечено, что обученные модели с учетом квантования (QAT) показывают лучшую точность, чем модели квантования после обучения (PTQ) во время логического вывода. Модели QAT показывают аналогичную задержку по сравнению с моделями PTQ, но она зависит от размещения узлов QDQ и их слияний. В целом демонстрируется сквозной рабочий процесс QAT от TensorFlow до развертывания TensorRT через ONNX-TensorRT.
INT8 Inference of Quantization-Aware trained models using ONNX-TensorRT
INT8 Inference of Quantization-Aware trained models using ONNX-TensorRT
  • 2022.07.14
  • www.youtube.com
Accelerating Deep Neural Networks (DNN) inference is an important step in realizing latencycritical deployment of real-world applications such as image class...
 

Практическое посттренировочное квантование модели ONNX



Практическое посттренировочное квантование модели ONNX

В видео обсуждается, как реализовать квантование, чтобы уменьшить размер модели TensorFlow до квантованной модели ONNX. Модель ONNX значительно меньше по размеру и может выполняться быстрее на ЦП. Автор предоставляет фрагменты кода и инструкции о том, как реализовать динамическое квантование и как проверить скорость процессора.

В видео показан процесс квантования модели машинного обучения, чтобы сделать ее быстрее и легче, при этом признается, что это может привести к снижению точности. Модели ONNX и TensorFlow сравниваются с квантованной моделью, причем последняя оказывается быстрее и легче. Однако квантовая модель не так сильно выигрывает от использования графических процессоров, как другие модели. Затем оценивается точность квантованной модели, и обнаруживается лишь незначительное падение. Также обсуждается процесс визуализации моделей ONNX с использованием приложения Loot Rodas Neutron. Общий процесс приводит к уменьшению размера модели с одного гигабайта до 83 мегабайт с минимальной потерей точности.

 

QONNX: предложение по представлению квантованных NN произвольной точности в ONNX



QONNX: предложение по представлению квантованных NN произвольной точности в ONNX

Докладчик обсуждает низкоточное квантование на примере его применения в беспроводной связи. Они предлагают QONNX, диалект для представления квантованных нейронных сетей произвольной точности в ONNX. QONNX упрощает представление квантования, расширяет его до более широкого набора сценариев и предлагает опции для различных типов округления и двоичного квантования. Он используется для развертывания на FPGA и интегрирован в библиотеку квантования Brevitas Python, а NQCDQ должен быть интегрирован в следующий выпуск.

  • 00:00:00 В этом разделе спикер рассказывает о концепции квантования с низкой точностью, что означает квантование ниже 8 бит. Докладчик приводит пример того, как низкоточное квантование использовалось в задаче классификации модуляции для беспроводной связи, достигая высокой пропускной способности с уменьшенной задержкой благодаря обучению с учетом квантования. Докладчик объясняет основы равномерного квантования и предлагает расширить репрезентативную мощность ONNX для нейронных сетей с низкой точностью, используя отсечение в качестве дополнительной функции над целочисленными границами между квантованными и деквантованными узлами. Однако спикер признает, что у этого подхода есть ограничения, в том числе ограниченность квантованными линейными операторами с 8-битным выходом и невозможность использования различных типов округления.

  • 00:05:00 В этом разделе спикер представляет QONNX, диалект для представления квантованных нейронных сетей произвольной точности в ONNX. QONNX упрощает представление квантования, объединяя последовательность операций для ложного квантования только в один узел, а также расширяя его до более широкого набора сценариев. Он предлагает варианты для различных типов округления, широковещательных битовых входов и двоичного квантования. Этот формат используется для развертывания на FPGA в рамках усилий по быстрому машинному обучению с различными инструментами, доступными для работы с QONNX, которые интегрируются со средой выполнения ONNX и предварительно обученными моделями низкой точности. QONNX уже интегрирован в библиотеку квантования Brevitas Python, а NQCDQ будет интегрирован в следующий выпуск.
 

GRCon20 — глубокое обучение в GNU Radio с ONNX



GRCon20 — глубокое обучение в GNU Radio с ONNX

В видео обсуждается использование ONNX в качестве открытого формата для интеграции глубокого обучения в качестве гибкого решения с открытым исходным кодом в области радиочастот. Спикер представляет свой новый модуль GR DNN DN4, который использует интерфейсы Python как для GNU Radio, так и для ONNX, и демонстрирует его возможности на примере автоматической классификации модуляции с использованием модели глубокой сверточной нейронной сети, обученной на смоделированных данных, сгенерированных GNU Radio. Они также обсуждают требования и проблемы использования глубокого обучения для классификации данных SDR с помощью модели BGG16 и предлагают использовать аппаратное ускорение, такое как GPU, для улучшения логических выводов и получения результатов в реальном времени. Проект с открытым исходным кодом, и сотрудничество приветствуется.

  • 00:00:00 В этом разделе видео Оскар Родригес обсуждает свою работу с выводом на основе глубокого обучения в GNU Radio с ONNX. Основная цель их проекта заключалась в том, чтобы интегрировать глубокое обучение в качестве гибкого решения с открытым исходным кодом для радиочастотной области. Они выбрали ONNX, так как это открытый формат, который обеспечивает совместимость машинного обучения между различными фреймворками, решая проблему несовместимых фреймворков глубокого обучения. Однако адаптация моделей к ONNX требует затрат, и могут возникнуть проблемы с операционной доступностью при выполнении определенных операций, хотя это смягчается тем фактом, что ONNX активно разрабатывается и поддерживается корпорацией Майкрософт. В конечном счете, ONNX обеспечивает уровень абстракции между моделью пользователя и различными средами глубокого обучения.

  • В разделе 00:05:00 обсуждается использование ONNX, которое позволяет разрабатывать и обучать модели машинного обучения в различных средах, таких как TensorFlow и PyTorch, перед преобразованием их в общий формат для использования в блоке ONNX. ONNX определяет набор основных операций, обычно используемых в моделях глубокого обучения, а его среда выполнения предоставляет интерфейсы и поддержку различных программных и аппаратных ускорений. Среда выполнения также создает графическое представление модели, которое назначает операции различным поставщикам выполнения на основе доступных ускорителей.

  • 00:10:00 В этом разделе спикер обсуждает расширяемость провайдеров выполнения в ONNX, которая позволяет поддерживать новые аппаратные платформы, если все операции ONNX реализованы на этой платформе. Затем они представляют свой новый модуль GR DNN DN4, который использует интерфейсы Python как для GNU Radio, так и для ONNX. Модуль синхронизации адаптирует входные данные к ожидаемому формату модели, согласовывает модель с преобразованными данными, а затем преобразует выходные данные обратно в одномерный формат. Модуль также позволяет выбирать различных поставщиков исполнения, поддерживаемых в ONNX. Далее докладчик демонстрирует возможности GR DNN DN4 на примере автоматической классификации модуляции с использованием модели глубокой сверточной нейронной сети, обученной на смоделированных данных, сгенерированных GNU Radio.

  • 00:15:00 В этом разделе докладчик обсуждает использование глубокого обучения для классификации данных SDR с помощью модели BGG16. Они объясняют, что на вход модели требуется вектор из 128 значений IQ, которые необходимо адаптировать к выходным данным устройства SDR. Они также отмечают, что вывод на основе глубокого обучения требует больших вычислительных ресурсов, а производительность зависит от сложности модели. В заключение спикер предположил, что использование аппаратного ускорения, такого как графический процессор, может улучшить вывод и добиться результатов в реальном времени.

  • 00:20:00 В этом разделе спикер обсуждает новую реализацию радио, которая может интегрировать вывод на основе глубокого обучения и программно-определяемую радиосвязь (SDR), используя стандартный формат для представления модели глубокого обучения и поддерживая различные методы ускорения. Докладчик демонстрирует, как модуль можно использовать для автоматической классификации модуляции и получения выводов в реальном времени с аппаратным ускорением. Докладчик также обсуждает будущие улучшения модуля, в том числе делает его более гибким для различных типов моделей глубокого обучения и включает функции предварительной обработки внутри блока. Проект с открытым исходным кодом, и сотрудничество приветствуется.
Причина обращения: