Глоссарий

Квантование модели

Оптимизируй производительность ИИ с помощью квантования моделей. Уменьши размер, увеличь скорость и повысь энергоэффективность в реальных условиях.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

Квантование модели - важнейшая техника оптимизации модели, используемая в глубоком обучении (ГОО) для снижения затрат на вычисления и память моделей. Она достигается за счет преобразования числовой точности параметров модели(весов и активаций) из представлений высокой точности, обычно 32-битных чисел с плавающей точкой(FP32), в форматы более низкой точности, такие как 16-битные числа с плавающей точкой (FP16), 8-битные целые числа(INT8) или даже более низкие битовые представления. Этот процесс делает модели машинного обучения меньше, быстрее и энергоэффективнее, что особенно важно для развертывания сложных моделей в средах с ограниченными ресурсами, таких как мобильные устройства или пограничные системы ИИ.

Как работает квантование моделей

По своей сути квантование модели подразумевает отображение диапазона значений, содержащихся в тензорах высокой точности (например, весов и активаций в FP32), на меньший диапазон, представляемый типами данных с более низкой точностью (например, INT8). Это преобразование значительно сокращает объем памяти, необходимой для хранения модели, и вычислительные ресурсы, необходимые для вывода, так как операции с числами меньшей точности (особенно целыми) часто выполняются быстрее и более энергоэффективны на современном оборудовании, таком как GPU, CPU и специализированные ускорители вроде TPU или NPU. Цель состоит в том, чтобы добиться такого прироста эффективности с минимальным влиянием на прогностическую производительность модели.

Преимущества квантования моделей

Применение квантования в моделях глубокого обучения дает несколько ключевых преимуществ:

  • Уменьшение размера модели: Типы данных с меньшей точностью требуют меньше места для хранения, поэтому модели легче хранить и распространять, особенно при развертывании на устройствах.
  • Более высокая скорость вычислений: Вычисления с числами меньшей точности (в частности, с целыми числами) выполняются быстрее на совместимом оборудовании, что уменьшает задержку в выводах. Это очень важно для приложений реального времени.
  • Улучшенная энергоэффективность: Более быстрые вычисления и уменьшение количества обращений к памяти приводят к снижению энергопотребления, продлевая время автономной работы мобильных и граничных устройств.
  • Улучшенная аппаратная совместимость: Многие специализированные аппаратные ускорители(Edge TPU, NPU на процессорах ARM) оптимизированы для целочисленной арифметики низкой точности, что позволяет значительно увеличить производительность квантованных моделей.

Техники квантования

Существует два основных подхода к квантованию моделей:

  • Посттренировочное квантование (PTQ): Этот метод предполагает квантование уже обученной модели с использованием стандартной точности плавающей точки. Он более прост в реализации, так как не требует переобучения или доступа к исходным обучающим данным. Однако иногда это может привести к заметному снижению точности модели. Такие инструменты, как TensorFlow Model Optimization Toolkit, предоставляют возможности PTQ.
  • Обучение с учетом квантования (Quantization-Aware Training, QAT): Эта техника имитирует эффект квантования в процессе обучения модели. Благодаря тому, что модель "знает" о предстоящем снижении точности, QAT часто достигает лучшей точности по сравнению с PTQ, особенно для моделей, чувствительных к квантованию, хотя это требует изменения рабочего процесса обучения и доступа к обучающим данным. PyTorch предлагает поддержку QAT.

Применение в реальном мире

Квантование моделей широко используется в различных областях:

Соображения и связанные с ними концепции

Хотя квантование очень полезно, оно может потенциально повлиять на точность модели. После квантования необходима тщательная оценка с использованием соответствующих показателей производительности. Такие приемы, как использование архитектур моделей, дружественных к квантованию (например, замена определенных функций активации, как в YOLO), могут помочь смягчить ухудшение точности, как это обсуждалось при развертывании квантованных моделей YOLOv8 .

Квантование модели - это одна из нескольких техник оптимизации модели. Другие включают в себя:

  • Обрезка модели: Удаление лишних или неважных связей (весов) в нейронной сети.
  • Смешанная точность: Использование комбинации различных численных точностей (например, FP16 и FP32) во время обучения или вывода.
  • Дистилляция знаний: Обучи меньшую модель "ученика" подражать поведению большей, предварительно обученной модели "учителя".

Ultralytics поддерживает экспорт моделей в различные форматы, которые облегчают квантование и развертывание, включая ONNX, OpenVINO (оптимизированный для аппаратного обеспеченияIntel ), TensorRT (для графических процессоровNVIDIA ), CoreML (для устройств Apple) и TFLite, что позволяет эффективно развертывать модели на различных аппаратных платформах. Ты можешь управлять и разворачивать свои модели, включая квантованные версии, с помощью таких инструментов, как Ultralytics HUB. Интеграции, такие как Neural Magic также используют квантование для оптимизации работы CPU .

Читать полностью