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.

Outros recursos

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