1. 總覽
在本研究室中,您將瞭解如何在 Google Cloud 建立端對端資料至 AI 系統,以便即時偵測詐欺行為。目標是瞭解如何從原始資料,在 Google Cloud 中建構可用於實際工作環境的機器學習管道。本研究室使用以下 Google Cloud 產品:
課程內容
建構端對端機器學習管道並不容易。在本研究室中,您將瞭解如何使用 BigQuery 和 Vertex AI 等 Google Cloud 服務,建構及擴充端對端機器學習管道。並逐步說明如何將原始資料轉為實際運用 AI 技術。本研究室的概略學習目標如下:
- 瞭解在 Google Cloud 中將資料建構至 AI 系統的最佳做法。
- 瞭解如何使用 Dataflow (即時處理) 和 Vertex AI 特徵儲存庫,透過 SQL (用於批次處理) 和 Apache Beam 進行特徵工程。
- 如何使用 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 架構:
資料集
系統會使用 Machine Learning for Credit Card Fraud Detection - Practical Handbook project from Kaggle 的程式碼合成。即時詐欺偵測與批次詐欺偵測的架構不同,具有以下特性:
- 頻繁 (例如每秒 1,000 個預測要求)
- 預測要求的延遲時間較短 (例如少於 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-tx
ff-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 Admin
Storage Admin
Storage Object Admin
Vertex AI Administrator
Pub/Sub Admin
如下所示。別忘了儲存新設定!
步驟 4:複製 GitHub 存放區
建立並存取筆記本執行個體後,就可以開始設定環境。首先,開啟終端機視窗。
在筆記本終端機中複製、貼上及執行下列指令:
git clone https://github.com/GoogleCloudPlatform/fraudfinder.git
執行這個指令會將 FraudFinder 存放區複製到筆記本執行個體。執行 git clone
後,即可在筆記本執行個體的左側找到「詐欺搜尋工具」資料夾。現在前往:fraudfinder
資料夾。您可以在這裡找到研究室所需的筆記本。
在後續章節中,您應該按照筆記本中的指示操作。請繼續設定環境。
5. 環境設定
本節會逐步引導您設定專案環境。在本節中,您將說明下列學習目標:
- 設定環境,包括套件。
- 將資料載入 BigQuery。
- 從公開 Pub/Sub 主題讀取資料。
請繼續使用下列筆記本,並按照逐步說明操作:
00_environment_setup.ipynb
6. 探索性資料分析
本節將說明如何執行探索資料分析,以進一步瞭解詐欺資料。在本節中,您將說明下列學習目標:
- 使用 SQL 擷取及探索 BigQuery 中的資料
- 使用 BigQuery 和 Plotly 繪製交易資料圖表
- 運用資料匯總功能建立散佈圖
請繼續使用下一個筆記本,並逐步按照操作說明操作:
01_exploratory_data_analysis.ipynb
7. 特徵工程批次與串流
在本節中,您將探討特徵工程,從原始資料生成模型訓練功能。我們會使用批次和串流處理。這兩種用途都有助於偵測詐欺行為。在本節中,您將說明下列學習目標:
- 如何使用 BigQuery 和 SQL 建立特徵
- 建立 Vertex AI 特徵儲存庫並插入資料
- 如何處理串流資料並擷取至特徵儲存庫
請依序處理下列兩個筆記本,並按照「筆記本」中的說明操作:
02_feature_engineering_batch.ipynb
03_feature_engineering_streaming.ipynb
8. 模型訓練、預測、正式化與監控
在本節中,您將訓練並部署第一個 BigQuery 模型,以偵測可能發生的詐欺案件。您也會瞭解如何應用訓練和部署程式碼,並將其標準化為自動化管道。您也會瞭解如何進行線上預測,並在實際工作環境中監控模型。在本節中,您將說明下列學習目標:
- 如何訓練 BigQuery ML 模型並在 Vertex AI Model Registry 中註冊
- 在 Vertex AI 中將模型部署為端點
- 如何使用 Vertex AI SDK
- 如何利用 BigQuery ML 模型並建立端對端機器學習管道
- 如何使用 Vertex AI Model Monitoring
請依這筆訂單繼續下列筆記本,然後按照「筆記本」中的說明操作。您可以在 BQML 資料夾中找到筆記本。逐步按照筆記本操作:
04_model_training_and_prediction.ipynb
05_model_training_pipeline_formalization.ipynb
06_model_monitoring.ipynb
07_model_inference.ipynb
🎉 Congratulations! 🎉
您已瞭解如何在 Google Cloud 中建構資料至 AI 架構!
9. 清除
建議您使用新專案執行本研究室。本研究室涵蓋許多不同產品,最簡單的方法是在您完成研究室之後刪除整個專案。如要進一步瞭解如何刪除專案,請參閱說明文件。
如要刪除服務,請按照筆記本中的指示操作,或是刪除已建立的資源。