運用 Cloud Storage FUSE 最佳化 AI 和機器學習工作負載

Last reviewed 2025-04-09 UTC

本文提供參考架構,說明如何使用 Cloud Storage FUSE,在 Google Kubernetes Engine (GKE) 上最佳化 AI 和機器學習工作負載的效能。

這份文件適用於架構師和技術人員,他們負責在 Google Cloud上設計、佈建及管理 AI 和機器學習工作負載的儲存空間。本文假設您已瞭解機器學習生命週期、流程和功能

Cloud Storage FUSE 是一個開放原始碼 FUSE 轉接器,可讓您掛接 Cloud Storage bucket 做為本機檔案系統。這項設定可讓應用程式使用標準的類檔案系統語意,與雲端儲存空間值區順暢互動。Cloud Storage FUSE 可讓您充分發揮 Cloud Storage 的擴充性和成本效益。

架構

您可以根據效能、可用性和災害復原 (DR) 需求,選擇下列其中一種 Google Cloud 部署原型,在 Google Cloud上執行 AI 和機器學習工作負載:

  • 區域:應用程式會在單一區域中獨立運作。Google Cloud如果應用程式並非任務關鍵,但需要防範區域中斷,建議採用這種部署原型。
  • 多區域:應用程式會在兩個或多個 Google Cloud 區域中獨立執行,模式可以是啟用/啟用或啟用/被動。這個部署原型非常適合支援 DR 情境。對於需要防範區域性服務中斷和災害的關鍵應用程式,我們建議採用這種部署原型。雙區域或多區域部署可縮短資源距離,進而減少延遲並提升輸送量。

您選擇的部署原型會決定架構所需的 Google Cloud 產品和功能。多區域架構會使用 Anywhere Cache。 如要評估 Anywhere Cache 是否適合您的工作負載,請使用 Anywhere Cache 建議工具分析資料用量和儲存空間。

以下分頁提供區域和多區域部署原型參考架構:

區域

下圖顯示範例區域架構,該架構使用 Cloud Storage FUSE,可提升模型訓練和模型服務工作流程的效能:

使用 Cloud Storage FUSE 最佳化 AI 和 ML 工作負載的區域架構。

這個架構包含下列元件:

  • GKE 叢集:GKE 會管理運算節點,AI 和機器學習模型訓練及服務程序會在這些節點上執行。GKE 會管理 Kubernetes 叢集的基礎架構,包括控制層、節點和所有系統元件。
  • Kubernetes 排程器:GKE 控制層會排定工作負載,並管理工作負載的生命週期、資源調度和升級作業。Kubernetes 節點代理程式 (kubelet) 會與控制層通訊,但圖中未顯示。kubelet 代理程式負責啟動及執行 GKE 節點上排定的容器。如要進一步瞭解排程器,請參閱「GKE 中的 AI/機器學習自動化調度管理機制」。
  • 虛擬私有雲 (VPC) 網路:架構中的所有 Google Cloud資源都使用單一 VPC 網路。您可以根據需求,選擇建構使用多個網路的架構。如要進一步瞭解如何為 Cloud Storage FUSE 設定虛擬私有雲網路,請參閱「決定是否建立多個虛擬私有雲網路」。
  • Cloud Load Balancing:在這個架構中,Cloud Load Balancing 會將應用程式使用者傳入的推論要求,有效分配至 GKE 叢集中的服務容器。詳情請參閱瞭解 GKE 負載平衡
  • 圖形處理單元 (GPU)Tensor 處理單元 (TPU):GPU 和 TPU 是專用的機器加速器,可提升 AI 和機器學習工作負載的效能。如要瞭解如何選擇合適的處理器類型,請參閱本文稍後的「加速器選項」。
  • Cloud Storage:Cloud Storage 提供具擴充性、成本效益的永久儲存空間,適用於 AI 和 ML 工作負載。Cloud Storage 是原始訓練資料集、模型檢查點和最終訓練模型的中央存放區。
  • 啟用檔案快取的 Cloud Storage FUSE:Cloud Storage FUSE 可讓您將 Cloud Storage bucket 掛接為本機檔案系統。Cloud Storage FUSE 中的檔案快取是本機電腦上的目錄,用於儲存 Cloud Storage bucket 中經常存取的檔案。Cloud Storage FUSE CSI 驅動程式可管理 Cloud Storage FUSE 與 Kubernetes API 的整合,將 Cloud Storage bucket 當做磁碟區使用。

