AI 和機器學習觀點:效能最佳化

Last reviewed 2026-02-13 UTC

這份文件是Google Cloud 架構完善的架構:AI 和機器學習觀點 的一部分,提供相關原則和建議,協助您在 Google Cloud上提升 AI 和機器學習工作負載的效能。本文中的建議符合 Well-Architected Framework 的效能最佳化支柱

AI 和機器學習系統可為貴機構提供進階自動化和決策功能。這些系統的成效會直接影響重要的業務驅動因素,例如收益、成本和顧客滿意度。如要充分發揮 AI 和 ML 系統的潛力,您必須根據業務目標和技術需求,盡可能提升系統效能。效能最佳化程序通常需要進行取捨。舉例來說,如果設計選擇能提供所需效能,可能會導致成本增加。這份文件中的建議以成效為優先考量。

如要提升 AI 和 ML 效能,您需要針對模型架構、參數和訓練策略等因素做出決策。做出這些決策時,請考量 AI 和機器學習系統的整個生命週期,以及部署環境。舉例來說,超大型 LLM 在大規模訓練基礎架構中可能表現優異,但在容量受限的環境 (例如行動裝置) 中,可能無法發揮良好效能。

這份文件中的建議對應至下列核心原則:

確立成效目標和評估方法

業務策略和目標是運用 AI 和 ML 技術的基礎。將業務目標轉化為可評估的主要成效指標 (KPI)。例如總收益、成本、轉換率、留存率或流失率、顧客滿意度和員工滿意度。

設定實際可行的目標

根據網站可靠性工程 (SRE) 最佳做法,服務目標必須反映可滿足一般客戶需求的效能水準。也就是說,服務目標在規模和功能成效方面必須切合實際。

不切實際的目標可能會導致資源浪費,但成效提升幅度不大。效能最高的模型不一定能帶來最佳業績。訓練及執行這類模型可能需要更多時間和成本。

定義目標時,請區分並優先處理品質和成效目標:

  • 品質是指決定實體價值的固有特徵。協助您評估實體是否符合期望和標準。
  • 成效是指實體運作或執行預期用途的效率和效果。

機器學習工程師可以在訓練過程中,提升模型的效能指標。Vertex AI 提供評估服務,機器學習工程師可使用這項服務,以標準化且可重複的方式追蹤品質指標。模型的預測效率是指模型在實際工作環境或推論時的成效。如要監控效能,請使用 Cloud MonitoringVertex AI Model Monitoring。如要選取合適的模型並決定訓練方式,您必須將業務目標轉換為技術需求,以決定品質和成效指標。

如要瞭解如何設定合理的目標及找出合適的成效指標,請參考以下 AI 輔助詐欺偵測系統的範例:

  • 業務目標:以詐欺偵測系統為例,不切實際的業務目標是在每秒 1, 000 億筆交易的尖峰流量下,於一奈秒內準確偵測 100% 的詐欺交易。更實際的目標是在美國工作時間內,以每秒一百萬筆交易的尖峰量,在 100 毫秒內以 95% 的準確度,偵測 90% 的線上預測詐欺交易。
  • 效能指標:偵測詐欺是分類問題。您可以透過召回率F1 分數準確率等指標,評估詐欺偵測系統的品質。如要追蹤系統效能或速度,可以測量推論延遲時間。 偵測潛在詐騙交易可能比準確度更重要。因此,合理的目標可能是高召回率,且 p90 延遲時間少於 100 毫秒。

在模型生命週期的所有階段監控成效

在實驗和訓練期間,以及模型部署後,請監控 KPI 並觀察業務目標是否有任何偏差。全方位的監控策略可協助您做出與模型品質和資源用量相關的重要決策,例如:

  • 決定何時停止訓練工作。
  • 判斷模型在實際工作環境中的成效是否下滑。
  • 降低新模型的成本,並縮短上市時間。

實驗和訓練期間的監控

實驗階段的目標是找出特定工作的最佳整體方法、模型架構和超參數。實驗可協助您反覆判斷能提供最佳效能的設定,以及如何訓練模型。監控功能可協助您有效找出需要改進的地方。

如要監控模型的品質和訓練效率,機器學習工程師必須執行下列操作:

  • 以視覺化方式呈現每次試驗的模型品質和效能指標。
  • 以視覺化方式呈現模型圖和指標,例如權重和偏誤的直方圖。
  • 以視覺化方式呈現訓練資料。
  • 在不同硬體上分析訓練演算法。

如要監控實驗和訓練作業,請考慮採用下列建議:

監控層面 建議
模型品質

如要以視覺化方式呈現及追蹤準確率等實驗指標,或以視覺化方式呈現模型架構或訓練資料,請使用 TensorBoard。TensorBoard 是一套開放原始碼工具,可與下列機器學習架構相容:

實驗追蹤 Vertex AI Experiments 與代管的企業級 Vertex AI TensorBoard 執行個體整合,支援實驗追蹤。這項整合功能可確保記錄和指標的儲存與共用作業穩定進行。為讓多個團隊和個人追蹤實驗,建議您使用最低權限原則
訓練和實驗效率 Vertex AI 會將指標匯出至 Monitoring,並使用可觀測性代理程式收集遙測資料和記錄。您可以在 Google Cloud 控制台中以圖表呈現指標。或者,您也可以使用 Monitoring,根據這些指標建立資訊主頁或快訊。詳情請參閱「Vertex AI 的監控指標」。
NVIDIA GPU

作業套件代理程式可監控 Compute Engine 和作業套件代理程式支援的其他產品的 GPU。

