ML do Dataflow em fluxos de trabalho de ML

Para orquestrar fluxos de trabalho complexos de machine learning, crie frameworks que incluam etapas de pré e pós-processamento de dados. Talvez seja necessário pré-processar os dados antes de usá-los para treinar o modelo ou pós-processar dados para transformar a saída do modelo.

Os fluxos de trabalho de ML geralmente contêm muitas etapas que, juntas, formam um pipeline. Para criar um pipeline de machine learning, use um dos métodos a seguir.

  • Use um framework de orquestração que tenha uma integração nativa com o Apache Beam e o executor do Dataflow, como o TensorFlow Extended (TFX) ou o Kubeflow Pipelines (KFP). Essa opção é a menos complexa.
  • Crie um componente personalizado em um modelo do Dataflow e chame o modelo do pipeline de ML. A chamada contém o código do Apache Beam.
  • Crie um componente personalizado para usar no pipeline de ML e coloque o código Python diretamente no componente. Você define um pipeline personalizado do Apache Beam e usa o executor do Dataflow no componente personalizado. Essa opção é a mais complexa e exige o gerenciamento de dependências de pipeline.

Depois de criar o pipeline de machine learning, é possível usar um orquestrador para encadear os componentes e criar um fluxo de trabalho completo de machine learning. Para orquestrar os componentes, use um serviço gerenciado, como o Vertex AI Pipelines.

Usar aceleradores de ML

Para fluxos de trabalho de machine learning que envolvem processamento de dados com uso intensivo de computação, como inferência com modelos grandes, é possível usar aceleradores com workers do Dataflow. O Dataflow é compatível com o uso de GPUs e TPUs.

GPUs

É possível usar GPUs NVIDIA com jobs do Dataflow para acelerar o processamento. O Dataflow é compatível com vários tipos de GPU NVIDIA, incluindo T4, L4, A100, H100 e V100. Para usar GPUs, configure seu pipeline com uma imagem de contêiner personalizada que tenha os drivers e as bibliotecas de GPU necessários instalados.

Para informações detalhadas sobre o uso de GPUs com o Dataflow, consulte Suporte do Dataflow para GPUs.

TPUs

O Dataflow também é compatível com as TPUs do Cloud, que são aceleradores de IA personalizados do Google otimizados para grandes modelos de IA. As TPUs podem ser uma boa opção para acelerar cargas de trabalho de inferência em frameworks como PyTorch, JAX e TensorFlow. O Dataflow é compatível com configurações de TPU de host único, em que cada worker gerencia um ou mais dispositivos de TPU.

Para mais informações, consulte Suporte do Dataflow para TPUs.

Orquestração de fluxo de trabalho

Os casos de uso de orquestração de fluxo de trabalho são descritos nas seções a seguir.

O TFX e o Kubeflow Pipelines (KFP) usam componentes do Apache Beam.

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. É possível usar os pipelines da Vertex AI para orquestrar gráficos acíclicos direcionados (DAGs, na sigla em inglês) definidos por TFX ou KFP e rastrear automaticamente seus artefatos de ML usando o Vertex ML Metadata. Para saber como incorporar o Dataflow ao TFX e ao KFP, use as informações nas seções a seguir.

Quero usar o Dataflow com o Kubeflow Pipelines

O Kubeflow é um kit de ferramentas de ML dedicado a tornar as implantações de fluxos de trabalho de ML no Kubernetes mais fáceis de usar, 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.

O serviço Kubeflow Pipelines tem como objetivo fornecer orquestração completa e facilitar a experimentação e a reutilização. Com o KFP, é possível testar técnicas de orquestração e gerenciar testes, além de reutilizar componentes e pipelines para criar várias soluções de ponta a ponta sem precisar recomeçar a cada vez.

Ao usar o Dataflow com KFP, é possível usar o operador DataflowPythonJobOP ou DataflowFlexTemplateJobOp. Também é possível criar um componente totalmente personalizado. Recomendamos o uso do operador DataflowPythonJobOP.

Se você quiser criar um componente totalmente personalizado, consulte a página Componentes do Dataflow na documentação da Vertex AI.

Quero usar o Dataflow com o TFX

Os componentes de pipeline do TFX são criados em bibliotecas do TFX, e as bibliotecas de processamento de dados usam o Apache Beam diretamente. Por exemplo, o TensorFlow Transform traduz as chamadas do usuário para o Apache Beam. Portanto, é possível usar o Apache Beam e o Dataflow com pipelines do TFX sem precisar de configuração adicional. Para usar o TFX com o Dataflow, use o executor do Dataflow ao criar o pipeline do TFX. Para saber mais, acesse os recursos a seguir (links em inglês):