以下各節說明架構中訓練和服務工作負載的工作流程。

多區域

下圖顯示範例多區域架構,該架構使用 Cloud Storage FUSE 和 Anywhere Cache,提升模型訓練和模型服務工作流程的效能:

多區域架構,使用 Cloud Storage FUSE 最佳化 AI 和 ML 工作負載。

這個架構包含下列元件:

  • GKE 叢集: GKE 會管理運算節點,AI 和機器學習模型訓練及服務程序會在這些節點上執行。GKE 會管理 Kubernetes 叢集的底層基礎架構,包括控制層、節點和所有系統元件。
  • Kubernetes 排程器:GKE 控制層會排定工作負載,並管理工作負載的生命週期、資源調度和升級作業。Kubernetes 節點代理程式 (kubelet) 會與控制層通訊,但圖中未顯示。kubelet 代理程式負責啟動及執行 GKE 節點上排定的容器。如要進一步瞭解排程器,請參閱「GKE 中的 AI/機器學習自動化調度管理機制」。
  • 虛擬私有雲 (VPC) 網路:架構中的所有 Google Cloud資源都使用單一 VPC 網路。您可以根據需求,選擇建構使用多個網路的架構。如要進一步瞭解如何為 Cloud Storage FUSE 設定虛擬私有雲網路,請參閱「決定是否建立多個虛擬私有雲網路」。
  • Cloud DNS:在多區域架構中,Cloud DNS 會將流量導向負載平衡器,確保透過任播轉送達到最佳效能和可用性。系統會自動將要求轉送到最近的位置,縮短延遲時間並提高使用者的權威名稱查詢效能。如要瞭解一般原則和最佳做法,請參閱「Cloud DNS 最佳做法」。
  • Cloud Load Balancing:在此架構中,Cloud Load Balancing 會有效率地將應用程式使用者傳入的推論要求,分配給 GKE 叢集中的服務容器。詳情請參閱瞭解 GKE 負載平衡
  • 圖形處理單元 (GPU)Tensor 處理單元 (TPU):GPU 和 TPU 是專用的機器加速器,可提升 AI 和機器學習工作負載的效能。如要瞭解如何選擇合適的處理器類型,請參閱本文稍後的「加速器選項」。
  • Cloud Storage:Cloud Storage 提供具擴充性、成本效益的永久儲存空間,適用於 AI 和 ML 工作負載。Cloud Storage 是原始訓練資料集、模型檢查點和最終訓練模型的中央存放區。
  • Cloud Storage FUSE: Cloud Storage FUSE 可讓您將 Cloud Storage bucket 掛接為本機檔案系統。圖表中未顯示的 Cloud Storage FUSE CSI 驅動程式,會管理 Cloud Storage FUSE 與 Kubernetes API 的整合,以便將 Cloud Storage bucket 當做磁碟區使用。
  • Anywhere Cache: Anywhere Cache 是 Cloud Storage 的功能,可為 Cloud Storage bucket 提供高達 1 PiB 的 SSD 支援區域唯讀快取。在訓練和服務期間,Anywhere Cache 可擴充快取容量和頻寬,協助您達到超過 1 TB/s 的處理量。

以下各節說明架構中訓練和服務工作負載的工作流程。

訓練工作負載

在上述架構中,模型訓練期間的資料流程步驟如下:

  1. 將訓練資料載入 Cloud Storage:訓練資料會上傳至已啟用階層式命名空間的 Cloud Storage 值區。Cloud Storage 可做為可擴充的中央存放區。
  2. 在 GKE 中載入訓練資料並執行訓練工作:掛接至 GKE Pod 的 Cloud Storage bucket 可讓訓練應用程式透過 FUSE 介面,有效率地載入及存取訓練資料。GKE 節點會使用已掛接的檔案快取做為資料來源,執行模型訓練程序。訓練應用程式會持續將訓練資料提供給機器加速器,以執行模型訓練所需的複雜計算。您可以視工作負載需求使用 GPU 或 TPU。如要瞭解如何選擇合適的處理器類型,請參閱本文件稍後的「加速器選項」。
  3. 檢查點和模型儲存及還原

    • 儲存檢查點或模型:訓練期間,儲存檢查點會以非同步方式,定期儲存至另一個 Cloud Storage 值區。檢查點會根據您定義的指標或間隔,擷取模型的狀態。
    • 還原檢查點或模型:如果訓練工作負載需要還原檢查點或模型資料,您必須在 Cloud Storage 中找到要還原的資產。您可以透過還原的檢查點或模型繼續訓練、微調參數,或評估驗證集的成效。