您也可以使用 NVIDIA Data Center GPU Manager (DCGM),這是一套工具,可管理及監控叢集環境中的 NVIDIA GPU。監控 NVIDIA GPU 特別適合用於訓練及提供深度學習模型。

深入偵錯 如要偵錯訓練程式碼或 Vertex AI Training 工作設定的問題,可以使用互動式 Shell 工作階段檢查訓練容器。

服務期間的監控:串流預測

訓練模型並匯出至 Vertex AI Model Registry 後,即可建立 Vertex AI 端點。這個端點會提供模型的 HTTP 端點。

模型監控可協助您找出輸入或輸出特徵分布的重大變化。您也可以監控與基準分配相比,在正式環境中特徵歸因的變化。基準分配可以是訓練集,也可以根據過去的生產流量分配情況。放送分配比例的變化可能表示預測成效比訓練時降低。

  • 選擇監控目標:視用途對提供給模型的資料變更有多敏感,您可以監控不同類型的目標:輸入特徵偏移、輸出偏移和特徵歸因。模型監控 v2 可監控部署在 Vertex AI 等代管服務平台,以及 Google Kubernetes Engine (GKE) 等自行代管服務的模型。此外,如要追蹤精細的成效,您可以監控模型層級的參數,而非端點。
  • 監控生成式 AI 模型服務:為確保穩定性並盡量減少延遲,請設定健全的監控堆疊,尤其是 LLM 端點。Gemini 模型提供內建指標,例如第一個權杖時間 (TTFT),您可以直接在指標探索工具中存取這些指標。如要監控所有Google Cloud 模型的處理量、延遲和錯誤率,請使用模型觀測資訊主頁

服務期間的監控:批次預測

如要監控批次預測,您可以在 Vertex AI 評估服務中執行標準評估工作。 模型監控功能支援監控批次推論。如果您使用 Batch 執行服務工作負載,可以透過 Metrics Explorer 中的指標監控資源耗用量。

自動評估重現性和標準化程度

如要將模型從原型轉換為可靠的正式系統,您需要標準化的評估程序。這個程序有助於追蹤各次疊代的進度、比較不同模型、偵測及減少偏誤,並確保符合法規要求。為確保可重現性和可擴充性,您必須自動執行評估程序。

如要標準化及自動化機器學習效能的評估程序,請完成下列步驟:

  1. 定義量化和質化指標。
  2. 選擇適當的資料來源和技術。
  3. 標準化評估管道。

以下各節將說明這些步驟。

1. 定義量化和質化指標

以運算為基礎的指標是使用數值公式計算得出。 請注意,訓練損失指標可能與業務目標相關的評估指標不同。舉例來說,用於監督式詐欺偵測的模型可能會使用交叉熵損失進行訓練。不過,如要評估推論成效,更合適的指標可能是「喚回率」,這項指標代表詐欺交易的涵蓋範圍。Vertex AI 提供評估服務,可評估召回率、精確度和精確度-召回率曲線下面積 (AuPRC) 等指標。詳情請參閱「Vertex AI 的模型評估」。

質性指標 (例如生成內容的流暢度或娛樂價值) 無法客觀計算。如要評估這些指標,可以使用 LLM-as-a-judge策略,或 Labelbox 等人工標籤服務。

2. 選擇適當的資料來源和技術

評估作業必須以一定量的多樣化範例為基礎,才能達到統計顯著程度。請使用下列方法選擇用於評估的資料集和技術:

  • 黃金資料集:使用可信、一致且準確的資料樣本,反映模型在正式環境中的機率分布。
  • LLM-as-a-judge:使用 LLM 評估生成模型的輸出內容。這個方法僅適用於 LLM 可評估模型的工作。
  • 使用者意見回饋:在正式版流量中收集直接使用者意見回饋,做為日後改善的依據。

視評估技術、評估資料的大小和類型,以及評估頻率而定,您可以將 BigQuery 或 Cloud Storage 做為資料來源,包括 Vertex AI 評估服務。

3. 標準化評估管道

如要自動執行評估程序,請考慮使用下列服務和工具:

  • Vertex AI 評估服務: 提供可立即使用的基本項目,在 Vertex AI 的機器學習生命週期中追蹤模型成效。
  • Gen AI 評估服務: 可評估任何生成式模型或應用程式,並依據您的判斷和評估標準,判斷評估結果的品質。這項服務也有助於執行專業工作,例如提示工程、檢索增強生成 (RAG) 和 AI 代理最佳化。
  • Vertex AI 自動並排比較 (AutoSxS) 工具: 支援成對模型評估。
  • Kubeflow: 提供執行模型評估的特殊元件。

執行並追蹤頻繁的實驗

如要有效提升機器學習效能,您需要專用、強大且互動式的實驗平台。平台必須具備下列功能:

  • 促進疊代開發,讓團隊能快速、可靠且大規模地從構想轉為經過驗證的成果。
  • 讓團隊有效找出最佳設定,並用來觸發訓練工作。
  • 提供相關資料、功能和工具的受控存取權,以執行及追蹤實驗。
  • 支援可重現性與資料歷程追蹤。

將資料視為服務

使用下列技術,將實驗性工作負載與生產系統隔離,並為資料資產設定適當的安全控管措施:

