- tocdepth
2
Вопросы по развертыванию и эксплуатации моделей
Как функционирует сервис?
Для использования сервиса необходимы обученная модель (классические ML алгоритмы, нейронные сети) и serving-скрипт на S3 бакете.
Для развертывания модели на сервисе необходимо с помощью любого удобного интерфейса (Jupyter Notebook, API, GUI):
Собрать Docker-образ с моделью.
Развернуть образ.
Для отправки запросов по API к модели (вручную или со стороны автоматизированной системы клиента) необходимо:
Авторизоваться на сервисе и получить токен доступа, если не назначена иная политика доступа через «управление ключами».
Отправить HTTP-запрос к развернутой на сервисе модели. См. Развертывание и эксплуатация моделей.
Что делать, если возникает проблема с созданием деплоя?
Если возникает проблема с созданием деплоя — выберите один экземпляр и после этого проверьте логи на предмет ошибок в serving-скрипте и исправьте их.
Как осуществляется тарификация в рамках сервиса?
Подробнее про тарификацию в разделе Примеры расчета стоимости Deployments.
Можно ли разворачивать на сервисе собственные Docker-образы?
Да, можно. В качестве примера ознакомьтесь с Собрать кастомный Docker-образ для Deployments.
Сколько регионов доступно при создании деплоев?
Название региона |
Описание региона |
---|---|
Christofari.V100 |
Деплой будет развернут на узлах суперкомпьютера Christofari. Для выбора доступны конфигурации, использующие GPU и CPU. |
Cloud.Region.CPU (CPU) |
Деплой будет развернут на инстансе Advanced. Для выбора доступны конфигурации, использующие GPU и CPU или только CPU. |
Какие существуют способы регулирования расходов?
Можно установить лимит расхода денежных средств, за рамки которого пользователь не сможет выйти в отчетном периоде. В это случае все задачи пользователя будут приостановлены.
Для чего подходит сервис?
Сервис позволяет разворачивать модели искусственного интеллекта на базе инфраструктуры Cloud.ru для дальнейшего обращения к моделям с помощью API-запросов от автоматизированных систем.
Как при деплое поставить несколько рабочих воркеров?
Если для задачи выделен один под и модель заняла память пода не полностью, можно использовать следующий код в скрипте kfserving.py
:
import kfserving
import time
import re
import os
import logging
import tornado
from ray import serve
tornado.log.enable_pretty_logging()
class CustomKFServingModel(kfserving.KFModel):
def __init__(self, name: str):
super().__init__(name)
self.name = name
self.model = None
self.ready = True
self.load_state()
def load_state(self):
print(f"State loaded for model {self.name}")
def predict(self, request):
# curl -X POST <URL>/v1/models/<deployment-name>:predict --data-raw '{"instances": [0]}'
# You can get it from tab "Test API" in UI
logging.info(f"INCOME REQUEST: {request}")
inputs = request["instances"][0]
time.sleep(int(inputs))
return {"inputs": inputs}
if __name__ == "__main__":
# x = re.compile('(kfserving-\d+)').search(os.environ.get('HOSTNAME'))
name = "kfserving-default"
# if x:
# name = x[0]
N_WORKERS = 10
mymodel = serve.deployment(init_args=(name,), num_replicas=N_WORKERS)(CustomKFServingModel)
kfserving.KFServer().start({name: mymodel})
Была ли статья полезной?
для Dev & Test