ML do Dataflow
O Dataflow ML permite usar o Dataflow para implantar e gerenciar pipelines completos de machine learning (ML). Use modelos de ML para fazer inferências locais e remotas com pipelines de streaming e em lote. Use ferramentas de processamento de dados para preparar seus dados para o treinamento de modelo e processar os resultados dos modelos.
Previsão e inferência
Se você quiser classificar imagens em tempo real, executar chamadas de inferência remota ou criar um gerenciador de modelos personalizado, encontre exemplos completos do Dataflow ML.
Processamento de dados
Use a classe
MLTransform
para pré-processar dados para fluxos de trabalho de machine learning (ML). Ao combinar várias transformações de processamento de dados em uma classe, o MLTransform
simplifica o processo de aplicação de transformações de processamento de dados de ML do Apache Beam no fluxo de trabalho.
with pipeline as p: predictions = ( p | beam.ReadFromSource('a_source') | RunInference(MODEL_HANDLER))
Transformação RunInference
Usar o
RunInference
é tão simples quanto adicionar o código de transformação ao pipeline. Neste exemplo, MODEL_HANDLER é o objeto de configuração do modelo.
with beam.Pipeline() as p: transformed_data = ( p | beam.Create(data) | MLTransform(...) | beam.Map(print))
Código MLTransform
Para preparar seus dados para treinar modelos de ML, use
MLTransform
no pipeline. O MLTransform
envolve várias transformações de processamento de dados em uma classe, permitindo que você use uma classe para várias tarefas de pré-processamento.
Previsão e inferência com modelos pré-treinados
Tenho um modelo do Pytorch
Usar um modelo pré-treinado com o Pytorch.
Tenho um modelo do scikit-learn
Usar um modelo pré-treinado com o scikit-learn
Tenho um modelo do TensorFlow
Usar um modelo pré-treinado com o TensorFlow.
Tenho um gerenciador de modelo da Vertex AI
O Apache Beam tem suporte integrado para enviar solicitações a um endpoint da Vertex AI implantado remotamente. Este notebook mostra como usar a transformação
RunInference
do Apache Beam para classificação de imagens com a Vertex AI.
Quero usar vários modelos treinados de maneira diferente no meu pipeline
Use a transformação
RunInference
com um gerenciador de modelo com chave para usar vários modelos na mesma transformação RunInference
.
Processamento de dados com o MLTransform
Quero gerar embeddings de texto para meu LLM usando a Vertex AI
Use a classe
MLTransform
do Apache Beam com a API text-embeddings da Vertex AI para gerar embeddings de texto. Os embeddings de texto são uma maneira de representar o texto como vetores numéricos, o que é necessário para muitas tarefas de processamento de linguagem natural (PLN).
Quero gerar embeddings de texto para meu LLM usando a Hugging Face
Use a classe
MLTransform
do Apache Beam com modelos do Hugging Face Hub para gerar embeddings de texto. O framework SentenceTransformers
da Hugging Face usa Python para gerar embeddings de sentenças, textos e imagens.
Quero computar o vocabulário de um conjunto de dados
Compute um vocabulário exclusivo de um conjunto de dados e depois mapeie cada palavra ou token com um índice distinto de números inteiros. Use essa transformação para transformar dados textuais em representações numéricas para tarefas de machine learning.
Quero dimensionar meus dados para treinar um modelo de ML
Dimensione os dados para usá-los no treinamento do seu modelo de ML. A classe
MLTransform
do Apache Beam inclui várias transformações de dimensionamento de dados.
Previsão e inferência com modelos hub
Quero fazer análises de sentimento e resumos
É possível usar modelos Gemma nos pipelines de inferência para avaliar o sentimento de uma conversa, resumir o conteúdo dela e preparar uma resposta para uma conversa difícil.
Eu tenho um modelo treinado da Hugging Face
Use a transformação
RunInference
com um modelo treinado do Hugging Face.
Tenho um modelo treinado do TensorFlow Hub
Use a transformação do
RunInference
para o TensorFlow com um modelo treinado do TensorFlow Hub.
Quero fazer IA generativa
Use a transformação
RunInference
para tarefas generativas de IA. Este notebook usa um modelo de linguagem do Hub de modelo de face do Hugging.
Orquestração do fluxo de trabalho de ML
Quero usar o Dataflow com pipelines da Vertex AI
O Pipelines da Vertex AI ajuda a automatizar, monitorar e controlar seus sistemas de ML, orquestrando os fluxos de trabalho de ML sem servidor. Use o Pipelines da Vertex AI para orquestrar DAGs de fluxo de trabalho definidos pelo TFX ou KFP e rastrear automaticamente seus artefatos de ML usando o Vertex ML Metadata.
Quero usar o Dataflow com o TFX
O TensorFlow Extended (TFX) permite implantar pipelines de ML completos usando um framework de orquestração integrado ao Apache Beam e ao executor do Dataflow.
Quero usar o Dataflow com KFP
O Kubeflow torna as implantações de fluxos de trabalho de ML no Kubernetes simples, portáteis e escalonáveis. O Kubeflow Pipelines são fluxos de trabalho de ML completos reutilizáveis criados com o SDK do Kubeflow Pipelines.
Outros recursos
Usar GPUs
O uso de GPUs em jobs do Dataflow acelera o processamento de imagens e de tarefas de machine learning. Consulte os tipos de GPU compatíveis com o Dataflow e as recomendações de qual tipo de GPU usar com diferentes cargas de trabalho.
Combine CPUs e GPUs com o ajuste certo
Combine GPUs e CPUs como quiser para ter alto desempenho e abaixar o custo. A capacidade de direcionar recursos para etapas específicas do pipeline proporciona mais flexibilidade e capacidade do pipeline, além de possível economia de custos.
Aprimorar pipelines de streaming com dados do Feature Store
O Apache Beam simplifica o fluxo de trabalho de aprimoramento de dados fornecendo uma transformação de aprimoramento pronta para uso que pode ser adicionada ao pipeline.
Manutenção e avaliação de modelo
Atualização automática de modelo
Como o
RunInference
, você executa atualizações automáticas de modelo sem interromper o pipeline do Apache Beam. Use entradas secundárias para atualizar o modelo em tempo real, mesmo durante a execução do pipeline.
Avalie seus modelos
Crie e compare dois modelos usando o TensorFlow Model Analysis (TFMA) para investigar e visualizar o desempenho de um modelo. Com o Apache Beam, é possível avaliar e comparar vários modelos em uma única etapa.
Recursos
Executar pipelines entre linguagens
Para usar o RunInference com um pipeline do Java, crie uma transformação do Python entre linguagens. O pipeline chama a transformação, que faz o pré-processamento, o pós-processamento e a inferência.
Permissões do Dataflow
Para executar os exemplos da ML do Dataflow, talvez seja necessário configurar as permissões do Google Cloud. Leia um guia detalhado sobre as permissões necessárias para pipelines do Dataflow.
Ver os exemplos no GitHub
Os exemplos e o código-fonte correspondente estão disponíveis no GitHub. No GitHub, também é possível encontrar instruções para executar os exemplos no Colab.