Omnimizer раскрывает истинный потенциал производительности на устройстве, адаптируя ресурсоемкие приложения ИИ, сокращая время и стоимость разработки и развертывания.

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

Сегодня компания OmniML выпустила Omnimizer™, платформу, которая упрощает и ускоряет эффективную разработку и развертывание ИИ, чтобы помочь предприятиям любого размера сократить расходы и быстрее приступить к работе.

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

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

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

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

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

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

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

Он содержит два основных компонента:

  1. Omnimizer Core Services (omnimizer.nas) для адаптации, сжатия и оптимизации модели, включая:
  • AutoNAS: общая и автоматизированная функция поиска нейронной архитектуры, которая обеспечивает преобразование эластичной модели и поиск наилучшей нейронной архитектуры из предоставленной базовой модели.
  • FastNAS: облегченная функция поиска на основе нейронной архитектуры, не требующая дополнительного обучения. Он работает в меньшем пространстве поиска по сравнению с AutoNAS с большей эффективностью и надежностью.

2. Облачные службы OmniEngine (omnimizer.engine) для профилирования, диагностики и последующего развертывания модели на целевой аппаратной платформе.

  • Профиль. Анализ и количественная оценка производительности моделей на различных аппаратных платформах и устройствах логического вывода.
  • Развертывание. Скомпилируйте и экспортируйте модель для запуска на основных аппаратных платформах.

Ниже мы используем пример, чтобы показать, как Omnimizer адаптирует модель сегментации для мобильного телефона с помощью рабочего процесса AutoNAS.

Шаг 1. Настройка и профиль
После установки инженер машинного обучения может легко профилировать производительность исходной модели PyTorch с помощью интерфейса прикладного программирования (API) omnimizer.engine на целевом устройстве и получить базовую задержку. и точность.

Шаг 2. Диагностика и оценка
Затем базовую модель можно диагностировать с помощью API-интерфейсов omnimizer.nas и адаптировать для более эффективного использования на целевом оборудовании. В этом примере узкий слой определяется Omnimizer и автоматически заменяется более удобной для аппаратного обеспечения версией. Это может быть дополнительно изменено инженерами машинного обучения с помощью функций самообслуживания Omnimzier для лучшей оптимизации модели. Весь процесс адаптации — это белый ящик для разработчика, а значит, он проинформирован о каждом действии и всегда имеет полный контроль.

Шаг 3. Обучение и оптимизация
Затем адаптированная модель проходит через процесс «всеобщей оптимизации», который делает ее «эластичной» и позволяет уменьшать или расширять ее. После того, как модель сделана эластичной, пользователь может одновременно обучить все пространство поиска всех возможных конфигураций сжатия/расширения, используя только 2-3-кратные исходные эпохи обучения.

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

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

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

Оставайтесь с нами, так как мы будем публиковать больше обновлений на Omnimizer! Следите за нами в LinkedIn, Medium и Twitter. Свяжитесь с нами для раннего доступа к Omnimizer: https://www.omniml.ai/sign-up