什麼是批次推論?

機器學習模型訓練完成後,下一步就是使用模型對新資料進行預測。這個程序稱為推論,需要根據應用程式的延遲時間和處理量需求,制定合適的策略。批次推論又稱離線推論或非同步處理,是一種強大且高效率的方法,可在不需要立即即時回應的情況下,針對大量資料生成預測。

批次推論的定義

批次推論是指使用經過訓練的機器學習模型,一次對大量觀測資料 (或「批次」) 生成預測結果。

線上推論會在單一資料點抵達時進行預測,而批次推論則會對一段時間內收集的資料進行預測。這種做法優先考量高處理量和運算效率,而非低延遲時間。由於處理作業是在離線狀態下完成,而非直接回應使用者要求,因此也稱為靜態推論,也就是生成預測並儲存以供日後使用。

批次推論的主要特性

  • 非同步處理:預測結果會按照預先定義的排程 (例如每小時、每天) 或依需求產生,而不是在新資料傳入時即時生成
  • 高處理量:系統經過最佳化調整,可在單次執行中處理大量資料點,因此效率極高
  • 成本效益:排定執行時間,在運算資源最充裕或最便宜時使用,大幅降低營運成本
  • 延遲容忍度:主要假設是,使用預測結果的應用程式不需要立即取得答案,可接受在資料收集和預測生成之間延遲數分鐘或數小時

批次推論與線上推論的比較

在設計機器學習系統時,選擇批次或線上推論是基本的架構決策。每種做法都有不同用途,並針對不同的效能特性進行最佳化。

功能

批次推論

線上推論

資料處理

在單一工作同時處理大量資料點。

在資料點抵達時,處理單一資料點或極小的資料點群組。

主要最佳化

高處理量,具成本效益。

低延遲和即時回應。

延遲時間

延遲時間長,無法立即取得預測結果 (需數分鐘至數小時)。

延遲時間極短,預測結果會在幾毫秒內傳回。

叫用

依排程 (例如 Cron 工作) 或隨選觸發。

由使用者直接要求或系統事件觸發。

運算使用率

可短時間使用強大的運算資源,然後縮減至零。

需要伺服器或端點持續運作,隨時準備好接受要求。

用途範例

為電子商務網站的所有使用者生成每日產品推薦。

在單筆信用卡交易發生時,預測是否為詐欺交易。

同義詞

離線推論、非同步處理、靜態推論。

即時推論、同步處理、動態推論。

功能

批次推論

線上推論

資料處理

在單一工作同時處理大量資料點。

在資料點抵達時,處理單一資料點或極小的資料點群組。

主要最佳化

高處理量,具成本效益。

低延遲和即時回應。

延遲時間

延遲時間長,無法立即取得預測結果 (需數分鐘至數小時)。

延遲時間極短,預測結果會在幾毫秒內傳回。

叫用

依排程 (例如 Cron 工作) 或隨選觸發。

由使用者直接要求或系統事件觸發。

運算使用率

可短時間使用強大的運算資源,然後縮減至零。

需要伺服器或端點持續運作,隨時準備好接受要求。

用途範例

為電子商務網站的所有使用者生成每日產品推薦。

在單筆信用卡交易發生時,預測是否為詐欺交易。

同義詞

離線推論、非同步處理、靜態推論。

即時推論、同步處理、動態推論。

批次推論如何運作?

批次推論管道是結構化的自動化工作流程,可將原始資料轉為可做為行動依據的預測結果。這個程序可分為以下幾個主要步驟,通常由工作流程管理工具或排程系統協調。

步驟 1:收集及儲存資料

首先,隨著時間累積資料。這類輸入資料可包含使用者活動記錄、交易記錄或感應器讀數,並從各種來源收集,然後儲存在集中位置。這通常是在 Google Cloud Storage 等服務建構的資料湖泊,或是 BigQuery 等資料倉儲。

步驟 2:觸發批次工作

推論管道由觸發條件啟動。觸發條件可以是:

  • 時間導向:排程器 (例如 Cron 工作) 會以固定間隔啟動工作,例如每天凌晨 1 點。
  • 事件導向:工作會因應特定事件而啟動,例如 Cloud Storage bucket 中出現新的資料檔案

步驟 3:預先處理資料

觸發工作後,會載入整批原始輸入資料。接著,執行必要的預先處理和特徵工程步驟,將資料轉換為機器學習模型預期的精確格式。包括清理遺漏值、縮放數值特徵,以及編碼類別變數等工作。

步驟 4:生成預測

系統會從中央存放區 (例如 Vertex AI Model Registry) 擷取經過訓練的機器學習模型。接著,模型會接收預先處理的批次資料,對資料集中的每個觀測值執行推論,生成對應的預測結果。

步驟 5:儲存結果

