Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Визуальный ИИ

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

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

Абирами ВинаAbirami Vina8 мин. чтения
Методы оптимизации моделей компьютерного зрения

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

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

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

Разбираемся в оптимизации моделей#

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

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

Схема причин оптимизировать модели

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Почему прореживание важно для глубокого обучения#

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

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

Рис. 3. Модель до и после прореживания.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Главные выводы#

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

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

Автор

Abirami Vina
Abirami Vina

Создатель контента · Ultralytics

Начав карьеру инженером по компьютерному зрению, Абирами Вина заложила прочную основу в области ИИ для компьютерного зрения и машинного обучения. Она создает контент для Ultralytics и является основательницей и главным автором Scribe of AI, где готовит качественные технические материалы для компаний, работающих в сфере ИИ. Стремясь сделать ИИ понятным и увлекательным, она помогает связать передовые технологии с их практическим применением.

Комментарии

Задай вопрос, поделись результатами или помоги кому-нибудь.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

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

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

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

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

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

Компьютерное зрение в здравоохранении

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

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

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

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

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