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

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

Для использования сервиса необходимы обученная модель (классические 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