放送工作負載

在上述架構中,模型服務期間的資料流程步驟如下:

  1. 載入模型:訓練完成後,Pod 會使用 Cloud Storage FUSE 載入訓練好的模型,並啟用平行下載功能。平行下載功能會從 Cloud Storage 平行擷取模型各部分,加快模型載入速度。為大幅縮短模型載入時間,此程序會將快取目錄做為預先擷取緩衝區。
  2. 推論要求:應用程式使用者透過 Cloud Load Balancing 服務,從 AI 和機器學習應用程式傳送推論要求。Cloud Load Balancing 會將傳入要求分配到 GKE 叢集中的服務容器。這種分配方式可確保不會有任何單一容器過度負荷,且要求能有效處理。
  3. 傳送回應:節點會處理要求並產生預測結果。服務容器會透過 Cloud Load Balancing 將回應傳回給應用程式使用者。

使用的產品

參考架構使用下列 Google Cloud 產品:

  • Google Kubernetes Engine (GKE):Kubernetes 服務,可讓您透過 Google 的基礎架構,大規模部署及操作容器化應用程式。
  • Cloud Storage:適用於多種資料類型的物件儲存庫,成本低廉且沒有限制。 資料在 Google Cloud 內外都能存取,且會複製到多個位置,以便提供備援機制。 Google Cloud
  • 虛擬私有雲 (VPC):虛擬系統,可為 Google Cloud 工作負載提供全球性、可擴充的網路功能。虛擬私有雲包括虛擬私有雲網路對等互連、Private Service Connect、私人服務存取權和共用虛擬私有雲。
  • Cloud Load Balancing:一系列高效能、可擴充的全球和區域負載平衡器。
  • Cloud DNS:這項服務透過 Google 全球網路提供彈性佳且低延遲的 DNS 服務。

用途

對於需要大容量儲存空間和高效能檔案存取的 AI 和機器學習工作負載,建議您使用以 Cloud Storage FUSE 為基礎建構的架構。只要妥善規劃,您就能透過這些架構達到超過 1 TB/s 的輸送量。此外,Cloud Storage FUSE 可讓您運用中央儲存空間存放區,做為 AI 和機器學習工作流程所有階段的單一資料來源。無論工作負載的規模或大小為何,都適用於這種方法。

對於這些工作負載,Cloud Storage FUSE 提供下列優點:

  • 簡化資料存取:透過 AI 和機器學習架構 (例如 PyTorch 連接器JAX 和 TensorFlow) 存取訓練資料和檢查點。透過 AI 和機器學習架構存取資料,不必重構程式碼。
  • 加快啟動速度:使用 Cloud Storage FUSE 直接存取 Cloud Storage 中的資料,不必將大型資料集下載至運算資源。直接存取資料可加快作業啟動時間。
  • 成本效益:運用 Cloud Storage 內建的可擴充性和成本效益,盡量節省費用。

Cloud Storage FUSE 不適合容易受到延遲時間影響的工作負載,這類工作負載包含小於 50 MB 的檔案,或隨機 I/O 和中繼資料存取作業的延遲時間必須少於 1 毫秒。

如果是資料密集型訓練,或是檢查點和重新啟動工作負載,建議在 I/O 密集型訓練階段使用替代儲存空間

設計替代方案

以下各節將介紹可考慮用於 AI 和 ML 應用程式的替代設計方法。 Google Cloud

平台替代方案

您可以考慮使用 Compute Engine 搭配 Slurm,而不必在 GKE 上代管模型訓練和服務工作流程。Slurm 是可高度設定的開放原始碼工作負載和資源管理工具。 搭配 Slurm 使用 Compute Engine 特別適合用於大規模模型訓練和模擬作業。如果您需要將專屬 AI 和 ML 智慧財產 (IP) 整合至可擴充的環境,並靈活控管以針對特定工作負載最佳化效能,建議搭配 Slurm 使用 Compute Engine。如要進一步瞭解如何搭配使用 Compute Engine 和 Slurm,請參閱「透過 Slurm 部署 HPC 叢集」。