接著,模型的輸出內容 (預測結果集合) 會寫入儲存系統。目的地是根據預測結果的用途而定。常見的目的地包括將結果載入 BigQuery 資料表進行分析、載入 Cloud SQL 資料庫供應用程式快速查詢,或是儲存為 Cloud Storage 中的檔案。

步驟 6:使用預測結果

預測結果已儲存並準備就緒,下游系統可以開始使用。商業智慧工具可能會查詢結果,建立預測顧客行為的資訊主頁。例如,網頁應用程式的後端可能會載入預先計算的產品推薦,向使用者顯示;行銷自動化平台可能會提取預測會流失的客戶名單,以新廣告活動鎖定這些客戶。

批次推論的優點

在許多企業用途中,批次推論比即時處理更具優勢。

具成本效益

批次處理可讓您充分運用運算資源。您可以在短時間內,於強大的硬體上執行大型工作,然後關閉資源,避免持續運作伺服器的維護成本。

高處理量和擴充性

批次系統的設計宗旨是擴充及有效處理數 TB 資料。因此,您可以將複雜模型套用至非常龐大的資料集,這類作業在線上系統中可能過慢或成本過高。

作業輕鬆簡單

相較於高可用性、低延遲的線上推論系統,批次推論管道的建構和維護作業較簡單。這類工作通常較能承受暫時性故障,且工作失敗時可輕鬆重新執行。

可進行複雜的特徵工程

由於批次推論不受低延遲需求限制,因此您可以對輸入資料執行更複雜且運算量大的特徵工程,通常能打造出更準確的模型。

更有效率地運用資源

您可以排定在離峰時段執行批次工作,充分利用閒置的運算資源,並可能享有較低的虛擬機器現貨價格。

批次推論的應用實例

許多核心業務程序會使用批次推論,因為這類程序不需要即時生成預測,只要預測能提升產品或服務即可。這種做法在各行各業都能有效解決大規模資料問題。

產業別

待解決的問題

解決方案範例

電子商務和零售業


每天為整個使用者族群生成個人化產品推薦內容,確保使用者造訪網站時能快速檢索。

Vertex AI 批次預測可執行推薦模型,並將結果載入 Cloud SQL 或 Bigtable 等快速查詢資料庫。

電信和 SaaS

分析整個客戶資料庫的使用模式,找出下個月可能流失的高風險客戶。

BigQuery ML (BigQuery 機器學習) 可讓您直接在資料倉儲中儲存的客戶資料上執行分類模型,並將結果寫入新資料表,供保留團隊使用。

金融保險

預測金融市場趨勢,或計算整個資產投資組合的風險分數,這類工作需要大量運算資源,且會定期執行。

Vertex AI 批次預測功能可依排程執行複雜的時間序列模型,提供策略報告和資訊主頁所需的資料。

物流與供應鏈

根據每週銷售和物流資料,執行複雜的需求預測模擬,最佳化數百個倉庫的庫存量。

Google Kubernetes Engine (GKE) 提供自訂的高效能環境,可滿足特定程式庫和硬體需求,用來執行專業的模擬模型。

醫療照護業

分析每日大量醫學圖像 (例如 X 光片或 CT 掃描),偵測潛在異常狀況,供放射科醫師稍後檢閱。

GKE 搭配 GPU 加速器,非常適合在大型圖片集上執行深度學習電腦視覺模型,可提供最佳控制能力和效能。

法律和法規遵循

處理數百萬份現有文件並分類,擷取重要實體、評估情緒,讓整個語料庫可供搜尋和分析。

Dataflow 可用於建構可擴充的自然語言處理管道,預先處理文字並執行推論,而 GKE 則可滿足自訂程度更高的模型需求。

產業別

待解決的問題

解決方案範例

電子商務和零售業


每天為整個使用者族群生成個人化產品推薦內容,確保使用者造訪網站時能快速檢索。

Vertex AI 批次預測可執行推薦模型,並將結果載入 Cloud SQL 或 Bigtable 等快速查詢資料庫。

電信和 SaaS

分析整個客戶資料庫的使用模式,找出下個月可能流失的高風險客戶。

BigQuery ML (BigQuery 機器學習) 可讓您直接在資料倉儲中儲存的客戶資料上執行分類模型,並將結果寫入新資料表,供保留團隊使用。

金融保險

預測金融市場趨勢,或計算整個資產投資組合的風險分數,這類工作需要大量運算資源,且會定期執行。

Vertex AI 批次預測功能可依排程執行複雜的時間序列模型,提供策略報告和資訊主頁所需的資料。

物流與供應鏈

根據每週銷售和物流資料,執行複雜的需求預測模擬,最佳化數百個倉庫的庫存量。

Google Kubernetes Engine (GKE) 提供自訂的高效能環境,可滿足特定程式庫和硬體需求,用來執行專業的模擬模型。