做法 說明 優點
資源隔離 在不同的專案中隔離不同環境的資源。 Google Cloud 舉例來說,在 ml-devml-stagingml-prod 等個別專案中,為開發、測試和正式環境佈建資源。 資源隔離有助於防止實驗性工作負載耗用正式環境系統所需的資源。舉例來說,如果您使用單一專案進行實驗生產,實驗可能會耗用 Vertex AI Training 的所有可用 NVIDIA A100 GPU。這可能會導致重要正式版模型的重新訓練作業中斷。
身分與存取權控管 套用零信任和最低權限原則,並使用工作負載專屬的服務帳戶。使用預先定義的 Identity and Access Management (IAM) 角色 (例如 Vertex AI 使用者 (roles/aiplatform.user)) 授予存取權。 這種做法有助於防止意外或惡意行為,以免實驗遭到破壞。
網路安全 使用虛擬私有雲 (VPC) 網路隔離網路流量,並使用 VPC Service Controls 實施安全防護範圍。 這個做法有助於保護機密資料,並防止實驗流量影響正式服務。
資料隔離 將實驗資料儲存在不同的 Cloud Storage bucket 和 BigQuery 資料集中。 資料隔離可防止意外修改正式環境資料。 舉例來說,如果沒有資料隔離機制,實驗可能會不慎變更共用 BigQuery 資料表中的特徵值,導致生產環境中的模型準確度大幅下降。

為團隊提供合適的工具

如要建立精選工具組合,加速整個實驗生命週期 (從資料探索到模型訓練和分析),請使用下列技術:

  • 互動式原型設計:如要快速探索資料、測試假設和設計程式碼原型,請使用 Colab Enterprise 或 Vertex AI Workbench 上的受管理 JupyterLab 執行個體。詳情請參閱「選擇筆記本解決方案」。
  • 可擴充的模型訓練:在支援分散式訓練的代管服務上執行訓練工作,並使用可擴充的運算資源,例如 GPU 和 TPU。這項做法有助於將訓練時間從數天縮短至數小時,並進行更多平行實驗。詳情請參閱「使用專門的訓練元件」。
  • 資料庫內機器學習:使用 BigQuery ML 和 SQL 直接訓練模型。這項技術可協助消除資料移動,並加快分析師和以 SQL 為中心的使用者進行實驗。
  • 追蹤實驗:記錄每次實驗執行的參數、指標和構件,建立可搜尋及比較的實驗資料記錄。詳情請參閱「建構資料和模型歷程系統」。
  • 最佳化生成式 AI:如要提升生成式 AI 應用程式的效能,請嘗試使用提示、選取模型,以及微調模型。如要快速進行提示工程,請使用 Vertex AI Studio。如要試用基礎模型 (例如 Gemini),並根據用途和業務目標找出合適模型,請使用 Model Garden

標準化,確保可重現性和效率

為確保實驗能有效運用資源,並產生一致且可信的結果,請使用下列方法,將實驗標準化並自動化:

  • 使用容器確保環境一致:將訓練程式碼和依附元件封裝為 Docker 容器。使用 Artifact Registry 管理及提供容器。這個方法可讓您在相同環境中重複實驗,在不同機器上重現問題。Vertex AI 提供預建容器,用於無伺服器訓練。
  • 以管道形式自動執行機器學習工作流程:使用 Vertex AI Pipelines,以編碼管道形式自動化調度管理端對端機器學習工作流程。這種做法有助於強制執行一致性、確保可重現性,並自動追蹤 Vertex ML Metadata 中的所有構件和中繼資料。
  • 使用基礎架構即程式碼 (IaC) 自動佈建:使用 Terraform 等 IaC 工具定義及部署標準化實驗環境。如要確保每個專案都遵守安全防護、網路和管理方面的標準設定,請使用 Terraform 模組

建構及自動化訓練和服務基礎架構

如要訓練及提供 AI 模型,請設定強大的平台,支援有效率且可靠的開發、部署及提供作業。有了這個平台,團隊就能長期有效提升訓練和服務的品質與成效。

使用專用元件進行訓練

可靠的訓練平台有助於提升效能,並提供標準化方法,在機器學習生命週期中自動執行可重複的工作,從準備資料到驗證模型皆不例外。

使用專門的預測基礎架構

為減少管理基礎架構和模型部署作業的負擔,請自動執行重複性工作流程。以服務為導向的方法可讓您專注於速度,並加快價值實現時間 (TTV)。請考慮以下建議:

建議 技巧
實作自動部署。
  • 模型訓練完成後,請使用自動化功能部署模型。 Vertex AI Pipelines 提供專用元件,可將模型部署至 Vertex AI 端點。您可以使用 Kubeflow 控制流程管理自動部署作業。
  • 如要根據對驗證集的評估結果,決定是否部署模型,請善用管道的評估元件。您可以在 Vertex AI 中使用專用的批次預測元件,自動部署批次推論作業。
善用代管的資源調度功能。
在 Vertex AI 端點上最佳化延遲時間和輸送量。
  • 選擇合適的機器類型
  • 為模型選擇適當的端點類型專屬私人端點可能有助於縮短延遲時間。
  • 如果您使用 Vertex AI 特徵儲存庫,請選擇適當的線上服務類型。透過 Private Service Connect 最佳化線上服務,可望提供低延遲。詳情請參閱「線上服務類型」。
充分運用資源。
最佳化模型部署作業。
監控成效。
  • 如要提升正式環境的服務效能,請觀察 Vertex AI 端點的記錄推論指標。如要瞭解模型在正式環境中的行為,您需要監控品質和效能的工具。模型監控 v2 可監控多個模型版本,並快速疊代。

根據效能需求選擇設計

