Глоссарий

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

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

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

Узнай больше

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

Зачем использовать обрезку моделей?

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

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

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

Техники обрезки моделей различаются, но в целом делятся на категории в зависимости от того, что именно удаляется:

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

Обрезка может быть применена после обучения или интегрирована в процесс обучения. Часто обрезанная модель требует некоторой тонкой настройки (дополнительного обучения), чтобы восстановить потерянную точность. Ты можешь изучить различные стратегии обрезки в таких ресурсах, как PyTorch Pruning Tutorial.

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

Обрезка моделей ценна во многих областях:

  1. Мобильное компьютерное зрение: Ultralytics YOLO модели, используемые для обнаружения объектов на мобильных устройствах, могут быть обрезаны для эффективной работы, что позволяет проводить анализ в реальном времени прямо на устройстве, не нуждаясь в постоянном подключении к облаку. Это крайне важно для приложений, развернутых на платформах вроде Raspberry Pi или использующих ускорители вроде Edge TPU отGoogle.
  2. Автономные системы: В самоуправляемых автомобилях или беспилотниках модели должны мгновенно обрабатывать данные с датчиков. Обрезка сложных моделей восприятия помогает добиться низкой задержки, необходимой для безопасной навигации и принятия решений, которые часто разворачиваются на таком оборудовании, как NVIDIA Jetson.

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

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

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

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

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