建立 Apache Spark 機器學習管道

在 Google Cloud 中建立 Spark ML 管道,並使用無須設定的執行階段,加速分散式機器學習作業。

什麼是分散式機器學習?

分散式機器學習可讓數據資料學家和機器學習工程師擴充機器學習 (ML) 模型訓練,突破單一機器的記憶體與運算能力限制。只要將資料分區,並在多個 worker 節點組成的叢集中平行處理工作負載,就能大幅加快訓練速度,在龐大資料集上訓練複雜模型。

使用 Apache Spark 的原因

Apache Spark 是分散式資料處理的業界標準。其原生機器學習程式庫 MLlib 提供分散式演算法,可用於分類、迴歸、分群和協同過濾,讓您能在單一整合環境中,完成從資料擷取到模型部署的所有工作。

什麼是 Spark ML 管道?

Spark ML 管道是一種高階 API,可協助您將多個機器學習工作流程整合為一個連貫的管道。您可以在結構化的宣告式工作流程中,串連各種資料轉換 (例如特徵擷取和縮放) 以及機器學習演算法 (例如模型訓練)。


使用管道可確保模型訓練和預測期間,資料預先處理步驟均以一致的順序執行,這對於防止資料外洩和確保結果可重現至關重要。Spark 機器學習管道的主要元件是轉換器和估計器。

為何選擇 Google Cloud 展開 Spark 機器學習之旅?

擴充機器學習工作負載來套用硬體加速時,往往會遇到管理複雜 Spark GPU 依附元件的難題。佈建 VM 執行個體、安裝正確的 NVIDIA 驅動程式,以及確保 CUDA 和 cuDNN 版本與 PyTorch 或 TensorFlow 程式庫相符,都可能會導致開發人員的工作效率停滯數天。


Google Cloud 透過 Managed Service for Apache Spark 解決這個問題,提供預先封裝的機器學習執行階段。這些執行階段是以穩定的 Ubuntu 映像檔 (2.3 以上版本) 為基礎建構而成,並預先安裝及設定工作負載所需的 GPU 驅動程式 (CUDA、cuDNN、NCCL) 和業界標準機器學習框架 (PyTorch、XGBoost、權杖化工具和轉換器)。這個環境不需設定,團隊可以專心編寫程式碼,不必費心設定基礎架構。

常見問題

在 Spark MLlib 中,Transformer 是一種演算法,可將一個 DataFrame 轉換為另一個 DataFrame (例如將文字轉換為數值向量)。Estimator 是一種演算法,可套用至 DataFrame 來產生轉換器 (例如,將邏輯迴歸演算法套用至訓練資料,以產生經過訓練的模型)。

只要使用 Spark 機器學習管道,就能確保資料準備邏輯與模型緊密結合。如此一來,測試資料和推論資料都會依循與訓練資料相同的處理方式。

在 Managed Service for Apache Spark 使用 Google Cloud 機器學習執行階段,即可卸載依附元件管理作業。Google 會持續更新以 Ubuntu 為基礎的自訂映像檔,並預先封裝原生相容的正確版本 NVIDIA 驅動程式、CUDA 工具包和分散式機器學習框架。

Spark MLlib 與 Google Cloud 資料工具的元件

瞭解 Spark MLlib 與 Google Cloud 資料工具的構成元素,是執行大規模分散式機器學習的關鍵。

元件

說明

主要應用實例


費用考量事項

Spark MLlib

Apache Spark 的可擴充機器學習程式庫,內含常見的學習演算法、特徵化工具和管道公用程式。

在分散式叢集中執行大規模機器學習模型訓練,不依賴單一節點程式庫。


所產生的費用主要來自執行 Apache Spark 所使用的基礎 Google Cloud 服務,尤其是 Managed Service for Apache Spark。定價取決於佈建的 Compute Engine 資源 (vCPU、記憶體、GPU、磁碟) 和工作執行時間。


*請參閱 Managed Service for Apache Spark 定價。

向量組合器

Spark MLlib 的核心特徵轉換器,可將多個資料欄 (連續數字、one-hot 編碼類別等) 合併為單一向量資料欄。

將原始表格型資料,轉換為 Spark MLlib 機器學習演算法所需的特定密集或稀疏向量格式。

由於它是 Spark MLlib 的元件,因此執行時會產生整體運算費用,並計入在 Managed Service for Apache Spark 執行 Spark 工作負載的費用。

Spark ML 管道

以 DataFrames 為基礎建構的高階 API,可協助使用者將多個特徵工程步驟和模型鏈結在一起。

將 Transformer 和 Estimator 分組為整合式管道,確保訓練和推論期間的資料處理方式相同。

