Sistemas de ML de produção: quando transformar dados?

Os dados brutos precisam passar pela engenharia (transformação) de atributos. Quando você deve transformar dados? De modo geral, é possível executar a engenharia de atributos durante os dois períodos a seguir:

  • Antes de treinar o modelo.
  • Durante o treinamento do modelo.

Como transformar dados antes do treinamento

Nesta abordagem, você segue duas etapas:

  1. Escrever código ou usar ferramentas especializadas para transformar os dados brutos.
  2. Armazenar os dados transformados em algum lugar que o modelo possa ingerir, como no disco.

Vantagens

  • O sistema transforma os dados brutos apenas uma vez.
  • O sistema pode analisar todo o conjunto de dados para determinar estratégia de transformação de dados.

Desvantagens

O desvio entre treinamento e disponibilização é mais perigoso quando o sistema realiza uma execução dinâmica (on-line). Em um sistema que usa inferência dinâmica, o software que transforma o conjunto de dados bruto geralmente difere do software que fornece as previsões, o que pode causar desvios entre treinamento e disponibilização. Por outro lado, sistemas que usam inferência estática (off-line) às vezes podem usam o mesmo software.

Como transformar dados durante o treinamento

Nessa abordagem, a transformação faz parte do código do modelo. O modelo ingere dados brutos e os transforma.

Vantagens

  • Ainda será possível usar os mesmos arquivos de dados brutos se você alterar as transformações.
  • Você garante as mesmas transformações no momento do treinamento e da previsão.

Desvantagens

  • Transformações complicadas podem aumentar a latência do modelo.
  • As transformações ocorrem para todos os lotes.

A transformação de dados por lote pode ser complicada. Por exemplo, suponha que você queira use a normalização de escore padronizado. para transformar dados numéricos brutos. A normalização de pontuação Z requer as métricas desvio padrão do atributo. No entanto, as transformações por lote significam que você só terá acesso aos um lote de dados, não o conjunto completo. Portanto, se os lotes forem muito variante, um valor Z de, digamos, -2,5 em um lote não terá o mesmo significado como -2,5 em outro lote. Como solução alternativa, o sistema pode pré-calcular a média e o desvio padrão em todo o conjunto de dados para usar como constantes no modelo.