Введение
С наступлением эры контента, создаваемого ИИ (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.py
file) - обслуживание: разверните модель с помощью Ray AIR Predictor,(see
serving.py
file) - test_serving: протестировать развернутую модель (см.
test_serving.py
file)
Дважды щелкните соответствующую задачу, чтобы просмотреть журнал задач, как показано на рисунке.
Заключение
В качестве практики, объединяющей Apache DolphinScheduler и Ray AI Runtime, мы реализовали многократно используемый рабочий процесс машинного обучения с использованием табличных данных для обучения и развертывания. В то же время Ray AI Runtime как высокопроизводительная распределенная среда выполнения машинного обучения предлагает отличную производительность и масштабируемость, превосходно ускоряя обучение машинного обучения и логические выводы. Сочетание с Apache DolphinScheduler дает Apache DolphinScheduler лучшие возможности для планирования и управления распределенными задачами машинного обучения, и оба могут лучше удовлетворять практические потребности приложений в рабочих процессах машинного обучения.
По мере того, как наступает эра AIGC, предприятиям необходимо решать различные сложные задачи машинного обучения, такие как обучение chatgpt и модели распространения. Эти задачи должны выполняться в распределенной среде и требуют эффективного планирования и управления. Сочетание Apache DolphinScheduler и Ray AI Runtime может предоставить предприятиям эффективные, масштабируемые рабочие процессы машинного обучения, помогая им лучше обучать и управлять сложными задачами машинного обучения, что в конечном итоге позволяет добиться большего успеха в эпоху AIGC.