Встречай YOLO26: ИИ компьютерного зрения нового поколения.
Ultralytics
Vision AI

Что такое оптимизация модели? Краткое руководство

Узнай, как методы оптимизации моделей, такие как настройка гиперпараметров, прунинг и квантование, помогают моделям компьютерного зрения работать эффективнее.

АБАбирами Вина
5 min read
Методы оптимизации моделей для компьютерного зрения

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

Этот процесс особенно важен в таких областях, как computer vision, где models часто требуют значительных ресурсов для анализа complex images. В средах с ограниченными ресурсами, таких как mobile devices или edge-системы, оптимизированные модели могут эффективно работать при ограниченных ресурсах, сохраняя при этом свою точность.

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

Link to this sectionПонимание оптимизации моделей#

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

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

Диаграмма причин для оптимизации твоих моделей

Рис 1. Причины для оптимизации твоих моделей. Изображение автора.

Вот некоторые из наиболее распространенных техник оптимизации моделей, которые мы подробнее рассмотрим в следующих разделах:

  • Настройка гиперпараметров: включает в себя систематическую корректировку гиперпараметров, таких как скорость обучения и размер батча, для улучшения производительности модели.
  • Прунинг модели: эта техника удаляет ненужные веса и связи из нейронной сети, снижая ее сложность и вычислительные затраты.
  • Квантование модели: квантование предполагает снижение точности весов и активаций модели, обычно с 32-битных до 16- или 8-битных, что значительно уменьшает объем памяти и вычислительные требования.
  • Настройка точности: также известная как обучение со смешанной точностью, она включает использование различных форматов точности для разных частей модели, что позволяет оптимизировать использование ресурсов без ущерба для точности.

Link to this sectionРазбор: гиперпараметры в моделях машинного обучения#

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

Давай разберем примеры гиперпараметров, которые можно настраивать:

  • Скорость обучения (learning rate): этот параметр управляет размером шага, который делает модель для корректировки своих внутренних весов. Более высокая скорость обучения может ускорить обучение, но есть риск пропустить оптимальное решение, в то время как более низкая скорость может быть точнее, но медленнее.
  • Размер батча (batch size): определяет, сколько образцов данных обрабатывается на каждом шаге обучения. Большие размеры батчей обеспечивают более стабильное обучение, но требуют больше памяти. Меньшие батчи обучаются быстрее, но могут быть менее стабильными.
  • Эпохи (epochs): с помощью этого параметра ты можешь определить, сколько раз модель увидит полный набор данных. Большее количество эпох может повысить точность, но создает риск переобучения.
  • Размер ядра (kernel size): определяет размер фильтра в сверточных нейронных сетях (CNN). Более крупные ядра захватывают более широкие паттерны, но требуют больше вычислений; меньшие ядра фокусируются на более мелких деталях.

Link to this sectionКак работает настройка гиперпараметров#

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

Распространенные методы настройки включают сеточный поиск (grid search), случайный поиск (random search) и байесовскую оптимизацию. Сеточный поиск тестирует каждую возможную комбинацию значений в заданных диапазонах. Случайный поиск выбирает комбинации случайным образом, часто быстрее находя эффективные настройки. Байесовская оптимизация использует вероятностную модель для прогнозирования перспективных значений гиперпараметров на основе предыдущих результатов. Этот подход обычно сокращает количество необходимых проб.

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

Link to this sectionГиперпараметры против параметров модели#

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

Гиперпараметры — это значения, устанавливаемые до начала обучения и управляющие тем, как модель обучается, например, скорость обучения или размер батча. Эти настройки фиксированы во время обучения и напрямую влияют на процесс. Параметры модели, напротив, изучаются самой моделью во время обучения. К ним относятся веса и смещения, которые корректируются по мере обучения модели и в конечном итоге определяют ее предсказания. По сути, гиперпараметры формируют путь обучения, в то время как параметры модели являются результатами этого процесса обучения.

Сравнение параметров и гиперпараметров

Рис 2. Сравнение параметров и гиперпараметров.

Link to this sectionПочему прунинг модели важен в глубоком обучении#

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

Нейронная сеть до и после прунинга модели

Рис 3. До и после прунинга модели.

После обучения модели такие методы, как прунинг на основе величины (magnitude-based pruning) или анализ чувствительности, позволяют оценить важность каждого параметра. Затем параметры с низкой важностью удаляются с помощью одного из трех основных методов: прунинг весов, прунинг нейронов или структурный прунинг.

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

Link to this sectionСнижение задержки в ИИ-моделях с помощью квантования#

Квантование модели уменьшает количество битов, используемых для представления весов и активаций модели. Обычно оно преобразует высокоточные 32-битные значения с плавающей запятой в значения с меньшей точностью, такие как 16-битные или 8-битные целые числа. За счет снижения точности битов квантование значительно уменьшает размер модели, объем памяти и вычислительные затраты.

В компьютерном зрении 32-битные числа с плавающей запятой являются стандартом, но преобразование в 16- или 8-битные может повысить эффективность. Существует два основных типа квантования: квантование весов и квантование активаций. Квантование весов снижает точность весов модели, балансируя между уменьшением размера и точностью. Квантование активаций снижает точность активаций, дополнительно уменьшая требования к памяти и вычислениям.

Квантование с 32-битного числа с плавающей запятой до 8-битного целого

Рис 4. Пример квантования с 32-битного числа с плавающей запятой до 8-битного целого числа.

Link to this sectionКак смешанная точность ускоряет ИИ-инференс#

Смешанная точность — это техника, использующая различную численную точность для разных частей нейронной сети. Комбинируя значения более высокой точности, такие как 32-битные числа с плавающей запятой, со значениями более низкой точности, такими как 16- или 8-битные числа с плавающей запятой, смешанная точность позволяет моделям компьютерного зрения ускорять обучение и сокращать использование памяти без ущерба для точности.

Во время обучения смешанная точность достигается за счет использования более низкой точности в определенных слоях при сохранении более высокой точности там, где это необходимо по всей сети. Это выполняется с помощью приведения типов (casting) и масштабирования потерь (loss scaling). Приведение типов преобразует типы данных между различными уровнями точности по мере необходимости для модели. Масштабирование потерь регулирует пониженную точность, чтобы предотвратить численный антипереполнение (underflow), обеспечивая стабильное обучение. Смешанная точность особенно полезна для больших моделей и больших размеров батчей.

Обучение со смешанной точностью с использованием типов с плавающей запятой FP16 и FP32

Рис 5. Обучение со смешанной точностью использует как 16-битные (FP16), так и 32-битные (FP32) типы с плавающей запятой.

Link to this sectionБаланс между точностью модели и эффективностью#

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

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

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

Link to this sectionОсновные выводы#

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

Посети GitHub-репозиторий Ultralytics и присоединяйся к нашему сообществу, чтобы узнать больше о применении ИИ в производстве и сельском хозяйстве.

Explore solutions

Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше

Давай строить будущее ИИ вместе!

Начни свой путь в будущее машинного обучения