在 Compute Engine 中,您可以佈建及管理虛擬機器 (VM),並精細控管執行個體類型、儲存空間和網路。您可以根據確切需求調整基礎架構,包括選取特定 VM 機器類型。如要瞭解如何在 Compute Engine 中使用 Cloud Storage FUSE 指令列選項,請參閱 gcsfuse CLICloud Storage FUSE 設定檔。您也可以使用加速器最佳化機器系列,提升 AI 和機器學習工作負載的效能。如要進一步瞭解 Compute Engine 提供的機器類型系列,請參閱機器系列資源和比較指南

Slurm 是管理 AI 和機器學習工作負載的強大工具,可讓您控管運算資源的設定和管理作業。如要採用這種做法,您必須具備 Slurm 管理和 Linux 系統管理方面的專業知識。

加速器選項

機器加速器是專門的處理器,可加速 AI 和機器學習工作負載所需的運算。您可以選擇 GPU 或 TPU。

  • GPU 加速器可為各種工作提供優異效能,包括圖形算繪、深度學習訓練和科學運算。 Google Cloud 提供多種 GPU 選項,可依據不同的效能和價位需求選用。GPU 通常會在每個機器設定中包含本機固態硬碟,Cloud Storage FUSE 可將這些硬碟做為快取目錄。如要瞭解 GPU 型號和價格,請參閱 GPU 定價
  • TPU 是經過最佳化調整的特製 AI 加速器,適合用於大型 AI 模型的訓練和推論作業。TPU 的用途廣泛,包括聊天機器人、程式碼生成、媒體內容生成、合成語音、視覺辨識服務、推薦引擎和個人化模型等。如要進一步瞭解 TPU 模型和價格,請參閱 TPU 定價

儲存空間替代方案

Cloud Storage FUSE 提供便利的檔案系統,讓您充分發揮 Cloud Storage 的擴充性和成本效益。不過,Cloud Storage FUSE 不適合需要低延遲的小型檔案讀取工作負載,也不適合需要完全符合 POSIX 標準的儲存空間解決方案。針對這些用途,建議您考慮下列儲存空間替代方案:

  • Google Cloud Hyperdisk ML:高效能的區塊儲存空間解決方案,非常適合用於具有數百個節點的大型叢集工作負載,以及數百 GB 到 64 TB 的小型唯讀資料集。Hyperdisk ML 的輸送量比 Cloud Storage 高,且可以唯讀模式連接至多個 VM。與直接從模型登錄檔載入模型權重相比,Kubernetes ReadOnlyMany 存取模式可讓 Hyperdisk ML 加快載入模型權重的速度。如要進一步瞭解如何在 AI 和機器學習工作負載中使用 Hyperdisk ML,請參閱「使用 Hyperdisk ML 加速 AI/機器學習資料載入作業」。
  • Connector for PyTorch:Cloud Storage 中的開放原始碼產品,非常適合使用 PyTorch 的工作負載。Connector for PyTorch 會直接從 Cloud Storage bucket 串流資料,並免除中繼儲存空間的需求,進而最佳化訓練工作負載。與直接呼叫 Cloud Storage API 相比,這種直接存取和最佳化方式在載入資料、訓練和檢查點作業時,效能明顯更佳。

雖然替代儲存空間選項可為特定 AI 和機器學習工作負載提供效能優勢,但請務必評估延遲、輸送量和儲存空間容量需求。

如要全面比較 AI 和機器學習工作負載的儲存空間選項,請參閱「Design storage for AI and ML workloads in Google Cloud」。

設計須知

本節提供相關指引,說明如何設定 Cloud Storage FUSE,以確保安全性、可靠性、成本效益和效能,並提供設計考量。雖然這些建議並非詳盡無遺,但可解決在環境中盡可能發揮 Cloud Storage FUSE 優勢時,需要考量的主要事項。視具體需求和工作負載特性而定,您可能需要考慮其他設定選項和取捨。

