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.
Tratamento 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.
Detecção de anomalias
Detecção de anomalias com métodos estatísticos
Este notebook demonstra como realizar a detecção de anomalias em dados de streaming e em lote usando a PTransform
AnomalyDetection. Ele usa o algoritmo Z-Score para identificar outliers em um conjunto de dados.
Recursos adicionais
Usar aceleradores (GPUs/TPUs)
O uso de aceleradores, como GPUs e TPUs, em jobs do Dataflow pode acelerar significativamente as tarefas de processamento de dados usadas com frequência em casos de uso de aprendizado de máquina e processamento de imagens.
As TPUs, em particular, são aceleradores de IA personalizados otimizados para treinamento e uso de grandes modelos de IA, oferecendo uma maneira versátil de escalonar uma ampla variedade de cargas de trabalho de IA.
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.
Leia sobre um exemplo de caso de uso
Esta postagem do blog explica como criar aplicativos de RAG com pesquisa semântica e representações numéricas (embeddings) em tempo real. Ele usa o Dataflow ML para preparar os dados, convertendo-os em embeddings e armazenando-os em um banco de dados vetorial, como o AlloyDB.