Вопросы по развертыванию и эксплуатации моделей

Как функционирует сервис?

Для использования сервиса необходимы обученная модель (классические ML алгоритмы, нейронные сети) и serving-скрипт на S3-бакете.

Для развертывания модели на сервисе необходимо с помощью любого удобного интерфейса (Jupyter Notebook, API, GUI):

  • Собрать Docker-образ с моделью.

  • Развернуть образ.

Для отправки запросов по API к модели (вручную или со стороны автоматизированной системы клиента) необходимо:

Что делать, если возникает проблема с созданием деплоя?

Если возникает проблема с созданием деплоя — выберите один экземпляр и после этого проверьте логи на предмет ошибок в serving-скрипте и исправьте их.

Есть ли доступ в интернет из развернутого деплоя?

Да, есть. К развернутому деплою можно обращаться с помощью http-запросов.

Чтобы получить список белых IP-адресов, которые может использовать деплой при обращении в интернет, обратитесь в техническую поддержку.

Как осуществляется тарификация в рамках сервиса?

Подробнее про тарификацию в разделе Примеры расчета стоимости Deployments.

Что означает конфигурация минимального и максимального количества подов 0-0?

Такая конфигурация не ограничивает количество подов и не ставит деплой на паузу. Новые поды могут подниматься при наличии запросов и будут тарифицироваться.

Можно ли разворачивать на сервисе собственные 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})
ML Space