下列設計建議重點在於如何調整設定,以改善在 GKE 中部署 Cloud Storage FUSE 的方式。大多數 Cloud Storage FUSE 選項都是透過掛接選項設定。如要進一步瞭解 Cloud Storage FUSE 指令列選項和使用方式,請參閱「gcsfuse CLI」和「針對 GKE 效能最佳化 Cloud Storage FUSE CSI 驅動程式」。

安全性、隱私權和法規遵循

本節說明在 Google Cloud 中處理 AI 和 ML 工作負載時,如何滿足安全性、隱私權和法規遵循規定。

GKE 注意事項

在 Autopilot 作業模式中,GKE 會預先設定叢集,並根據安全防護最佳做法管理節點,讓您專注於工作負載專屬的安全防護。詳情請參閱下列文章:

如要確保在 GKE 中執行的應用程式具有更完善的存取控管機制,可以使用 Identity-Aware Proxy (IAP)。IAP 與 GKE Ingress 資源整合,可確保只有通過驗證且具備正確 Identity and Access Management (IAM) 角色的使用者,才能存取應用程式。詳情請參閱「為 GKE 啟用 IAP」。

根據預設,GKE 中的資料會使用 Google-owned and Google-managed encryption keys加密,包括靜態資料傳輸中的資料。如要為機密資料多添一層安全防護,您可以使用 Cloud Key Management Service (Cloud KMS) 擁有及管理的金鑰,在應用程式層加密資料。詳情請參閱「在應用程式層加密 Secret」。

如果您使用標準 GKE 叢集,則可使用下列額外的資料加密功能:

Cloud Storage 注意事項

根據預設,儲存在 Cloud Storage 中的資料會使用 Google-owned and Google-managed encryption keys加密。如有需要,您可以使用客戶自行管理的加密金鑰 (CMEK),或透過外部管理方法 (例如客戶提供的加密金鑰 (CSEK)) 管理自己的金鑰。詳情請參閱「資料加密選項」。

Cloud Storage 支援兩種方法,可授予使用者存取值區和物件的權限:IAM 和存取控制清單 (ACL)。在大多數情況下,我們建議您使用 IAM,在值區和專案層級授予權限。詳情請參閱存取權控管總覽

透過 Cloud Storage 載入的訓練資料可能包含私密資料。如要保護這類資料,可以使用 Sensitive Data Protection 服務探索、分類及去識別化資料。如要區隔訓練和服務工作負載,請將模型和檢查點儲存到不同的 Cloud Storage 值區。這種隔離措施有助於防止在服務期間,訓練資料集中的私密資訊意外曝光。詳情請參閱將 Sensitive Data Protection 與 Cloud Storage 搭配使用

如果您有資料落地規定,Cloud Storage 可協助您遵守這些規定。資料會儲存或複製到您指定的區域。

Cloud Storage FUSE 注意事項

啟用快取後,Cloud Storage FUSE 會將 Cloud Storage bucket 中的永久檔案,以未加密格式儲存在您指定的目錄中。Cloud Storage 會將所有檔案公開給具有目錄存取權的任何使用者或程序。為降低這些風險並提升安全性,FUSE 核心層會限制檔案系統存取權,只允許掛接系統的使用者存取。即使 inode 權限較寬鬆,這項限制仍會拒絕其他使用者 (包括根使用者) 的存取要求。

不過,在某些情況下,可能需要覆寫預設存取限制。舉例來說,在分散式 AI 和 ML 訓練工作負載中,多個節點需要存取及共用儲存在 Cloud Storage 中的檢查點,這時您可能需要允許更廣泛的存取權。在這種情況下,您可以使用 -o allow_other 選項覆寫預設限制。不過,如果擴大檔案存取權,可能會讓未經授權的使用者存取資料。因此,使用這個選項時請務必小心謹慎。

根據預設,Cloud Storage FUSE 檔案系統中的所有 inode 都屬於掛接檔案系統的使用者。雖然這些預設值可能適用於許多情況,但您可以自訂 Pod 的安全環境。如要瞭解如何自訂安全內容,請參閱「安全性和權限」。

可靠性

為確保作業可靠,Cloud Storage FUSE 會自動重試,以處理潛在的中斷情形並維持資料一致性。系統會自動使用指數輪詢重試傳送至 Cloud Storage 的要求。指數輪詢會逐漸增加重試之間的間隔時間。這項內建機制可協助應用程式克服暫時性網路問題,或 Cloud Storage 暫時無法使用的情況。

