Глоссарий

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

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

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

Узнай больше

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

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

Квантование моделей обладает рядом преимуществ, которые делают его ценной техникой в области машинного обучения. Одно из главных преимуществ - уменьшение размера модели. Благодаря использованию типов данных с более низкой точностью общий размер модели значительно уменьшается. Это особенно полезно для развертывания моделей на устройствах с ограниченным объемом памяти. Кроме того, квантованные модели часто приводят к ускорению вычислений. Вычисления с более низкой точностью обычно выполняются быстрее, особенно на оборудовании, которое изначально поддерживает такие операции. Такое ускорение крайне важно для приложений реального времени, таких как обнаружение объектов и классификация изображений. Еще одно существенное преимущество - снижение пропускной способности памяти. Меньшие типы данных означают, что меньше данных нужно перемещать, что может облегчить узкие места в средах с ограниченным объемом памяти.

Типы квантования моделей

Существует несколько подходов к квантованию моделей, каждый из которых имеет свои компромиссы. Посттренировочное квантование (PTQ) - один из самых простых методов. Он заключается в квантовании весов и активаций уже обученной модели без необходимости переобучения. Посттренировочное квантование можно разделить на квантование динамического диапазона, полное целочисленное квантование и квантование с плавающей точкой (float16). Квантование динамического диапазона квантует веса в целые числа, но сохраняет активации в формате плавающей точки. Полное целочисленное квантование преобразует и веса, и активации в целые числа, а квантование float16 использует 16-битные числа с плавающей точкой. Еще один метод - обучение с учетом квантования (QAT), когда модель обучается с учетом квантования. Обучение с учетом квантования имитирует эффекты квантования во время обучения, что позволяет модели адаптироваться и потенциально достичь более высокой точности по сравнению с PTQ.

Квантование модели по сравнению с другими техниками оптимизации

Квантование модели часто используется вместе с другими методами оптимизации для достижения наилучших результатов. Обрезка модели - еще один популярный метод, который заключается в удалении менее важных связей в нейронной сети, уменьшении количества параметров и вычислений. В то время как квантование модели уменьшает точность параметров, обрезка модели уменьшает их количество. Обе техники можно комбинировать для еще большей эффективности. Обучение со смешанной точностью - еще одна родственная техника, которая использует в процессе обучения как 32-битные, так и 16-битные числа с плавающей точкой, чтобы ускорить процесс и уменьшить расход памяти. Однако она отличается от квантования тем, что в первую очередь фокусируется на этапе обучения, а не на оптимизации модели для вывода.

Реальные применения квантования моделей

Квантование моделей имеет множество реальных применений, особенно в сценариях, где вычислительные ресурсы ограничены. Например, развертывание моделей Ultralytics YOLO на периферийных устройствах, таких как смартфоны или беспилотники, может значительно выиграть от квантования. Благодаря уменьшению размера модели и времени на вывод, на этих устройствах становится возможным выполнять сложные задачи компьютерного зрения в режиме реального времени. Другой пример - автомобильная промышленность, где самодвижущимся машинам требуется быстрая обработка данных с датчиков для принятия оперативных решений. Квантованные модели помогут достичь необходимой скорости и эффективности для этих критически важных приложений. Кроме того, в сфере здравоохранения квантование моделей может позволить развернуть передовые диагностические инструменты на портативных устройствах, что сделает медицинскую помощь более доступной и эффективной.

Инструменты и фреймворки для квантования моделей

Несколько инструментов и фреймворков поддерживают квантование моделей, облегчая разработчикам реализацию этой техники. TensorFlow Lite обеспечивает надежную поддержку квантования после обучения и обучения с учетом квантования, позволяя пользователям преобразовывать свои модели TensorFlow в оптимизированные форматы. PyTorch Lite также предлагает функции квантования, включая динамическое и статическое квантование, позволяя пользователям уменьшить размер модели и повысить производительность. ONNX Runtime - еще один мощный инструмент, поддерживающий квантование моделей и обеспечивающий оптимизированное выполнение моделей ONNX на различных аппаратных платформах. Эти инструменты часто поставляются с подробной документацией и примерами, помогая пользователям эффективно интегрировать квантование в свои рабочие процессы машинного обучения.

Проблемы при квантовании моделей

Хотя квантование моделей дает много преимуществ, оно также сопряжено с некоторыми проблемами. Одна из главных проблем - потенциальная потеря точности. Снижение точности весов и активаций может привести к падению производительности модели, особенно если это делать неаккуратно. Такие техники, как обучение с учетом квантования, могут помочь смягчить эту проблему, но они требуют больше усилий и вычислительных ресурсов на этапе обучения. Еще одна проблема - аппаратная поддержка. Не все аппаратные платформы эффективно поддерживают вычисления с низкой точностью. Однако тенденция движется в сторону большей поддержки квантованных моделей, при этом многие новые устройства и чипы оптимизированы для операций INT8 и FP16. Разработчикам необходимо знать об этих проблемах и выбирать подходящий метод квантования, исходя из своих конкретных потребностей и ограничений. Для получения дополнительной информации об оптимизации моделей ты можешь изучить такие техники, как настройка гиперпараметров и варианты развертывания моделей.

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