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允許資料分析師使用SQL在BigQuery中訓練和服務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_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元件用途
ExampleGen從CSV、BigQuery、Avro、Parquet擷取資料
StatisticsGen計算訓練資料的統計資訊
SchemaGen從統計資訊推斷綱要
ExampleValidator偵測異常:缺失、分佈偏移
Transform特徵工程(基於Apache Beam)
Trainer訓練TF模型(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,不適用於行動裝置。