Com o machine learning distribuído, os cientistas de dados e engenheiros de ML podem escalonar o treinamento de modelos de machine learning (ML) além das limitações de memória e computação de uma única máquina. Ao distribuir partições de dados e carregar cargas de trabalho em paralelo em um cluster de nós de trabalho, é possível treinar modelos complexos com conjuntos de dados massivos de forma significativamente mais rápida.
O Apache Spark é o padrão do setor para processamento de dados distribuídos. A biblioteca de machine learning nativa, MLlib, oferece algoritmos distribuídos para classificação, regressão, clustering e filtragem colaborativa. Com isso, você vai da ingestão de dados para a implantação de modelos em um único ambiente unificado.
Um pipeline de ML do Spark é uma API de alto nível projetada para ajudar você a combinar vários fluxos de trabalho de machine learning em um pipeline coeso. Ele permite encadear várias transformações de dados (como extração e escalonamento de atributos) e algoritmos de machine learning (como treinamento de modelos) em um fluxo de trabalho estruturado e declarativo.
Ao usar um pipeline, você garante que a mesma sequência de etapas de pré-processamento de dados seja aplicada de forma consistente durante o treinamento de modelo e a previsão, o que é crucial para evitar o vazamento de dados e garantir resultados reproduzíveis. Os principais componentes de um pipeline de ML do Spark são os transformadores e estimadores.
Muitas vezes, escalonar cargas de trabalho de ML para aplicar aceleração de hardware traz o desafio de lidar com dependências complexas de GPU do Spark. Provisionar instâncias de VM, instalar os drivers NVIDIA corretos e garantir que as versões CUDA e cuDNN sejam compatíveis com suas bibliotecas PyTorch ou TensorFlow pode interromper a produtividade do desenvolvedor por dias.
O Google Cloud resolve isso com o Serviço Gerenciado para Apache Spark, que oferece ambientes de execução de machine learning predefinidos. Criados com base em imagens estáveis do Ubuntu (a partir da versão 2.3), esses ambientes de execução vêm pré-instalados e pré-configurados com os drivers de GPU exatos (CUDA, cuDNN, NCCL) e os frameworks de ML padrão do setor (PyTorch, XGBoost, tokenizadores e transformadores) que suas cargas de trabalho exigem. Com esse ambiente sem configuração, sua equipe pode se concentrar em escrever o código em vez de configurar a infraestrutura.
No Spark MLlib, um transformador é um algoritmo que transforma um DataFrame em outro (por exemplo, convertendo texto em vetores numéricos). Um estimador é um algoritmo que pode ser ajustado em um DataFrame para produzir um transformador (por exemplo, ajustar um algoritmo de regressão logística em dados de treinamento para produzir um modelo treinado).
Ao usar um pipeline de ML do Spark, você garante que sua lógica de preparação de dados esteja estritamente vinculada ao modelo. Isso garante que os dados de teste ou inferência sejam processados de forma idêntica aos dados de treinamento.
Com os ambientes de execução de ML do Google Cloud no Serviço Gerenciado para Apache Spark, o gerenciamento de dependências é transferido. O Google atualiza continuamente as imagens personalizadas baseadas no Ubuntu e cria pacotes predefinidos com as versões corretas e compatíveis dos drivers NVIDIA, kits de ferramentas CUDA e frameworks de ML distribuídos.
Entender os elementos básicos do Spark MLlib e das ferramentas de dados do Google Cloud é essencial para executar ML distribuído em escala.
Componente | Descrição | Caso de uso principal | Considerações de preço |
Spark MLlib | Biblioteca de machine learning escalonável do Apache Spark que contém algoritmos de aprendizado, ferramentas de geração de atributos e utilitários de pipeline gerais. | Execução do treinamento de modelo de ML em grande escala em um cluster distribuído sem depender de bibliotecas de nó único. | Os custos são gerados pelos serviços do Google Cloud usados para executar o Apache Spark, principalmente o Serviço Gerenciado para Apache Spark. Os preços dependem dos recursos do Compute Engine (vCPUs, memória, GPUs, disco) provisionados e da duração da execução do job. *Consulte os preços do Serviço Gerenciado para Apache Spark. |
Montador de vetores | Um transformador de atributos principais no Spark MLlib que mescla várias colunas (números contínuos, categorias com codificação one-hot etc.) em uma única coluna de vetores. | Preparação de dados tabulares brutos no formato específico de vetores densos ou esparsos que os algoritmos de machine learning do Spark MLlib esperam. | Por ser um componente do Spark MLlib, sua execução contribui para os custos gerais de computação ao executar cargas de trabalho do Spark no Serviço Gerenciado para Apache Spark. |
Pipeline de ML do Spark | Uma API de alto nível criada com base em DataFrames que ajuda os usuários a encadear várias etapas e modelos de engenharia de atributos. | Agrupamento de transformadores e estimadores em um pipeline unificado para garantir o processamento de dados idêntico durante o treinamento e a inferência. | Assim como outros componentes do Spark MLlib, os custos fazem parte das cobranças de execução do Serviço Gerenciado para Apache Spark. |
BigQuery ML | Um serviço que permite criar e executar modelos de machine learning no BigQuery usando consultas SQL padrão. | Treinamento de modelos diretamente onde seus dados estão antes de mover jobs distribuídos iterativos e de alta complexidade para o Spark. | O BigQuery ML tem um modelo específico de preços. As cobranças são feitas com base:
|
Componente
Descrição
Caso de uso principal
Considerações de preço
Spark MLlib
Biblioteca de machine learning escalonável do Apache Spark que contém algoritmos de aprendizado, ferramentas de geração de atributos e utilitários de pipeline gerais.
Execução do treinamento de modelo de ML em grande escala em um cluster distribuído sem depender de bibliotecas de nó único.
Os custos são gerados pelos serviços do Google Cloud usados para executar o Apache Spark, principalmente o Serviço Gerenciado para Apache Spark. Os preços dependem dos recursos do Compute Engine (vCPUs, memória, GPUs, disco) provisionados e da duração da execução do job.
*Consulte os preços do Serviço Gerenciado para Apache Spark.
Montador de vetores
Um transformador de atributos principais no Spark MLlib que mescla várias colunas (números contínuos, categorias com codificação one-hot etc.) em uma única coluna de vetores.
Preparação de dados tabulares brutos no formato específico de vetores densos ou esparsos que os algoritmos de machine learning do Spark MLlib esperam.
Por ser um componente do Spark MLlib, sua execução contribui para os custos gerais de computação ao executar cargas de trabalho do Spark no Serviço Gerenciado para Apache Spark.
Pipeline de ML do Spark
Uma API de alto nível criada com base em DataFrames que ajuda os usuários a encadear várias etapas e modelos de engenharia de atributos.
Agrupamento de transformadores e estimadores em um pipeline unificado para garantir o processamento de dados idêntico durante o treinamento e a inferência.
Assim como outros componentes do Spark MLlib, os custos fazem parte das cobranças de execução do Serviço Gerenciado para Apache Spark.
BigQuery ML
Um serviço que permite criar e executar modelos de machine learning no BigQuery usando consultas SQL padrão.
Treinamento de modelos diretamente onde seus dados estão antes de mover jobs distribuídos iterativos e de alta complexidade para o Spark.
O BigQuery ML tem um modelo específico de preços. As cobranças são feitas com base:
O Serviço Gerenciado para Apache Spark do Google Cloud abstrai as complexidades da infraestrutura. Assim, você consegue executar seu pipeline de ML do Spark para treinamento de modelos em grande escala usando ambientes sem servidor ou clusters gerenciados personalizáveis.
Para eliminar dependências difíceis de GPU do Spark, o serviço utiliza ambientes de execução de ML predefinidos totalmente equipados com drivers NVIDIA, kits de ferramentas CUDA e frameworks distribuídos compatíveis de forma nativa, oferecendo um caminho sem configuração para implantar cargas de trabalho aceleradas por hardware.
Aprenda a usar transformadores para extrair e escalonar dados, além de estimadores para treinar algoritmos.
Inicie clusters do Spark acelerados por GPU sem gerenciar a infraestrutura. Os ambientes de execução de ML do Google Cloud vêm pré-configurados para que você possa ignorar dependências complexas de GPU do Spark.
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.