本番環境 ML システム: データを変換するタイミング

元データは特徴量エンジニアリング(変換)を行う必要がある。どのような場合に どうすればよいでしょうか。大まかに言うと、特徴量エンジニアリングは 次の 2 つの期間。

  • モデルをトレーニングする
  • モデルのトレーニング中。

トレーニング前のデータの変換

このアプローチでは、次の 2 つの手順を行います。

  1. コードを記述するか、専用ツールを使用する 元データを変換します
  2. 変換したデータは、モデルが取り込める場所( 作成されます。

メリット

  • システムが元データを変換するのは 1 回だけです。
  • システムはデータセット全体を分析して 変革戦略を策定します。

デメリット

システムが動的トレーニングを行う場合、トレーニング サービング スキューの危険性が高まる 推論について説明します。 動的推論を使用するシステムでは 元データセットは通常、予測を行うソフトウェアと トレーニングサービングスキューの原因となります 対照的に、静的(オフライン)推論を使用するシステムでは、 同じソフトウェアを使用します。

トレーニング中のデータの変換

このアプローチでは、変換はモデルコードの一部です。モデル 元データを取り込み、変換します。

メリット

  • 変換を変更しても、同じ元データファイルを使用できます。
  • トレーニング時と予測時に同じ変換が確実に行われる。

デメリット

  • 複雑な変換により、モデルのレイテンシが増加する可能性があります。
  • 変換はバッチごとに行われます。

バッチごとのデータの変換は簡単ではありません。たとえば、Kubernetes Engine の Z スコア正規化を使用します。 数値データに変換しますZ スコアの正規化には、平均値と 特徴量の標準偏差。 ただしバッチごとの変換では 1 つのバッチにまとめたものです。バッチが非常に多い場合は あるバッチ内の Z スコアが -2.5 などの場合、同じ意味を持ちません。 -2.5 という値を返します。 回避策として、システムで平均と標準偏差を事前に計算しておく モデルで定数として使用します