Pular para o conteúdo principal

Ray no AI Runtime

info

Visualização

Esse recurso está em Prévia Pública.

nota

Se você estiver usando o compute clássico do Ray no Databricks com o Databricks Runtime ML, consulte Ray no Databricks.

O Ray é um framework de código aberto para dimensionar cargas de trabalho Python. Você pode executar o Ray no AI Runtime sem provisionamento ou gerenciar a infraestrutura de GPU subjacente.

Por que usar o Ray no AI Runtime​

O Ray é comumente usado para distribuir cargas de trabalho em Python, como treinamento de modelo, inferência em lotes, processamento de dados e ajuste de hiperparâmetros. No AI Runtime, o Ray pode acessar dados em volumes do Unity Catalog, rastrear experimentos com o MLflow e ser executado como parte de fluxos de trabalho de produção.

Você pode usar bibliotecas comuns do Ray, como Ray Core, Ray Data, Ray Train e Ray Tune, no AI Runtime. As cargas de trabalho Ray existentes podem continuar usando as APIs padrão das bibliotecas.

Como o Ray funciona com o AI Runtime​

Cada aplicativo Ray é executado 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 em seus recursos de CPU e GPU disponíveis. Como iniciar o Ray depende da interface de execução:

Interface

Nós

Começar o Ray

Notebook

O único nó conectado ao notebook

Chamar ray_init() do AI Runtime SDK (databricks.air)

CLI do Databricks

Um conjunto fixo de um ou mais nós

Start the head on node 0 and join the remaining nodes as workers using a reusable bootstrap script

Interface

Nós

Começar o Ray

Notebook

O único nó conectado ao notebook

Chamar ray_init() do AI Runtime SDK (databricks.air)

CLI do Databricks

Um conjunto fixo de um ou mais nós

Start the head on node 0 and join the remaining nodes as workers using a reusable bootstrap script

Use o Ray em notebooks​

Quando seu Notebook estiver conectado ao compute de GPU AI Runtime, use ray_init() do Databricks AI Runtime SDK para começar o Ray no nó anexado:

Python
from databricks.air import ray_init

ray_init()

ray_init() chama a API ray.init() padrão, configura o painel do Ray para acesso por meio do proxy do driver do Databricks e imprime a URL do painel na saída do notebook. Use o painel para inspecionar jobs, tarefas, atores, logs e uso de recursos do Ray enquanto seu código é executado.

nota

ray_init() requer a versão 5 e acima do ambiente. Na versão 5, importe-o de serverless_gpu em vez de databricks.air. O Databricks AI v6 inclui Ray. Se você usar o Standard v6, instale o Ray antes de chamar ray_init(). Consulte Configurar seu ambiente.

Exemplos de Notebooks​

Exemplo

Descrição

Hello world do Ray Core

Envie tarefas de GPU assíncronas no compute anexado, inspecione o agendamento no dashboard do Ray e recupere os resultados.

Ajuste de hiperparâmetros do CIFAR-10 com o Ray Tune

Execute testes de GPU fracionária concorrentes para um classificador de imagens PyTorch e use o algoritmo ASHA (asynchronous successive halving algorithm) para interromper antecipadamente configurações com baixo desempenho.

Inferência de lote Qwen2.5-32B com Ray Data e vLLM

Execute a inferência em lote multilíngue com oito réplicas vLLM persistentes em 8 GPUs H100 e salve os resultados como Parquet em um volume do Unity Catalog.

Exemplo

Descrição

Hello world do Ray Core

Envie tarefas de GPU assíncronas no compute anexado, inspecione o agendamento no dashboard do Ray e recupere os resultados.

Ajuste de hiperparâmetros do CIFAR-10 com o Ray Tune

Execute testes de GPU fracionária concorrentes para um classificador de imagens PyTorch e use o algoritmo ASHA (asynchronous successive halving algorithm) para interromper antecipadamente configurações com baixo desempenho.

Inferência de lote Qwen2.5-32B com Ray Data e vLLM

Execute a inferência em lote multilíngue com oito réplicas vLLM persistentes em 8 GPUs H100 e salve os resultados como Parquet em um volume do Unity Catalog.

Use Ray com a CLI do Databricks​

Os comandos da CLI do Databricks para o AI Runtime são compatíveis com cargas de trabalho Ray de nó único e multinó. Na configuração da carga de trabalho, especifique um accelerator_type fixo e o num_accelerators total. A receita para começar a usar o Ray Core inclui um script de inicialização reutilizável. Na command da carga de trabalho, defina RAY_ENTRYPOINT como o caminho para o seu arquivo Python e execute o script de inicialização. O script de inicialização faz o seguinte:

  • No nó 0, ele inicia o head do Ray e executa o ponto de entrada configurado.
  • Em todos os outros nós, ele inicia um worker Ray e o mantém conectado enquanto o ponto de entrada é executado.
  • Após o término do ponto de entrada, ele interrompe os processos do Ray.

No aplicativo, conecte-se ao cluster com ray.init(address="auto").

Com o ambiente Standard, adicione ray ou o recurso extra necessário, como ray[data], ray[train] ou ray[tune], às dependências da carga de trabalho. O Databricks AI v6 inclui o Ray.

Começar a usar o Ray​

Os exemplos mínimos a seguir apresentam as principais bibliotecas do Ray e compartilham o mesmo padrão de inicialização do cluster.

Exemplo

Descrição

Ray Core

Comece um cluster Ray em duas GPUs A10 e programe uma tarefa do Ray Core por GPU.

Ray Train

Treine um perceptron multicamadas pequeno com um worker do Ray Train por GPU.

Ray Data

Execute um pipeline de processamento de dados sintéticos em um cluster Ray.

Ray Tune

Ajuste um perceptron multicamada pequeno com dados sintéticos, com um teste por GPU.

