Ubuntu/Python-2.7 | Ubuntu/Python-3.6 |
---|---|
Multi Model Server (MMS) - это гибкий и простой в использовании инструмент для обслуживания моделей глубокого обучения, обученных с использованием любой структуры ML/DL.
Используйте CLI MMS Server или предварительно сконфигурированные изображения Docker, чтобы запустить службу, которая устанавливает HTTP-конечные точки для обработки запросов вывода модели.
Ниже приведены быстрый обзор и примеры как для обслуживания, так и для упаковки. Подробная документация и примеры приведены в папке DOCS.
Присоединяйтесь к нашему Slack Channel, чтобы связаться с командой разработчиков, задайте вопросы, узнайте, что готовит и многое другое!
Прежде чем продолжить этот документ, убедитесь, что у вас есть следующие предпосылки.
Ubuntu, Centos или MacOS. Поддержка Windows экспериментальная. Следующие инструкции будут сосредоточены только на Linux и MacOS.
Python - Multi Model Server требует Python для запуска работников.
PIP - PIP - это система управления пакетами Python.
Java 8 - Multi Model Server требует запуска Java 8. У вас есть следующие варианты установки Java 8:
Для Ubuntu:
sudo apt-get install openjdk-8-jre-headless
Для Centos:
sudo yum install java-1.8.0-openjdk
Для macOS:
brew tap homebrew/cask-versions
brew update
brew cask install adoptopenjdk8
Шаг 1: Настройка виртуальной среды
Мы рекомендуем установить и запустить много модели сервера в виртуальной среде. Это хорошая практика для запуска и установки всех зависимостей Python в виртуальных средах. Это обеспечит изоляцию зависимостей и облегчит управление зависимостями.
Одним из вариантов является использование VirtualEnv. Это используется для создания виртуальных сред. Вы можете установить и активировать VirtualEnv для Python 2.7 следующим образом:
pip install virtualenv
Затем создайте виртуальную среду:
# Assuming we want to run python2.7 in /usr/local/bin/python2.7
virtualenv -p /usr/local/bin/python2.7 /tmp/pyenv2
# Enter this virtual environment as follows
source /tmp/pyenv2/bin/activate
Обратитесь к документации VirtualENV для получения дополнительной информации.
Шаг 2: Установка MXNET MMS не будет устанавливать двигатель MXNET по умолчанию. Если он еще не установлен в вашей виртуальной среде, вы должны установить один из пакетов MXNET PIP.
Для вывода процессора рекомендуется mxnet-mkl
. Установите его следующим образом:
# Recommended for running Multi Model Server on CPU hosts
pip install mxnet-mkl
Для вывода GPU рекомендуется mxnet-cu92mkl
. Установите его следующим образом:
# Recommended for running Multi Model Server on GPU hosts
pip install mxnet-cu92mkl
Шаг 3: Установите или обновите MMS следующим образом:
# Install latest released version of multi-model-server
pip install multi-model-server
Чтобы обновить предыдущую версию multi-model-server
, обратитесь к справочному документу миграции.
Примечания:
model-archiver
будет установлена с MMS как зависимость. См. Модель-Арчвер для получения дополнительных вариантов и деталей. После установки вы можете очень быстро запустить и работать сервер MMS Model. Попробуйте --help
, чтобы увидеть все доступные варианты CLI.
multi-model-server --help
Для этого быстрого начала мы пропустим большинство функций, но обязательно посмотрим на полные документы сервера, когда вы будете готовы.
Вот простой пример для обслуживания модели классификации объектов:
multi-model-server --start --models squeezenet=https://s3.amazonaws.com/model-server/model_archive_1.0/squeezenet_v1.1.mar
С помощью выполненной выше команды у вас есть MMS, работающие на вашем хосте, прислушиваясь к запросам на вывод. Обратите внимание, что если вы указываете модели (ы) во время запуска MMS - она автоматически будет масштабировать бэкэнд -работников до числа, равного доступным VCPU (если вы запускаете экземпляр ЦП) или к количеству доступных графических процессоров (если вы запускаете экземпляр GPU ) В случае мощных хозяев с большим количеством вычислительных ресурсов (VCPU или GPU) этот запуск и процесс автоматического масштаба могут занять значительное время. Если вы хотите свести к минимуму время запуска MMS, вы можете попытаться избежать регистрации и масштабирования модели во время запуска и переместить ее в более позднюю точку, используя соответствующие вызовы API управления (это позволяет более тонко контролировать зерно, сколько ресурсов выделяется для любая конкретная модель).
Чтобы проверить это, вы можете открыть новое окно терминала рядом с тем, что используется MMS. Затем вы можете использовать curl
, чтобы загрузить одну из этих симпатичных картин котенка, а флаг -o
-Curl назовут для вас kitten.jpg
. Затем вы curl
POST
в MMS предсказать конечную точку с изображением котенка.
В приведенном ниже примере мы предоставляем ярлык для этих шагов.
curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg
curl -X POST http://127.0.0.1:8080/predictions/squeezenet -T kitten.jpg
Конечная точка прогнозирования вернет ответ прогнозирования в JSON. Это будет выглядеть как следующий результат:
[
{
"probability" : 0.8582232594490051 ,
"class" : " n02124075 Egyptian cat "
},
{
"probability" : 0.09159987419843674 ,
"class" : " n02123045 tabby, tabby cat "
},
{
"probability" : 0.0374876894056797 ,
"class" : " n02123159 tiger cat "
},
{
"probability" : 0.006165083032101393 ,
"class" : " n02128385 leopard, Panthera pardus "
},
{
"probability" : 0.0031716004014015198 ,
"class" : " n02127052 lynx, catamount "
}
]
Вы увидите этот результат в ответе на ваш вызов curl
на конечную точку прогнозирования, а в журналах сервера в окне терминала, работающем MMS. Он также регистрируется локально с метриками.
Другие модели могут быть загружены из модельного зоопарка, так что попробуйте некоторые из них.
Теперь вы видели, насколько легко это может служить модели глубокого обучения с MMS! Хотели бы вы узнать больше?
Чтобы остановить текущий экземпляр работы модели-сервер, запустите следующую команду:
$ multi-model-server --stop
Вы увидите, что вывод, указывающий, что многомоделье-сервер прекратился.
MMS позволяет вам упаковать все ваши модели артефакты в единый модельный архив. Это позволяет легко делиться и развернуть ваши модели. Чтобы упаковывать модель, ознакомьтесь с документацией «Архивер модели»
Перейдите к Docs Readme для полного индекса документации. Это включает в себя больше примеров, как настроить службу API, детали конечной точки API и многое другое.
Вот какой -то пример демо -демоверсий глубокого обучения, основанные на MMS:
Классификация обзора продукта ![]() | Визуальный поиск ![]() |
Распознавание эмоций лица ![]() | Перенос нервного стиля ![]() |
Мы приветствуем все вклад!
Чтобы подать ошибку или запросить функцию, пожалуйста, подайте проблему GitHub. Приглашаются запросы.