Chuyển đến nội dung chính

第6課:BigQuery MLとGCP上のTensorFlow

BigQuery ML:CREATE MODEL構文、対応モデル。 TensorFlow Extended(TFX)パイプラインコンポーネント。 TFServing、TFLite。モデル最適化技法。

BigQuery ML & TFX Pipeline

BigQuery MLとTFXパイプライン:SQLによるモデルトレーニング、モデル最適化、本番MLパイプライン

1. BigQuery ML(BQML)

BigQuery MLは、データアナリストがBigQuery内でSQLを使用してMLモデルのトレーニングとサービングを行えるようにします — データのエクスポートやMLフレームワークの知識は不要です。

BigQuery ML Workflow:

1. CREATE MODEL → train
2. ML.EVALUATE() → evaluate metrics
3. ML.PREDICT() → generate predictions
4. ML.EXPLAIN_PREDICT() → SHAP-based explanations
5. EXPORT MODEL → export to Cloud Storage (TF SavedModel format)
モデルタイプBQMLオプションタスク
線形回帰LINEAR_REG回帰
ロジスティック回帰LOGISTIC_REG二値/多値分類
K-MeansKMEANSクラスタリング
XGBoostBOOSTED_TREE_CLASSIFIER / BOOSTED_TREE_REGRESSORテーブルデータの分類/回帰
Random ForestRANDOM_FOREST_CLASSIFIER / RANDOM_FOREST_REGRESSORテーブルデータの分類/回帰
DNNDNN_CLASSIFIER / DNN_REGRESSOR複雑なパターン
Wide & DeepWIDE_AND_DEEP_CLASSIFIERレコメンデーション(記憶 + 汎化)
AutoMLAUTOML_CLASSIFIER / AUTOML_REGRESSOR自動モデル選択
時系列ARIMA_PLUS予測
行列分解MATRIX_FACTORIZATION協調フィルタリング

試験のヒント: BQML ARIMA_PLUSは季節性、休日効果、トレンド分解を自動的に処理します。「BigQueryデータを使って予測」→ ARIMA_PLUS。「BigQueryでのレコメンデーションシステム」→ MATRIX_FACTORIZATION。

2. TensorFlow Extended(TFX)

TFXはTensorFlow向けの本番MLパイプラインライブラリです。MLライフサイクルの各ステップに標準コンポーネントを提供します。

TFXコンポーネント目的
ExampleGenCSV、BigQuery、Avro、Parquetからのデータ取り込み
StatisticsGenトレーニングデータの統計情報を計算
SchemaGen統計情報からスキーマを推論
ExampleValidator異常の検出:欠損、分布スキュー
Transform特徴量エンジニアリング(Apache Beamベース)
TrainerTFモデルのトレーニング(EvalSpec + TrainSpec)
Tunerハイパーパラメータチューニング(KerasTuner)
Evaluatorベースラインに対するモデルの評価
ModelValidatorモデルが品質閾値を満たしているか検証
Pusherサービングへのモデルプッシュ(TF Serving、Vertex AI)
TFX Pipeline (simplified):

ExampleGen → StatisticsGen → SchemaGen → ExampleValidator
                ↓
            Transform (feature engineering)
                ↓
            Trainer (model training)
                ↓
            Evaluator (metrics vs baseline)
                ↓ (if pass)
            Pusher → TF Serving / Vertex AI Endpoint

3. TF ServingとTFLite

オプションユースケース
TF Servingサーバー/クラウドでの高性能サービング(gRPCまたはREST)
TFLiteモバイルデバイス、エッジデバイス、マイクロコントローラー
TF.jsブラウザベースの推論

4. モデル最適化技法

技法説明トレードオフ
量子化Float32 → INT8の重み変換4倍小さく、約2倍高速、わずかな精度低下
枝刈り低い重みの接続を削除モデルの小型化、精度を維持
知識蒸留大きな「教師」モデルから小さな「生徒」モデルを訓練より小さく高速、わずかな精度低下
TensorRTNVIDIA GPU最適化(レイヤー融合)NVIDIA GPUで推論3-5倍高速化

5. 練習問題

Q1: データアナリストチームがBigQueryに既にあるデータで売上予測モデルを構築する必要があります。SQLに精通していますが、Python/MLフレームワークの経験はありません。時系列予測にどのBigQuery MLモデルタイプを使用すべきでしょうか?

  • A) KMEANS
  • B) LOGISTIC_REG
  • C) ARIMA_PLUS ✓
  • D) MATRIX_FACTORIZATION

解説:BigQuery ML ARIMA_PLUSは時系列予測用に設計されており、季節性、トレンド、休日効果を自動的に処理します。SQLの簡単なCREATE MODEL文でトレーニングでき、Pythonの専門知識は不要です。

Q2: TFXパイプラインが、新しい本番データの「age」特徴量の分布がトレーニングデータの分布と大きく異なることを検出しています。この異常の検出を担当するTFXコンポーネントはどれでしょうか?

  • A) StatisticsGen
  • B) SchemaGen
  • C) ExampleValidator ✓
  • D) Transform

解説:ExampleValidatorはデータ統計を期待されるスキーマと比較し、分布スキュー(トレーニングデータとサービングデータの分布の顕著な差異)を含む異常をフラグします。StatisticsGenは統計を計算し、SchemaGenはスキーマを作成し、Transformは特徴量エンジニアリングを行います。

Q3: チームが計算リソースが限られたモバイルデバイスにTensorFlow画像分類モデルをデプロイする必要があります。精度の損失を最小限に抑えながらモデルサイズを4倍に削減する必要があります。どの技法を適用すべきでしょうか?

  • A) 知識蒸留
  • B) モデル枝刈り
  • C) 学習後量子化(INT8) ✓
  • D) TensorRT最適化

解説:学習後量子化はFloat32の重みをINT8に変換し、モデルサイズを約4倍削減し、推論速度を2倍向上させます。ほとんどのモデルで精度の損失は最小限です。TFLiteはモバイル/エッジデプロイメント向けのINT8量子化をサポートしています。TensorRTはモバイルではなくNVIDIA GPU向けです。