Pré-processe dados com o MLTransform

Esta página explica por que motivo e como usar a funcionalidade MLTransform para preparar os seus dados para a preparação de modelos de aprendizagem automática (AA). Ao combinar várias transformações de processamento de dados numa classe, o MLTransform simplifica o processo de aplicação de operações de processamento de dados de ML do Apache Beam ao seu fluxo de trabalho.

Para ver informações sobre a utilização da função MLTransform para tarefas de geração de incorporações, consulte o artigo Gere incorporações com a MLTransform.

Diagrama do fluxo de trabalho de ML do Dataflow com o passo de tratamento de dados realçado.

Figura 1. O fluxo de trabalho de ML do Dataflow completo. Use MLTransform no passo de pré-processamento do fluxo de trabalho.

Vantagens

A classe MLTransform oferece as seguintes vantagens:

  • Transforme os seus dados sem escrever código complexo nem gerir bibliotecas subjacentes.
  • Encadeie de forma eficiente vários tipos de operações de processamento com uma interface.
  • Gere incorporações que pode usar para enviar dados para bases de dados vetoriais ou para executar inferências.

    Para mais informações sobre a geração de incorporações, consulte o artigo Gere incorporações com MLTransform.

Apoio técnico e limitações

A classe MLTransform tem as seguintes limitações:

  • Disponível para pipelines que usam as versões 2.53.0 e posteriores do SDK do Python do Apache Beam.
  • Os pipelines têm de usar janelas predefinidas.

Transformações de tratamento de dados que usam a TFT:

  • Suporte para Python 3.9, 3.10 e 3.11.
  • Suporte pipelines em lote.

Exemplos de utilização

Os blocos de notas de exemplo demonstram como usar o MLTransform para exemplos de utilização específicos de incorporações.

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 AA
Dimensione os seus dados para que os possa usar para preparar o seu modelo de AA. A classe Apache Beam MLTransform inclui várias transformações de escalamento de dados.

Para ver uma lista completa das transformações disponíveis, consulte a secção Transformações na documentação do Apache Beam.

Use MLTransform

Para usar a classe MLTransform para pré-processar dados, inclua o seguinte código no seu pipeline:

  import apache_beam as beam
  from apache_beam.ml.transforms.base import MLTransform
  from apache_beam.ml.transforms.tft import TRANSFORM_NAME
  import tempfile

  data = [
      {
          DATA
      },
  ]

  artifact_location = gs://BUCKET_NAME
  TRANSFORM_FUNCTION_NAME = TRANSFORM_NAME(columns=['x'])

  with beam.Pipeline() as p:
    transformed_data = (
        p
        | beam.Create(data)
        | MLTransform(write_artifact_location=artifact_location).with_transform(
            TRANSFORM_FUNCTION_NAME)
        | beam.Map(print))

Substitua os seguintes valores:

  • TRANSFORM_NAME: o nome da transformação a usar
  • BCUKET_NAME: o nome do seu contentor do Cloud Storage
  • DATA: os dados de entrada a transformar
  • TRANSFORM_FUNCTION_NAME: o nome que atribui à função de transformação no seu código

O que se segue?