GCP的機器學習與AI介紹

本文介紹GCP上建立預測性和生成式 AI 專案的 AI 和機器學習 (ML) 產品。它探索了整個資料到AI生命週期中可用的技術、產品和工具,涵蓋AI基礎、開發和解決方案。旨在幫助資料科學家、AI開發人員和機器學習工程師透過參與學習經驗和實際動手練習來提高技能和知識。

從資料變成AI的流程

根據上圖的流程,GCP將產品分為四大類別:

  1. 從多個資料來源"批次或串流式地"擷取資料。
    相關產品如Pub/Sub, Dataflow, DataProc, Cloud Data Fusion
  2. 將資料存放在不同型態的資料儲存地。
    相關產品如Cloud storage, BigQuery, Spanner,Bigtable,Firestore。其中BQ、Cloud SQL、Spanner這三種具焦的是SQL DB。而Bigtable 與Firestore是屬於NoSQL DB。
  3. 分析資料並視覺化其結果。
    相關產品如BigQuery, Looker(BI工具)
  4. 訓練ML模型以預測趨勢或產生新的內容。
    相關產品如GCP推出的一個統一平台Vertex AI。這個統一平台內含多種工具可以使用 — 用於預測 AI 的 AutoML、用於編碼的 Workbench 和 Colab Enterprise、用於Gen AI 的 Vertex AI Studio 和 Model Garden。

ML模型種類

AI與ML的不同處在於:
AI是一個總括術語,包括與模仿人類智慧的電腦相關的任何事物。例如自駕車是一種AI。ML是AI的一個子集,它允許電腦無需刻意的程式開發即可學習。傳統的程式開發則有明確的規則性

ML分為監督式與非監督式學習,而大家比較常聽到的深度學習或深度神經網路則是ML的子集,它在輸入資料和輸出結果之間添加層(Layer),以使ML更深入。Gen AI依賴訓練廣泛的模型,例如大型語言模型。這些模型是深度學習模型。

監督式與非監督式

監督式與非監督式學習不同的地方是:
監督式學習要幫資料上標籤(label),也就是我們要給電腦一些範例,跟它們說某類的資料會是某種給予的標籤。哪非監督式學習就是不用教,電腦自己去尋找資料的特徵。

簡而言之,監督式學習處理有標籤的資料,是任務驅動的,並確定目的。然而,非監督式學習處理沒有標籤的資料,是資料驅動的,並識別模式。

區分兩者的簡單方法是監督式學習為每個資料點提供標籤或答案,而非監督學習則不會。

監督式學習的種類

  1. 分類(Classification)
    它預測類別變量(categorical variable),例如確定圖片顯示的是貓還是狗。
  2. 迴歸(Regression)
    預測數字變量(numeric variable),例如根據產品過去的銷售額來預測產品的銷售額。線性迴歸(linear regression)是ML模型經常使用解決回歸問題。線性回歸處裡數字問題,邏輯回歸處裡分類問題。

非監督是學習的種類

  1. Clustering — 將資料分群。具有相似特徵的資料點會將它們分配給“Cluster”。ML會使用的如k-means clustering。
  2. 關聯(Association) —識別潛在的關係,例如兩種事物之間的相關性。如Apriori這類關聯規則學習演算法。
  3. 降維(dimensionality reduction) — 減少資料集中的維度或特徵數量,以提高模型的效率。使用的技術如principal component analysis

BigQuery ML

這是使用SQL語法來建立ML模型的服務,也是GCP的大數據分析工具。但一開始BigQuery(以下簡稱BQ)在GCP只有DataWarehouse服務。BQ提供兩種基礎服務:

  1. 全託管的儲存設施,用於載入和儲存資料集
  2. 基於 SQL 的快速分析引擎

基本上ML model的產生會有以下幾個步驟:

  1. 匯入資料並進行資料準備
  2. 試驗不同的模型,看哪個比較適合
  3. 用新資料來訓練模型
  4. 佈署模型開始進行預測

這是一的迭代過程,通常自己從地端機房動手做會很耗資源跟時間。而BQ ML model的作業全部都在一個地方執行完成。BigQuery ML 會為我們調整參數並協助管理 ML 工作流程。

以下說明在BQ ML model的作業流程:

  1. 如果資料不存在於BQ,使用ETL工具將資料匯入
  2. 選擇並預處理特徵。用SQL語法建立training dataset。BQ ML 會為我們進行一些預處理,例如分類變量的 one-hot encoding,這是將分類資料轉換為訓練模型所需的數字資料。
  3. 建立模型。只要在SQL語法的最上頭放上CREATE MODEL(如下圖一)
  4. 模型訓練完畢後,執行「ML.EVALUATE」來評估訓練模型在評估資料集上的效能(如下圖二)。
  5. 如果我們滿意模型的表現,就可以投入生產環境進行預測。需要在新訓練的模型上呼叫「ML.PREDICT」命令(如下圖三),以傳回預測以及模型對這些預測的置信度(confidence)。根據結果,標籤欄位將在欄位名稱中新增「predicted」。這是模型對該標籤的預測。
圖一

在上範例中,是要建立一個 ML 模型來預測客戶的購買行為,特別是他們將來是否會購買該產品。所以給命名模型名稱:ecommerce.classification,這也同時明定了模型類別。以下為BQ ML支援的ML模型

Classification

  • Logistic regression
  • DNN classifier (Tensor Flow)
  • XGBoost
  • AutoML tables
  • Wide and deep NNs

Regression

  • Linear regression
  • DNN regressor (TensorFlow)
  • XGBoost
  • AutoML tables
  • Wide and deep NNs

Other models

  • k-means clustering
  • Time series forecasting (ARIMA+)
  • Recommendation: matrix factorization
  • Anomaly detection
圖二

在上圖範例中,可以在此處指定模型將存取哪些評估指標,以上圖來看有 accuracy, precision與recall。

圖三

--

--

運用"雲端服務"加速企業的數位轉型願景
運用"雲端服務"加速企業的數位轉型願景

Written by 運用"雲端服務"加速企業的數位轉型願景

我們協助您駕馭名為"雲端運算"的怪獸,馴服它為您所用。諮詢請來信jason.kao@suros.com.tw. https://facebook.com/jason.kao.for.cloud

No responses yet