Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Эта функция доступна в общедоступной предварительной версии.
Замечание
Если вы используете 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, зависит от интерфейса выполнения:
| Interface | Nodes | запуск Ray |
|---|---|---|
| Notebook | Единственный узел, прикреплённый к ноутбуку | Вызов ray_init() из пакета serverless_gpu |
| Интерфейс командной строки Databricks | Фиксированное множество одного или нескольких узлов | Начните головку с узла 0 и соедините оставшиеся узлы в качестве рабочих с помощью повторно используемого bootstrap-скрипта |
Используйте Ray в тетрадях
Когда ваш ноутбук подключён к вычислительным ресурсам GPU в AI Runtime, используйте ray_init() из пакета serverless_gpu, чтобы запустить Ray на подключённом узле:
from serverless_gpu import ray_init
ray_init()
ray_init() вызывает стандартный ray.init() API, настраивает панель управления Ray для доступа через прокси-драйвер Databricks и выводит URL-адрес панели управления в выходных данных ноутбука. Используйте дашборд для проверки заданий, задач, акторов, логов и использования ресурсов Ray во время запуска кода.
Замечание
ray_init() Требуется окружение версии 5 и выше. 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.
Примеры “Hello, World!” для Ray включают многократно используемый загрузочный скрипт. В рабочей нагрузке commandRAY_ENTRYPOINT установите путь вашего файла Python и запустите загрузочный скрипт. Bootstrap-скрипт выполняет следующее:
- На узле 0 запускается лучевая головка и запускается настроенная точка входа.
- На каждом втором узле запускается воркер Ray, и соединение с ним поддерживается, пока работает точка входа.
- После завершения точки входа процессы Ray останавливаются.
В приложении подключитесь к кластеру с помощью ray.init(address="auto").
В стандартной среде добавьте ray или другой необходимый компонент, например ray[data], ray[train] или ray[tune], в зависимости рабочей нагрузки. Databricks AI v6 включает Рэя.
Примеры интерфейса командной строки
| Example | Description |
|---|---|
| Примеры Ray Hello World | Минимальные примеры для одноузловых и многоузловых конфигураций Ray Core, Ray Train, Ray Data и Ray Tune, включая шаблон инициализации кластера. |
| Распределенное обучение с помощью Ray Train | Тонко настройте большую языковую модель на 8 графических процессорах H100 на одном узле с помощью Ray Train и PyTorch. |
| Пакетный вывод с помощью Ray Data и vLLM | Запускайте крупномасштабный пакетный вывод с использованием Ray Data для распределённой загрузки данных и vLLM для эффективного обслуживания моделей. |
| Поиск по гиперпараметрам с помощью Ray Tune | Подберите гиперпараметры дообучения LoRA для Qwen2.5 с помощью Ray Tune, запуская по одному эксперименту на каждом GPU и досрочно останавливая малоэффективные эксперименты с помощью планировщика ASHA. |
Работа с данными и функциями 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. См. Производственные обучающие нагрузки.
Миграция существующей нагрузки 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.