在選擇設計方案來提升效能時,請評估這些方案是否符合業務需求,或是浪費資源且適得其反。如要選擇合適的基礎架構、模型和設定,請找出效能瓶頸,並評估這些瓶頸與效能指標的關聯。舉例來說,即使使用效能極高的 GPU 加速器,訓練工作仍可能遇到效能瓶頸。這些瓶頸可能是由儲存層中的資料 I/O 問題,或是模型的效能限制所造成。

著重於機器學習流程的整體成效

隨著模型大小和叢集大小的訓練需求增加,失敗率和基礎架構成本可能會提高。因此,失敗的成本可能會以二次方速度增加。您無法只依賴傳統的資源效率指標,例如模型 FLOP 使用率 (MFU)。如要瞭解為何 MFU 可能無法充分反映整體訓練成效,請檢查一般訓練工作的生命週期。生命週期包含下列循環流程:

  1. 建立叢集:正在佈建工作站節點。
  2. 初始化:在工作站節點上初始化訓練。
  3. 訓練執行:資源用於向前或向後傳播。
  4. 中斷:模型檢查點建立期間或因工作節點搶占而中斷訓練程序。

每次中斷後,系統都會重複先前的流程。

訓練執行步驟是機器學習工作生命週期的一小部分。因此,訓練執行步驟的工作站節點使用率,並不能代表工作的整體效率。舉例來說,即使訓練執行步驟的效率達到 100%,如果經常發生中斷,或中斷後需要很長時間才能繼續訓練,整體效率可能還是很低。

採用並追蹤有效處理量指標

為確保全面評估及改善效能,請將重心從 MFU 等傳統資源效率指標,轉移到有效輸送量。Goodput 會考量叢集和運算資源的可用性和使用率,有助於評估多個層面的資源效率。

有效輸送量指標的重點在於工作的整體進度,而非工作是否顯示為忙碌。透過有效輸送量指標,您可以針對訓練作業進行最佳化,進而實際提升整體生產力和效能。

有效處理量可透過下列指標,讓您深入瞭解效率可能降低的原因:

  • 排程有效處理量是指訓練或服務所需的所有資源,可供使用的時間比例。
  • 執行階段有效處理量是指在特定時間內完成的實用訓練步驟比例。
  • 程式有效處理量是指訓練工作可從加速器擷取的硬體最高效能或 MFU。這取決於訓練期間是否有效運用基礎運算資源。

最佳化排程有效處理量

如要針對工作負載最佳化排程良好輸送量,您必須找出工作負載的特定基礎架構需求。舉例來說,批次推論、串流推論和訓練有不同的需求:

  • 批次推論工作負載可能會容許資源可用性出現部分中斷和延遲。
  • 串流推論工作負載需要無狀態基礎架構。
  • 訓練工作負載需要長期基礎架構承諾。
選擇適當的取得模式

在雲端運算中,「可取得性」是指在需要資源時,能夠佈建資源的能力。 Google Cloud 提供下列可取得性模式:

  • 隨選 VM:在需要時佈建 Compute Engine VM,並在 VM 上執行工作負載。佈建要求取決於資源 (例如 GPU) 的可用性。如果沒有足夠數量的要求資源類型,要求就會失敗。
  • Spot VM: 您可以使用未使用的運算容量建立 VM。與隨選 VM 相比,Spot VM 的計費價格較低,但Google Cloud 可能先占 Spot VM。建議您針對無狀態工作負載使用 Spot VM,這類工作負載在主機 VM 遭到先占時,可以正常失敗。
  • 預留項目:預留容量時,您會預留 VM 集區。預留項目非常適合需要容量保證的工作負載。使用預留功能,確保資源在需要時可用,盡量提升排程有效處理量。
  • 動態工作負載調度器: 這項佈建機制會將 GPU 虛擬機器的要求排入專屬集區的佇列。Dynamic Workload Scheduler 可協助您避免其他可用性模式的限制:

    • 隨選模式的缺貨情況。
    • Spot VM 的無狀態限制和先占風險。
    • 預訂對費用和可用性的影響。

下表彙整了 Google Cloud服務的取得模式,並提供相關說明文件的連結:

產品 隨選 VM Spot VM 預留項目 動態工作負載排程器
Compute Engine 建立及啟動 Compute Engine 執行個體 關於 Spot VM 預留項目簡介 建立含有 GPU VM 的 MIG
GKE 新增及管理節點集區 關於 GKE 中的 Spot VM 使用保留的區域資源 透過彈性啟動佈建功能使用 GPU、TPU 和 H4D
Cloud Batch 建立及執行工作 使用 Spot VM 的批次工作 使用 VM 預留項目確保資源可用性 使用 GPU 和彈性啟動 VM
Vertex AI 訓練 建立無伺服器訓練工作 使用 Spot VM 執行訓練作業 為訓練工作使用預留項目 根據資源可用性安排訓練工作
Vertex AI 從自訂訓練模型取得批次推論線上推論 使用 Spot VM 進行推論 使用預留項目進行線上推論 使用彈性啟動 VM 進行推論
規劃維護事件

您可以預測並規劃基礎架構維護和升級作業,進而提升排程輸送量。

最佳化執行階段有效處理量

模型檢查點和資源搶占等事件經常會中斷模型訓練程序。如要盡量提升執行階段有效處理量,請務必確保系統在必要基礎架構就緒後,以及在任何中斷後,都能有效率地恢復訓練和推論。

在模型訓練期間,AI 研究人員會使用檢查點追蹤進度,並盡量減少因資源搶占而損失的學習內容。模型越大,檢查點中斷時間就越長,進而影響整體效率。中斷後,叢集中的每個節點都必須重新啟動訓練應用程式。由於必須重新載入必要構件,這些重新啟動作業可能需要一些時間。