雖然 Cloud Storage FUSE 有許多優點,但請注意下列事項:

  • 並行寫入:如果有多位使用者嘗試修改檔案,系統會優先執行最後一次寫入作業,所有先前的寫入作業都會遺失。為維護資料完整性,建議在任何時間點,單一物件只由一個來源修改。
  • 快取持續性:卸載或重新啟動 bucket 時,快取不會持續存在。為避免潛在的安全問題,卸載或重新啟動 bucket 後,請務必手動刪除檔案快取目錄。
  • 使用專屬快取的程序:雖然 Cloud Storage FUSE 支援並行存取,可有效進行平行處理,但請務必記住,快取是專屬於每個 Cloud Storage FUSE 程序的資源。因此,在相同或不同機器上執行的不同 Cloud Storage FUSE 程序,不應使用相同的快取目錄。

為工作負載建構架構時,請一併考量架構完善架構:可靠性支柱中提供的一般最佳做法和建議。

成本最佳化

本節提供相關指引,協助您在 Google Cloud中設定及運作 AI 和機器學習工作流程時,盡量節省成本。

GKE 注意事項

在 Autopilot 模式下,GKE 會根據工作負載需求,盡可能提升叢集基礎架構的效率。為控管費用,您不必持續監控資源用量或管理容量。

如果您可以預測 Autopilot 叢集的 CPU、記憶體和臨時儲存空間用量,就能取得承諾使用折扣。如要降低應用程式的執行成本,可以為 GKE 節點使用 Spot VM。Spot VM 的價格比標準 VM 低,但不保證可用性。

如要透過有效率的管理方式,盡可能提高成本效益和效能,請使用 Dynamic Workload Scheduler。Dynamic Workload Scheduler 是一種資源管理和工作排程工具,可協助您提升 AI 和機器學習資源的存取權。Dynamic Workload Scheduler 會同時排定所有加速器,並可在離峰時段執行,且具有已定義的加速器容量管理功能。透過策略性地安排工作,Dynamic Workload Scheduler 有助於盡量提高加速器使用率、減少閒置時間,最終達到最佳化雲端支出的目標。

如要進一步瞭解成本最佳化指南,請參閱「在 GKE 上執行最具成本效益的 Kubernetes 應用程式的最佳做法」。

Cloud Storage 注意事項

您的 AI 和機器學習儲存空間需求可能會動態變化。舉例來說,訓練資料可能需要大量儲存空間,但服務時主要儲存模型資料和檢查點,因此儲存空間需求會減少。為控管費用,建議您啟用物件生命週期管理自動調整級別

物件生命週期管理功能可根據您設定的規則,自動將舊資料或未使用的資料移至較便宜的儲存空間級別,甚至刪除資料。

Autoclass 功能會根據您的存取模式,自動在儲存空間級別之間移動資料。這項功能可確保您在成效和成本之間取得最佳平衡。

Cloud Storage FUSE 注意事項

您透過 FUSE 活動產生的儲存空間、中繼資料作業和網路流量,都適用標準 Cloud Storage 費用。使用 Cloud Storage FUSE 不會產生額外費用。如要進一步瞭解常見的 Cloud Storage FUSE 作業及其對應的 Cloud Storage 作業,請參閱作業對應

如要盡量減少快取目錄的費用,可以使用現有的佈建機器容量,包括本機 SSD、永久磁碟或記憶體內資料,做為暫時檔案系統。使用現有機器的容量,可避免額外儲存資源產生費用。此外,盡量提高快取命中率可大幅降低 Cloud Storage 費用,因為從本機提供的資料不會產生作業費用或網路輸出費用。

如要進一步瞭解費用,請參閱 Cloud Storage 定價

為工作負載建構架構時,也請參考架構完善架構:成本最佳化支柱中提供的一般最佳做法和建議。

效能最佳化

Cloud Storage FUSE 的設計宗旨,是為 AI 和 ML 工作負載提供 Cloud Storage 資料的有效存取權。不過,頻繁要求中繼資料可能會降低效能,尤其是在大規模叢集中。如要進一步瞭解如何提升效能,請參閱「針對 GKE 效能最佳化 Cloud Storage FUSE CSI 驅動程式」。

