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.
Importante
Esse recurso está em Visualização Pública.
Note
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 | Nodes | Iniciar o Ray |
|---|---|---|
| Notebook | O nó único conectado ao notebook | Chame ray_init() do pacote serverless_gpu |
| 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 ao ambiente de computação com GPU do AI Runtime, use ray_init() do pacote serverless_gpu para iniciar o Ray no nó anexado:
from serverless_gpu 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.
Note
ray_init() requer a versão 5 ou superior do ambiente. 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. Os exemplos do Hello World do Ray incluem 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.
Exemplos da CLI
| Example | Description |
|---|---|
| Exemplos do Hello World do Ray | Exemplos mínimos de nó único e vários nós para Ray Core, Ray Train, Ray Data e Ray Tune, incluindo o padrão de Bootstrap do cluster. |
| Treinamento distribuído com o Ray Train | Ajuste um grande modelo de linguagem em 8 GPUs H100 em um único nó usando Ray Train e PyTorch. |
| Inferência em lote com Dados Ray e vLLM | Execute inferência em lote em grande escala usando Ray Data para carregamento distribuído de dados e vLLM para servir modelos de forma eficiente. |
| Busca por hiperparâmetros com Ray Tune | Busque hiperparâmetros de ajuste fino do LoRA para o Qwen2.5 com o Ray Tune, executando um experimento por GPU e interrompendo antecipadamente os experimentos com baixo desempenho usando o agendador ASHA. |
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 Opções de 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.
Dica
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.