Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Se você estiver usando o Ray na computação clássica do Databricks com o Databricks Runtime ML, consulte Ray no Databricks.
Ray é um framework código aberto para escalar cargas de trabalho em Python. Você pode rodar o Ray no tempo de execução de IA sem precisar provisionar ou gerenciar a infraestrutura da GPU subjacente.
Por que usar o Ray no tempo de execução da IA
Ray é comumente usado para distribuir cargas de trabalho em Python, como treinamento de modelos, inferência em lote, processamento de dados e ajuste de hiperparâmetros. No AI Runtime, o Ray pode acessar dados em volumes do Unity Catalog, acompanhar experimentos com MLflow e executar como parte de fluxos de trabalho de produção.
Você pode usar bibliotecas comuns de Ray, como Ray Core, Ray Data, Ray Train e Ray Tune , no AI Runtime. Cargas de trabalho Ray existentes podem continuar a usar as APIs padrão das bibliotecas.
Como o Ray funciona com o AI Runtime
Todo aplicativo Ray roda em um cluster Ray, que pode conter um ou mais nós. O AI Runtime provisiona os nós e o Ray agenda tarefas e atores usando os recursos disponíveis de CPU e GPU. Como você inicia o Ray depende da interface de execução:
| Interface | Nodos | Iniciar o Ray |
|---|---|---|
| Notebook | O nó único conectado ao notebook | Chame ray_init() do SDK de tempo de execução de IA (databricks.air) |
| Interface de Linha de Comando do Databricks | Um conjunto fixo de um ou mais nós | Inicie o nó principal no nó 0 e adicione os nós restantes como nós de trabalho usando um script de inicialização reutilizável |
Use Ray em cadernos
Quando seu notebook estiver conectado à computação GPU do AI Runtime, use ray_init() do Databricks AI Runtime SDK para iniciar o Ray no nó anexado:
from databricks.air import ray_init
ray_init()
ray_init() chama a API padrão ray.init() , configura o dashboard do Ray para acesso via proxy do driver Databricks e imprime a URL do painel na saída do notebook. Use o painel para inspecionar os trabalhos, as tarefas, os atores e os logs do Ray, além do uso de recursos, enquanto seu código é executado.
Observação
ray_init() requer a versão 5 ou superior do ambiente. Na versão 5, importe-o de serverless_gpu em vez de databricks.air. O Databricks AI v6 inclui o Ray. Se você usa o Standard v6, instale o Ray antes de chamar ray_init(). Veja Configuração do ambiente.
Exemplos de notebook
| Example | Description |
|---|---|
| Ray Core, olá, mundo | Submeta tarefas assíncronas da GPU no computo conectado, inspecione o agendamento no painel Ray e recupere os resultados. |
| Ajuste de hiperparâmetros CIFAR-10 com Ray Tune | Execute testes simultâneos de GPU fracionada para um classificador de imagem PyTorch e use o algoritmo assíncrono de metade sucessiva (ASHA) para impedir configurações que tenham baixo desempenho precocemente. |
| Inferência em lote Qwen2.5-32B com Ray Data e vLLM | Execute a inferência em lote multilíngue com oito réplicas persistentes do vLLM em 8 GPUs H100 e salve os resultados no formato Parquet em um volume do Unity Catalog. |
Use o Ray com a linha de comando Databricks
Os comandos da CLI do Databricks para AI Runtime oferecem suporte a workloads do Ray de nó único e multinó. Na configuração da carga de trabalho, especifique um accelerator_type fixo e o total num_accelerators. A receita de início do Ray Core inclui um script bootstrap reutilizável. No command da carga de trabalho, defina RAY_ENTRYPOINT para o caminho do seu arquivo Python e execute o script de inicialização. O script bootstrap faz o seguinte:
- No nó 0, ele inicia a cabeça Ray e executa o ponto de entrada configurado.
- Em todos os outros nós, ele inicia um trabalhador Ray e o mantém conectado enquanto o ponto de entrada funciona.
- Após a conclusão do ponto de entrada, os processos do Ray são interrompidos.
Na aplicação, conecte-se ao cluster com ray.init(address="auto").
No ambiente Standard, adicione ray ou o adicional necessário, como ray[data], ray[train], ou ray[tune], às dependências da carga de trabalho. O Databricks AI v6 inclui o Ray.
Comece com o Ray
Os exemplos mínimos a seguir apresentam as principais bibliotecas Ray e compartilham o mesmo padrão de bootstrap do cluster.
| Example | Description |
|---|---|
| Ray Core | Inicie um cluster Ray em duas GPUs A10 e agende uma tarefa Ray Core por GPU. |
| Ray Train | Treine um pequeno perceptron multicamada com dados sintéticos com um trabalhador do Ray Train por GPU. |
| Dados de raios | Execute um pipeline de processamento de dados sintéticos através de um cluster Ray. |
| Ray Tune | Ajuste um pequeno perceptron multicamada em dados sintéticos com um teste por GPU. |
Exemplos adicionais de CLI
| Example | Description |
|---|---|
| Ajuste fino do ResNet-50 com Ray Train | Ajuste o ResNet-50 com um worker de paralelismo de dados distribuído por GPU A10 em dois nós. |
| Qwen2.5-3B ajuste fino com Ray Train | Faça o ajuste fino do Qwen2.5-3B com um worker de Distributed Data Parallel por GPU em um nó H100 8x. |
| Inferência em lote com Dados Ray e vLLM | Gerar respostas com Qwen2.5-7B-Instruct e gravar os resultados em um volume do Unity Catalog como Parquet. |
| Busca por hiperparâmetros LoRA com Ray Tune | Pesquise configurações LoRA para Qwen2.5-0.5B em quatro GPUs A10 e pare de realizar testes abaixo do esperado com o agendador ASHA. |
| Busca de hiperparâmetros XGBoost com Ray Tune | Pesquise hiperparâmetros do XGBoost em quatro GPUs A10, registre a melhor configuração no MLflow e registre o modelo no Unity Catalog. |
Trabalho com dados e recursos do Databricks
As workloads do Ray podem acessar dados em volumes do Unity Catalog, registrar execuções com o MLflow e ser executadas como tarefas do Lakeflow Jobs definidas com bundles de automação declarativa.
Dados de acesso no Catálogo Unity
Para dados tabulares em uma tabela do Unity Catalog, use ray.data.read_databricks_tables() para ler uma tabela ou executar uma consulta SQL através de um armazenamento SQL do Databricks. Especifique o ID do depósito, catálogo e esquema porque o AI Runtime não fornece uma sessão local do Spark. Você pode usar SQL para realizar joins, agregações e filtros antes que o Ray processe os resultados.
Para dados baseados em arquivos e não estruturados, use um volume do Unity Catalog. Os workers do Ray podem acessar arquivos usando seus caminhos /Volumes/<catalog>/<schema>/<volume>/.... Por exemplo, o Ray Data pode ler arquivos Parquet com ray.data.read_parquet() e escrever resultados com Dataset.write_parquet().
Acompanhar e orquestrar as cargas de trabalho
Use o MLflow para registrar parâmetros, métricas e artefatos de uma carga de trabalho Ray. Veja Rastreamento de experimentos e observabilidade.
Para agendar a carga de trabalho ou combiná-la com tarefas de preparação de dados na CPU, use Lakeflow Jobs e Declarative Automation Bundles. Veja como agendar cargas de trabalho de GPU e compor tarefas.
Migrar uma carga de trabalho existente do Ray
Migrar uma carga de trabalho do Ray autogerenciada envolve substituir sua configuração de infraestrutura e as integrações com serviços pelo modelo de execução do AI Runtime.
Avaliar sua carga de trabalho
Antes de migrar, revise as limitações. Confirme que a carga de trabalho pode rodar em um cluster de tamanho fixo com um único tipo de acelerador.
Migrar a carga de trabalho
Para migrar uma carga de trabalho autogerenciada do Ray:
- Escolha um notebook para desenvolvimento interativo de nó único ou a CLI Databricks para trabalhos de nó único ou múltiplos.
- Mapeie os recursos existentes do cluster para um tipo de acelerador de runtime de IA e uma quantidade de aceleradores. Veja Hardware.
- Substitua a inicialização existente do cluster por
ray_init()em um notebook ou pelo bootstrap documentado do nó principal e do nó de trabalho em uma carga de trabalho do Databricks CLI. - Declare as dependências Python da carga de trabalho e atualize seus caminhos de dados, checkpoint, modelo e saída.
- Valide a carga de trabalho na menor configuração aplicável. Confirme seu acesso aos dados, solicitações de recursos e saídas antes de testar a topologia fixa pretendida.
Limitations
Ray on AI Runtime tem as seguintes limitações:
- O cluster Ray possui uma contagem fixa de nós durante a duração de uma carga de trabalho. O escalonamento automático do cluster Ray não é compatível.
- Todos os nós de uma carga de trabalho usam o mesmo
accelerator_type. Um cluster Ray não pode conter grupos separados apenas para CPU e GPU, nem escalar a capacidade da CPU e GPU de forma independente. - Um notebook inicia o Ray em seu nó único conectado. Use a CLI do Databricks para um cluster Ray com vários nós.
- O acesso ao painel Ray através do proxy do driver Databricks está atualmente disponível apenas para cargas de trabalho de notebooks.
Tip
Se a preparação da CPU e o processamento da GPU puderem rodar como etapas separadas, use um Lakeflow Job multitarefa e passe os dados entre as tarefas por meio de um volume do Unity Catalog.