如要最佳化執行階段的良好輸送量,請使用下列技巧:

做法 說明
實作自動查核點。

頻繁的檢查點可讓您以精細程度追蹤訓練進度。不過,每個檢查點都會中斷訓練程序,進而降低執行階段的有效輸送量。為盡量減少中斷,您可以設定自動檢查點,讓主機的 SIGTERM 訊號觸發檢查點建立作業。這種方法可將檢查點中斷限制在主機需要維護時。請注意,部分硬體故障可能不會觸發 SIGTERM 信號,因此您必須在自動檢查點和 SIGTERM 事件之間找到適當的平衡。

您可以使用下列技術設定自動檢查點:

使用適當的容器載入策略。

在 GKE 叢集中,節點可能需要一段時間才能完成載入資料或模型檢查點等必要構件,才能繼續執行訓練工作。如要減少重新載入資料和繼續訓練所需的時間,請使用下列技術:

如要進一步瞭解如何縮短資料重新載入時間,請參閱「在 GKE 上減少冷啟動延遲時間的訣竅」。

使用編譯快取。 如果訓練需要以編譯為基礎的堆疊,請檢查是否可以使用編譯快取。使用編譯快取時,系統不會在每次訓練中斷後重新編譯計算圖表。使用 TPU 時,時間和成本的減少幅度尤其明顯。JAX 可讓您將編譯快取儲存在 Cloud Storage 值區中,並在發生中斷時使用快取資料。

最佳化程式有效處理量

程式有效處理量代表訓練期間的資源使用率峰值,這是衡量訓練和服務效率的傳統方式。如要提升程式的有效輸送量,您需要最佳化的發布策略、有效率的運算與通訊重疊、最佳化的記憶體存取,以及有效率的管道。

如要提升程式的有效輸送量,請採用下列策略:

策略 說明
使用架構層級的自訂選項。 Accelerated Linear Algebra (XLA) 等架構或編譯器提供許多程式有效處理量的關鍵元件。如要進一步提升效能,可以自訂運算圖的基本元件。舉例來說,Pallas 支援 TPU 和 GPU 的自訂核心。
將記憶體卸載至主機 DRAM。 如果需要大量訓練,加速器會使用大量記憶體,這時您可以將部分記憶體用量卸載至主機 DRAM。舉例來說,XLA 可讓您卸載模型啟用作業,從轉送傳遞到主機記憶體,而非使用加速器的記憶體。採用這項策略,您就能增加模型容量或批次大小,進而提升訓練效能。
在訓練期間運用量化

您可以在訓練期間運用模型量化,提升訓練效率和程式輸送量。這項策略會在訓練的特定步驟中降低梯度或權重的精確度,進而提升程式有效處理量。不過,在模型開發期間,這項策略可能需要額外的工程工作。

詳情請參閱下列資源:

實作平行處理。

如要提高可用運算資源的利用率,您可以在訓練期間和載入資料時,使用模型層級的平行處理策略。

如要瞭解模型平行處理,請參閱下列內容:

如要實現資料平行化,可以使用下列工具:

著重於工作負載專屬需求

為確保最佳化成效,您必須根據訓練和推論工作負載的特定需求,做出最佳化決策。選擇適當的 AI 模型,並使用相關的提示最佳化策略。根據工作負載需求,選取適當的架構和工具。

找出工作負載專屬需求

評估工作負載在下列領域的需求和限制:

說明
工作和品質規定

定義工作負載的核心工作和效能基準。 回答下列問題:

  • 這項工作是否涉及迴歸、分類或生成?
  • 可接受的最低品質為何?例如準確率、精確度或召回率?
提供背景資訊

分析您打算部署模型的作業環境。放送環境通常會對設計決策造成重大影響。請考量下列因素:

  • 延遲:系統是否需要即時同步預測,還是非同步批次處理即可?
  • 連線:您是否需要在離線狀態或邊緣裝置上執行模型?
  • :預測負載的預期平均和尖峰等級為何?負載層級會影響您有關資源調度策略和基礎架構的決策。
團隊技能和經濟 評估購買解決方案的商業價值,以及建構和維護解決方案的成本和複雜度。判斷團隊是否具備開發自訂模型所需的專業技能,或代管服務是否能更快提供價值。

選擇適當的模型

如果 API 或開放模型能提供所需的效能和品質,請使用該 API 或模型。

  • 如要執行光學字元辨識 (OCR)、標記和內容審查等特定模式工作,請選擇下列 ML API:

  • 如果是生成式 AI 應用程式,請考慮使用 Google 模型,例如 GeminiImagenVeo

    探索 Model Garden,從精選的基礎模型和 Google 特定工作模型中選擇。Model Garden 也提供 Gemma 等開放式模型和第三方模型,您可以在 Vertex AI 中執行這些模型,或部署至 GKE 等執行階段。

  • 如果可以使用機器學習 API 或生成式 AI 模型完成工作,請考量工作的複雜度。對於複雜工作,Gemini 等大型模型可能比小型模型效能更高。

透過更完善的提示提升品質

如要大規模提升提示詞品質,請使用 Vertex AI 提示詞最佳化工具。您不必手動重寫系統指令和提示,提示最佳化工具支援下列方法:

  • 零樣本最佳化:這種低延遲方法可即時改善單一提示或系統指令。
  • 以資料為準的最佳化:這項進階做法會根據特定評估指標,評估模型對範例提示的回應,進而改善提示。

如需更多提示最佳化指南,請參閱「提示策略總覽」。

提升機器學習和生成式 AI 端點的效能

