Глоссарий

Обрезка

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

Обрезка - это метод оптимизации модели, используемый для уменьшения размера и вычислительной сложности обученной нейронной сети (НС). Процесс заключается в выявлении и удалении избыточных или менее важных параметров (весов) или структур (нейронов, каналов или слоев) из модели. Цель состоит в том, чтобы создать более компактную, быструю и энергоэффективную модель, сохраняющую сопоставимый с оригиналом уровень точности. Это особенно важно для развертывания сложных моделей ИИ в средах с ограниченными ресурсами, таких как устройства на границе сети.

Как работает обрезка

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

Виды обрезки

Методы обрезки можно разделить на несколько категорий в зависимости от того, что именно удаляется из сети:

  • Неструктурированная обрезка (обрезка весов): Этот метод удаляет отдельные веса из сети на основе определенного критерия, например их величины. В результате получается разреженная модель, в которой многие связи обнуляются. Хотя это может значительно уменьшить количество параметров, это не всегда приводит к более быстрому выводу на стандартном оборудовании, таком как CPU или GPU, без специализированных программных библиотек, таких как инструменты NVIDIA для разреженных моделей.
  • Структурированная обрезка: Этот подход позволяет удалять целые структурные компоненты сети, такие как нейроны, каналы или даже целые слои в конволюционной нейронной сети (CNN). Поскольку при этом удаляются регулярные блоки сети, это напрямую уменьшает размер модели и вычислительные требования таким образом, что стандартное оборудование может легко это использовать, что часто приводит к более предсказуемому ускорению. Такие инструменты, как DeepSparse от Neural Magic, предназначены для ускорения вычислений на центральных процессорах для таких структурированных разреженных моделей.

Основные фреймворки машинного обучения, такие как PyTorch и TensorFlow, предлагают встроенные утилиты и учебники для реализации обрезки.

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

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

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

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

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

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

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

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

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

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