醫療照護業

分析每日大量醫學圖像 (例如 X 光片或 CT 掃描),偵測潛在異常狀況,供放射科醫師稍後檢閱。

GKE 搭配 GPU 加速器,非常適合在大型圖片集上執行深度學習電腦視覺模型,可提供最佳控制能力和效能。

法律和法規遵循

處理數百萬份現有文件並分類,擷取重要實體、評估情緒,讓整個語料庫可供搜尋和分析。

Dataflow 可用於建構可擴充的自然語言處理管道,預先處理文字並執行推論,而 GKE 則可滿足自訂程度更高的模型需求。

如何在 Vertex AI 設定批次推論

Vertex AI 是 Google Cloud 的代管機器學習平台,提供簡化的無伺服器批次推論方法。這個程序著重於設定工作,讓平台處理底層基礎架構。

準備資產。

開始前,請先準備好以下三項要件:

  • 訓練好的模型,應上傳至 Vertex AI Model Registry
  • 輸入資料,格式必須符合模型要求;這類資料應位於 Google Cloud Storage (例如 JSON 或 CSV 檔案) 或 BigQuery 資料表中
  • 輸出內容的目的地位置,同樣是 Cloud Storage bucket 或 BigQuery 資料表

建立批次預測工作。

您可以使用 Google Cloud 控制台、gcloud 指令列工具或 Vertex AI SDK,以程式輔助方式啟動工作。建立工作時,請提供下列設定:

  • 您想使用的 Model Registry 特定模型
  • 輸入資料的路徑和輸出結果的位置
  • 您要用於工作的機型和加速器 (例如 GPU),可讓您在成本和效能之間取得平衡

執行並監控工作。

提交工作後,Vertex AI 會接手處理。系統會自動佈建您指定的運算資源,透過模型執行輸入資料、生成預測結果,並將結果儲存至您指定的輸出位置。工作完成後,Vertex AI 會自動將所有資源縮減為零,因此您只需根據實際使用的運算時間付費。您可以直接在 Google Cloud 控制台中監控工作進度並查看記錄。

存取及使用預測結果。

工作狀態顯示為「成功」後,預測結果就準備就緒了。現在,下游應用程式、分析工具或商業智慧 (BI) 資訊主頁都能存取 Cloud Storage 中的輸出檔案,或 BigQuery 中的新資料表。

透過 Google Cloud 解決業務難題

新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用各項 Google Cloud 功能。

如何在 GKE 設定批次推論

使用 Google Kubernetes Engine (GKE) 進行批次推論,可享有最高的控管權和可攜性,因此非常適合具備 Kubernetes 專業知識或有特殊需求的團隊。設定程序包括將推論邏輯容器化,並使用 Kubernetes 資源管理執行作業。

步驟 1:將推論應用程式容器化。第一步是將預測程式碼封裝至容器映像檔。

  • 編寫指令碼 (例如使用 Python),載入訓練好的模型、從來源讀取資料、執行推論,並將結果寫入目的地
  • 建立 Dockerfile,這個檔案會定義建構容器的步驟,包括指定基本映像檔、安裝依附元件 (例如 tensorflow 或 pandas),以及將模型檔案和推論指令碼複製到映像檔中
  • 建構映像檔並推送至容器註冊資料庫,例如 Artifact Registry

步驟 2:定義 Kubernetes 工作。您可以使用 Kubernetes Job 或 CronJob 資訊清單 (YAML 檔案) 定義批次工作,不必執行長時間的部署作業。這個檔案指定:

  • 要使用的 Artifact Registry 容器映像檔
  • 所需的運算資源 (CPU、記憶體、GPU)
  • 任何必要的設定,例如檔案路徑的環境變數,或資料庫憑證的密鑰

步驟 3:在 GKE 叢集上執行工作。您可以使用 kubectl 將資訊清單套用至 GKE 叢集。接著,GKE 的控制層會在叢集中的合適節點上排定 Pod,以執行推論容器。對於週期性工作,CronJob 資源會根據預先定義的排程自動建立新工作 (例如:0 2 * * * 代表每天凌晨 2 點)。

步驟 4:實作資料處理作業並儲存結果。與代管的 Vertex AI 做法不同,容器內的應用程式程式碼負責處理所有資料 I/O。指令碼必須包含連線至資料來源 (例如 Cloud Storage bucket) 並從中讀取資料的邏輯,以及將最終預測結果寫回所選目的地 (例如 Cloud SQL 資料庫) 的邏輯。

您希望解決什麼問題?
What you'll get:
逐步指南
參考架構
可用的預先建構解決方案
這項服務以 Vertex AI 建構,必須年滿 18 歲才能使用。請勿輸入個人資訊,或是敏感、機密的內容。

額外資源

展開下一步行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。