如要提升效能,請考慮下列設定:

  • 啟用階層式命名空間:如要提升資料存取和整理效率,請建立已啟用階層式命名空間的 Cloud Storage 值區。階層式命名空間可讓您以檔案系統結構整理資料,提升 AI 和機器學習工作負載的效能、確保一致性,並簡化管理作業。階層式命名空間可提高初始 QPS,並快速重新命名不可分割的目錄。
  • 啟用檔案快取:檔案快取功能會使用本機節點目錄快取經常讀取的檔案,加快重複存取訓練資料的速度。從快取媒體提供重複讀取作業,可減少延遲,並盡量減少回傳至 Cloud Storage 的作業。在具有本機 SSD 的 GPU 機型上,系統會自動使用本機 SSD 目錄。對於不含本機 SSD 的機器類型 (例如 TPU),您可以使用 RAM 磁碟目錄,例如 /tmpfs

    如要啟用檔案快取,請使用下列掛接選項:

    • 如要將可用檔案快取值設為快取容量上限,請將 file-cache:max-size-mb: 設為 -1
    • 如要將中繼資料快取存留時間 (TTL) 設為無限期,並在達到最大容量後,根據最近最少使用 (LRU) 演算法進行清除,請將 metadata-cache:ttl-secs: 設為 -1
  • 增加中繼資料快取值:Cloud Storage FUSE 有兩種中繼資料快取,可提升與中繼資料查閱相關作業的效能:stat 快取型別快取

    如要增加中繼資料快取值,請設定下列掛接選項:

    • 如要將可用狀態快取值設為快取容量限制,請將 metadata-cache:stat-cache-max-size-mb: 設為 -1
    • 如要將可用型別快取值設為容量上限,請將 metadata-cache:type-cache-max-size-mb: 設為 -1
    • 如要防止快取中繼資料項目過期 (預設值為 60 秒),請將 metadata-cache:ttl-secs: 設為 -1。無限值僅適用於唯讀磁碟區和具有大型記憶體設定的節點。
  • 預先填入中繼資料快取:中繼資料預先擷取功能可讓 Cloud Storage FUSE CSI 驅動程式,主動將 Cloud Storage bucket 中物件的相關中繼資料載入 Cloud Storage FUSE 快取。這個方法可減少對 Cloud Storage 的呼叫次數,對於存取大量檔案的大型資料集 (例如 AI 和 ML 訓練工作負載) 尤其有益。

    如要預先填入中繼資料快取,請為指定磁碟區啟用中繼資料預先擷取功能。將音量屬性 gcsfuseMetadataPrefetchOnMount 設為 true

  • 啟用清單快取:這項功能可最佳化清單目錄和檔案。這項功能特別適合 AI 和 ML 訓練工作負載,因為這類工作負載通常會重複存取及列出整個目錄。清單快取可減少重複存取電腦記憶體中目錄清單的需求,因此能提供高效率的訓練程序。

    如要啟用清單快取,並防止核心清單快取項目過期,請將掛接選項 file-system:kernel-list-cache-ttl-secs: 設為 -1

  • 啟用平行下載:平行下載功能會同時擷取多個區塊,加快模型的初始載入速度。啟用平行下載功能可加快模型載入速度,並提升服務期間的回應速度。

    如要啟用平行下載,請啟用檔案快取,並將掛接選項 file-cache:enable-parallel-downloads: 設為 true

  • 提高 GKE Sidecar 限制:為避免資源限制影響效能,請設定 Sidecar 容器資源的限制,例如 CPU 和記憶體用量。如果您使用本機 SSD 快取,請考慮將 ephemeral-storage-limit 設為無限制。這項設定可讓 Cloud Storage FUSE 充分運用可用的本機固態硬碟儲存空間,進一步提升快取效能。

  • 唯讀掛接:由於訓練工作負載通常只需要讀取資料,因此請將掛接點設為唯讀,以獲得最佳效能,尤其是在使用檔案快取時。這項設定也有助於在高規模叢集中盡量發揮最佳化效益,並避免潛在的資料不一致問題。

為工作負載建構架構時,請參考架構完善架構:效能最佳化支柱中提供的一般最佳做法和建議。

後續步驟

貢獻者

作者:Samantha He | 技術文件撰稿者

其他貢獻者: