Pular para o conteúdo principal

O que é o Ray na Databricks?

Ray é uma estrutura de código aberto para dimensionar aplicativos Python. Ele inclui uma biblioteca específica para as cargas de trabalho do AI, o que o torna especialmente adequado para o desenvolvimento de aplicativos AI. O Ray on Databricks permite que o senhor execute aplicativos Ray e obtenha todos os benefícios da plataforma e do recurso Databricks.

Com o Ray 2.3.0 e acima, o senhor pode criar clustering Ray e executar aplicativos Ray em Apache Spark clustering com Databricks.

Para obter informações sobre como começar a usar machine learning no Ray, incluindo tutorial e exemplos, consulte a documentação do Ray. Para obter mais informações sobre a integração entre Ray e Apache Spark, consulte a documentação Spark API.

O que é Ray?

O Ray simplifica os sistemas distribuídos, fornecendo primitivas Python básicas para criar aplicativos distribuídos a partir do zero. Para os desenvolvedores de Python novatos em sistemas distribuídos, ele oferece a mesma facilidade de uso do Python padrão e, ao mesmo tempo, gerencia a orquestração, a programação e a tolerância a falhas.

O Ray e o Apache Spark são estruturas complementares. O Ray é excelente em paralelismo lógico, lidando com tarefas dinâmicas e computeintensivas, como aprendizado de máquina e aprendizado por reforço. Apache Spark é especializado em paralelismo de dados, processando com eficiência grandes conjuntos de dados para tarefas como ETL e análise de dados. Juntos, eles fornecem uma combinação poderosa para processamento de dados e computação complexa.

Por que executar o Ray no site Databricks?

A execução do Ray em Databricks permite que o senhor aproveite a amplitude do ecossistema Databricks, aprimorando o processamento de dados e o fluxo de trabalho de aprendizado de máquina com serviços e integrações que não estão disponíveis no código aberto Ray. Os benefícios de executar o Ray no Databricks incluem:

  • Plataforma unificada : Databricks fornece uma plataforma unificada na qual o senhor pode executar aplicativos Ray juntamente com Apache Spark. Essa integração oferece suporte a dados contínuos ETL operações, transferência eficiente de dados e computação paralela avançada no mesmo ambiente compute.
  • Governança e controle : Obtenha os benefícios do acompanhamento de linhagem, controle de versão de dados e controle de acesso com Unity Catalog para todos os seus dados ativos, arquivos, modelos e muito mais, garantindo compliance e segurança.
  • Gerenciamento de infraestrutura : Utilize ferramentas de infraestrutura como o Databricks Terraform Provider e o Databricks ativo Bundles para gerenciar seu clustering e trabalho, garantindo operações simplificadas e escalabilidade.
  • gerenciar o Ray clustering : O Ray clustering é gerenciado no mesmo ambiente de execução que um Apache Spark clustering em execução. Isso garante escalabilidade, confiabilidade e facilidade de uso sem a necessidade de configuração complexa de infraestrutura.
  • soluções modelo e monitoramento : Conecte modelos treinados com Ray ensinando a fornecer modelo para implantações de alta disponibilidade e baixa latência. Além disso, utilize a análise de perfil de dados para monitorar a qualidade e a deriva das previsões do modelo, garantindo um desempenho consistente.
  • Desenvolvimento aprimorado de ML : Integre-se ao serviço MLflow totalmente gerenciado da Databricks para acompanhar o desenvolvimento de seu modelo, facilitando o gerenciamento de experimentos e a reprodutibilidade em seus aplicativos Ray.
  • Fluxo de trabalho automatizado : use o LakeFlow Jobs para automatizar seus processos, criando um pipeline pronto para produção que agiliza suas operações e reduz a intervenção manual.
  • Gerenciamento de código e colaboração : gerencie seu código de forma eficiente com as pastas Databricks Git , permitindo a integração perfeita do Git para controle de versão e desenvolvimento colaborativo do código do seu aplicativo Ray.
  • Acesso eficiente aos dados : Conecte os aplicativos Ray ao site Delta Lake, aproveitando o amplo ecossistema de integração de dados do Databricks para estender os recursos do Ray a uma gama mais ampla de aplicativos e resultados.

Ao executar o Ray em Databricks, o senhor obtém acesso a um ecossistema integrado que aprimora o processamento de dados, o aprendizado de máquina e o fluxo de trabalho operacional.

Casos de uso: aprendizado de máquina e muito mais

O Ray é uma ferramenta versátil que amplia os recursos do Python além das limitações das operações do DataFrame, tornando-o ideal para algoritmos distribuídos altamente personalizados e especializados.

Aprendizado de máquina e aprendizagem profunda

Aproveite a biblioteca de aprendizado de máquina da Ray para aprimorar seu ML fluxo de trabalho:

  • Ajuste de hiperparâmetros : Otimize o desempenho do modelo com o Ray Tune para uma pesquisa de hiperparâmetros escalonável e de alto desempenho.
  • Treinamento profundo de aprendizagem distribuída : escala modelos de aprendizagem profunda em vários nós com suporte para estruturas populares como PyTorch, TensorFlow, HuggingFace e Keras. Ideal para modelos de treinamento para visão computacional ou modelos de linguagem de grande porte (LLMs).
  • Aprendizado de máquina tradicional : Use o Ray para distribuir treinamento, avaliação e inferência de lotes para modelos tradicionais do ML criados com uma biblioteca popular, como scikit-learn ou XGBoost.

Computação de alto desempenho (HPC)

O Ray se destaca na distribuição de cargas de trabalho de HPC, tornando-o adequado para:

  • Cálculos matemáticos : Realize cálculos complexos em campos como física, genomics ou finanças usando o Ray Core para um processamento paralelo eficiente.
  • Previsão de séries temporais : escalone seus modelos de previsão, executando estimativas simultaneamente com o pacote de previsão, como Prophet ou ARIMA.

Processamento de dados e engenharia de recursos

O Ray também pode lidar com várias tarefas de processamento de dados:

  • compute recurso : o complexo compute-intensive recurso engenharia tarefa pode se beneficiar da arquitetura de computação distribuída do Ray.
  • Processamento de áudio, imagem e vídeo : Distribua e acelere o processamento de dados multimídia, tornando-o ideal para aplicações em reconhecimento de fala, classificação de imagens e análise de vídeo.

Limitações

  • Ray no Apache Spark é suportado apenas para o modo de acesso dedicado, modo de acesso compartilhado sem isolamento e clusters de jobs. Um cluster Ray criado com a integração Ray-on-Spark não pode ser iniciado em clusters usando Runtimes baseados em serverless. Consulte Modos de acesso.
nota

Para Ray em compute de GPU serverless (atualmente em Beta), consulte Treinamento distribuído com Ray Train.

  • Evite executar o site %pip para instalar o pacote em um cluster Ray em execução, pois isso encerrará o cluster. Em vez disso, instale o biblioteca antes de inicializar o clustering.
  • O uso de integrações que substituem a configuração do site ray.util.spark.setup_ray_cluster pode fazer com que o Ray clustering se torne instável. Evite o excesso de assinatura do recurso de agrupamento Ray em aplicativos de terceiros.
  • Se o senhor encontrar erros como ncclInternalError: Internal check failed, isso indica um problema com a comunicação de rede entre as GPUs em seu clustering. Para solucionar esse erro, adicione o seguinte trecho ao seu código de treinamento para usar a interface de rede primária.
Python
import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"

Consulte os outros artigos desta seção.