Dataflow ML
O Dataflow ML permite-lhe usar o Dataflow para implementar e gerir pipelines de aprendizagem automática (AA) completos. Use modelos de AA para fazer inferência local e remota com pipelines de streaming e em lote. Use ferramentas de processamento de dados para preparar os dados para a preparação de modelos e para processar os resultados dos modelos.
Previsão e inferência
Quer classificar imagens em tempo real, executar chamadas de inferência remotas ou criar um controlador de modelos personalizado, pode encontrar exemplos completos de ML do Dataflow.
Processamento de dados
Use a classe
MLTransform
para pré-processar dados para fluxos de trabalho de aprendizagem automática (ML). Ao combinar várias transformações de processamento de dados numa classe, a MLTransform
simplifica o processo de aplicação de transformações de processamento de dados de ML do Apache Beam ao seu fluxo de trabalho.
with pipeline as p: predictions = ( p | beam.ReadFromSource('a_source') | RunInference(MODEL_HANDLER))
Transformação RunInference
A utilização de
RunInference
é tão simples como adicionar o código de transformação ao seu 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 os dados para a preparação de modelos de ML, use
MLTransform
no seu pipeline. MLTransform
envolve várias transformações de processamento de dados numa classe, o que lhe permite usar uma classe para uma variedade de tarefas de pré-processamento.
Previsão e inferência com modelos pré-preparados
Tenho um modelo do PyTorch
Use um modelo pré-preparado com o Pytorch.
Tenho um modelo scikit-learn
Use um modelo pré-preparado com o scikit-learn.
Tenho um modelo do TensorFlow
Use um modelo pré-preparado com o TensorFlow.
Tenho um controlador de modelo do Vertex AI
O Apache Beam tem suporte integrado para enviar pedidos para um ponto final do Vertex AI implementado remotamente. Este bloco de notas mostra como usar a transformação
RunInference
do Apache Beam para a classificação de imagens com a Vertex AI.
Quero usar vários modelos com preparação diferente no meu pipeline
Use a transformação
RunInference
com um controlador de modelos com chave para usar vários modelos na mesma transformação RunInference
.
Tratamento de dados com MLTransform
Quero gerar incorporações de texto para o meu MDI/CE através do Vertex AI
Use a classe
MLTransform
do Apache Beam com a API Vertex AI text-embeddings para gerar incorporações de texto. As incorporações de texto são uma forma de representar texto como vetores numéricos, o que é necessário para muitas tarefas de processamento de linguagem natural (NLP).
Quero gerar incorporações de texto para o meu MDI/CE usando o Hugging Face
Use a classe
MLTransform
do Apache Beam com modelos do Hugging Face Hub para gerar incorporações de texto. A framework SentenceTransformers
da Hugging Face usa Python para gerar incorporações de frases, texto e imagens.
Quero calcular um vocabulário a partir de um conjunto de dados
Calcular um vocabulário único a partir de um conjunto de dados e, em seguida, mapear cada palavra ou token para um índice inteiro distinto. Use esta transformação para alterar dados textuais em representações numéricas para tarefas de aprendizagem automática.
Quero dimensionar os meus dados para preparar o meu modelo de ML
Dimensione os seus dados para que os possa usar para preparar o 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 do hub
Quero fazer análise de sentimento e resumo
Pode usar os modelos Gemma nos seus pipelines de inferência para avaliar o sentimento de uma conversa, resumir o conteúdo dessa conversa e criar um rascunho de uma resposta para uma conversa difícil.
Tenho um modelo preparado da Hugging Face
Use a transformação
RunInference
com um modelo preparado da Hugging Face.
Tenho um modelo preparado do TensorFlow Hub
Use a transformação
RunInference
para o TensorFlow com um modelo preparado do TensorFlow Hub.
Quero usar a IA generativa
Use a transformação
RunInference
para tarefas de IA generativa. Este bloco de notas usa um modelo de linguagem do Hugging Face Model Hub.
Orquestração de fluxos de trabalho de ML
Quero usar o Dataflow com o Vertex AI Pipelines
Os Vertex AI Pipelines ajudam a automatizar, monitorizar e governar os seus sistemas de ML ao orquestrar os fluxos de trabalho de ML sem servidor. Use o Vertex AI Pipelines para orquestrar DAGs de fluxo de trabalho definidos pelo TFX ou KFP e para acompanhar automaticamente os seus artefactos de ML através do Vertex ML Metadata.
Quero usar o Dataflow com o TFX
O TensorFlow Extended (TFX) permite-lhe implementar pipelines de AA completos através de uma framework de orquestração com uma integração incorporada com o Apache Beam e o executor do Dataflow.
Quero usar o Dataflow com o KFP
O Kubeflow torna as implementações de fluxos de trabalho de ML no Kubernetes simples, portáteis e escaláveis. Os Kubeflow Pipelines são fluxos de trabalho de AA completos reutilizáveis criados com o SDK Kubeflow Pipelines.
Deteção de anomalias
Deteção de anomalias com métodos estatísticos
Este bloco de notas demonstra como realizar a deteção de anomalias em dados de processamento em lote e streaming através da
AnomalyDetection
PTransform. Usa o algoritmo de pontuação Z para identificar valores atípicos num conjunto de dados.
Funcionalidades adicionais
Use aceleradores (GPUs/TPUs)
A utilização de aceleradores, como GPUs e TPUs, em tarefas do Dataflow pode acelerar significativamente as tarefas de processamento de dados usadas frequentemente em exemplos de utilização de aprendizagem automática e processamento de imagens.
Em particular, as TPUs são aceleradores de IA personalizados, otimizados para a preparação e a utilização de grandes modelos de IA, que oferecem uma forma versátil de dimensionar uma vasta gama de cargas de trabalho de IA.
Misture e combine CPUs e GPUs com o encaixe certo
Combine GPUs e CPUs para um elevado desempenho e um custo mais baixo. A capacidade de segmentar recursos para passos específicos do pipeline oferece flexibilidade e capacidade adicionais ao pipeline, bem como potenciais poupanças de custos.
Enriqueça os pipelines de streaming com dados do repositório de funcionalidades
O Apache Beam simplifica o fluxo de trabalho de enriquecimento de dados, fornecendo uma transformação de enriquecimento pronta a usar que pode adicionar ao seu pipeline.
Manutenção e avaliação de modelos
Atualização automática do modelo
RunInference
permite-lhe fazer atualizações automáticas de modelos sem parar o pipeline do Apache Beam. Use entradas laterais para atualizar o seu modelo em tempo real, mesmo enquanto o pipeline está em execução.
Avalie os seus modelos
Use a análise de modelos do TensorFlow (TFMA) para investigar e visualizar o desempenho de um modelo através da criação e comparação de dois modelos. Com o Apache Beam, pode avaliar e comparar vários modelos num único passo.
Recursos
Execute pipelines em vários idiomas
Para usar o RunInference com um pipeline Java, crie uma transformação Python multilingue. O pipeline chama a transformação, que faz o pré-processamento, o pós-processamento e a inferência.
Autorizações do Dataflow
Para executar os exemplos de ML do Dataflow, pode ter de configurar as suas autorizações do Google Cloud. Leia um guia detalhado sobre as autorizações necessárias para pipelines do Dataflow.
Veja os exemplos no GitHub
Os exemplos e o código fonte correspondente estão disponíveis no GitHub. No GitHub, também pode encontrar instruções para executar os exemplos no Colab.
Leia acerca de um exemplo de utilização
Esta publicação no blogue explica como criar aplicações RAG com pesquisa semântica e representações numéricas (incorporações) em tempo real. Usa a aprendizagem automática do Dataflow para preparar os dados convertendo-os em incorporações e armazenando-os numa base de dados vetorial, como o AlloyDB.