Compartilhar via


O que é o Ray no Azure Databricks?

Ray é uma estrutura de software livre para dimensionar aplicativos Python. Ele inclui bibliotecas específicas para cargas de trabalho de IA, tornando-se especialmente adequado para o desenvolvimento de aplicativos de IA. O Ray no Azure Databricks permite executar aplicativos Ray o contar com todos os benefícios e recursos da plataforma do Azure Databricks.

Com o Ray 2.3.0 e versões superiores, você pode criar clusters Ray e executar aplicativos Ray em clusters do Apache Spark com o Azure Databricks.

Para obter informações sobre como começar a usar o aprendizado de máquina no Ray, incluindo tutoriais e exemplos, consulte a Documentação do Ray. Para obter mais informações sobre a integração do Ray e do Apache Spark, consulte a Documentação do API do Ray no Spark.

Confira os outros artigos desta seção.

O que é o Ray?

O Ray simplifica os sistemas distribuídos fornecendo primitivos básicos do Python para criar aplicativos distribuídos do zero. Para desenvolvedores do Python que estão conhecendo sistemas distribuídos, ele oferece a mesma facilidade de uso que o Python padrão ao gerenciar a orquestração, o agendamento e a tolerância a falhas.

O Ray e o Apache Spark são estruturas complementares. O Ray se destaca no paralelismo lógico, lidando com tarefas dinâmicas e que fazem uso intensivo de computação, como aprendizado de máquina e aprendizado por reforço. O Apache Spark é especializado no 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 usar o Ray no Azure Databricks?

Executar o Ray no Azure Databricks permite aproveitar a amplitude do ecossistema do Azure Databricks, aprimorando o processamento de dados e os fluxos de trabalho de machine learning com serviços e integrações que não estão disponíveis no Ray de código aberto. Os benefícios de executar o Ray no Azure Databricks incluem:

  • Plataforma unificada: o Azure Databricks fornece uma plataforma unificada na qual você pode executar aplicativos Ray junto com o Apache Spark. Essa integração dá suporte a operações de ETL de dados sem complicações, transferência eficiente de dados e computação paralela avançada no mesmo ambiente de computação.
  • Governança e controle: obtenha os benefícios do controle de linhagem, controle de versão de dados e controle de acesso com o Catálogo do Unity para todos os seus ativos de dados, arquivos, modelos e muito mais, garantindo conformidade e segurança.
  • Gerenciamento de infraestrutura: utilize ferramentas de infraestrutura como o Provedor Terraform do Azure Databricks e os Pacotes de Ativos do Azure Databricks para gerenciar clusters e trabalhos, garantindo operações simplificadas e escalabilidade.
  • Clusters Gerenciados do Ray: os clusters do Ray são gerenciados no mesmo ambiente de execução que um cluster do Apache Spark. Isso garante escalabilidade, confiabilidade e facilidade de uso sem a necessidade de configuração de infraestrutura complexa.
  • Serviço e monitoramento de modelos: conecte modelos treinados com o Ray Train ao Model Serving do Mosaic AI para implantações de alta disponibilidade e baixa latência. Além disso, use o Lakehouse Monitoring para monitorar a qualidade e o descompasso da previsão do modelo, garantindo um desempenho consistente.
  • Desenvolvimento aprimorado de ML: integre-se ao serviço totalmente gerenciado MLflow do Azure Databricks para acompanhar o desenvolvimento de modelos, facilitando o gerenciamento de experimentos e a reprodutibilidade em seus aplicativos Ray.
  • Fluxos de trabalho automatizados: use fluxos de trabalho do Azure Databricks para automatizar seus processos, criando pipelines prontos para produção que simplificam suas operações e reduzem a intervenção manual.
  • Gerenciamento de código e colaboração: gerencie seu código com eficiência com pastas Git do Azure Databricks, permitindo a integração total do Git para controle de versão e desenvolvimento colaborativo para o código do aplicativo Ray.
  • Acesso eficiente aos dados: conecte aplicativos Ray ao Delta Lake, aproveitando o amplo ecossistema de integrações de dados do Azure Databricks para estender os recursos do Ray a uma gama mais ampla de aplicativos e saídas.

Ao executar o Ray no Azure Databricks, você obtém acesso a um ecossistema integrado que aprimora o processamento de dados, o aprendizado de máquina e os fluxos de trabalho operacionais.

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

O Ray é uma ferramenta versátil que estende os recursos do Python para 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 aprendizado profundo

Aproveite as bibliotecas de aprendizado de máquina do Ray para aprimorar seus fluxos de trabalho de ML:

  • Ajuste de hiperparâmetro: otimize o desempenho do modelo com o Ray Tune para pesquisa de hiperparâmetro escalonável e de alto desempenho.
  • Treinamento de aprendizado profundo distribuído: dimensione modelos de aprendizado profundo em vários nós com suporte para estruturas populares como PyTorch, TensorFlow, HuggingFace e Keras. Ideal para modelos de treinamento para pesquisa visual computacional ou LLMs (modelos de linguagem grandes).
  • Aprendizado de máquina tradicional: use o Ray para distribuir treinamento, avaliação e inferência em lotes para modelos de ML tradicionais criados com bibliotecas populares, como scikit-learn ou XGBoost.

HPC (computação de alto desempenho)

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

  • Cálculos matemáticos: execute cálculos complexos em campos como física, genômica ou finanças usando o Ray Core para processamento paralelo eficiente.
  • Previsão de série temporal: dimensione seus modelos de previsão, executando estimativas simultaneamente com pacotes 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:

  • Recursos computados: tarefas complexas de engenharia de recursos com uso intensivo de computação podem 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, sendo ideal para aplicações em reconhecimento de fala, classificação de imagem e análise de vídeo.

Limitações

  • O Ray no Apache Spark é compatível com o modo de acesso de usuário único (atribuído), modo de acesso compartilhado sem isolamento e acesso apenas a clusters de trabalhos. Um cluster do Ray não pode ser iniciado em clusters usando runtimes baseados modelos sem servidor.
  • Evite executar %pip para instalar pacotes em um cluster do Ray em execução, pois ele desligará o cluster. Em vez disso, instale bibliotecas antes de inicializar o cluster.
  • O uso de integrações que substituem a configuração de ray.util.spark.setup_ray_cluster pode fazer com que o cluster do Ray fique instável. Evite muitas assinaturas de recursos de cluster do Ray em aplicativos de terceiros.
  • Se você se deparar com erros como ncclInternalError: Internal check failed, isso indica um problema com a comunicação de rede entre GPUs em seu cluster. Para resolver este erro, adicione o snippet a seguir no código de treinamento para usar o adaptador de rede primário.
import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"