DataSphere Inference
DataSphere предоставляет инструменты для релиза сервисов, доступных для сторонних ресурсов. Вы можете развернуть для эксплуатации не только модель, обученную в DataSphere, но и создать при помощи тех же инструментов полноценный работающий сервис на базе Docker-образа.
Для публикации сервиса в DataSphere существуют специальные ресурсы — ноды и алиасы.
Ноды
Нода — это изолированная в собственном контуре группа специально созданных виртуальных машин (инстансов), между которыми распределяется вычислительная нагрузка. Инстансы ноды создаются с заранее определенным окружением и зафиксированным состоянием интерпретатора. В зависимости от потребностей вы можете выбрать различные конфигурации инстансов.
Важно
При развертывании и эксплуатации моделей вы платите за время работы каждого инстанса ноды — от момента запуска до момента удаления.
Если развернутый сервис вам больше не нужен, удалите ноду.
Обращение к нодам происходит по API. Запросы API могут менять состояние интерпретатора ноды. Для возврата первоначального состояния потребуется пересоздать всю ноду.
Примечание
Максимальный размер запроса и ответа API ноды — 16 МБ.
Для создания ноды укажите каталог облака вашей организации, в котором нода будет разворачивать инстансы и хранить логи. В каталоге необходимо настроить подсеть с доступом в интернет с помощью NAT-шлюза и создать сервисный аккаунт с ролью vpc.user
. Укажите этот сервисный аккаунт в настройках проекта DataSphere.
Нода из модели
Ноды из моделей позволяют развернуть сохраненные в DataSphere модели в качестве сервиса и обращаться к нему по API. Ноду можно создать из следующих моделей:
Если вы хотите развернуть модель, которую не поддерживает сервер Triton, вы можете конвертировать
Чтобы создать ноду из модели, обученной не в DataSphere, загрузите модель из файла в переменную в ноутбуке, а затем создайте из этой переменной модель DataSphere.
Для развертывания нод из моделей DataSphere использует Triton Inference Server
Примечание
При развертывании моделей PyTorch DataSphere не может автоматически определить входные и выходные параметры.
Нода из произвольного Docker-образа
Ноды, развернутые из Docker-образа, размещенного в реестре контейнеров, будут полноценным рабочим сервисом. Docker-образ не обязательно должен содержать модель, обученную в DataSphere — вы можете создать любой образ и разместить его в удобном для вас реестре. О том, как загрузить Docker-образ в реестр Yandex Container Registry, см. Загрузить Docker-образ в реестр.
Примечание
Для использования Yandex Container Registry сервисному аккаунту проекта необходима роль container-registry.images.puller
.
При создании ноды из Docker-образа вы сами определяете API создаваемой ноды, порт, который ваш сервис будет использовать, время соединения, формат собираемых метрик и другие параметры. После создания ноды DataSphere будет следить за ее состоянием, поддерживать работу инстансов и, при необходимости, масштабировать ноду в пределах заданного диапазона инстансов. Для инстансов доступны зоны доступности — ru-central1-a
и ru-central1-b
.
Для работы с нодой на основе большой модели или Docker-образа доступно подключение дополнительного диска размером от 10 до 4096 ГБ. Если у ноды есть несколько инстансов, диск будет создан для каждого из них.
Статусы ноды
Нода DataSphere может находиться в одном из статусов:
Healthy
— количество инстансов со статусомHealthy
в ноде равно минимальному числу требующихся инстансов;Unhealthy
— количество инстансов со статусомHealthy
в ноде меньше минимально допустимого;Created
— нода только что создана;Suspended
— работа ноды приостановлена;Deleting
— нода в процессе удаления.
Статусы инстанса
Инстансы ноды могут иметь один из следующих статусов:
Healthy
– инстанс здоров и доступен для балансировки;Unhealthy
– с инстансом возникли проблемы, он исключен из балансировки;Created
– для инстанса создана ВМ;Started
– с ВМ инстанса установлена связь;Preparing
– инстанс подготавливается к обслуживанию запросов;Deleting
– инстанс находится в процессе удаления;Undefined
– начальное состояние инстанса, ВМ еще не создана.
Алиас
Алиас — специальный ресурс для публикации и обновления сервиса, который позволяет незаметно для пользователей заменять ноды и обновлять развернутый сервис во время работы.
Создайте алиас и используйте его в качестве эндпоинта сервиса. Вы можете изменять связанные с ним ноды, балансировать нагрузку между ними и убирать устаревшие версии Docker-образа незаметно для пользователя.