Основные понятия и сущности
Общие
API-токен
Аутентификационный токен, необходимый для доступа к REST API. Ег о можно получить в интерфейсе на странице Мои сервисы → API-токены.
При HTTP-запросе API-токен передается в заголовке MLP-API-KEY, а в gRPC-запросе — в параметре authToken.
Метод fit
Метод, предназначенный для обучения сервиса. Принимает на вход набор данных (датасет) и опционально конфигурацию, затем выполняет обучение. В качестве входных данных могут использоваться, например, примеры интентов и их метки.
Fit-конфигурация, конфигурация обучения
Набор параметров для обучения с помощью метода fit.
При запуске обучения можно задать fit-конфигурацию вручную в формате JSON либо выбрать готовую из списка. Набор возможных конфигураций задается в настройках сервиса.
| Сервис | Примеры fit-конфигураций |
|---|---|
| cross-validation-for-intents | hf_labse-linear, roberta-linear, roberta-metric, transformer-classifier-dl4j |
| transformer-classifier-dl4j | roberta, roberta-big-batch-parallel |
Метод predict
Метод, предназначенный для прогнозирования результата. Принимает на вход тело predict-запроса и опционально конфигурацию. В ответ выдает прогноз.
Формат входных и выходных данных специфичен для каждого конкретного сервиса и описан в документации к сервису.
Predict-конфигурация, конфигурация прогноза
Набор параметров для выдачи прогноза.
Тип задачи
Тип ML-задачи, которую решает сервис: например, классификация текстов, исправление опечаток. Тип задачи определяет базовый формат входных и выходных данных для сервиса. Сервисы, которые выполняют задачи одного и того же типа, являются взаимозаменяемыми.
Понятие сервиса
ML-сервис, сервис (ML от англ. Machine Learning)
Микросервис, ориентированный на решение ML-задач. ML-сервисы Caila отличаются от других микросервисов тем, что реализуют строго определенный контракт, состоящий из методов fit и predict.
Сервисы на платформе Caila реализуют различные функции. Это может быть, например, классификация текстов, исправление опечаток. Разработчики создают сервисы и публикуют их в каталоге. Затем сервисы запускаются на серверах Caila. Так они становятся доступны для использования через веб-интерфейс, API или SDK.
Сервис — это совокупность программного кода (образ), данных (дата-образ), параметров конфигурации и развертывания, настроек публи чности, а также документации. Иными словами, сервис — это собранная, настроенная и запущенная программа, доступная для использования как самим разработчиком, так и другими пользователями Caila.
Типы сервисов
По степени готовности
Обучаемый сервис, базовый сервис
Сервис, реализующий функцию обучения — fit. В результате обучения создается новый сервис. Обучаемые сервисы выступают в качестве генераторов других сервисов — обученных. Обучаемые сервисы сами по себе не могут быть использованы для выполнения какой-либо прикладной задачи.
Обученный сервис
Сервис, реализующий функцию выдачи прогноза — predict. Обученные сервисы готовы к работе и могут быть использованы для выполнения прикладной задачи, например, классификации текстов, исправления опечаток.
Готовый сервис
Обученный сервис из каталога, также реализует функцию выдачи прогноза — predict. Готовый сервис можно использовать без какой-либо настройки для выполнения прикладной задачи, например, классификации текстов, исправления опечаток.
Производный сервис
Сервис, который является копией какого-либо обучаемого сервиса. После создания такой сервис может быть обучен независимо от сервиса, на основе которого он был создан.
По необходимости обращаться к другим сервисам
Простой сервис
Сервис, который используется через метод predict. Все данные, необходимые для работы такого сервиса, содержатся в образе и/или передаются в init-конфигурации сервиса и predict-конфигурации.
Композитный сервис
Сервис, который выполняет вызовы к другим сервисам внутри своей логики. От разработчика сервиса требуется настройка доступа к сторонним сервисам. Для пользователей композитного сервиса он не отличается от простого — также выполняет какую-то прикладную задачу.
Конфигурация сервиса
Термин может использоваться в двух значениях: init-конфигурация и полная конфигурация сервиса.
Init-конфигурация сервиса
JSON-объект, передаваемый сервису при запуске. Используется для передачи переменных, которые касаются логики работы сервиса. Например, режим генерации, количество итераций.
Полная конфигурация сервиса
Включает в себя:
init-конфигурацию сервиса;- переменные среды (env-переменные);
- образ сервиса;
- дата-образы и параметры монтирования;
- ресурс-группы;
- лимиты (ограничения на использование ресурсов);
- другие настройки.
Переменные окружения, пере менные среды, env-переменные
Переменные среды для запуска сервиса. Используются для передачи инфраструктурных переменных, например: адреса сервера, пароля доступа, номера видеокарты.
Образ сервиса
Docker-образ с программным кодом сервиса, собранным при помощи SDK.
Дата-образ
Docker-образ со статическими ресурсами, которые может использовать сервис. Например, дата-образы могут содержать веса нейронных сетей или другие объемные наборы данных, которые можно менять независимо от образа сервиса.
Образ сервиса может быть один, например, трансформер, а дата-образы разные: обученные для работы на разных языках или имеющие разный размер и разные требования к ресурсам.
Ресурс-группа
Пул вычислительных ресурсов, на которых может быть развернут сервис. Ресурс-группы могут быть как общими, так и выделенными для конкретного аккаунта.
Лимиты
Лимиты ресурсов, выделяемые инстансу сервиса: GPU, CPU, место на диске, память.
Обучение сервиса
Процесс обучения
Обучение сервиса на поданном на вход датасете и с учетом fit-конфигурации. В результате процесса обучения Caila сохраняет файл или набор файлов в S3-хранилище, например, дамп весов обученного сервиса. В дальнейшем с этим набором данных можно запустить новый сервис. Сам процесс обучения может занять длительное время.
Сейчас в Caila реализовано два режима обучения: singleFit и multiFit. Режим определяет количество контейнеров, которые будут развернуты после запуска обучения.
singleFit, режим обучения
После запуска обучения будет развернут один контейнер с сервисом. Методы fit и predict будут последовательно выполняться в этом контейнере.
Как только метод fit начинает выполняться, новый сервис загружается в память — обновляет своё состояние. Когда метод fit будет выполнен, сервис станет доступным для predict-запросов.
multiFit, режим обучения
После запуска обучения будет развернуто два или несколько контейнеров. Один будет использоваться только для обучения — вызова метода fit, другие — только для вызова логики predict. Контейнеры для predict‑метода станут доступны только после завершения обучения.
После выполнения метода fit обученный сервис запускается в отдельном контейнере. При этом при запуске этого сервиса ему передается ссылка на файлы, подготовленные в процессе выполнения метода fit.
Датасет
Текстовый файл, который загружен в Caila и имеет определенный формат. Данные из такого файла используются для обучения сервиса.
Тип данных датасета
Формат данных, который нужно указать при загрузке датасета в интерфейсе Caila, например, json/texts, plain/texts, json/transformer-fit. Caila поддерживает множество типов данных, а также автоматическую конвертацию между ними.