Настраивайтесь на YOLO Vision 2025!
25 сентября 2025 г.
10:00 — 18:00 BST
Гибридное мероприятие
Yolo Vision 2024

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

Абирами Вина

5 мин чтения

15 ноября 2024 г.

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

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

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

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

Понимание оптимизации модели

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

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

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

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

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

Объяснение: Гиперпараметры в моделях машинного обучения

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

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

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

Как работает настройка гиперпараметров

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

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

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

Гиперпараметры vs. параметры модели

При работе с подбором гиперпараметров может возникнуть вопрос, в чем разница между гиперпараметрами и параметрами модели

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

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

Почему обрезка моделей важна в глубоком обучении

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

__wf_reserved_inherit
Рис. 3. До и после обрезки модели.

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

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

Снижение задержки в моделях ИИ с помощью квантования

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

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

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

Как смешанная точность ускоряет логический вывод ИИ

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

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

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

Балансировка точности и эффективности модели

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

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

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

Основные выводы

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

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

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

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

Начать бесплатно
Ссылка скопирована в буфер обмена