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.
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.
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))
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))
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

Usar um modelo pré-treinado com o Pytorch.
Usar um modelo pré-treinado com o scikit-learn
Usar um modelo pré-treinado com o TensorFlow.
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.
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

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).
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.
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.
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

É 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.
Use a transformação RunInference com um modelo treinado do Hugging Face.
Use a transformação do RunInference para o TensorFlow com um modelo treinado do TensorFlow Hub.
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

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.
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.
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

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

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 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.
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

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.
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

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.
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.
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.
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.