Развертывание машинного обучения в сложных средах — решения для машинного обучения на периферии

Введение

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

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

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

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

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

Проблема последней мили

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

В этом есть смысл. Без развертывания все остальное не имеет значения.

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

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

Если вы не хотите кодировать всю свою платформу MLOps с нуля — я бы не советовал вам этого делать! — обычно у вас есть два пути доставки производственных систем машинного обучения:

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

Проблема с OSS

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

Однако есть некоторые серьезные проблемы.

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

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

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

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

Валлару Введение

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

Недавно мне на глаза попался Wallaroo. Если вы не слышали об этом, Wallaroo позиционирует себя как «платформу для последней мили машинного обучения».

Что это значит?

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

Wallaroo сделает это за вас. Что действительно хорошо в этом инструменте, так это то, насколько он приоритетен для высокоскоростного логического вывода. Судя по их документации и сообщениям в блогах, это потому, что они написали вычислительный движок на Rust (C-подобном языке программирования, который покорил сообщество программистов своей молниеносной производительностью).

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

Сложное развертывание

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

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

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

Поиск решения комбинированных проблем быстрого вывода и простоты развертывания в далеко не идеальных средах привел меня к Wallaroo.

Как бы вы вообще начали реализовывать обнаружение дрейфа, непрерывное обучение и автоматическое развертывание в этой ситуации?

На следующем рисунке показан краткий набросок того, как Wallaroo решает эту проблему.

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

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

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

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

Если ваш вариант использования требует развертывания модели на периферии, необходимые артефакты затем отправляются в Edge Manager & Orchestrator. При необходимости он действует как заглушка для кода конечных пользователей, то есть вы можете передавать модели в пограничное развертывание, или программное обеспечение, работающее на пограничном узле, может взять на себя ответственность за выбор модели для запуска. Одним из примеров этого может быть промышленное оборудование, способное выбирать различные модели, опубликованные инструментами Wallaroo, в зависимости от того, в каком режиме оно работает. выбираться в зависимости от местных условий. Довольно круто.

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

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

Последние мысли

Что мне больше всего нравится во всем этом, так это значительное снижение сложности для разработчика. Многое было абстрагировано и не за счет производительности.

Если вы заинтересованы в том, чтобы попробовать Wallaroo, вы можете скачать бесплатную версию Community Edition здесь, и здесь есть множество отличных руководств:



Если вы хотите конкретно ознакомиться с учебным пособием по ML Edge, его можно найти здесь:



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