Pular para o conteúdo principal

Ray no AI Runtime

nota

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

Ray é um framework de código aberto para escalar workloads Python. Você pode executar 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 workloads Python, como treinamento de modelo, 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, rastrear experimentos com MLflow e execução como parte de fluxos de trabalho de produção.

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

Como o Ray trabalha com o AI Runtime​

Cada aplicativo Ray está em execução em um clusters Ray, que pode conter um ou mais nós. O AI Runtime faz o provisionamento dos nós, e o Ray programa tarefas e atores em seus recursos de CPU e GPU disponíveis. Como você começar o Ray depende da interface de execução:

Interface

Nós

começar Ray

Notebook

O único nó conectado ao notebook

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

CLI do Databricks

Um conjunto fixo de um ou mais nós

Começar o head no nó 0 e join os nós restantes como workers usando um script de bootstrap reutilizável

Interface

Nós

começar Ray

Notebook

O único nó conectado ao notebook

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

CLI do Databricks

Um conjunto fixo de um ou mais nós

Começar o head no nó 0 e join os nós restantes como workers usando um script de bootstrap reutilizável

Use Ray em notebooks​

Quando o Notebook estiver conectado ao compute com GPU do 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 através do proxy do driver Databricks e imprime a URL do painel na saída do notebook. Use o dashboard para inspecionar Job, tarefas, atores, Logs e uso de recursos do Ray enquanto seu código está em execução.

nota

ray_init() requer a versão 5 e acima do ambiente. Na versão 5, importe de serverless_gpu em vez de databricks.air. O Databricks AI v6 inclui o 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 principal do Ray

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

Ajuste de hiperparâmetros CIFAR-10 com Ray Tune

Execução testes concorrentes de GPU fracionada para um classificador de imagem PyTorch e use o algoritmo de redução sucessiva assíncrona (ASHA) para interromper antecipadamente as configurações de baixo desempenho.

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

Execute 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 principal do Ray

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

Ajuste de hiperparâmetros CIFAR-10 com Ray Tune

Execução testes concorrentes de GPU fracionada para um classificador de imagem PyTorch e use o algoritmo de redução sucessiva assíncrona (ASHA) para interromper antecipadamente as configurações de baixo desempenho.

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

Execute 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.

Usar Ray com a CLI do Databricks​

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

  • No nó 0, ele começa o cabeçalho Ray e faz a execução do ponto de entrada configurado.
  • Em cada outro nó, ele começa um Ray worker e o mantém conectado enquanto o ponto de entrada está em execução.
  • Depois que o ponto de entrada termina, ele para os processos Ray.

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

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

Começar a usar o Ray​

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

Exemplo

Descrição

Ray Core

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

Ray Train

Ensine um pequeno perceptron multicamadas em dados sintéticos com um worker Ray Train por GPU.

Dados Ray

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

Ray Tune

Ajuste um pequeno perceptron multicamadas em dados sintéticos com uma execução por GPU.

Exemplo

Descrição

Ray Core

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

Ray Train

Ensine um pequeno perceptron multicamadas em dados sintéticos com um worker Ray Train por GPU.

Dados Ray

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

Ray Tune

Ajuste um pequeno perceptron multicamadas em dados sintéticos com uma execução por GPU.

Exemplos adicionais de CLI​

Exemplo

Descrição

Ajuste fino de ResNet-50 com Ray Train

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

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

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

Inferência de lotes com Ray Data e vLLM

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

Busca de hiperparâmetros LoRA com Ray Tune

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

Pesquisa de hiperparâmetros XGBoost com Ray Tune

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

Exemplo

Descrição

Ajuste fino de ResNet-50 com Ray Train

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

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

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

Inferência de lotes com Ray Data e vLLM

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

Busca de hiperparâmetros LoRA com Ray Tune

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

Pesquisa de hiperparâmetros XGBoost com Ray Tune

Pesquise hiperparâmetros do XGBoost em quatro GPUs A10, registro a melhor configuração no MLflow e registro 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 de Lakeflow Jobs definidas com Bundles 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 fazer a execução de uma query SQL por meio de um warehouse do Databricks SQL. Especifique o ID do warehouse, o catálogo e o esquema porque o AI Runtime não fornece uma sessão Spark local. Você pode usar SQL para realizar join, agregações e filtros antes de o Ray processar 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 gravar resultados com Dataset.write_parquet().

Acompanhar e orquestrar 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 compô-la com tarefas de preparação de dados da CPU, use Lakeflow Jobs e Declarative Automation Bundles. Veja Programar cargas de trabalho de GPU e compor 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.

Avalie sua carga de trabalho​

Antes de migrar, revise as limitações. Confirme se a carga de trabalho pode ter execução em um clusters 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 Notebooks para desenvolvimento interativo de nó único ou a CLI do Databricks para Job de nó único ou multinó.
  2. Mapeie os recursos de cluster existentes para um tipo de acelerador de AI Runtime e uma contagem de aceleradores. Consulte Opções de hardware.
  3. Substitua o startup do cluster existente por ray_init() em um notebook ou pelo bootstrap de head e worker documentado em um workload da CLI do Databricks.
  4. Declare as dependências Python da carga de trabalho e atualize seus caminhos de dados, pontos de verificação, modelo e saída.
  5. Valide a carga de trabalho na menor configuração aplicável. Confirme o acesso aos dados, as solicitações de recursos e as saídas antes de testar a topologia fixa pretendida.

Limitações​

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

  • O cluster do Ray tem uma contagem fixa de nós durante a duração de uma carga de trabalho. O autoscale do cluster do Ray não é compatível.
  • Todos os nós em uma carga de trabalho usam o mesmo accelerator_type. Um cluster Ray não pode conter grupos de worker somente de GPU e somente de CPU separados nem escala a capacidade de CPU e GPU independentemente.
  • Um notebook começar o Ray em seu nó único anexado. Use a CLI do Databricks para um cluster Ray multinó.
  • O acesso ao dashboard do Ray por meio do proxy de Driver do Databricks está disponível atualmente apenas para cargas de trabalho de Notebooks.
dica

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