1. 總覽
在本實驗室中,您將瞭解如何在 Google Cloud 建構端對端資料到 AI 系統,以進行即時詐欺偵測。目標是瞭解如何從原始資料開始,建構可部署於正式環境,且在 Google Cloud 執行的機器學習 pipeline。本實驗室使用下列 Google Cloud 產品:
學習目標
建構端對端機器學習管道可能很困難。在本實驗室中,您將瞭解如何使用 BigQuery 和 Vertex AI 等 Google Cloud 服務,建構及擴充端對端機器學習 pipeline。我們將帶您瞭解如何從原始資料開始,進而將 AI 投入正式環境。本實驗室的高階學習目標如下:
- 瞭解在 Google Cloud 中建構資料至 AI 系統的最佳做法。
- 瞭解如何使用 SQL (用於批次處理) 和 Apache Beam (使用 Dataflow 進行即時處理),透過 BigQuery 進行特徵工程,並使用 Vertex AI 特徵儲存庫。
- 如何使用 BigQuery 和 Python 程式庫 (例如 Pandas 和 Plotly) 進行資料分析。
- 如何透過 SQL 使用 BigQuery ML 訓練機器學習模型。
- 如何運用 Vertex AI 儲存、部署及監控模型。
- 如何使用 Vertex AI Pipelines,將資料轉換為 AI 工作流程。
重要事項:在 Google Cloud 上執行這個實驗室的費用約為 $100 美元。
2. 運用 Vertex AI 和 BigQuery,將原始資料轉換為 AI
本實驗室涵蓋 Google Cloud 上最新的資料分析和 AI 產品,例如 Vertex AI 和 BigQuery ML。Vertex AI 和 BigQuery 可簡化從原始資料到 AI 的過程,並提供流暢的開發體驗,協助您更有效率地將模型投入實際運用。如需任何支援,請參閱支援頁面。
Vertex AI 包含許多不同產品,可支援端對端資料到 AI 工作流程。以下是所有 Vertex AI 功能的簡介:

3. FraudFinder 用途和資料
FraudFinder 是一系列筆記本,透過即時詐欺偵測的用途,教導您在 Google Cloud 上進行全面的資料到 AI 歷程。在整個筆記本中,您將瞭解如何讀取儲存在資料倉儲中的過往付款交易資料、從新交易的直播串流讀取資料、執行探索性資料分析 (EDA)、進行特徵工程、將特徵擷取至特徵儲存庫、使用特徵儲存庫訓練模型、在模型登錄中登錄模型、評估模型、將模型部署至端點、使用特徵儲存庫對模型執行即時推論,以及監控模型。
詐欺偵測涵蓋分類和異常偵測,可說是機器學習領域中廣泛的範疇。因此,詐欺偵測是個很適合用來說明實際案例的用途,不僅容易理解,也是在 Google Cloud 上展示端對端資料到 AI 架構的絕佳方式。您不必是詐欺專家,也能瞭解端對端架構。這個架構模式可套用至其他用途。
以下是 FraudFinder 架構總覽:

資料集
這個資料集是使用 Kaggle 的「Machine Learning for Credit Card Fraud Detection - Practical Handbook」專案中的程式碼合成。即時詐欺偵測在架構上與批次詐欺偵測不同,具有下列特點:
- 預測要求頻率高 (例如每秒 1000 次)
- 預測要求 → 回應的延遲時間短 (例如 < 1 秒)
- 預測通常是針對每個預測要求中的 1 個樣本,也可能以「微批次」的形式進行 (例如,以批次形式傳送 1000 筆交易,進行近乎即時的推論)
- 放送的特徵工程必須預先運算或即時運算
FraudFinder 歷來資料集
BigQuery 提供歷來付款交易的公開資料表,使用者可運用 BigQuery 中的資料訓練模型及進行特徵工程。
cymbal-fraudfinder (project)
|-`tx` (dataset)
|-`tx` (table: transactions without labels)
|-`txlabels` (table: transactions with fraud labels (1 or 0))
|-demographics
|-`customers` (table: profiles of customers)
|-`terminals` (table: profiles of terminals)
|-`customersterminals` (table: profiles of customers and terminals within their radius)
為什麼要即時?
在本實驗室中,您將瞭解如何運用即時資料,並套用即時特徵工程和推論。即時功能可運用您在推論期間無法使用的信號,協助改善模型。
FraudFinder 即時串流資料
FraudFinder 實驗室提供公開的 Pub/Sub 主題,內含直播付款交易,方便使用者測試模型端點和串流功能。Pub/Sub 是可擴充的非同步訊息服務。您將使用這些主題串流功能,並執行線上推論。使用者也可以切換主題,顯示模型監控結果,比較基準與較高的詐欺率。以下為可用的公開 Pub/Sub 主題:
ff-txff-txlabels
4. 設定專案和筆記本執行個體
您需要啟用計費功能的 Google Cloud Platform 專案,才能執行本實驗室。如要建立專案,請按照操作說明操作。
重要事項:建議您在新專案中執行本實驗室。本實驗室涵蓋許多不同產品,因此建議您在完成實驗室後刪除整個專案,這樣最簡單。
如果已有專案,請繼續執行下列步驟。您也可以在存放區的 README.md 檔案中找到下列步驟。
步驟 1:啟用 API
首先,請前往您剛建立的專案,然後開啟 Cloud Shell。如果您先前未啟用 Cloud Shell,這個步驟可能需要幾分鐘,因為系統會佈建新的 Cloud Shell。

