O que é o Ray na Databricks?

Ray é uma estrutura de código aberto para dimensionar aplicativos Python. Ele inclui uma biblioteca específica para cargas de trabalho de AI, o que o torna especialmente adequado para o desenvolvimento de aplicativos de 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 aplicativos Ray clusters e executá-los em Apache Spark clusters 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 intensivas em compute, como machine learning 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 oferecem uma combinação poderosa para o processamento de dados e a 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 machine learning fluxo de trabalho 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 oferece 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 clusters e Job, garantindo operações simplificadas e escalabilidade.

  • Gerenciar Ray clusters: Ray clusters são gerenciados no mesmo ambiente de execução que um Apache Spark cluster. Isso garante escalabilidade, confiabilidade e facilidade de uso sem a necessidade de configuração de infraestrutura complexa.

  • servindo modelo e monitoramento: Conecte modelos treinados com o Ray ensinar ao site Mosaic AI Model Serving para implementações de alta disponibilidade e baixa latência. Além disso, use o lakehouse monitoramento 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, machine learning e o fluxo de trabalho operacional.

Casos de uso - machine learning e além

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 do Ray machine learning 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).

  • Tradicional machine learning: Use o Ray para distribuir treinamento, avaliação e inferência de lotes para modelos tradicionais ML criados com uma biblioteca popular, como Scikit-Learn ou XGBoost.

Computação de alto desempenho (HPC)

O Ray é excelente na distribuição de cargas de trabalho de HPC, o que o torna 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 on Apache Spark é compatível com o modo de acesso de usuário único (atribuído), com o modo de acesso compartilhado sem isolamento e somente com o Job clusters. Um cluster Ray não pode ser iniciado em clusters que usam tempos de execução baseados em serverless.

  • Evite executar %pip para instalar o pacote em um Ray cluster em execução, pois isso encerrará o cluster. Em vez disso, instale a biblioteca antes de inicializar o site cluster.

  • O uso de integrações que substituem a configuração de ray.util.spark.setup_ray_cluster pode fazer com que o Ray cluster se torne instável. Evite o excesso de assinaturas do Ray cluster recurso 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 no cluster. Para solucionar esse erro, adicione o seguinte trecho ao seu código de treinamento para usar a interface de rede primária.

import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"

Consulte os outros artigos desta seção.