如要改善 ML 和生成式 AI 端點的延遲或輸送量 (每秒權杖數),請考慮下列建議:

使用低程式碼解決方案和微調功能

如果預先訓練的模型不符合您的需求,可以使用下列解決方案,提升特定領域的成效:

  • AutoML 是一種簡易的解決方案,可改善各種工作的推論結果,且幾乎不需要技術人員介入。AutoML 可讓您建立模型,並從多個層面進行最佳化:架構、效能和訓練階段 (透過檢查點)。
  • 微調: 可協助您使用較短的提示,在沒有大量資料的情況下,生成更高品質、更穩定的內容,並降低延遲。建議您先使用超參數的預設值開始調整。詳情請參閱「Gemini 監督式微調:最佳做法指南」。

提升自行管理的訓練效能

在某些情況下,您可能會決定重新訓練模型,或全面管理微調作業。這種做法需要進階技能,且視您使用的模型、架構和資源而定,可能需要額外時間。

充分利用效能最佳化架構選項,例如:

  • 使用深度學習映像檔容器,其中包含最新的軟體依附元件和Google Cloud專用程式庫。

  • 在 Google Cloud上使用 Ray 執行模型訓練:

    • Vertex AI 上的 Ray 可讓您將 Ray 的分散式訓練架構帶到 Compute Engine 或 GKE,並簡化架構的管理負擔。
    • 您可以透過在現有叢集上部署 Ray 運算子,使用 KubeRay 自行管理 GKE 上的 Ray。
  • 使用開放原始碼的 Cluster Toolkit 佈建運算叢集,並在該叢集上部署訓練工作負載。如要有效率地佈建效能最佳化叢集,請使用以 YAML 為基礎的藍圖。使用 Slurm 和 GKE 等排程器管理叢集。

  • 使用經過 GPU 最佳化的配方,訓練標準模型架構。

運用下列技術,建構可提升效能的訓練架構和策略:

  • 在 Vertex AI 或上述架構中實作分散式訓練。分散式訓練可啟用模型平行化和資料平行化,有助於增加訓練資料集大小和模型大小,並縮短訓練時間。
  • 如要有效訓練模型及探索不同的效能設定,請以適當間隔執行檢查點。詳情請參閱「最佳化執行階段的有效輸送量」。

最佳化自行管理的放送

如要自行管理放送作業,您需要有效率的推論作業和高輸送量 (每單位時間的推論次數)。

如要最佳化模型以進行推論,請考慮下列方法:

  • 量化: 以較低精確度的格式表示模型參數,藉此縮減模型大小。這個方法有助於減少記憶體耗用量和延遲時間。 不過,訓練的量化可能會改變模型品質。舉例來說,訓練後的量化可能會導致準確度降低。

    • 訓練後量化 (PTQ) 是可重複執行的工作。PTQ 支援 PyTorch 和 TensorFlow 等主要機器學習架構。PyTorchTensorFlow
    • 您可以在 Vertex AI Pipelines 上使用管道,自動化調度管理 PTQ。
    • 如要穩定模型效能並縮減模型大小,可以採用 Qwix
  • 張量平行處理: 將運算負載分配到多個 GPU,提升推論總處理量。

  • 記憶體最佳化: 提高總處理量,並最佳化注意力快取、批次大小和輸入大小。

使用最佳化推論架構,例如:

根據成效目標調整資源消耗量

資源最佳化有助於加快訓練速度、有效率地疊代、提升模型品質,以及增加服務容量。

選擇合適的處理器類型

選擇的運算平台可能會對模型訓練效率造成重大影響。

  • 深度學習模型需要大量記憶體和矩陣平行運算,因此在 GPU 和 TPU 上表現良好。如要進一步瞭解適合 CPU、GPU 和 TPU 的工作負載,請參閱「何時使用 TPU」一節。
  • 運算最佳化 VM 非常適合 HPC 工作負載。

在 GPU 上最佳化訓練和服務

如要提升部署在 GPU 上的訓練和推論工作負載效能,請考慮下列建議:

建議 說明
選取合適的記憶體規格。 選擇 GPU 機器類型時,請根據下列因素選取記憶體規格:
  • 模型容量:模型可訓練參數和梯度使用的記憶體總大小 (記憶體用量)。
  • 工作負載類型:訓練作業需要的記憶體比服務作業多。
  • 訓練批次大小:批次越大,儲存的啟用次數就越多,記憶體需求也越高。
  • 資料類型:處理高品質圖片或使用高精確度算術的工作負載,需要記憶體規格較大的機器類型。
評估核心和記憶體頻寬需求。 除了記憶體大小,也請考慮其他需求,例如 Tensor 核心數量和記憶體頻寬。這些因素會影響晶片上的資料存取和運算速度。
選擇合適的 GPU 機型。

訓練和服務可能需要不同的 GPU 機器類型。

  • 訓練工作需要一或多個 GPU,甚至多個節點,以及大量記憶體和頻寬。
  • 推論工作負載需要的記憶體相對較少,高效能 GPU 數量也較少。

建議您使用大型機型進行訓練,並使用較小且經濟實惠的機型進行推論。如要偵測資源用量問題,請使用 NVIDIA DCGM 代理程式等監控工具,並適當調整資源。

在 GKE 上善用 GPU 共用功能。

在某些情況下,將完整 GPU 專用於單一容器可能效率不彰。為協助您克服這項效率低落的問題,GKE 支援下列 GPU 共用策略