接著複製並貼上下列程式碼,在 Cloud Shell 中執行。指令碼會啟用必要的 API,並建立 Pub/Sub 訂閱項目,從公開的 Pub/Sub 主題讀取串流交易。請稍候,讓裝置執行所有指令。
gcloud services enable notebooks.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable pubsub.googleapis.com
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable dataflow.googleapis.com
gcloud services enable bigquery.googleapis.com
gcloud pubsub subscriptions create "ff-tx-sub" --topic="ff-tx" --topic-project="cymbal-fraudfinder"
gcloud pubsub subscriptions create "ff-txlabels-sub" --topic="ff-txlabels" --topic-project="cymbal-fraudfinder"
# Run the following command to grant the Compute Engine default service account access to read and write pipeline artifacts in Google Cloud Storage.
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUM=$(gcloud projects list --filter="$PROJECT_ID" --format="value(PROJECT_NUMBER)")
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:${PROJECT_NUM}-compute@developer.gserviceaccount.com"\
--role='roles/storage.admin'
步驟 2:建立 Vertex AI Workbench 執行個體
接著前往 Cloud 控制台的 Vertex AI 專區。然後前往 Workbench:

如果尚未啟用,請啟用 Vertex AI Workbench (Notebook API) API。

啟用後,請選取「使用者自行管理的筆記本」:

然後選取「新增記事本」。你可以選擇 Python 3。

為筆記本命名 (例如 fraudfinder),然後按一下「進階設定」。

重要事項:請務必選取 Permissions 下方的 Service Account。

重要事項:如果尚未啟用終端機,請在「安全性」下方選取「啟用終端機」。

其他進階設定可以保留原樣。
接著點選「建立」。執行個體會在幾分鐘內佈建完畢。
建立執行個體後,請選取「Open JupyterLab」。

步驟 3:設定 IAM 角色
為求簡單,我們假設您會使用 Compute Engine 預設服務帳戶。這不符合正式環境工作負載的最佳做法。最佳做法是為每個應用程式建立專屬服務帳戶,並避免使用預設服務帳戶。如要進一步瞭解服務帳戶最佳做法,請參閱說明文件。預設的運算服務帳戶格式為 123456789123-compute@developer.gserviceaccount.com。前往「IAM 管理員」,然後按一下 ADD。在檢視畫面中,搜尋並選取 Compute Engine 預設服務帳戶,然後指派下列角色:
BigQuery AdminStorage AdminStorage Object AdminVertex AI AdministratorPub/Sub Admin
畫面看起來大致如下:別忘了儲存新設定!

步驟 4:複製 GitHub 存放區
建立並存取筆記本執行個體後,接下來就要設定環境。首先開啟終端機視窗。

複製下列指令,然後貼到筆記本終端機並執行:
git clone https://github.com/GoogleCloudPlatform/fraudfinder.git
執行這項指令後,系統會將 FraudFinder 存放區複製到筆記本執行個體。執行 git clone 後,您會在左側的 Notebook 執行個體中找到 fraudfinder 資料夾。現在請前往 fraudfinder 資料夾。實驗室所需的筆記本會顯示在這裡。
從下一節開始,您應按照筆記本中的操作說明操作。請繼續設定環境。
5. 環境設定
本節將逐步說明如何設定專案環境。本節涵蓋下列學習目標:
- 設定環境,包括套件。
- 將資料載入 BigQuery。
- 從公開 Pub/Sub 主題讀取資料。
請繼續使用下列筆記本,並按照指示逐步操作:
00_environment_setup.ipynb
6. 探索性資料分析
本節將說明如何執行探索性資料分析,進一步瞭解詐欺資料。本節涵蓋下列學習目標:
- 使用 SQL 從 BigQuery 擷取及探索資料
- 使用 BigQuery 和 Plotly 繪製交易資料圖表
- 套用資料彙整並建立散布圖
請繼續使用下一個 Notebook,並按照說明逐步操作:
01_exploratory_data_analysis.ipynb
7. 批次和串流特徵工程
在本節中,您將進行特徵工程,從原始資料產生用於模型訓練的特徵。我們將使用批次和串流。這兩種用途對於詐欺偵測來說都很重要。本節涵蓋下列學習目標:
- 如何使用 BigQuery 和 SQL 建立特徵
- 建立 Vertex AI 特徵儲存庫並插入資料
- 如何處理串流資料並擷取至特徵儲存庫
請依序繼續執行下列兩個 Notebook,並按照 Notebook 中的指示操作:
02_feature_engineering_batch.ipynb03_feature_engineering_streaming.ipynb
8. 模型訓練、預測、正式化和監控
在本節中,您將訓練及部署第一個 BigQuery 模型,偵測可能的詐欺案件。您也會學到如何將訓練和部署程式碼正式納入自動化管道。您也會瞭解如何進行線上預測,以及監控正式環境中的模型。本節涵蓋下列學習目標:
- 如何訓練 BigQuery ML 模型並在 Vertex AI Model Registry 註冊
- 將模型部署為 Vertex AI 上的端點
- 如何使用 Vertex AI SDK
- 如何運用 BigQuery ML 模型建立端對端機器學習管線
- 如何使用 Vertex AI 模型監控
請依序繼續使用下列筆記本,並按照筆記本中的指示操作。筆記本位於 BQML 資料夾中。按照筆記本逐步操作:
04_model_training_and_prediction.ipynb05_model_training_pipeline_formalization.ipynb06_model_monitoring.ipynb07_model_inference.ipynb
🎉 Congratulations! 🎉
您已學會在 Google Cloud 中建構「資料到 AI」架構!
9. 清除
建議您在新專案中執行這個實驗室。本實驗室涵蓋許多不同產品,因此完成實驗室後,最簡單的方式就是刪除整個專案。如要進一步瞭解如何刪除專案,請參閱說明文件。
如要改為刪除服務,請按照 Notebooks 中的說明操作,或刪除建立的資源。