Systèmes de ML de production: quand transformer les données ?

Les données brutes doivent faire l'objet d'une conception de caractéristiques (transformée). Quand transformer données ? De manière générale, vous pouvez effectuer une ingénierie des caractéristiques au cours des deux périodes suivantes:

  • Avant d'entraîner le modèle.
  • Pendant l'entraînement du modèle.

Transformer les données avant l'entraînement

Dans cette approche, vous suivez deux étapes:

  1. Écrivez du code ou utilisez des outils spécialisés pour transformer les données brutes.
  2. Stockez les données transformées dans un emplacement que le modèle peut ingérer, que sur le disque.

Avantages

  • Le système ne transforme les données brutes qu'une seule fois.
  • Le système peut analyser l'ensemble de données complet pour déterminer de transformation numérique.

Inconvénients

Le décalage entraînement/inférence est plus dangereux lorsque votre système effectue l'inférence (en ligne). Sur un système utilisant l'inférence dynamique, le logiciel qui transforme l'ensemble de données brut diffère généralement du logiciel qui réalise les prédictions, ce qui peut entraîner un décalage entraînement/inférence. En revanche, les systèmes qui utilisent l'inférence statique (hors connexion) peuvent parfois utilisent le même logiciel.

Transformer les données pendant l'entraînement

Dans cette approche, la transformation fait partie du code du modèle. Le modèle ingère les données brutes et les transforme.

Avantages

  • Vous pouvez toujours utiliser les mêmes fichiers de données brutes si vous modifiez les transformations.
  • Vous obtenez les mêmes transformations au moment de l'entraînement et de la prédiction.

Inconvénients

  • Les transformations compliquées peuvent augmenter la latence du modèle.
  • Les transformations se produisent pour chaque lot.

La transformation des données par lot peut s'avérer délicate. Par exemple, supposons que vous souhaitiez utiliser la normalisation du score Z ; pour transformer des données numériques brutes. La normalisation du score Z nécessite la valeur moyenne l'écart type de la caractéristique. Toutefois, avec les transformations par lot, vous n'aurez accès un seul lot de données, et non l'ensemble de données complet. Si les lots sont très , une cote Z de -2,5 dans un lot, par exemple, n'aura pas la même signification par -2,5 dans un autre lot. Pour contourner ce problème, votre système peut précalculer l'écart moyen et l'écart type sur l'ensemble de données complet, puis les utiliser comme constantes dans le modèle.