Введение

С наступлением эры контента, создаваемого ИИ (AIGC), новые технологии машинного обучения, такие как chatgpt и модели распространения, открывают перед искусственным интеллектом новые возможности и вызовы. Для предприятий и частных лиц отставание от этой тенденции может привести к моральному устареванию. Поэтому исследование и применение новых технологий машинного обучения стало предметом внимания различных отраслей. Apache DolphinScheduler, как превосходная система планирования с открытым исходным кодом, в сочетании с Ray AI Runtime может создавать многоразовые рабочие процессы машинного обучения для повышения эффективности и повторного использования, помогая предприятиям лучше справляться с проблемами эпохи AIGC.

В этой статье мы расскажем о преимуществах Apache DolphinScheduler и Ray AI Runtime, а также о том, как их объединить для создания многоразовых рабочих процессов машинного обучения. Цель состоит в том, чтобы предоставить некоторые идеи и рекомендации для специалистов по машинному обучению, чтобы помочь им лучше справляться с проблемами эпохи AIGC.

Обзор

Apache DolphinПланировщик

Apache DolphinScheduler — это распределенная, легко расширяемая и наглядная система планирования рабочих процессов DAG с открытым исходным кодом. Он подходит для сценариев корпоративного уровня, предоставляя решение для визуализации и выполнения задач, рабочих процессов и обработки данных полного жизненного цикла.

Apache DolphinScheduler предназначен для решения сложных зависимостей задач больших данных и обеспечения взаимосвязей в данных и различных оркестровок OPS для приложений. Он решает проблему сложных зависимостей ETL и невозможности отслеживать работоспособность задачи. Apache DolphinScheduler собирает задачи в потоковом режиме DAG (направленный ациклический граф), что позволяет отслеживать состояние выполнения задачи в режиме реального времени и поддерживать повторные попытки, восстановление указанных узлов, приостановку, возобновление и завершение задач.

По сравнению с другими инструментами Apache DolphinScheduler имеет следующие преимущества:

  • Высокая масштабируемость, поддержка нескольких облаков, нескольких сред и гибкое расширение кластеров
  • Поддерживает более 30 типов системных задач и настраиваемых расширений.
  • Поддерживает визуализацию, настройку Python и API, что упрощает использование.
  • Мощные возможности планирования, поддержка запуска календаря времени, запуска зависимостей, межпроектных зависимостей и мультитенантных функций.
  • Распределенный дизайн обеспечивает стабильность системы
  • Простой дизайн разрешений, поддерживающий LDAP
  • Хорошая производительность, способная обрабатывать миллионы задач
  • Активное сообщество, минимум один релиз в месяц

Рэй ЭЙР

Ray AI Runtime (AIR) — это масштабируемый и унифицированный набор инструментов для приложений машинного обучения. AIR, использующий язык программирования Python, обеспечивает простое расширение для отдельных рабочих нагрузок, сквозных рабочих процессов и популярных платформ экосистемы.

AIR основывается на ряде библиотек/инструментов машинного обучения Ray, включая предварительную обработку, обучение, настройку гиперпараметров, вывод и обучение с подкреплением, создавая экосистему для удовлетворения потребностей интеграции.

Предварительная обработка, Обучение, Настройка, Оценка, Обслуживание и Обучение с подкреплением

  • Предварительная обработка: Ray AIR предоставляет несколько препроцессоров и интерфейсов для данных автономного обучения и данных онлайн-вывода.
  • Обучение: Ray Train может масштабировать обучение моделей для популярных платформ машинного обучения, таких как Torch, XGBoost и TensorFlow, легко интегрируясь с Ray Tune и Predictors.
  • Настройка: Tune — это библиотека Python для проведения экспериментов и настройки гиперпараметров в любом масштабе. Используя передовые алгоритмы, такие как обучение на основе популяции (PBT) и HyperBand/ASHA, вы можете настроить свои любимые платформы машинного обучения (например, PyTorch, XGBoost, Scikit-Learn, TensorFlow и Keras).
  • Оценка: после завершения обучения модели Ray AIR Predictor можно использовать для вывода и прогнозирования.
  • Обслуживание: Ray Serve — это расширяемая библиотека обслуживания моделей для создания API онлайн-вывода. Он поддерживает несколько платформ, уделяя особое внимание возможностям композиции моделей, созданию сложных сервисов логического вывода и масштабированию на многочисленных компьютерах на основе Ray.
  • Обучение с подкреплением: RLlib — это библиотека с открытым исходным кодом для обучения с подкреплением, поддерживающая различные рабочие нагрузки RL на производственном уровне и с высокой степенью распределенности, предоставляющая унифицированный и простой API для широкого спектра отраслевых приложений. Хотите ли вы обучать агентов в многоагентных средах, использовать исключительно автономные наборы данных или использовать внешние симуляторы, RLlib предоставляет простые в использовании решения.

