Глоссарий

Обрезка

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

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

Узнай больше

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

Актуальность обрезки

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

Применение обрезки

Методы обрезки широко применяются во многих областях ИИ. Вот два конкретных примера:

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

Виды и техники

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

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

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

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

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

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

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

В общем, обрезка - это мощная техника для создания эффективных моделей ИИ, подходящих для различных нужд развертывания, играющая важную роль в практическом применении компьютерного зрения (КЗ) и других задач ML. Платформы вроде Ultralytics HUB предоставляют инструменты и инфраструктуру, включая облачное обучение, которые могут облегчить разработку и оптимизацию таких моделей, как YOLOv8 или YOLO11.

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