與其他 Spark MLlib 元件類似,費用會計入 Managed Service for Apache Spark 的執行費用。

BigQuery ML


這項服務可讓您運用標準 SQL 查詢,在 BigQuery 中建立及執行機器學習模型。

在資料儲存位置直接訓練模型,再將高度複雜、反覆執行的分散式工作移至 Spark。


BigQuery ML 採用專屬的定價模式。所需支付的費用如下:

  1. 模型訓練 (根據 CREATE MODEL 查詢期間處理的資料)、
  2. 模型預測 (標準 BigQuery 查詢定價)
  3. 模型儲存空間 (依標準 BigQuery 儲存空間費率計費)。

元件

說明

主要應用實例


費用考量事項

Spark MLlib

Apache Spark 的可擴充機器學習程式庫,內含常見的學習演算法、特徵化工具和管道公用程式。

在分散式叢集中執行大規模機器學習模型訓練,不依賴單一節點程式庫。


所產生的費用主要來自執行 Apache Spark 所使用的基礎 Google Cloud 服務,尤其是 Managed Service for Apache Spark。定價取決於佈建的 Compute Engine 資源 (vCPU、記憶體、GPU、磁碟) 和工作執行時間。


*請參閱 Managed Service for Apache Spark 定價。

向量組合器

Spark MLlib 的核心特徵轉換器,可將多個資料欄 (連續數字、one-hot 編碼類別等) 合併為單一向量資料欄。

將原始表格型資料,轉換為 Spark MLlib 機器學習演算法所需的特定密集或稀疏向量格式。

由於它是 Spark MLlib 的元件,因此執行時會產生整體運算費用,並計入在 Managed Service for Apache Spark 執行 Spark 工作負載的費用。

Spark ML 管道

以 DataFrames 為基礎建構的高階 API,可協助使用者將多個特徵工程步驟和模型鏈結在一起。

將 Transformer 和 Estimator 分組為整合式管道,確保訓練和推論期間的資料處理方式相同。

與其他 Spark MLlib 元件類似,費用會計入 Managed Service for Apache Spark 的執行費用。

BigQuery ML


這項服務可讓您運用標準 SQL 查詢,在 BigQuery 中建立及執行機器學習模型。

在資料儲存位置直接訓練模型,再將高度複雜、反覆執行的分散式工作移至 Spark。


BigQuery ML 採用專屬的定價模式。所需支付的費用如下:

  1. 模型訓練 (根據 CREATE MODEL 查詢期間處理的資料)、
  2. 模型預測 (標準 BigQuery 查詢定價)
  3. 模型儲存空間 (依標準 BigQuery 儲存空間費率計費)。

運作方式

Google Cloud 的 Managed Service for Apache Spark 簡化複雜的基礎架構,讓您在無伺服器環境或可自訂的代管叢集中,執行 Spark 機器學習管道,進行大規模模型訓練。


為了消除複雜的 Spark GPU 依附元件,這項服務採用預先封裝的機器學習執行階段,完整配備原生相容的 NVIDIA 驅動程式、CUDA 工具包和分散式架構,讓您無需設定即可部署硬體加速工作負載。

進一步瞭解如何運用 Spark 進行機器學習

常見用途

建構韌性特徵工程工作流程

瞭解如何使用 Transformer 擷取及擴充資料,以及使用 Estimator 訓練演算法。

使用指南

  • 建構 Spark 機器學習管道:如需在 Google Cloud 使用 Spark 的一般指引,請參閱 Managed Service for Apache Spark 說明文件。
  • PySpark 中的管道 Estimator:查看 Managed Service for Apache Spark 說明文件中的 Python API 範例。這些範例包含使用 Spark MLlib 元件的模式。您也可以在將 GPU 附加至叢集說明文件等指南中,找到 Spark ML 範例。

其他資源

部署無須設定的機器學習執行階段

啟動 GPU 加速的 Spark 叢集,不必管理基礎架構。Google Cloud 的機器學習執行階段已預先設定,可讓您略過複雜的 Spark GPU 依附元件。

使用指南

  • Managed Service for Apache Spark 機器學習執行階段總覽:進一步瞭解 Managed Service for Apache Spark 執行階段映像檔版本,其中詳細說明預先安裝的程式庫,包括 TensorFlow、PyTorch 和 XGBoost,以及 GPU 專用程式庫。


其他資源

  • 在 Google Cloud 執行分散式深度學習:如要從更廣泛的架構角度瞭解如何調度機器學習的資源,請參閱實作機器學習的最佳做法說明文件。這份文件提供開發自訂訓練模型的建議,包括在 Google Cloud 使用分散式訓練和加速器,並整合 Gemini Enterprise Agent Platform Model Registry。

展開下一步行動

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