為盡量提高資源使用率,建議您適當組合運用這些策略。舉例來說,當您使用 GPU 時分和多例項 GPU 策略虛擬化大型 H100 GPU 時,服務平台可以根據流量擴充及縮減。系統會根據模型容器的負載,即時重新配置 GPU 資源。

最佳化路由和負載平衡。 在叢集上部署多個模型時,可以使用 GKE 推論閘道,Inference Gateway 擴充了 Kubernetes Gateway API 的路由機制,並運用下列功能:
分享 Vertex AI 端點的資源。 您可以設定多個 Vertex AI 端點,使用共用的資源集區。如要進一步瞭解這項功能和相關限制,請參閱「在部署作業之間共用資源」。

在 TPU 上最佳化訓練和服務

TPU 是 Google 晶片,可協助解決機器學習演算法的大規模挑戰。這些晶片可為 AI 訓練和推論工作負載提供最佳效能。與 GPU 相比,TPU 在深度學習訓練和服務方面效率更高。如要瞭解適合使用 TPU 的用途,請參閱「何時使用 TPU」。TPU 與 TensorFlowPyTorchJAX 等機器學習架構相容。

如要提升 TPU 效能,請使用下列技術,詳情請參閱 Cloud TPU 效能指南

  • 盡量提高每個 TPU 記憶體單元的批次大小。
  • 確認 TPU 並非閒置狀態。舉例來說,您可以導入平行資料讀取。
  • 最佳化 XLA 編譯器。視需要調整張量維度,並避免填補。XLA 會使用融合和廣播等工具,自動將圖形執行效能最佳化。

在 TPU 上最佳化訓練,在 GPU 上最佳化服務

TPU 支援高效訓練。GPU 可提供多功能性,並提高推論工作負載的可用性。如要結合 TPU 和 GPU 的優勢,您可以在 TPU 上訓練模型,並在 GPU 上提供模型。這個方法有助於降低整體成本並加快開發速度,特別是大型模型。如要瞭解 TPU 和 GPU 機器類型的可用位置,請參閱 TPU 區域和可用區GPU 位置

最佳化儲存層

訓練和服務基礎架構的儲存層對效能至關重要。訓練工作和推論工作負載涉及下列儲存空間相關活動:

  • 正在載入及處理資料。
  • 在訓練期間檢查模型。
  • 重新載入二進位檔,在節點搶占後繼續訓練。
  • 有效率地載入模型,大規模處理推論作業。

下列因素會決定儲存空間容量、頻寬和延遲時間的需求:

  • 模型大小
  • 訓練資料集的大小
  • 檢查點頻率
  • 資源調度模式

如果訓練資料位於 Cloud Storage 中,您可以使用 Cloud Storage FUSE 中的檔案快取,縮短資料載入延遲時間。Cloud Storage FUSE 可讓您在具有本機 SSD 磁碟的運算節點上掛接 Cloud Storage bucket。如要瞭解如何提升 Cloud Storage FUSE 的效能,請參閱效能調整最佳做法

PyTorch 連接器可連線至 Cloud Storage,提供高效能的資料讀取和寫入作業。這個連結器特別適合用於訓練大型資料集,以及檢查大型模型。

Compute Engine 支援各種永久磁碟類型。透過 Google Cloud Hyperdisk ML,您可以根據訓練需求佈建所需的輸送量和 IOPS。如要提升磁碟效能,請先調整磁碟大小,然後考慮變更機型。詳情請參閱「最佳化永久磁碟效能」。如要測試儲存空間層的讀寫效能和延遲時間,可以使用彈性 I/O 測試人員 (FIO) 等工具。

如要進一步瞭解如何為 AI 和 ML 工作負載選擇及最佳化儲存空間服務,請參閱下列說明文件:

最佳化網路層

如要提升 AI 和機器學習工作負載的效能,請設定虛擬私有雲網路,提供充足的頻寬和最大總處理量,並盡量縮短延遲時間。請參考下列建議:

建議 建議採用的導入方式
最佳化虛擬私有雲網路。
縮短 VM 間的距離。
設定 VM,支援更高的網路速度。

如要創新、排解問題及調查效能問題,您必須在設計選擇和成效結果之間建立明確的連結。您需要可靠地記錄機器學習資產、部署作業、模型輸出內容,以及產生輸出內容的相應設定和輸入內容的沿襲。

建構資料和模型歷程系統

如要穩定提升成效,您必須能夠將每個模型版本追溯至用於產生模型的確切資料、程式碼和設定。隨著模型擴展,這類追蹤作業會變得困難。您需要一個譜系系統,自動執行追蹤程序,並為每項實驗建立清楚且可查詢的記錄。這個系統可讓團隊有效找出並重現可產生最佳模型成效的選擇。

如要查看及分析 Vertex AI 中工作負載的 pipeline 構件歷程,可以使用 Vertex ML MetadataDataplex Universal Catalog。這兩種做法都能註冊事件或構件,以符合控管規定,並在需要時查詢中繼資料及擷取資訊。本節將概略說明這兩種選項。如要詳細瞭解 Vertex ML Metadata 與 Dataplex Universal Catalog 的差異,請參閱「追蹤管道構件的歷程」。

預設實作方式:Vertex AI 機器學習中繼資料

在 Vertex AI 中首次執行管道或實驗時,系統會建立預設的 Vertex ML Metadata 服務。管道耗用及產生的參數和構件中繼資料,會自動註冊至 Vertex 機器學習中繼資料存放區。用於整理及連結所儲存中繼資料的資料模型包含下列元素:

  • 內容:代表實驗執行的構件和執行項目群組。
  • 執行:工作流程中的步驟,例如資料驗證或模型訓練。
  • 構件:工作流程產生及使用的輸入或輸出實體、物件或資料片段。
  • 事件:構件與執行作業之間的關係。