Exemplo

Descrição

Ray Core

Comece um cluster Ray em duas GPUs A10 e programe uma tarefa do Ray Core por GPU.

Ray Train

Treine um perceptron multicamadas pequeno com um worker do Ray Train por GPU.

Ray Data

Execute um pipeline de processamento de dados sintéticos em um cluster Ray.

Ray Tune

Ajuste um perceptron multicamada pequeno com dados sintéticos, com um teste por GPU.

Exemplos adicionais de CLI​

Exemplo

Descrição

Ajuste fino do ResNet-50 com o Ray Train

Faça o ajuste fino do ResNet-50 com um worker de paralelismo de dados distribuído por GPU A10 em dois nós.

Ajuste fino do Qwen2.5-3B com o Ray Train

Ajuste fino do Qwen2.5-3B com um worker de processamento paralelo de dados distribuído por GPU em um nó 8x H100.

Inferência de lote com Ray Data e vLLM

Gere respostas com Qwen2.5-7B-Instruct e grave os resultados em um volume do Unity Catalog no formato Parquet.

Pesquisa de hiperparâmetros do LoRA com o Ray Tune

Pesquise configurações LoRA para Qwen2.5-0.5B em quatro GPUs A10 e interrompa os testes com desempenho inferior usando o programador ASHA.

Pesquisa de hiperparâmetros do XGBoost com o Ray Tune

Pesquise os hiperparâmetros do XGBoost em quatro GPUs A10, faça o registro da melhor configuração no MLflow e registre o modelo no Unity Catalog.

Exemplo

Descrição

Ajuste fino do ResNet-50 com o Ray Train

Faça o ajuste fino do ResNet-50 com um worker de paralelismo de dados distribuído por GPU A10 em dois nós.

Ajuste fino do Qwen2.5-3B com o Ray Train

Ajuste fino do Qwen2.5-3B com um worker de processamento paralelo de dados distribuído por GPU em um nó 8x H100.

Inferência de lote com Ray Data e vLLM

Gere respostas com Qwen2.5-7B-Instruct e grave os resultados em um volume do Unity Catalog no formato Parquet.

Pesquisa de hiperparâmetros do LoRA com o Ray Tune

Pesquise configurações LoRA para Qwen2.5-0.5B em quatro GPUs A10 e interrompa os testes com desempenho inferior usando o programador ASHA.

Pesquisa de hiperparâmetros do XGBoost com o Ray Tune

Pesquise os hiperparâmetros do XGBoost em quatro GPUs A10, faça o registro da melhor configuração no MLflow e registre o modelo no Unity Catalog.

Trabalhar com dados e recursos do Databricks​

As cargas de trabalho 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 pacotes de automação declarativa.

Acessar dados no Unity Catalog​

Para dados tabulares em uma tabela do Unity Catalog, use ray.data.read_databricks_tables() para ler uma tabela ou executar uma query do SQL por meio de um Databricks SQL warehouse. Especifique o ID do warehouse, o catálogo e o esquema, pois o AI Runtime não fornece uma sessão Spark local. Você pode usar SQL para executar 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 read.parquet com ray.data.read_parquet() e gravar os resultados com Dataset.write_parquet().

Acompanhe e orquestre cargas de trabalho​

Use o MLflow para registrar parâmetros, métricas e artefatos de uma carga de trabalho do Ray. Consulte Acompanhamento de experimentos e observabilidade.

Para programar a carga de trabalho ou criá-la com tarefas de preparação de dados de CPU, use os Lakeflow Jobs e Declarative Automation Bundles. Veja Programar workloads de GPU e compose tarefas.

Migrar uma carga de trabalho Ray existente​

A migração de uma carga de trabalho Ray autogerenciada envolve a substituição de sua configuração de infraestrutura e integrações de serviço pelo modelo de execução do AI Runtime.

Avaliar sua carga de trabalho​

Antes de migrar, reveja as limitações. Confirme se a carga de trabalho pode ser executada em um cluster de tamanho fixo com um tipo de acelerador.

Migrar a carga de trabalho​

Para migrar uma carga de trabalho Ray auto-gerenciada:

  1. Escolha um notebook para desenvolvimento interativo de nó único ou a CLI do Databricks para jobs de nó único ou multinó.
  2. Mapeie os recursos de cluster existentes para um tipo de acelerador e uma contagem de aceleradores do AI Runtime. Consulte Opções de hardware.
  3. Substitua a startup de cluster existente por ray_init() em um notebook ou no bootstrap documentado de head e worker em uma carga de trabalho da CLI do Databricks.
  4. Declare as dependências Python da carga de trabalho e atualize seus caminhos de dados, ponto de verificação, modelo e saída.
  5. Valide a carga de trabalho na menor configuração aplicável. Confirme seu acesso a dados, solicitações de recursos e saídas antes de testar a topologia fixa pretendida.

Limitações​

O Ray no AI Runtime tem as seguintes limitações:

  • O cluster Ray tem uma contagem fixa de nós durante a duração de uma carga de trabalho. Não há suporte para o autoscale do cluster Ray.
  • Todos os nós em uma carga de trabalho usam o mesmo accelerator_type. Um cluster Ray não pode conter grupos de worker separados apenas de CPU e GPU ou dimensionar a capacidade de CPU e GPU independentemente.
  • Um notebook inicia o Ray em seu nó único conectado. Use a CLI do Databricks para um cluster Ray multinó.
  • O acesso ao painel do Ray por meio do proxy do driver do Databricks está disponível no momento apenas para cargas de trabalho de notebook.
dica

Se a preparação de CPU e o processamento de GPU puderem ser executados como estágios separados, use um Lakeflow Job de multitarefa e transmita dados entre as tarefas por meio de um volume do Unity Catalog.