Clean up mlcmp
This commit is contained in:
parent
9d5cab1b59
commit
5641ac2739
1 changed files with 15 additions and 8 deletions
|
@ -6,12 +6,20 @@
|
|||
|
||||
MLComponent подходит для быстрых вычислений, в частности запуска предобученной модели машинного обучения на небольшой выборке данных. Например, распознавание объекта на одном изображении, классификация таблицы текстовых данных. Если алгоритм работает за доли секунды, то он подходит как основа для MLComponent.
|
||||
|
||||
На основе образа Docker, указанного в манифесте MLComponent создаётся контейнер. В него устанавливается системная библиотека платформы, которая создаёт веб-сервис. При получении запроса от пользователя веб-сервис вызывает функцию inference, указанную в манифесте MLComponent, и передаёт вывод функции пользователю.
|
||||
На основе образа Docker, указанного в манифесте MLComponent, создаётся контейнер. В него устанавливается системная библиотека платформы, которая создаёт веб-сервис. При получении запроса от пользователя веб-сервис вызывает функцию inference, указанную в манифесте MLComponent, и передаёт вывод функции пользователю.
|
||||
|
||||
Для добавления MLComponent к модулю разработчику нужно:
|
||||
|
||||
- Реализовать функцию, на основе которой будет создан веб-сервис.
|
||||
- Добавить в модуль манифест компонента MLComponent
|
||||
- Добавить в модуль манифест компонента APIComponent для обращения к MLComponent
|
||||
|
||||
Также в модуле уже должен присутствовать хотя бы один компонент DataBox и соответствующий ему APIComponent.
|
||||
|
||||
|
||||
### 2.5.1. Функция inference
|
||||
## Функция inference
|
||||
|
||||
Со стороны разработчика модуля для работы MLComponent нужно реализовать функцию со следующим интерфейсом:
|
||||
Для работы MLComponent нужно реализовать функцию со следующим интерфейсом:
|
||||
|
||||
```
|
||||
def inference(parameters: List[Dict[str, Any]],
|
||||
|
@ -21,7 +29,6 @@ def inference(parameters: List[Dict[str, Any]],
|
|||
model: Any = None) -> Tuple[List[Dict[str, Any]], Any]:
|
||||
```
|
||||
|
||||
|
||||
Входные параметры:
|
||||
|
||||
* `parameters` - список пар `[name, value]`, произвольных параметров примитивных типов.
|
||||
|
@ -61,7 +68,7 @@ def inference(parameters: List[Dict[str, Any]],
|
|||
model: Any = None) -> Tuple[List[Dict[str, Any]], Any]:
|
||||
```
|
||||
|
||||
### 2.5.2. Манифесты
|
||||
## Манифесты
|
||||
|
||||
|
||||
Пример манифеста ML-компонента.
|
||||
|
@ -120,16 +127,16 @@ spec:
|
|||
- `packageRegistryName` - название репозитория с пакетами Python, должно соответствовать "внешнему" названию из компонента приложения в пункте **7.6**. Название может быть другим, главное - соответствие названий друг другу.
|
||||
- `inference/fileExchange` - соединение файловой системы контейнера (сервиса) и ящика S3 для обмена файлами.
|
||||
- `fileBox` - название ящика S3 для файлов пользователей.
|
||||
*Должно соответствовать названию из пункта `connectedBoxes` ниже в этом файле, а не названию `metadata/name` из компонента `box`*.
|
||||
*Должно соответствовать названию из пункта `connectedBoxes` ниже в этом файле, а не названию `metadata/name` из компонента `DataBox`*.
|
||||
- `inferenceFilesPath` - путь, куда будут записываться создаваемые файлы внутри контейнера. К этому пути должны быть права доступа у пользователя контейнера. С этой папкой фреймворк взаимодействует автоматически, то есть лучше сделать уникальный путь, который нигде больше не используется.
|
||||
- `inference/model` - соединение файловой системы контейнера (сервиса) и ящика S3 для подключения модели расчётов.
|
||||
- `modelBox` - название ящика S3, где размещена модель.
|
||||
*Должно соответствовать названию из пункта `connectedBoxes` ниже в этом файле, а не названию `metadata/name` из компонента `box`*.
|
||||
*Должно соответствовать названию из пункта `connectedBoxes` ниже в этом файле, а не названию `metadata/name` из компонента `DataBox`*.
|
||||
- `modelPath` - путь, по которому модель будет доступна внутри контейнера.
|
||||
*Этот путь передаётся в функцию `inference`. Может быть папкой или файлом.*
|
||||
- `inference/entryPoint`
|
||||
- `pythonPath` - относительный путь от корня репозитория к папке, которая будет добавлена в `PYTHONPATH`.
|
||||
- `pythonFunction` - имя функции-адаптера из **пункта 3**, включая имена промежуточных модулей.
|
||||
- `pythonFunction` - имя [функции-адаптера](#251-функция-inference), включая имена промежуточных модулей.
|
||||
- `spec/connectedBoxes` - подключенные компоненты `box` (ящики)
|
||||
- Первый ящик в примере используется для доступа к модели.
|
||||
- `name` - имя, по которому к ящику можно обращаться выше в пункте `spec/mlService/inference/model/modelBox`.
|
||||
|
|
Loading…
Reference in a new issue