Partilhar via


Treinar 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 executar treinamento distribuído, treinar modelos Spark ML e realizar a inferência do modelo.

O que é o pyspark.ml.connect?

Spark 3.5 apresenta pyspark.ml.connect que é concebido para dar suporte ao modo de ligação Spark e ao Databricks Connect. Saiba mais sobre o Databricks Connect.

O pyspark.ml.connect módulo consiste em algoritmos e utilitários de aprendizagem comuns, incluindo classificação, transformadores de recursos, pipelines de ML e validação cruzada. Este módulo fornece interfaces semelhantes ao módulo legado, mas o módulo atual contém apenas um subconjunto dos algoritmos disponíveis em . Os algoritmos suportados estão listados abaixo:

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

Requisitos

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

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:

Bloco de notas de exemplo

O bloco de anotações a seguir demonstra como usar o ML distribuído no Databricks Connect:

Machine Learning distribuído no Databricks Connect

Obter o caderno

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

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

  • Somente Python: o Spark ML na computação Standard suporta apenas Python. R e Scala não são suportados.
  • Suporte à biblioteca: Somente o pyspark.ml pacote é suportado. O pyspark.mllib pacote não é suportado.
  • Restrições de tamanho do modelo: O tamanho máximo do modelo é de 1 GB, portanto, treinar modelos extremamente grandes pode não ser viável. O treinamento de modelo de árvore será interrompido mais cedo se o tamanho do modelo estiver prestes a exceder 1 GB.
  • Restrições de memória: enquanto os dados podem ser distribuídos pelo cluster, o próprio modelo treinado é armazenado em cache no nó do motor de execução, que é partilhado com outros utilizadores. O tamanho máximo do cache do modelo por sessão é de 10 GB, e o tamanho máximo do cache do modelo em memória por sessão é de 25% da memória JVM do driver Spark.
  • Timeouts de sessão: O modelo em cache no cálculo Standard expira automaticamente após 15 minutos de inatividade. Para evitar perder o seu modelo, guarde-o no disco no prazo de 15 minutos após a conclusão do treino ou mantenha a sessão ativa com utilização frequente.
  • Contenção de recursos: em ambientes de computação padrão, os recursos são compartilhados entre usuários e trabalhos dentro do espaço de trabalho. A execução simultânea de vários trabalhos grandes pode levar a um desempenho mais lento ou à competição por slots de executores.
  • Sem suporte a GPU: os ambientes de computação padrão não suportam aceleração de GPU. Para cargas de trabalho de aprendizado de máquina aceleradas por GPU, clusters de GPU dedicados são recomendados.
  • Modelos SparkML limitados: Os seguintes modelos SparkML não são suportados:
    • DistributedLDAModel
    • FPGrowthModel