Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Если вы используете Ray на Databricks Classic Compute с Databricks Runtime ML, смотрите Ray на Databricks.
Ray — это открытый код фреймворк для масштабирования рабочих нагрузок на Python. Вы можете запускать Ray на AI Runtime без настройки или управления базовой инфраструктурой GPU.
Зачем использовать Ray в AI Runtime
Ray обычно используется для распределения рабочих нагрузок на Python, таких как обучение моделей, пакетное вывод, обработка данных и настройка гиперпараметров. В AI Runtime Ray может получать доступ к данным в томах Unity Catalog, отслеживать эксперименты с MLflow и запускать их в рамках производственных рабочих процессов.
Вы можете использовать распространённые библиотеки Ray, такие как Ray Core, Ray Data, Ray Train и Ray Tune на AI Runtime. Существующие рабочие нагрузки Ray могут продолжать использовать стандартные API библиотек.
Как Ray работает с AI Runtime
Каждое приложение Ray работает на кластере Ray, который может содержать один или несколько узлов. AI Runtime подготавливает узлы, а Ray распределяет задачи и акторы по доступным ресурсам CPU и GPU. Как вы запускаете Ray, зависит от интерфейса выполнения:
| Интерфейс | Узлы | запуск Ray |
|---|---|---|
| Notebook | Единственный узел, прикреплённый к ноутбуку | Вызов ray_init() из AI Runtime SDK (databricks.air) |
| Интерфейс командной строки Databricks | Фиксированное множество одного или нескольких узлов | Начните головку с узла 0 и соедините оставшиеся узлы в качестве рабочих с помощью повторно используемого bootstrap-скрипта |
Используйте Ray в тетрадях
Когда ваш ноутбук подключён к вычислениям AI Runtime GPU, используйте ray_init() из Databricks AI Runtime SDK, чтобы запустить Ray на подключённом узле:
from databricks.air import ray_init
ray_init()
ray_init() вызывает стандартный ray.init() API, настраивает панель управления Ray для доступа через прокси-драйвер Databricks и выводит URL-адрес панели управления в выходных данных ноутбука. Используйте дашборд для проверки заданий, задач, акторов, логов и использования ресурсов Ray во время запуска кода.
Примечание.
ray_init() Требуется окружение версии 5 и выше. В версии 5 импортируйте его из serverless_gpu вместо databricks.air. Databricks AI v6 включает Рэя. Если вы используете Standard v6, установите Ray перед вызовом ray_init(). См. статью "Настройка среды".
Примеры записных книжек
| Example | Description |
|---|---|
| Ray Core Hello World | Отправьте асинхронные задачи GPU на подключённых вычислительных ресурсах, проверьте планирование в панели управления Ray и получите результаты. |
| Настройка гиперпараметров CIFAR-10 с помощью Ray Tune | Запускайте параллельные эксперименты на долях GPU для классификатора изображений на PyTorch и используйте асинхронный алгоритм последовательного сокращения (ASHA), чтобы заранее останавливать конфигурации с низкой производительностью. |
| Пакетный инференс Qwen2.5-32B с помощью Ray Data и vLLM | Запустите многоязычную пакетную инференцию с восемью постоянно работающими репликами vLLM на восьми графических процессорах H100 и сохраните результаты в формате Parquet в томе Unity Catalog. |
Используйте Ray через Databricks CLI
CLI-команды Databricks для AI Runtime поддерживают одноузловые и многоузловые нагрузки Ray. В конфигурации рабочей нагрузки укажите фиксированное значение accelerator_type и общее значение num_accelerators.
Рецепт по началу работы с Ray Core включает многоразовый bootstrap-скрипт. В рабочей нагрузке commandRAY_ENTRYPOINT установите путь вашего файла Python и запустите загрузочный скрипт. Bootstrap-скрипт выполняет следующее:
- На узле 0 запускается лучевая головка и запускается настроенная точка входа.
- На каждом втором узле запускается воркер Ray, и соединение с ним поддерживается, пока работает точка входа.
- После завершения точки входа процессы Ray останавливаются.
В приложении подключитесь к кластеру с помощью ray.init(address="auto").
В стандартной среде добавьте ray или другой необходимый компонент, например ray[data], ray[train] или ray[tune], в зависимости рабочей нагрузки. Databricks AI v6 включает Рэя.
Начните работу с Ray
Следующие минимальные примеры представляют основные библиотеки Ray и используют тот же шаблон загрузки кластера.
| Example | Description |
|---|---|
| Ray Core | Запустите кластер Ray на двух GPU A10 и запланируйте по одной задаче Ray Core на каждую GPU. |
| Рэй Трейн | Обучайте небольшой многослойный перцептрон на синтетических данных с одним рабочим Ray Train на каждый GPU. |
| Рэй Дейта | Запустите синтетический конвейер обработки данных через кластер Ray. |
| Рэй Тюн | Настройте небольшой многослойный перцептрон на синтетических данных с одним запуском на GPU. |
Дополнительные примеры CLI
| Example | Description |
|---|---|
| Тонкая настройка ResNet-50 с помощью Ray Train | Выполните тонкую настройку ResNet-50 с одним воркером Distributed Data Parallel на каждый графический процессор A10 на двух узлах. |
| Тонкая настройка Qwen2.5-3B с помощью Ray Train | Тонко настройте Qwen2.5-3B с одним распределённым параллельным воркером для каждого GPU на узле 8x H100. |
| Пакетный вывод с помощью Ray Data и vLLM | Генерируйте ответы с помощью Qwen2.5-7B-Instruct и записывайте результаты в томе Unity Catalog как Parquet. |
| Поиск по гиперпараметрам LoRA с помощью Ray Tune | Искать конфигурации LoRA для Qwen2.5-0.5B на четырёх графических процессорах A10 и останавливать слабые испытания с помощью планировщика ASHA. |
| Поиск гиперпараметров XGBoost с помощью Ray Tune | Ищите гиперпараметры XGBoost по четырём GPU A10, зафиксируйте наилучшую конфигурацию в MLflow и зарегистрируйте модель в Unity Catalog. |
Работа с данными и функциями Databricks
Рабочие нагрузки Ray могут получать доступ к данным в томах Unity Catalog, записывать сведения о запусках в MLflow и выполняться в качестве задач Lakeflow Jobs, определённых с помощью Declarative Automation Bundles.
Доступ к данным в каталоге Unity
Для табличных данных в таблице Unity Catalog используйте ray.data.read_databricks_tables() для чтения таблицы или запуска SQL-запроса через хранилище Databricks. Укажите идентификатор склада, каталог и схему, потому что AI Runtime не предоставляет локальную сессию Spark. Вы можете использовать SQL для объединения, агрегации и фильтров до того, как Ray обработает результаты.
Для файловых и неструктурированных данных используйте том Unity Catalog. Лучевые работники могут получать доступ к файлам по своим /Volumes/<catalog>/<schema>/<volume>/... путям. Например, Ray Data может читать файлы Parquet с помощью ray.data.read_parquet() и записывать результаты с помощью Dataset.write_parquet().
Отслеживание и координация рабочей нагрузки
Используйте MLflow для записи параметров, метрик и артефактов в ходе выполнения рабочей нагрузки Ray. См. Отслеживание эксперимента и наблюдаемость.
Для планирования нагрузки или её составления с помощью задач по подготовке данных процессора используйте Lakeflow Jobs и Declarative Automation Bundles. См. раздел «Планирование рабочих нагрузок GPU и создание задач».
Миграция существующей нагрузки Ray
Миграция самоуправляемой рабочей нагрузки Ray включает замену конфигурации инфраструктуры и интеграции сервисов на модель выполнения AI Runtime.
Оценка рабочей нагрузки
Перед миграцией ознакомьтесь с ограничениями. Убедитесь, что рабочая нагрузка может выполняться на кластере фиксированного размера с одним типом ускорителя.
Перенос рабочей нагрузки
Чтобы перенести самостоятельно управляемую рабочую нагрузку Ray:
- Выберите ноутбук для интерактивной одноузловой разработки или Databricks CLI для одноузловых или многоузловых задач.
- Сопоставьте существующие ресурсы кластера на тип ускорителя AI Runtime и количество акселераторов. См. Оборудование.
- Замените существующий запуск кластера на
ray_init()в записной книжке или на задокументированную начальную настройку узлов head и worker в задаче Databricks CLI. - Объявить зависимости рабочей нагрузки от Python и обновить её данные, контрольную точку, модель и пути вывода.
- Проверьте нагрузку на самой минимальной подходящей конфигурации. Проверьте доступ к данным, запросы ресурсов и выходы перед тестированием предполагаемой фиксированной топологии.
Limitations
Ray на AI Runtime имеет следующие ограничения:
- Кластер Ray имеет фиксированное количество узлов на протяжении выполнения рабочей нагрузки. Автомасштабирование кластера лучей не поддерживается.
- Все узлы в рабочей нагрузке используют одинаковый
accelerator_type. Кластер Ray не может содержать отдельные рабочие группы только для CPU и GPU или масштабировать ёмкость CPU и GPU отдельно. - Блокнот запускает Ray на подключённом отдельном узле. Используйте интерфейс командной строки Databricks для многоузлового кластера Ray.
- Доступ к панели лучей через драйверный прокси Databricks в настоящее время доступен только для рабочих нагрузок ноутбука.
Tip
Если подготовка процессора и обработка GPU могут выполняться как отдельные этапы, используйте многозадачный Lakeflow Job и передавайте данные между задачами через том Unity Catalog.