diff --git a/pages/introduction.md b/pages/introduction.md index fcd52f7..851018a 100644 --- a/pages/introduction.md +++ b/pages/introduction.md @@ -1,17 +1,21 @@ -# Введение +# Введение в работу с фреймворком ## Список терминов -**Базовый модуль** - приложение, развёрнутое как часть *платформы*, и решающее прикладную задачу. +**Базовый модуль** - приложение, развёрнутое на фреймворке, и решающее прикладную задачу. -**MLOps модуль** - элемент *платформы*, не решающий прикладную задачу самостоятельно, а направленный на улучшение или упрощение работы базовых модулей. +**MLOps модуль** - элемент фреймворка, не решающий прикладную задачу самостоятельно, а направленный на улучшение или упрощение работы базовых модулей. **Пользователь** - конечный пользователь *модулей*, в основном базовых, который заинтересован в применении *интеллектуальный модулей* для решения прикладных задач. -**Разработчик** - разработчик *модулей* , размещающий свои модули на *платформе*. +**Разработчик** - разработчик *модулей*, размещающий свои модули на фреймворке. **Компонент модуля** - отдельный элемент приложения, представляющий набор функций для взаимодействия с другими элементами, самой платформой или конечными пользователями. +**Пайплайн** - pipeline, сквозной процесс программной обработки набора данных несколькими программными модулями. Во фреймворке создаётся с помощью компонента ExperimentPipeline. + +**ML-компонент** - сервис, обрабатывающий синхронные запросы пользователей на произведение вычислений, требующих мало вычислительных ресурсов. + ## Работа с фреймворком Фреймворк позволяет создать на основе Git-репозитория веб-сервис для синхронных и асинхронных вычислений. Для этого необходимо создать набор манифестов, соответствующих компонентам фреймворка, и разместить их в репозитории. @@ -20,3 +24,35 @@ 1. Веб-сервис для быстрых синхронных вычислений - MLComponent 2. Асинхронный запуск вычислительных экспериментов - ExperimentPipeline + +Как правило, если вычислительная задача требует доли секунды для выполнения - её уместно организовывать как ML-компонент, иначе - пайплайн. + +## Структура базового модуля + +Базовый модуль - состоит из нескольких частей, которые вместе складываются в приложение, которое решает прикладную задачу. + +- Git-репозиторий + - Программный код, решающий прикладную задачу + - Включая интерфейс взаимодействия с фреймворком + - Компоненты модуля + - MLComponent + - ExperimentPipeline + - APIComponent + - DataBox +- Системные компоненты, подключающие модуль к фреймворку +- Образы Docker + +Общий принцип работы следующий: + +1. Существует программа, решающая прикладные задачи. Для простоты - проект на Python. Разработчик хочет развернуть эту программу на фреймворке, чтобы через веб-запросы можно было с ней взаимодействовать. Разработчик определяет, какие из элементов программы подходят для такого взаимодействия, и какой из вариантов организации лучше подходит для каждого элемента - ML-компонент или пайплайн. Например, программа распознавания объектов может содержать ML-компонент для работы с отдельными изображениями и пайплайн для работы с видео. +2. Разработчик реализует интерфейс взаимодействия с фреймворком, соответствующий выбранному компоненту. + - Для ML-компонента это функция inference. + - Для пайплайна это организация входных и выходных данных через файлы и переменные окружения. + - В обоих случаях готовится образ Docker с основной программой и интерфейсом взаимодействия с фреймворком. + - Работу интерфейса можно протестировать без подключения модуля к фреймворку, запуская модуль из образа Docker. +3. Разработчик готовит манифесты компонентов модуля и размещает их в репозитории. +4. Приложение подключается к фреймворку с помощью системных компонентов. +5. Разработчик загружает необходимые для работы данные в DataBox приложения, если нужно. +6. Приложение готово к использованию. + +При создании приложения через личный кабинет с использованием шаблонов, приложение сразу подключается к фреймворку с базовым набором компонентов. После этого шаблонные компоненты и код необходимо заменить настоящие, соответствующие решению прикладной задачи.