根據預設,Vertex 機器學習中繼資料會擷取並追蹤管道執行的所有輸入和輸出構件。這項服務會將這些構件與 Vertex AI ExperimentsModel RegistryVertex AI 代管資料集整合。

自動記錄是 Vertex AI Training 的內建功能,可自動將資料記錄到 Vertex AI Experiments。如要有效追蹤實驗,以最佳化效能,請使用 Vertex AI Experiments 與相關聯的 Vertex ML Metadata 服務之間的內建整合功能。

Vertex 機器學習中繼資料提供篩選語法和運算子,可查詢構件、執行作業和內容。如有需要,團隊可以有效率地擷取特定實驗執行作業的模型登錄連結和資料集/評估資訊。這項中繼資料有助於加快找出可提升成效的選擇。舉例來說,您可以比較管道執行作業比較模型,以及比較實驗執行作業。如需更多資訊 (包括查詢範例),請參閱「分析 Vertex ML 中繼資料」。

替代實作方式:Dataplex Universal Catalog

Dataplex Universal Catalog 會探索Google Cloud 資源的中繼資料,包括 Vertex AI 構件。您也可以整合自訂資料來源

Dataplex Universal Catalog 可以讀取多個區域和全機構商店的中繼資料,而 Vertex ML Metadata 則是專案專屬資源。與 Vertex ML Metadata 相比,Dataplex Universal Catalog 需要更多設定工作。不過,如果需要與 Google Cloud 中更廣泛的資料組合和全機構商店整合,Dataplex Universal Catalog 可能會更適合。

Dataplex Universal Catalog 會探索並收集已啟用 Data Lineage API 的專案中繼資料。目錄中的中繼資料是使用資料模型整理,該模型包含專案、項目群組、項目和層面。Dataplex Universal Catalog 提供特定語法,可用於探索構件。如有需要,您可以將 Vertex ML 中繼資料構件對應至 Dataplex Universal Catalog。

使用可解釋性工具

AI 模型的行為取決於訓練模型時使用的資料。這項行為會以數學函式中的參數編碼。瞭解模型以特定方式運作的確切原因可能很困難。不過,這項知識對於最佳化成效至關重要。

舉例來說,假設圖片分類模型的訓練資料只包含紅色汽車的圖片,模型可能會根據物體的顏色而非空間和形狀屬性,學習辨識「車輛」標籤。如果測試模型時使用的圖片顯示不同顏色的車輛,模型成效可能會降低。以下各節將說明可用於找出及診斷這類問題的工具。

偵測資料偏誤

在機器學習專案的探索性資料分析 (EDA) 階段,您會找出資料問題,例如類別不平衡的資料集偏誤

在實際工作環境系統中,您通常會重新訓練模型,並使用不同資料集執行實驗。為標準化資料並比較各項實驗,建議您採用系統性的 EDA 方法,包括下列特徵:

  • 自動化:隨著訓練集變大,EDA 程序必須在背景自動執行。
  • 涵蓋範圍廣泛:新增功能時,EDA 必須揭露新功能的洞察資訊。

許多 EDA 工作都與資料類型和業務脈絡相關。如要自動執行 EDA 程序,請使用 BigQuery 或 Dataflow 等代管資料處理服務。詳情請參閱「針對不平衡的資料進行分類」和「Vertex AI 的資料偏誤指標」。

瞭解模型特徵和行為

除了瞭解訓練和驗證集中的資料分布及其偏誤,您也需要瞭解模型在預測時的特徵和行為。如要瞭解模型行為,請使用下列工具:

工具 說明 用途
示例式說明 您可以在 Vertex Explainable AI 中使用以範例為基礎的解釋,從訓練資料中找出最相似的範例,藉此瞭解預測結果。這種做法的原則是類似的輸入內容會產生類似的輸出內容。
  • 找出預測錯誤的類似範例,藉此找出並修正訓練資料中的缺漏。
  • 使用參考集中的鄰近項目,分類模型原本未經訓練辨識的輸入內容。
  • 找出與所有已知訓練樣本顯著不同的輸入內容,藉此找出異常狀況。
  • 找出鄰近區域標籤混雜等模稜兩可的情況,提高資料收集效率。優先將這類案件送交專人審查。
特徵式說明

如果是根據表格型資料或圖片進行的預測,特徵式說明會顯示每個特徵與基準相比,對預測結果的影響程度。

Vertex AI 會根據模型類型和工作,提供不同的特徵歸因方法。這些方法通常會依據抽樣和敏感度分析,評估輸出內容對輸入特徵變化的反應程度。

  • 找出驗證步驟可能遺漏的偏誤。
  • 找出對預測結果最重要的特徵,進而提升成效。為提升模型品質和效能, 機器學習工程師可刻意新增、移除或設計特徵。
What-If Tool What-If Tool 由 Google 的人與 AI 研究 (PAIR) 計畫開發,可協助您瞭解及視覺化呈現圖像和表格模型行為。如需工具使用範例,請參閱「What-If Tool 網頁版示範」。
  • 偵錯並找出預測錯誤的根本原因。
  • 透過公平性分析找出偏誤,進而調查模型在不同資料子集中的成效。
  • 瞭解模型的行為,特別是模型預測結果與輸入特徵之間的關係。
  • 使用視覺化比較工具比較預測結果,這項工具需要兩個模型或實際資料基準。

貢獻者

作者:

其他貢獻者: