Глоссарий

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

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

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

Узнай больше

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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