Проблемы, стратегии и инструменты для обслуживания моделей на уровне производства

Введение

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

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

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

Что показывает модель?

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

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

Какие стратегии показа моделей являются лучшими?

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

  1. Офлайн-сервис. При таком подходе конечный пользователь не сразу знакомится с вашей моделью. В вашем тестовом наборе данных запускается задача пакетного вывода, а результаты кэшируются в высокопроизводительной базе данных, а затем передаются конечным пользователям. Тот факт, что офлайн-обслуживание является «холодным» развертыванием, является его самым большим недостатком. Часто он работает только в рабочих процессах «push», когда конечный пользователь получает только запросы, сделанные модельным сервером, и не делает никаких собственных. В рабочих процессах «вытягивания», когда конечный пользователь может отправлять запросы на сервер модели, может использоваться автономное обслуживание. Из-за того, что конечные пользователи часто предъявляют завышенные требования к времени отклика, внедрение затруднено.
  2. Модель онлайн-сервиса. Онлайн-модель – это модель, которая автоматически принимает данные, поступающие от человека. Одним из самых известных примеров машинного обучения в режиме онлайн является нейронная сеть с размером пакета, равным единице. Каждый раз, когда пользователь посещает конечную точку вашей модели, запускается полный проход обратного распространения на основе входных данных, обновляя веса модели при доставке запроса.
  3. Модель службы. Развертывание модели в качестве (микро) службы в рабочих средах является наиболее распространенной стратегией обслуживания моделей. Эта парадигма предоставляет клиентам доступ к интерфейсу модели через конечную точку API (REST или иным образом). Чтобы получить то, что они хотят, клиенты отправляют запросы GET или POST на конечную точку. Это гибкий подход к развертыванию для масштабируемой и гибкой модели развертывания службы.
  4. Пограничное развертывание. Поскольку оно перемещает обработку с сервера на пограничное устройство, это означает предоставление модели непосредственно на клиентском устройстве, а не на сервере (клиентском устройстве). Это сложно, потому что аппаратное обеспечение клиента (веб-браузер, пользовательский ПК или мобильное устройство) очень ограничено.

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

Проблемы предоставления моделей машинного обучения в производство

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

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

Инструменты показа моделей

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

  1. TensorFlow Serving:TensorFlow Serving может удовлетворить различные производственные потребности, от настройки конечной точки до обслуживания моделей в режиме реального времени и в масштабе.
  2. API машинного обучения Amazon.API машинного обучения Amazon предлагает услуги искусственного интеллекта, специально разработанные для решения повседневных бизнес-задач, такие как интеллектуальные чат-боты для контакт-центров и индивидуальные рекомендации для потребителей.
  3. Amazon SageMaker.Среда Amazon SageMaker Studio, похожая на ноутбук Jupyter, используется Amazon SageMaker для упрощения настройки конечных точек.
  4. Машинное обучение Azure.Машинное обучение Azure помогает компаниям использовать платформу Azure для разработки и развертывания приложений машинного обучения в масштабе.
  5. Google Prediction API.Построение моделей машинного обучения упрощается благодаря Google Prediction API, который создает модель ИИ, автоматически обучаясь на данных обучения пользователя.

Показ рабочей модели

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

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

Заключение

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

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

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

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