Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Note
Se estiver a usar o Ray na computação clássica do Databricks com Databricks Runtime ML, consulte Ray no Databricks.
O Ray é um framework open source para escalar cargas de trabalho em Python. Podes correr o Ray no AI Runtime sem provisionar ou gerir a infraestrutura da GPU subjacente.
Porquê usar o Ray no AI Runtime
O Ray é frequentemente utilizado para distribuir cargas de trabalho em Python, como treino de modelos, inferência em lote, processamento de dados e ajuste de hiperparâmetros. No AI Runtime, o Ray pode aceder a dados em volumes do Unity Catalog, acompanhar experiências com MLflow e executar como parte de fluxos de trabalho de produção.
Pode usar bibliotecas comuns de Ray 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 funciona com o ambiente de execução de IA
Cada aplicação Ray corre num cluster Ray, que pode conter um ou mais nós. O AI Runtime provisiona os nós e o Ray agenda tarefas e atores através dos seus recursos disponíveis de CPU e GPU. Como se inicia o Ray depende da interface de execução:
| Interface | Nodos | Iniciar Ray |
|---|---|---|
| Notebook | O nó único anexado ao portátil | Chame ray_init() a partir do SDK de Runtime de IA (databricks.air) |
| CLI do Databricks | Um conjunto fixo de um ou mais nós | Inicia a cabeça no nó 0 e junta-te aos nós restantes como trabalhadores usando um script bootstrap reutilizável |
Usar o Ray em cadernos
Quando o seu portátil estiver ligado à computação GPU do AI Runtime, utilize ray_init() do SDK do Databricks AI Runtime para iniciar o Ray no nó associado:
from databricks.air import ray_init
ray_init()
ray_init() chama a API padrão ray.init() , configura o dashboard Ray para acesso através do proxy do driver Databricks e imprime a URL do dashboard na saída do notebook. Utilize o painel para inspecionar os jobs, as tarefas, os atores, os registos e a utilização de recursos do Ray enquanto o seu código está em execução.
Note
ray_init() requer a versão 5 do ambiente ou superior. Na versão 5, importe-o de serverless_gpu em vez de databricks.air. O Databricks AI v6 inclui o Ray. Se utilizar o Standard v6, instale o Ray antes de chamar ray_init(). Veja Configurar o ambiente.
Exemplos de cadernos
| Example | Description |
|---|---|
| Ray Core, olá mundo | Submeta tarefas assíncronas da GPU na computação associada, inspecione o agendamento no dashboard Ray e recupere os resultados. |
| Ajuste de hiperparâmetros do CIFAR-10 com o Ray Tune | Execute testes simultâneos de GPU fracionada para um classificador de imagem PyTorch e utilize o algoritmo assíncrono de metade sucessiva (ASHA) para impedir configurações com baixo desempenho precoce. |
| Inferência em lote com Qwen2.5-32B, Ray Data e vLLM | Execute inferências multilíngues em lote com oito réplicas persistentes de vLLM em 8 GPUs H100 e guarde os resultados no formato Parquet num volume do Unity Catalog. |
Utilize o Ray com a CLI da Databricks
Os comandos da CLI do Databricks para AI Runtime suportam cargas de trabalho do Ray de nó único e multinó. Na configuração da carga de trabalho, especifique um valor fixo accelerator_type e o valor total num_accelerators. A receita de início do Ray Core inclui um script bootstrap reutilizável. No command da carga de trabalho, define RAY_ENTRYPOINT como o caminho do ficheiro Python e executa o script de arranque. O script de bootstrap faz o seguinte:
- No nó 0, inicia a cabeça Ray e executa o ponto de entrada configurado.
- Em todos os outros nós, inicia um trabalhador Ray e mantém-no ligado enquanto o ponto de entrada funciona.
- Depois de o ponto de entrada terminar, os processos do Ray são interrompidos.
Na aplicação, ligue-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 seguintes apresentam as principais bibliotecas Ray e partilham o mesmo padrão de arranque do cluster.
| Example | Description |
|---|---|
| Ray Core | Inicia um cluster Ray em duas GPUs A10 e agenda uma tarefa Ray Core por GPU. |
| Ray Train | Treine um pequeno perceptrão multicamada com dados sintéticos com um trabalhador do Ray Train por GPU. |
| Dados de Raios | Executa um pipeline de processamento de dados sintéticos através de um cluster Ray. |
| Ray Tune | Ajuste um pequeno perceptrão multicamada com dados sintéticos com um ensaio por GPU. |
Exemplos adicionais de CLI
| Example | Description |
|---|---|
| Ajuste fino do ResNet-50 com Ray Train | Afina o ResNet-50 com um worker de paralelismo de dados distribuído por cada GPU A10 em dois nós. |
| Ajuste fino Qwen2.5-3B com Ray Train | Afina o Qwen2.5-3B com um processo de paralelismo de dados distribuído por GPU num nó H100 8x. |
| Inferência em lote com Ray Data e vLLM | Gerar respostas com Qwen2.5-7B-Instruct e escrever os resultados num volume do Unity Catalog como Parquet. |
| Pesquisa de hiperparâmetros LoRA com Ray Tune | Procure configurações LoRA para Qwen2.5-0.5B em quatro GPUs A10 e interrompa testes com baixo desempenho com o agendador ASHA. |
| Pesquisa de hiperparâmetros XGBoost com Ray Tune | Pesquise hiperparâmetros XGBoost em quatro GPUs A10, registre a melhor configuração no MLflow e registe o modelo no Unity Catalog. |
Trabalho com dados e funcionalidades do Databricks
As cargas de trabalho Ray podem aceder a dados nos volumes do Unity Catalog, registar 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 numa tabela do Unity Catalog, use ray.data.read_databricks_tables() para ler uma tabela ou executar uma consulta SQL através de um armazém SQL do Databricks. Especifique o ID do armazém, catálogo e esquema porque o AI Runtime não fornece uma sessão Spark local. Pode usar SQL para realizar joins, agregações e filtros antes do Ray processar os resultados.
Para dados baseados em ficheiros e não estruturados, utilize um volume do Unity Catalog. Os processos de trabalho do Ray podem aceder a ficheiros através dos respetivos caminhos /Volumes/<catalog>/<schema>/<volume>/.... Por exemplo, o Ray Data pode ler ficheiros Parquet com ray.data.read_parquet() e escrever resultados com Dataset.write_parquet().
Acompanhar e orquestrar as cargas de trabalho
Use o MLflow para registar parâmetros, métricas e artefactos de uma carga de trabalho Ray. Ver Rastreio e observabilidade de experiências.
Para programar a carga de trabalho ou combiná-la com tarefas de preparação de dados executadas na CPU, utilize o Lakeflow Jobs e o Declarative Automation Bundles. Veja Agendamento de cargas de trabalho da GPU e composição de tarefas.
Migrar uma carga de trabalho Ray existente
Migrar uma carga de trabalho do Ray autogerida envolve substituir a configuração da infraestrutura e as integrações de serviços pelo modelo de execução do AI Runtime.
Avalie sua carga de trabalho
Antes de migrar, reveja as limitações. Confirme que a carga de trabalho pode funcionar num cluster de tamanho fixo com um único tipo de acelerador.
Migrar a carga de trabalho
Para migrar uma carga de trabalho Ray autogerida:
- Escolha um notebook para desenvolvimento interativo num único nó ou a CLI do Databricks para tarefas de nó único ou de vários nós.
- Associe os recursos existentes do cluster a um tipo de acelerador do AI Runtime e ao número de aceleradores. Veja Hardware.
- Substitua o arranque existente do cluster por
ray_init()num notebook ou pela configuração de arranque documentada do nó principal e do nó de trabalho numa workload da Databricks CLI. - Declare as dependências Python da carga de trabalho e atualize os seus dados, checkpoint, modelo e caminhos de saída.
- Valide a carga de trabalho na menor configuração aplicável. Confirme o acesso aos dados, pedidos de recursos e saídas antes de testar a topologia fixa pretendida.
Limitations
O Ray on AI Runtime tem as seguintes limitações:
- O cluster Ray tem um número fixo de nós durante a duração de uma carga de trabalho. O dimensionamento automático do cluster Ray não é suportado.
- Todos os nós de um workload 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 no seu nó único associado. Utilize a CLI do Databricks para um cluster Ray multinó.
- O acesso ao dashboard do Ray através do proxy do controlador do 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 funcionar como etapas separadas, use um Lakeflow Job multitarefa e passe dados entre as tarefas através de um volume do Unity Catalog.