Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Прунинг (Удаление неструктурных связей)

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

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

Как работает прунинг

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

Существует две основные категории обрезки:

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

Обрезка против квантизации против дистилляции

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

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

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

Обрезка играет важную роль в обеспечении Edge AI в различных отраслях в различных отраслях:

  1. Автономная робототехника: Роботы, использующие компьютерное зрение для навигации, должны обрабатывать визуальные данные локально, чтобы избежать задержек. Обрезка позволяет сложным модели обнаружения объектов на встроенном аппаратных средств беспилотников или ботов-доставщиков, обеспечивая безопасность и эффективность. Подробнее о интеграции компьютерного зрения в робототехнику.
  2. Мобильная диагностика в здравоохранении: Медицинские приложения часто требуют анализа снимков высокого разрешения непосредственно на планшетах или смартфонах, чтобы обеспечить конфиденциальность данных пациента конфиденциальности данных пациента. Обрезанные модели позволяют этим устройствам выполнять такие задачи, как обнаружение опухолей, не загружая конфиденциальные данные в облако. Узнайте, как ИИ в здравоохранении меняет диагностику.

Практический пример

Пока Ultralytics YOLO модели YOLO от Ultralytics оптимизированы изначально, разработчики могут экспериментировать с обрезкой, используя стандартные утилиты PyTorch . Следующий пример демонстрирует, как как применить неструктурированную обрезку к стандартному конволюционному слою, используемому в моделях компьютерного зрения.

import torch
import torch.nn.utils.prune as prune
from ultralytics.nn.modules import Conv

# Initialize a standard convolutional block used in YOLO models
layer = Conv(c1=64, c2=128)

# Apply L1 unstructured pruning to remove 30% of the lowest magnitude weights
prune.l1_unstructured(layer.conv, name="weight", amount=0.3)

# Verify the sparsity (percentage of zero weights)
sparsity = float(torch.sum(layer.conv.weight == 0)) / layer.conv.weight.nelement()
print(f"Layer sparsity achieved: {sparsity:.2%}")

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

Ключевые понятия и ресурсы

  • Разреженность: Состояние, при котором матрица содержит в основном нулевые значения, прямой результат агрессивного обрезки.
  • Гипотеза лотерейного билета: Основополагающая концепция Исследователи из Массачусетского технологического института предположили, что плотные сети содержат более мелкие подсети (выигрышные билеты), которые могут соответствовать оригинальной точности при обучении по отдельности.
  • Тонкая настройка: Процесс переобучения обрезанной модели для адаптации ее оставшихся весов к новой, упрощенной структуре.

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

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

Присоединиться сейчас