Compartilhar via


Treinar modelos de ML do Spark 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 de modelos do Spark ML e executar a inferência do modelo.

O que é pyspark.ml.connect?

O Spark 3.5 apresenta pyspark.ml.connect que foi projetado para dar 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 recursos, pipelines de ML e validação cruzada. Este módulo fornece interfaces semelhantes ao módulo herdado pyspark.ml, mas atualmente o módulo pyspark.ml.connect contém apenas um subconjunto dos algoritmos em pyspark.ml. Os algoritmos com suporte são listados abaixo:

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

Requisitos

No Databricks Runtime 17.0 e posteriores, o Spark ML no Spark Connect é habilitado por padrão em recursos de computação com o modo de acesso Standard com algumas limitações. Consulte limitações para o Databricks Runtime 17.0 na computação Standard. Utilize o Spark ML no computing Standard se precisar de distribuição ao nível do Spark para dados que não cabem na memória de um único nó ou se você precisar fazer o ajuste de hiperparâmetros distribuído.

Para o Databricks Runtime 14.0 ML e superior (incluindo o Databricks Runtime 17.0 em recursos de computação usando o modo de acesso dedicado ), há requisitos adicionais para usar o Spark ML:

Caderno de exemplo

O notebook a seguir demonstra como usar o ML Distribuído no Databricks Connect:

ML distribuído no Databricks Connect

Obter notebook

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

Limitações do Databricks Runtime 17.0 na computação Standard

  • Somente Python: o Spark ML na computação Standard dá suporte apenas ao Python. Não há suporte para R e Scala.
  • Suporte à biblioteca: somente o pyspark.ml pacote tem suporte. O pyspark.mllib pacote não é suportado.
  • Restrições de tamanho de 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 de árvore será interrompido mais cedo se o tamanho do modelo estiver prestes a exceder 1 GB.
  • Restrições de memória: apesar de os dados poderem ser distribuídos pelo cluster, o próprio modelo treinado é armazenado em cache no nó 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 é 25% da memória JVM do driver Spark.
  • Tempos limite de sessão: o modelo armazenado em cache na computação Standard atinge o tempo limite automaticamente após 15 minutos de inatividade. Para evitar perder seu modelo, salve-o em disco dentro de 15 minutos após a conclusão do treinamento ou mantenha a sessão ativa com uso frequente.
  • Contenção de recursos: em ambientes de computação Padrão, os recursos são compartilhados entre usuários e trabalhos dentro do workspace. A execução de vários trabalhos grandes simultaneamente pode levar a um desempenho reduzido ou à competição por espaços de execução.
  • Sem suporte para GPU: ambientes de computação padrão não dão suporte à aceleração de GPU. Para cargas de trabalho de machine learning aceleradas por GPU, clusters de GPU dedicados são recomendados.
  • Modelos sparkml limitados: os seguintes modelos SparkML não têm suporte:
    • DistributedLDAModel
    • FPGrowthModel