Pular para o conteúdo principal

Treine modelos Spark ML no Databricks Connect com pyspark.ml.connect

Este artigo fornece um exemplo que demonstra como usar o módulo pyspark.ml.connect para realizar o treinamento distribuído para treinar modelos Spark ML e executar a inferência do modelo.

O que é pyspark.ml.connect?

O Spark 3.5 apresenta o site pyspark.ml.connect, projetado para oferecer suporte ao modo de conexão do Spark e ao Databricks Connect. Saiba mais sobre o Databricks Connect.

O módulo pyspark.ml.connect consiste em algoritmos e utilitários de aprendizado comuns, incluindo classificação, transformadores de recurso, pipeline ML e validação cruzada. Esse módulo fornece interfaces semelhantes ao módulopyspark.ml legado, mas o módulo pyspark.ml.connect atualmente contém apenas um subconjunto dos algoritmos em pyspark.ml. Os algoritmos suportados estão listados abaixo:

  • Algoritmo de classificação: pyspark.ml.connect.classification.LogisticRegression
  • Transformadores de recurso: pyspark.ml.connect.feature.MaxAbsScaler e pyspark.ml.connect.feature.StandardScaler
  • Avaliador: pyspark.ml.connect.RegressionEvaluator, pyspark.ml.connect.BinaryClassificationEvaluator e MulticlassClassificationEvaluator
  • Pipeline: pyspark.ml.connect.pipeline.Pipeline
  • Ajuste do modelo: pyspark.ml.connect.tuning.CrossValidator

Requisitos

Em Databricks Runtime 17.0 e acima, Spark ML em Spark connect é habilitado por default em compute recurso com o modo de acesso padrão com algumas limitações. Consulte Limitações para Databricks Runtime 17.0 em computepadrão. Use Spark ML no Standard compute se precisar de uma distribuição de nível Sparkpara dados que não caibam na memória em um único nó ou se precisar fazer o ajuste de hiperparâmetros distribuídos.

Para Databricks Runtime 14.0 ML e acima (incluindo Databricks Runtime 17.0 em compute recurso usando o modo de acesso dedicado ), há requisitos adicionais para usar Spark ML:

Exemplo de notebook

O seguinte Notebook demonstra como usar o Distributed ML em Databricks Connect:

ML distribuído no Databricks Connect

Open notebook in new tab

Para obter informações de referência sobre APIs em pyspark.ml.connect, Databricks recomenda a referênciaApache Spark API

Limitações para Databricks Runtime 17.0 no Standard compute

  • Python somente : Spark ML no padrão compute suporta somente Python. Não há suporte para R e Scala.
  • Suporte à biblioteca : Somente o pacote pyspark.ml é compatível. O pacote pyspark.mllib não é compatível.
  • Restrições de tamanho do modelo : O tamanho máximo do modelo é de 1 GB, portanto, o treinamento de modelos extremamente grandes pode não ser viável. O treinamento do modelo em árvore será interrompido antecipadamente se o tamanho do modelo estiver prestes a exceder 1 GB.
  • Restrições de memória : Embora os dados possam ser distribuídos pelo clustering, o próprio modelo treinado é armazenado em cache no nó do driver, que é compartilhado entre outros usuários. O tamanho máximo do cache do modelo por sessão é de 10 GB, e o tamanho máximo do cache do modelo na memória por sessão é de 25% da memória JVM do driver do Spark.
  • Tempo limite da sessão : O modelo em cache no site Standard compute atinge automaticamente o tempo limite após 15 minutos de inatividade, e o resumo do modelo é perdido. Para evitar a perda do modelo, salve-o no disco em até 15 minutos após a conclusão do treinamento ou mantenha a sessão ativa com uso frequente.
  • contenção de recursos : Em ambientes compute padrão, os recursos são compartilhados entre usuários e trabalhos dentro do workspace. A execução simultânea de vários trabalhos grandes pode levar a um desempenho mais lento ou à concorrência por executor slots.
  • Sem suporte a GPU : Os ambientes padrão do site compute não são compatíveis com a aceleração de GPU. Para cargas de trabalho de aprendizado de máquina aceleradas por GPU, recomenda-se o clustering de GPU dedicado.
  • Modelos limitados do SparkML: Os seguintes modelos do SparkML não são suportados:
    • DistributedLDAModel
    • FPGrowthModel