Обслуживание модели машинного обучения Kubernetes - PullRequest
0 голосов
/ 21 февраля 2020

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

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

Самая близкая вещь, которую вы могли бы попробовать с решением с открытым исходным кодом, была бы Knative и BentoML (полное раскрытие, я автор BentoML). BentoML предоставляет способ упаковки вашей модели ML и ее зависимостей в серверные контейнеры API, а Knative - это безсерверная платформа Google на основе kubernetes. С помощью этих двух библиотек вы можете развернуть сотни моделей ML в качестве безсерверных конечных точек в кластере Kubernetes, каждая модель имеет свой собственный образ контейнера docker, созданный с помощью BentoML, и эти контейнеры загружаются только при поступлении запроса на предсказание.

Вот документация Knative по развертыванию обученной модели ML с BentoML:

BentoML GitHub и быстрый запуск руководство:

0 голосов
/ 24 февраля 2020

Вы можете использовать Catwalk, смешанный с Grab .

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

Именно так создается Catwalk: простая в использовании, самообслуживаемая, модель машинного обучения, служащая платформой для все в Grab.

Более подробную информацию о Подиуме вы можете найти здесь: Подиум .

Вы можете обслуживать несколько моделей машинного обучения, используя TensorFlow и Google. Облако.

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

Более подробную информацию вы можете найти здесь. : машинное обучение-обслуживание .

Также вы можете использовать Seldon .

Seldon Core - платформа с открытым исходным кодом для развертывания моделей машинного обучения в кластере Kubernetes.

Особенности:

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

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

Полезная документация: Kubernetes-Machine-Learning .

...