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.
  • servindo modelo e monitoramento : Conecte modelos treinados com o Ray Train ao site Mosaic AI Model Serving para implementações de alta disponibilidade e baixa latência. Além disso, use o monitoramento do Lakehouse para rastrear a qualidade e o desvio da previsão 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 Databricks 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 Databrickspara 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

  • O Ray em Apache Spark é compatível com o modo de acesso dedicado, sem isolamento, modo de acesso compartilhado e somente Job clustering. Um clustering Ray não pode ser iniciado no clustering usando tempos de execução baseados em serverless. Consulte Modos de acesso.
  • 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.