Глоссарий

Модельная обрезка

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

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

Типы обрезки моделей

Методы обрезки моделей обычно классифицируются по степени детализации того, что удаляется из сети:

  • Обрезка весов (неструктурированная): Это наиболее тонкий метод, при котором отдельные веса модели со значениями ниже определенного порога устанавливаются на ноль. Это создает "разреженную" модель, которая может быть сильно сжата. Однако для достижения значительного ускорения при вычислениях часто требуется специализированное оборудование или программные библиотеки, например, инструменты NVIDIA для разреженных моделей.
  • Обрезка нейронов: При этом подходе удаляются целые нейроны и все их входящие и исходящие связи, если они считаются неважными. Это более структурированная форма обрезки, чем удаление отдельных весов.
  • Обрезка фильтров/каналов (структурированная): Этот метод, особенно актуальный для конволюционных нейронных сетей (CNN), позволяет удалять целые фильтры или каналы. Поскольку при этом сохраняется плотная регулярная структура слоев сети, такой подход часто дает прямой прирост производительности на стандартном оборудовании без использования специализированных библиотек. Такие инструменты, как DeepSparse от Neural Magic, предназначены для ускорения работы таких разреженных моделей на центральных процессорах.

После обрезки модели обычно подвергаются тонкой настройке, которая заключается в повторном обучении меньшей сети в течение нескольких эпох, чтобы восстановить точность, потерянную при удалении параметров. Знаменитая гипотеза лотерейного билета предполагает, что внутри большой сети существует меньшая подсеть, которая может достичь аналогичной производительности при обучении с нуля. Такие фреймворки, как PyTorch, предлагают встроенные инструменты для ее реализации, как показано в официальном учебнике PyTorch Pruning Tutorial.

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

Обрезка моделей очень важна для развертывания эффективных моделей ИИ в различных сценариях:

  1. Оптимизация обнаружения объектов на граничных устройствах: Такие модели, как Ultralytics YOLO, могут быть оптимизированы для эффективного выполнения задач по обнаружению объектов на ограниченном по ресурсам оборудовании, таком как Raspberry Pi или NVIDIA Jetson. Это позволяет создавать приложения реального времени, такие как управление дорожным движением, интеллектуальное наблюдение и интеграция компьютерного зрения в робототехнику.
  2. Развертывание больших языковых моделей (LLM) локально: Обрезка используется для сокращения массивных моделей на основе архитектуры Transformer, что позволяет запускать их на таких устройствах, как смартфоны, для задач обработки естественного языка (NLP). Этот подход, иногда в сочетании с другими методами, такими как квантование, позволяет создавать мощные ИИ-помощники и приложения-переводчики на устройствах, повышая конфиденциальность данных и снижая задержки. Исследования и инструменты таких организаций, как Hugging Face, посвящены обрезке LLM.

Обрезка по сравнению с другими методами оптимизации

Обрезка моделей - это один из нескольких дополнительных методов оптимизации моделей:

  • Квантование модели: Эта техника позволяет уменьшить точность весов и активаций модели (например, с 32-битных чисел с плавающей точкой до 8-битных целых чисел). В отличие от обрезки, при которой удаляются параметры, квантование позволяет уменьшить размер существующих параметров. Она часто применяется после обрезки для максимальной оптимизации, особенно если речь идет об аппаратном обеспечении со специализированной поддержкой, таком как TensorRT.
  • Дистилляция знаний: Этот метод предполагает обучение более мелкой модели "ученика", имитирующей вывод более крупной, предварительно обученной модели "учителя". Цель состоит в том, чтобы перенести знания учителя в более компактную архитектуру. Этот метод отличается от метода обрезки, который сокращает уже обученную модель, а не обучает новую.

В конечном итоге эти методы можно использовать в комбинации для создания высокоэффективных моделей. После оптимизации модель можно экспортировать в стандартные форматы, такие как ONNX, используя опции экспорта Ultralytics для широкого применения в различных системах вывода. Платформы, такие как Ultralytics HUB, предоставляют инструменты для управления всем жизненным циклом моделей компьютерного зрения, от обучения до оптимизированного развертывания.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему искусственного интеллекта. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединяйтесь сейчас
Ссылка копируется в буфер обмена