Создание многоразовых рабочих процессов машинного обучения

В этом примере мы используем Apache DolphinScheduler и Ray AIR для создания многократно используемых рабочих процессов машинного обучения.

Пример основан на «Обучение и обслуживание табличных данных с помощью Keras и Ray AIR。».

Весь код можно найти здесь: dolphinscheduler-ray-example

Запуск Apache DolphinScheduler

Выполните следующую команду, чтобы запустить Apache DolphinScheduler Standalone:

docker run --name dolphinscheduler-standalone-server -p 12345:12345 -p 25333:25333 -p 8265:8265 -d jalonzjg/dolphinscheduler-standalone-server:3.1.4-ray

Эта команда запускает следующие порты:

  • 12345: Используется для доступа к пользовательскому интерфейсу DolphinScheduler.
  • 25333: используется для отправки рабочих процессов с помощью SDK pydolphinscheduler.
  • 8265: Приборная панель Рэй

Затем мы можем войти в http://<ip>:12345/dolphinscheduler/ui来, чтобы получить доступ к DolphinScheduler со следующими учетными данными:

  • Имя пользователя:admin
  • Пароль: dolphinscheduler123

Создание рабочих процессов

Apache DolphinScheduler может отправлять рабочие процессы с помощью Python. Выполните следующие команды в каталоге dolphinscheduler-ray-example:

python3 -m pip install -i https://pypi.org/simple/ apache-dolphinscheduler==4.0.0
export PYDS_HOME=./
python3 pyds-workflow.py

После входа в Apache DolphinScheduler видим следующий проект:

  • start-ray: запустить кластер Ray в Docker.
  • stop-ray: Остановить кластер Ray
  • конвейер: обучение и развертывание моделей в локальном кластере Ray

Начальный кластер лучей

Мы можем получить доступ к панели инструментов Ray, посетив <ip>:8265

Запуск конвейера

Параметры запуска:

  • размер партии
  • эпоха

Для рабочего процесса, определенного Apache DolphinScheduler, многоразовый рабочий процесс машинного обучения может быть построен посредством параметризации. Просто извлеките параметры в задании.

Просмотр задач

Затем мы можем просмотреть соответствующие задачи в экземплярах рабочего процесса:

  • train_model: обучение модели, включая выборку данных и обучение модели (см. train_model.pyfile)
  • обслуживание: разверните модель с помощью Ray AIR Predictor,(seeserving.pyfile)
  • test_serving: протестировать развернутую модель (см. test_serving.pyfile)

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

Заключение

В качестве практики, объединяющей Apache DolphinScheduler и Ray AI Runtime, мы реализовали многократно используемый рабочий процесс машинного обучения с использованием табличных данных для обучения и развертывания. В то же время Ray AI Runtime как высокопроизводительная распределенная среда выполнения машинного обучения предлагает отличную производительность и масштабируемость, превосходно ускоряя обучение машинного обучения и логические выводы. Сочетание с Apache DolphinScheduler дает Apache DolphinScheduler лучшие возможности для планирования и управления распределенными задачами машинного обучения, и оба могут лучше удовлетворять практические потребности приложений в рабочих процессах машинного обучения.

По мере того, как наступает эра AIGC, предприятиям необходимо решать различные сложные задачи машинного обучения, такие как обучение chatgpt и модели распространения. Эти задачи должны выполняться в распределенной среде и требуют эффективного планирования и управления. Сочетание Apache DolphinScheduler и Ray AI Runtime может предоставить предприятиям эффективные, масштабируемые рабочие процессы машинного обучения, помогая им лучше обучать и управлять сложными задачами машинного обучения, что в конечном итоге позволяет добиться большего успеха в эпоху AIGC.