Pode usar as capacidades de processamento de dados em grande escala do Dataflow ML para pipelines de previsão e inferência e para preparação de dados para formação.

Requisitos e limitações
- O Dataflow ML suporta pipelines em lote e por streaming.
- A API
RunInferenceé suportada no Apache Beam 2.40.0 e versões posteriores. - A API
MLTransformé suportada no Apache Beam 2.53.0 e versões posteriores. - Os controladores de modelos estão disponíveis para PyTorch, scikit-learn, TensorFlow, ONNX e TensorRT. Para frameworks não suportados, pode usar um controlador de modelo personalizado.
Preparação de dados para a preparação
Use a funcionalidade
MLTransformpara preparar os seus dados para a preparação de modelos de AA. Para mais informações, consulte Pré-processe dados com oMLTransform.Use o Dataflow com frameworks de ML-OPS, como o Kubeflow Pipelines (KFP) ou o TensorFlow Extended (TFX). Para saber mais, consulte Dataflow ML em fluxos de trabalho de ML.
Pipelines de previsão e inferência
O Dataflow ML combina o poder do Dataflow com a RunInferenceAPI do Apache Beam. Com a API RunInference, define as caraterísticas e as propriedades do modelo e
transmite essa configuração à transformação RunInference. Esta funcionalidade permite aos utilizadores executar o modelo nos respetivos pipelines do Dataflow sem terem de conhecer os detalhes de implementação do modelo. Pode escolher a framework que
melhor se adapta aos seus dados, como o TensorFlow e o PyTorch.
Execute vários modelos num pipeline
Use a transformação RunInference para adicionar vários modelos de inferência ao seu pipeline do Dataflow. Para mais informações, incluindo detalhes do código, consulte o artigo
Pipelines multimodelos
na documentação do Apache Beam.
Crie um pipeline multilíngue
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.
Para ver instruções detalhadas e um exemplo de pipeline, consulte o artigo Usar RunInference a partir do SDK Java.
Use GPUs com o Dataflow
Para pipelines de streaming ou em lote que requerem a utilização de aceleradores, pode executar pipelines do Dataflow em dispositivos de GPU NVIDIA. Para mais informações, consulte o artigo Execute um pipeline do Dataflow com GPUs.
Resolva problemas com o Dataflow ML
Esta secção fornece estratégias de resolução de problemas e links que pode considerar úteis quando usar o Dataflow ML.
A função Stack espera que cada tensor tenha o mesmo tamanho
Se fornecer imagens de tamanhos diferentes ou incorporações de palavras de comprimentos diferentes quando usar a API RunInference, pode ocorrer o seguinte erro:
File "/beam/sdks/python/apache_beam/ml/inference/pytorch_inference.py", line 232, in run_inference batched_tensors = torch.stack(key_to_tensor_list[key]) RuntimeError: stack expects each tensor to be equal size, but got [12] at entry 0 and [10] at entry 1 [while running 'PyTorchRunInference/ParDo(_RunInferenceDoFn)']
Este erro ocorre porque a API RunInference não consegue processar em lote elementos de tensores de tamanhos diferentes. Para encontrar soluções alternativas, consulte o artigo Não é possível processar em lote elementos de tensores na documentação do Apache Beam.
Evite erros de falta de memória com modelos grandes
Quando carrega um modelo de ML médio ou grande, a sua máquina pode ficar sem memória.
O Dataflow fornece ferramentas para ajudar a evitar erros de falta de memória (OOM) ao carregar modelos de ML. Para mais informações, consulte as RunInference práticas recomendadas de transformação.
O que se segue?
- Explore os blocos de notas de ML do Dataflow para ver exemplos de utilização específicos.
- Obtenha informações detalhadas sobre a utilização da AA com o Apache Beam na documentação de pipelines de IA/AA do Apache Beam.
- Saiba mais acerca da
RunInferenceAPI. - Saiba mais sobre as
RunInferencepráticas recomendadas. - Saiba mais sobre as métricas
que pode usar para monitorizar a sua transformação
RunInference.