documentation/pages/introduction.md
2025-03-06 16:55:49 +03:00

6.4 KiB
Raw Blame History

Введение в работу с фреймворком

Работа с фреймворком

Фреймворк позволяет создать на основе Git-репозитория веб-сервис для синхронных и асинхронных вычислений. Для этого необходимо создать набор манифестов, соответствующих компонентам фреймворка, и разместить их в репозитории.

Фреймворк предоставляет два варианта организации вычислительных задач:

  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. Приложение готово к использованию.

При создании приложения через личный кабинет с использованием шаблонов, приложение сразу подключается к фреймворку с базовым набором компонентов. После этого шаблонные компоненты и код необходимо заменить настоящими, соответствующими решению прикладной задачи.

Список терминов

Базовый модуль - приложение, развёрнутое на фреймворке, и решающее прикладную задачу.

MLOps модуль - элемент фреймворка, не решающий прикладную задачу самостоятельно, а направленный на улучшение или упрощение работы базовых модулей.

Пользователь - конечный пользователь модулей, в основном базовых, который заинтересован в применении интеллектуальный модулей для решения прикладных задач.

Разработчик - разработчик модулей, размещающий свои модули на фреймворке.

Компонент модуля - отдельный элемент приложения, представляющий набор функций для взаимодействия с другими элементами, самой платформой или конечными пользователями.

Пайплайн - pipeline, сквозной процесс программной обработки набора данных несколькими программными модулями. Во фреймворке создаётся с помощью компонента ExperimentPipeline.

ML-компонент - сервис, обрабатывающий синхронные запросы пользователей на произведение вычислений, требующих мало вычислительных ресурсов.