Well-Architected Framework:AI 和機器學習觀點

Last reviewed 2025-02-14 UTC

這份Google Cloud Well-Architected Framework 文件說明相關原則和建議,協助您在 Google Cloud 中設計、建構及管理 AI 和機器學習工作負載,達成營運、安全性、可靠性、成本和效能目標。

這份文件的目標對象包括決策者、架構師、管理員、開發人員和營運人員,他們負責在 Google Cloud中設計、建構、部署及維護 AI 和機器學習工作負載。

以下頁面說明適用於 Well-Architected Framework 各大支柱的 AI 和 ML 專屬原則和建議:

貢獻者

作者:

其他貢獻者:

AI 和機器學習觀點:卓越營運

這份文件是架構完善架構:AI 和機器學習觀點的一部分,概述了在 Google Cloud上建構及運作穩健 AI 和機器學習系統的原則和建議。這些建議有助於設定觀測能力、自動化和擴充性等基本要素。本文中的建議與 Google Cloud 架構完善架構的卓越營運支柱一致。

在 AI 和機器學習領域實現卓越營運,代表能夠順暢部署、管理及控管 AI 和機器學習系統與管道,協助機構達成策略目標。優質營運可協助您有效應對變化、降低作業複雜度,並確保營運作業與業務目標保持一致。

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

為模型開發奠定穩固基礎

如要開發及部署可擴充且可靠的 AI 系統,協助您達成業務目標,就必須具備穩固的模型開發基礎。這類基礎架構可實現一致的工作流程、自動執行重要步驟以減少錯誤,並確保模型能根據需求調整規模。穩固的模型開發基礎可確保機器學習系統能順暢更新、改良及重新訓練。此外,這項基礎架構還能協助您根據業務需求調整模型效能、快速部署成效顯著的 AI 解決方案,以及因應不斷變化的需求。

如要為開發 AI 模型奠定穩固基礎,請考慮採用下列建議。

定義問題和所需結果

開始任何 AI 或機器學習專案前,請務必清楚瞭解要解決的業務問題和所需成果。首先,請列出業務目標,然後將目標細分為可評估的主要成效指標 (KPI)。如要在 Jupyter 筆記本環境中整理及記錄問題定義和假設,請使用 Vertex AI Workbench 等工具。如要為程式碼和文件實作版本控管,並記錄專案、目標和假設,請使用 Git 等工具。如要開發及管理生成式 AI 應用程式的提示詞,可以使用 Vertex AI Studio

收集並預先處理必要資料

如要實作資料預先處理和轉換,可以使用 Dataflow (適用於 Apache Beam)、Dataproc (適用於 Apache Spark),或在適合使用 SQL 流程的情況下使用 BigQuery。如要驗證結構定義及偵測異常狀況,請使用 TensorFlow Data Validation (TFDV),並視情況在 BigQuery 中自動掃描資料品質

就生成式 AI 而言,資料品質包括準確度、相關性、多樣性,以及是否符合所需輸出特徵。如果實際資料不足或不平衡,您可以生成合成資料,協助提升模型的穩健性和泛化能力。如要根據現有模式建立合成資料集,或擴增訓練資料以提升模型效能,請使用 BigQuery DataFrames 和 Gemini。合成資料對生成式 AI 特別有價值,因為這類資料有助於提升提示多樣性及整體模型穩健性。建構資料集來微調生成式 AI 模型時,請考慮使用 Vertex AI 的合成資料生成功能。

如果是微調或人類回饋增強學習 (RLHF) 等生成式 AI 工作,請確保標籤能準確反映生成輸出內容的品質、相關性和安全性。

選取適當的機器學習方法

設計模型和參數時,請考量模型的複雜度和運算需求。視工作而定 (例如分類、迴歸或生成),考慮使用 Vertex AI 自訂訓練建構自訂模型,或使用 AutoML 執行較簡單的 ML 工作。如要用於常見應用程式,也可以透過 Vertex AI Model Garden 存取預先訓練模型。您可以針對各種用途,例如生成文字、圖片和程式碼,試用多種最先進的基礎模型。

您可能需要微調預先訓練的基礎模型,才能針對特定用途達到最佳成效。如要自訂訓練作業,並滿足高效能需求,請設定 Cloud Tensor Processing Unit (TPU)GPU 資源,加速訓練及推論大型語言模型 (LLM) 和擴散模型等深度學習模型。

為程式碼、模型和資料設定版本控管

如要有效管理及部署程式碼版本,請使用 GitHub 或 GitLab 等工具。這些工具提供完善的協作功能、分支策略,以及與 CI/CD pipeline 的整合,確保開發流程順暢。

使用適當的解決方案管理機器學習系統的每個構件,例如:

  • 對於容器映像檔和管道元件等程式碼構件,Artifact Registry 提供可擴充的儲存解決方案,有助於提升安全性。Artifact Registry 也提供版本控管功能,並可與 Cloud BuildCloud Deploy 整合。
  • 如要管理資料構件 (例如用於訓練和評估的資料集),請使用 BigQuery 或 Cloud Storage 等解決方案進行儲存和版本控管。
  • 如要儲存中繼資料和資料位置指標,請使用版本控管系統或獨立的資料目錄。

如要維持特徵資料的一致性及版本控管,請使用 Vertex AI 特徵儲存庫。如要追蹤及管理模型構件 (包括二進位檔和中繼資料),請使用 Vertex AI Model Registry,這個工具可讓您順暢地儲存、整理及部署模型版本。

為確保模型可靠性,請導入 Vertex AI Model Monitoring。偵測資料偏移、追蹤成效,以及找出正式環境中的異常狀況。對於生成式 AI 系統,請監控輸出內容品質和安全合規的變化。

自動化模型開發生命週期

自動化功能可協助您簡化 AI 和機器學習生命週期的每個階段。自動化作業可減少人工作業並標準化流程,進而提升作業效率,降低錯誤風險。自動化工作流程可加快疊代速度、在各環境中一致部署,並提供更可靠的結果,讓系統順暢地擴充及調整。

如要自動化 AI 和機器學習系統的開發生命週期,請參考下列建議。

使用代管管道自動化調度管理系統

使用 Vertex AI Pipelines 自動執行機器學習生命週期的每個步驟,包括資料準備、模型訓練、評估和部署。如要加快部署速度並確保各專案的一致性,請使用排定的管道執行自動執行週期性工作、使用執行指標監控工作流程,以及開發可重複使用的管道範本,以利標準化工作流程。這些功能也適用於生成式 AI 模型,這類模型通常需要經過特殊步驟,例如提示工程、回覆內容篩選,以及human-in-the-loop的評估。對於生成式 AI,Vertex AI Pipelines 可自動執行這些步驟,包括根據品質指標和安全指南評估生成的輸出內容。為提升提示多樣性和模型穩定性,自動化工作流程也可以納入資料擴增技術。

實作 CI/CD 管道

如要自動建構、測試及部署機器學習模型,請使用 Cloud Build。執行應用程式程式碼的測試套件時,這項服務特別有效,可確保基礎架構、依附元件和模型封裝符合部署需求。

機器學習系統通常需要額外步驟,不只是測試程式碼。舉例來說,您需要對模型進行壓力測試,瞭解模型在不同負載下的表現、執行大量評估作業,評估模型在各種資料集上的成效,以及在重新訓練前驗證資料完整性。如要模擬實際工作負載進行壓力測試,可以使用 LocustGrafana k6Apache JMeter 等工具。如要找出瓶頸,請透過 Cloud Monitoring 監控延遲時間、錯誤率和資源使用率等重要指標。如果是生成式 AI,測試也必須包含針對生成內容類型進行的評估,例如文字品質、圖片保真度或程式碼功能。這些評估可能包括自動化指標,例如語言模型的困惑度,或是人工參與的評估,以瞭解創意和安全性等更細微的層面。

如要實作測試和評估工作,您可以將 Cloud Build 與其他 Google Cloud 服務整合。舉例來說,您可以使用 Vertex AI Pipelines 自動評估模型、使用 BigQuery 大規模分析資料,以及使用 Dataflow 管道驗證功能驗證特徵。

您可以使用 Vertex AI 進行持續訓練,自動根據新資料重新訓練模型,進一步強化 CI/CD pipeline。具體來說,為了確保生成式 AI 產生的輸出內容切題且多元,重新訓練可能包括使用新的訓練資料或提示自動更新模型。您可以透過 Vertex AI Model Garden 選取最新基礎模型進行調整。確保模型與時俱進,並根據不斷變化的業務需求進行最佳化。

實作安全且受控的模型發布程序

為盡量降低風險並確保部署作業可靠,請採用模型發布方法,以便及早偵測問題、驗證效能,並在需要時快速還原。

如要將 ML 模型和應用程式封裝為容器映像檔並部署,請使用 Cloud Deploy。您可以將模型部署至 Vertex AI 端點

使用Canary 版本等策略,為 AI 應用程式和系統實作受控版本。對於使用 Gemini 等受管理模型的應用程式,建議您先向部分使用者逐步發布新版應用程式,再全面部署。這種做法可讓您及早偵測潛在問題,特別是使用生成式 AI 模型時,輸出結果可能有所不同。

如要發布微調模型,可以使用 Cloud Deploy 管理模型版本的部署作業,並運用初期測試版策略將風險降至最低。透過受管理模型和微調模型,控制發布的目的是先向一小部分使用者測試變更,再向所有使用者發布應用程式和模型。

如要進行嚴謹的驗證,請使用 Vertex AI Experiments 比較新模型與現有模型,並使用 Vertex AI 模型評估評估模型效能。針對生成式 AI,定義符合預期用途和潛在風險的評估指標。您可以使用 Vertex AI 的 Gen AI Evaluation Service 評估毒性、連貫性、事實準確度和是否符合安全規範等指標。

為確保部署作業的可靠性,您需要完善的回復計畫。對於傳統機器學習系統,請使用 Vertex AI Model Monitoring 偵測資料偏移和效能下降情形。對於生成式 AI 模型,您可以搭配使用 Vertex AI 模型評估、Cloud Logging 和 Cloud Monitoring,追蹤相關指標並設定快訊,以便在輸出內容品質發生變化或出現有害內容時收到通知。根據生成式 AI 專屬指標設定快訊,在必要時觸發復原程序。如要追蹤模型沿襲並還原至最新的穩定版本,請使用 Vertex AI Model Registry 的洞察資料。

實作觀測功能

由於資料或環境變化,以及模型更新,AI 和機器學習系統的行為可能會隨時間改變。這種動態特性使得可觀測性對於偵測效能問題、偏誤或非預期行為至關重要。生成式 AI 模型尤其如此,因為輸出內容可能差異很大,而且具有主觀性。監控功能可協助您主動解決非預期行為,確保 AI 和機器學習系統維持可靠、準確和公正。

如要為 AI 和 ML 系統導入可觀測性,請考慮下列建議。

持續監控成效

在模型部署後,使用指標和成效條件持續評估模型。

您可以透過 Vertex AI Model Monitoring 主動追蹤模型效能、找出訓練與服務偏差和預測偏移,並接收快訊,以便觸發必要的模型重新訓練或其他介入措施。如要有效監控訓練/服務偏斜,請建構代表理想資料分布的黃金資料集,並使用 TFDV 分析訓練資料,建立基準結構定義。

設定模型監控功能,將輸入資料的分布情形與黃金資料集進行比較,以自動偵測偏斜。對於傳統機器學習模型,請著重於指標,例如準確率、精確度、召回率、F1 分數、AUC-ROC 和對數損失。在模型監控中定義快訊的自訂門檻。如果是生成式 AI,請使用 Gen AI Evaluation Service 持續監控正式環境中的模型輸出內容。您也可以啟用自動評估指標,評估回覆的品質、安全性、是否符合指示、是否根據事實、寫作風格和詳細程度。如要評估生成輸出內容的品質、相關性、安全性,以及是否符合規範,可以加入human-in-the-loop的評估程序。

建立意見回饋迴路,在模型監控功能觸發快訊時,使用 Vertex AI Pipelines 自動重新訓練模型。善用這些洞察資料,持續改善模型。

在開發期間評估模型

部署 LLM 和其他生成式 AI 模型前,請在開發階段進行全面評估。使用 Vertex AI 模型評估功能,達到最佳效能並降低風險。使用 Vertex AI 快速評估,讓 Google Cloud 根據您提供的資料集和提示,自動執行評估。

您也可以定義及整合專屬用途的自訂指標。如要取得生成內容的回饋,請使用 Vertex AI 模型評估服務,整合人為參與工作流程。

使用對抗性測試找出安全漏洞和潛在的故障模式。如要找出並減輕潛在偏誤,請使用子群組分析和反事實生成等技術。根據開發階段完成的評估作業收集到的洞察資料,定義實際工作環境中的模型監控策略。請按照本文「持續監控效能」一節的說明,準備好持續監控解決方案。

監控供應情形

如要掌握已部署端點和基礎架構的健康狀態和效能,請使用 Cloud Monitoring。針對 Vertex AI 端點,追蹤要求率、錯誤率、延遲和資源使用率等重要指標,並設定異常狀況的快訊。詳情請參閱 Vertex AI 的 Cloud Monitoring 指標

監控基礎架構的健康狀態,包括 Compute Engine 執行個體、Google Kubernetes Engine (GKE) 叢集,以及 TPU 和 GPU。透過 Active Assist 取得自動最佳化建議。 如果您使用自動調度資源功能,請監控調度行為,確保自動調度資源功能可適當因應流量模式變化。

整合 Cloud Deploy 與 Cloud Monitoring,追蹤模型部署狀態,包括 Canary 版本和回溯。此外,您也可以使用 Security Command Center 監控潛在的安全威脅和安全漏洞。

為特定業務門檻設定自訂快訊

如要及時找出並修正異常狀況和問題,請根據業務目標專屬的門檻設定自訂快訊。以下列舉一些可實作自訂快訊系統的 Google Cloud 產品:

  • Cloud Logging: 收集、儲存及分析 AI 和機器學習系統所有元件的記錄。
  • Cloud Monitoring:建立自訂資訊主頁,以圖表呈現重要指標和趨勢,並根據需求定義自訂指標。設定快訊,接收重大問題的通知,並將快訊與事件管理工具 (例如 PagerDuty 或 Slack) 整合。
  • Error Reporting: 自動擷取及分析錯誤和例外狀況。
  • Cloud Trace: 分析分散式系統的效能,找出瓶頸。 追蹤功能特別適合用來瞭解 AI 和機器學習管道中不同元件之間的延遲。
  • Cloud Profiler: 持續分析正式環境中程式碼的效能,並找出 CPU 或記憶體用量的效能瓶頸。

培養卓越營運文化

將重點從建構模型轉移到建構永續、可靠且影響深遠的 AI 解決方案。讓團隊持續學習、創新及改進,進而加快開發週期、減少錯誤並提高效率。優先考量自動化、標準化和道德考量,確保 AI 和機器學習計畫持續創造價值、降低風險,並促進負責任的 AI 開發。

如要為 AI 和機器學習系統建立卓越營運文化,請參考下列建議。

自動化和標準化冠軍賽事

為強調效率和一致性,請在 AI 和機器學習生命週期的每個階段,都導入自動化和標準化做法。自動化作業可減少人為錯誤,讓團隊專心投入創新。標準化可確保流程在團隊和專案中可重複執行及擴充。

優先進行持續學習和改進

營造持續進修與實驗的環境,並將其視為核心原則。鼓勵團隊掌握最新的 AI 和機器學習技術,並提供機會從過往專案中學習。好奇心和適應力是創新的動力,可確保團隊有能力因應新的挑戰。

培養責任感和當責態度

明確定義角色、職責和成效指標,建立信任感並達成共識。讓團隊能夠在這些界線內做出明智決策,並建立透明的進度評估方式。歸屬感可激勵團隊,確保大家共同承擔成果責任。

納入 AI 倫理和安全考量

在開發的每個階段,都應優先考量倫理問題。鼓勵團隊審慎評估 AI 解決方案的影響,並促進有關公平性、偏見和社會影響的討論。明確的原則和問責機制可確保 AI 系統符合機構價值觀,並提升信任感。

考量擴充性設計

為因應資料量和使用者需求不斷增加的情況,並充分發揮 AI 投資價值,您的 AI 和機器學習系統必須具備擴充性。系統必須適應並發揮最佳效能,避免效能瓶頸阻礙成效。設計可擴充的 AI 基礎架構時,請確保基礎架構能因應成長,並維持回應速度。使用可擴充的基礎架構、規劃容量,並採用水平擴充和代管服務等策略。

如要設計可擴充的 AI 和 ML 系統,請參考下列建議。

規劃容量和配額

評估未來的成長情況,並據此規劃基礎架構容量和資源配額。與業務利害關係人合作,瞭解預計成長幅度,然後據此定義基礎架構需求。

使用 Cloud Monitoring 分析資源用量記錄、找出趨勢,並預測未來需求。定期執行負載測試,模擬工作負載並找出瓶頸。

請熟悉您使用的服務 (例如 Compute Engine、Vertex AI 和 Cloud Storage) 的Google Cloud 配額。透過 Google Cloud 控制台主動要求增加配額,並根據預測和負載測試的資料,說明增加配額的理由。監控配額用量,並設定快訊,在用量接近配額限制時接收通知。

如要根據需求量最佳化資源用量,請適當調整資源大小、使用 Spot VM 處理容錯批次工作負載,並實作自動調度資源功能。

為流量激增事件做好準備

確保系統能處理尖峰活動期間突然出現的流量或工作負載高峰。記錄尖峰事件策略,並定期演練,測試系統處理負載增加的能力。

如要在需求量暴增時積極擴充資源,請在 Compute EngineGKE 中設定自動調度資源政策。如果尖峰模式可預測,請考慮使用預測式自動調度資源功能。如要根據應用程式專屬信號觸發自動調度,請使用 Cloud Monitoring 中的自訂指標。

使用 Cloud Load Balancing 將流量分配給多個應用程式執行個體。根據應用程式需求選擇適當的負載平衡器類型。對於地理位置分散的使用者,您可以透過全域負載平衡,將流量轉送至最近的可用執行個體。如果是以微服務為基礎的複雜架構,建議使用 Cloud Service Mesh

使用 Cloud CDN 在 Google 網路邊緣快取靜態內容。如要快取經常存取的資料,可以使用 Memorystore,這項服務提供 Redis、Valkey 或 Memcached 適用的全代管記憶體內服務。

使用 Pub/Sub 進行即時訊息傳遞,並使用 Cloud Tasks 執行非同步工作,將系統元件分離

調度正式版應用程式的資源

如要在正式環境中確保可擴充的服務,可以使用 Vertex AI 分散式訓練Vertex AI 推論等代管服務。將模型部署至端點或要求批次預測時,您可以使用 Vertex AI Inference 為預測節點設定機器類型。部分設定可新增 GPU。選擇合適的機器類型和加速器,以最佳化延遲時間、輸送量和成本。

如要跨分散式運算資源擴充複雜的 AI 和 Python 應用程式,以及自訂工作負載,可以使用 Vertex AI 上的 Ray。這項功能有助於提升效能,並與Google Cloud 服務順暢整合。Ray on Vertex AI 可處理叢集管理、工作排程和資料移轉,簡化分散式運算。這項服務可與其他 Vertex AI 服務整合,例如訓練、預測和 pipeline。Ray 提供容錯和自動調度資源功能,可協助您根據變更的工作負載調整基礎架構。這個架構提供統一的架構,可用於分散式訓練、超參數調整、強化學習和模型服務。使用 Ray 搭配 DataflowDataproc 進行分散式資料預先處理、加速模型訓練、可擴充的超參數調整、強化學習,以及平行化批次預測。

貢獻者

作者:

其他貢獻者:

AI 和機器學習觀點:安全性

這份架構完善的架構:AI 和機器學習觀點文件概述了相關原則和建議,可確保 AI 和機器學習部署作業符合貴機構的安全與法規遵循需求。本文中的建議與 Google Cloud 架構完善架構的安全性支柱一致。

安全地部署 AI 和機器學習工作負載是重要需求,尤其是在企業環境中。為滿足這項需求,您需要採取全方位的安全防護措施,從 AI 和機器學習解決方案的初步概念化階段開始,一直延伸到開發、部署和持續營運階段。 Google Cloud 提供強大的工具和服務,協助您保護 AI 和機器學習工作負載。

設定明確目標和需求

在設計和開發流程初期整合必要的安全性和法規遵循控制項,比在開發後新增控制項更輕鬆。在設計和開發程序開始時,請根據特定風險環境和特定業務優先事項做出適當決策。

請參考下列建議:

  • 從一開始就找出潛在攻擊媒介,並從安全性和法規遵循的角度著手。設計及演進 AI 系統時,請持續追蹤攻擊面、潛在風險和您可能面臨的義務。
  • 確保 AI 和機器學習安全防護工作與業務目標一致,並將安全防護納入整體策略。瞭解安全性選擇對主要業務目標的影響。

確保資料安全,避免遺失或誤用

資料是寶貴的機密資產,必須妥善保護。資料安全有助於維護使用者信任感、支援業務目標,以及符合法規遵循要求。

請參考下列建議:

  • 請勿收集、保留或使用與業務目標無關的資料。如有可能,請使用合成或完全匿名資料。
  • 監控資料收集、儲存和轉換作業。維護所有資料存取和操作活動的記錄。這些記錄有助於稽核資料存取權、偵測未經授權的存取嘗試,以及防範未經授權的存取行為。
  • 根據使用者角色實作不同層級的存取權 (例如無存取權、唯讀或寫入)。請務必根據最低權限原則指派權限。使用者必須只擁有執行角色活動所需的最低權限。
  • 實施加密、安全周邊和資料移動限制等措施。這些措施有助於防止資料外洩和遺失。
  • 防範機器學習訓練系統的資料汙染。

確保 AI 管道安全無虞,並防範竄改

AI 和機器學習程式碼,以及程式碼定義的管道都是重要資產。未受保護的程式碼可能會遭到竄改,導致資料外洩、不符法規,以及重要業務活動中斷。確保 AI 和機器學習程式碼安全無虞,有助於維護模型和模型輸出內容的完整性和價值。

請參考下列建議:

  • 在模型開發期間,請採用安全的程式設計做法,例如管理依附元件或驗證及清理輸入內容,以防範安全漏洞。
  • 保護管道程式碼和模型構件 (例如檔案、模型權重和部署規格),避免未經授權的存取行為。根據使用者角色和需求,為每個構件實作不同存取層級。
  • 強制執行資產和管道執行的沿襲和追蹤。這項強制措施可協助您符合法規遵循要求,並避免影響生產系統。

使用安全工具和構件,在安全系統上部署

確保程式碼和模型在安全環境中執行,該環境具有完善的存取控制系統,並為部署在環境中的工具和構件提供安全保障。

請參考下列建議:

  • 在安全環境中訓練及部署模型,並採取適當的存取控管和保護措施,防止未經授權的使用或操弄。
  • 針對 AI 專屬構件 (例如模型和軟體套件),遵循標準的軟體構件供應鏈級別 (SLSA) 指南。
  • 建議使用經過驗證的預建容器映像檔,這些映像檔專為 AI 工作負載設計。

保護及監控輸入內容

AI 系統需要輸入內容,才能做出預測、生成內容或自動執行動作。部分輸入內容可能造成風險,或做為攻擊向量,因此必須偵測並清除。及早偵測潛在的惡意輸入內容,有助於確保 AI 系統安全無虞,並按照預期運作。

請參考下列建議:

  • 導入安全做法,開發及管理生成式 AI 系統的提示,並確保提示經過有害意圖篩選。
  • 監控預測或生成系統的輸入內容,避免發生端點超載或系統無法處理的提示等問題。
  • 確保只有已部署系統的指定使用者可以存取。

監控、評估及準備回覆輸出內容

AI 系統可產生輸出內容,協助、改善或自動化人類決策,因此能帶來價值。為維護 AI 系統和應用程式的完整性和可信度,請務必確保輸出內容安全無虞,且符合預期參數。此外,您也需要制定事件回應計畫。

請參考下列建議:

  • 監控實際工作環境中的 AI 和 ML 模型輸出內容,並找出任何效能、安全性及法規遵循問題。
  • 導入健全的指標和安全措施,評估模型成效,例如在預測模型中找出超出範圍的生成回覆或極端輸出內容。收集使用者對模型成效的意見回饋。
  • 實作完善的快訊和事件回應程序,解決任何潛在問題。

貢獻者

作者:

其他貢獻者:

AI 和機器學習觀點:可靠性

這份文件位於「Google Cloud Well-Architected Framework:AI 和機器學習觀點」中,概述了在 Google Cloud上設計及運作可靠 AI 和機器學習系統的原則和建議。本課程將探討如何將進階可靠性做法和可觀測性整合到架構藍圖中。本文中的建議符合 Google Cloud 架構完善架構的可靠性支柱

在快速發展的 AI 和機器學習領域,可靠的系統是確保客戶滿意度和達成業務目標的必要條件。為了滿足預測型機器學習和生成式 AI 的獨特需求,您需要強大、可靠且適應性強的 AI 和機器學習系統。如要處理 MLOps 的複雜性 (從開發到部署和持續改善),您需要採用「可靠性優先」的方法。 Google Cloud 提供專為 AI 打造的基礎架構,符合網站可靠性工程 (SRE) 原則,並為可靠的 AI 和機器學習系統奠定堅實基礎。

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

確保機器學習基礎架構可擴充且可用性高

雲端中可靠的 AI 和 ML 系統需要可擴充且高可用性的基礎架構。這些系統的需求會不斷變化,需要各種資源,且高度依賴模型可用性。可擴充的架構可因應負載波動,以及資料量或推論要求的變化。高可用性 (HA) 有助於確保元件、可用區或區域層級的故障復原能力。

如要建構可擴充且可用性高的機器學習基礎架構,請參考下列建議。

導入自動和動態調整資源配置功能

AI 和 ML 工作負載是動態的,需求會根據資料抵達率、訓練頻率和推論流量而波動。自動和動態調度功能可根據需求波動,順暢調整基礎架構資源。有效調整工作負載有助於防止停機、維持效能及盡可能提高成本效益。

如要自動調整 AI 和機器學習工作負載的規模,請使用 Google Cloud下列產品和功能:

  • 資料處理管道:在 Dataflow 中建立資料管道。將管道設定為使用 Dataflow 的水平自動調度資源功能,根據 CPU 使用率、管道平行處理和待處理資料,動態調整工作站執行個體數量。啟動工作時,您可以透過管道選項設定自動調度參數。
  • 訓練工作:使用 Vertex AI 自訂訓練,自動調整訓練工作規模。您可以定義工作站集區規格,例如機器類型、加速器類型和數量,以及工作站集區數量。對於可容許中斷的作業,以及訓練程式碼實作檢查點的作業,您可以使用 Spot VM 降低成本。
  • 線上推論:如要進行線上推論,請使用 Vertex AI 端點。如要啟用自動調度資源功能,請設定副本數量下限和上限。 如要確保高可用性,請至少指定兩個副本。Vertex AI 會根據流量和設定的自動調度指標 (例如 CPU 使用率和副本使用率),自動調整副本數量。
  • Google Kubernetes Engine 中的容器化工作負載: 在節點和 Pod 層級設定自動調度資源。設定叢集自動調度器節點自動佈建功能,根據擱置中的 Pod 資源要求 (例如 CPU、記憶體、GPU 和 TPU) 調整節點數量。針對 Deployment 使用水平 Pod 自動調度器 (HPA),根據 CPU 和記憶體使用率等指標定義調度政策。您也可以根據自訂的 AI 和機器學習指標調度資源,例如 GPU 或 TPU 使用率,以及每秒預測要求數。
  • 無伺服器容器化服務:在 Cloud Run 中部署服務,並指定容器執行個體數量下限和上限,設定自動調度資源。請按照最佳做法指定加速器類型,自動調整啟用 GPU 的執行個體。Cloud Run 會根據傳入要求,在設定的上下限之間自動調度執行個體。如果沒有要求,系統會有效率地將資源調度降至零個執行個體。您可以運用 Cloud Run 的自動要求驅動式擴縮功能,部署 Vertex AI 代理程式,以及部署第三方工作負載,例如使用 Ollama 的量化模型使用 vLLM 的 LLM 模型推論,以及Huggingface Text Generation Inference (TGI)

設計時兼顧高可用性和容錯能力

對於正式環境等級的 AI 和機器學習工作負載,請務必確保持續運作,並具備故障復原能力。如要實作高可用性和容錯功能,您需要在 Google Cloud的架構中建構備援和複製功能。這種做法可確保個別元件發生故障時,不會導致整個系統故障。

在 Google Cloud中為重要的 AI 和機器學習元件實作備援機制。 以下列舉可實作資源備援的產品和功能:

  • 跨多個區域部署 GKE 區域叢集
  • 使用 Cloud Storage 多區域或雙區域值區,確保資料集和檢查點的資料冗餘。
  • 使用 Spanner 儲存中繼資料,確保全球一致性與高可用性。
  • 為營運資料庫設定 Cloud SQL 唯讀備用資源
  • 確保檢索增強生成 (RAG) 的向量資料庫具備高可用性,且位於多個可用區或區域。

主動管理資源並預測需求

有效管理資源有助於提高成本效益、效能和可靠性,因此非常重要。AI 和機器學習工作負載具有動態特性,因此對 GPU 和 TPU 等專用硬體的需求很高。因此,您必須主動管理資源,確保資源可用性。

根據過往的監控資料 (例如 GPU 或 TPU 使用率和輸送量),從 Cloud MonitoringCloud Logging 中的記錄檔規劃容量。使用 BigQueryLooker Studio 分析這項遙測資料,並根據成長或新模型預測 GPU 未來的需求。分析資源用量模式和趨勢,有助於預測何時何地需要重要的專用加速器。

  • 透過嚴謹的負載測試驗證容量預估值。使用 Apache JMeterLoadView 等工具,模擬 AI 和 ML 服務 (例如服務和管道) 的流量。
  • 分析系統在壓力下的行為。
    • 為預測及滿足生產環境中日益增加的工作負載需求,請主動找出資源需求。監控延遲時間、處理量、錯誤和資源用量,尤其是 GPU 和 TPU 用量。視需要提高資源配額。
    • 如要提供生成式 AI 服務,請在高並行負載下進行測試,並找出加速器可用性限制效能的程度。
  • 持續監控模型查詢,並為代理程式設定主動式快訊
    • 使用模型可觀測性資訊主頁,查看 Cloud Monitoring 收集的指標,例如每秒模型查詢次數 (QPS)、權杖輸送量和第一個權杖延遲時間。

充分善用資源

根據工作負載需求策略性地選取合適的運算資源,以最佳化成本並確保資源可用性。

  • 如要穩定執行 24 小時不間斷的推論作業,或是訓練工作負載的容量需求固定或可預測,請使用 VM 和加速器的承諾使用折扣 (CUD)
  • 針對 GKE 節點和 Compute Engine VM,請使用 Spot VM 和 Dynamic Workload Scheduler (DWS) 功能:

    • 對於評估和實驗工作負載等容錯工作,請使用 Spot VM。Spot VM 可能會遭到先占,但有助於降低整體成本。
    • 如要管理高需求加速器的搶占風險,可以使用 DWS 確保取得加速器。
      • 如要進行複雜的批次訓練,需要高階 GPU 執行最多七天,請使用 DWS Flex-Start 模式。
      • 如要執行時間較長 (最多三個月) 的工作負載,請使用「日曆」模式預留特定 GPU (H100 和 H200) 和 TPU (Trillium)。
  • 如要在 GKE 上最佳化 AI 推論作業,您可以執行 vLLM 引擎,動態使用 TPU 和 GPU,因應容量和效能需求變化。詳情請參閱「vLLM GPU/TPU 互換性」。

  • 在進階情境中,如果資源和拓撲需求複雜,且涉及加速器,請使用工具來抽象化資源管理。

    • 叢集導向器可讓您部署及管理加速器群組,並為多 GPU 訓練 (A3 Ultra H200 和 A4 B200) 進行共置和排程。Cluster Director 支援 GKE 和 Slurm 叢集。
    • Ray on Vertex AI 可抽象化分散式運算基礎架構,應用程式可藉此要求訓練和服務資源,不必直接管理 VM 和容器。

將連入流量分散至多個執行個體

對於需求量不穩定的 AI 應用程式而言,有效的負載平衡至關重要。負載平衡會分配流量、提高資源使用率、提供高可用性和低延遲,並確保使用者體驗順暢無阻。

  • 推論作業的資源需求各不相同:根據模型指標實作負載平衡。GKE 推論閘道可讓您在負載平衡器後方部署模型,並進行模型感知式路由。閘道會優先處理搭載 GPU 和 TPU 加速器的執行個體,以執行耗用大量運算資源的任務,例如生成式 AI 和 LLM 推論。設定詳細的健康狀態檢查,評估模型狀態。使用 vLLM 或 Triton 等服務架構取得 LLM 指標,並使用 Google Cloud Managed Service for Prometheus 將指標整合至 Cloud Monitoring
  • 需要 GPU 或 TPU 的推論工作負載:為確保重要的 AI 和機器學習推論工作負載持續在適合工作負載需求的機器上執行,特別是在 GPU 和 TPU 可用性受限時,請使用 GKE 自訂運算類別。您可以定義特定運算設定檔,並為自動調整規模設定備用政策。舉例來說,您可以定義設定檔,為預留的 GPU 或 TPU 執行個體指定較高的優先順序。如果預留資源暫時無法使用,設定檔可以包含備援機制,改用具成本效益的 Spot VM。
  • 在各種協調平台使用生成式 AI:使用集中式負載平衡器。舉例來說,為了提高成本和管理效率,您可以將 GPU 需求較低的要求傳送至 Cloud Run,並將更複雜、需要大量 GPU 的工作傳送至 GKE。如要進行服務間通訊和政策管理,請使用 Cloud Service Mesh 導入服務網格。使用 Cloud Logging 和 Cloud Monitoring,確保記錄和監控作業一致。
  • 全域負載分配:如要為需要低延遲的全球使用者進行負載平衡,請使用全域外部應用程式負載平衡器。設定地理位置轉送至最近的區域,並實作容錯移轉。在 Vertex AI 或 GKE 中建立區域端點複本。為靜態資產設定 Cloud CDN。 使用 Cloud Monitoring 監控全球流量和延遲時間。
  • 精細的流量管理:對於資料類型或複雜度各異,以及長時間執行的要求,請實作精細的流量管理。
    • 設定內容式轉送,根據網址路徑和標頭等屬性,將要求導向專門的後端。舉例來說,直接向支援 GPU 的後端提出圖片或影片模型要求,以及向 CPU 最佳化後端提出文字模型要求。
    • 如要處理長時間執行的生成式 AI 要求或批次工作負載,請使用 WebSocket 或 gRPC。導入流量管理功能,處理逾時和緩衝問題。使用 API Gateway 或 Apigee 設定要求逾時和重試,並實作速率限制和配額。

採用模組化和鬆耦合架構

在模組化鬆耦合的 AI 和 ML 架構中,複雜系統會劃分為較小的獨立元件,並透過明確定義的介面互動。這個架構可減少模組依附元件、簡化開發和測試、提升可重現性,並透過容錯機制改善容錯能力。模組化方法對於管理複雜性、加速創新及確保長期可維護性至關重要。

如要為 AI 和機器學習工作負載設計模組化且鬆散耦合的架構,請參考下列建議。

導入小型獨立模組或元件

將端對端 AI 和機器學習系統分成小型獨立模組或元件。每個模組或元件都負責特定功能,例如資料擷取、特徵轉換、模型訓練、推論服務或評估。模組化設計可為 AI 和機器學習系統帶來多項主要優勢:提升維護性、擴充性、重複使用性,以及更大的彈性和靈活性。

以下各節說明 Google Cloud 產品、功能和工具,可用於設計 AI 和 ML 系統的模組化架構。

GKE 上的容器化微服務

對於需要精細調度管理的複雜 AI 和 ML 系統或精細的生成式 AI 管道,請將模組實作為微服務,並使用 GKE 調度管理。將每個不同階段封裝為 Docker 容器中的個別微服務。這些階段包括:擷取各種格式的資料、預先處理或特徵工程、分散式模型訓練或微調大型基礎模型、評估或提供服務。

在 GKE 上部署容器化微服務,並根據 CPU 和記憶體使用率或 GPU 使用率等自訂指標,運用自動調度、輪流更新和 YAML 資訊清單中的可重現設定。使用 GKE 服務探索功能,確保微服務之間的通訊效率。如為非同步模式,請使用訊息佇列,例如 Pub/Sub

採用 GKE 微服務方法,有助於建構可擴充的彈性平台,以執行複雜的 RAG 應用程式等工作,因為這些階段可以設計為不同的服務。

無伺服器事件導向服務

對於可從無伺服器自動調整資源配置獲益的事件導向工作,請使用 Cloud RunCloud Run functions。這些服務非常適合非同步工作 (例如前置處理) 或較小的推論工作。在發生事件時觸發 Cloud Run 函式,例如在 Cloud Storage 中建立新的資料檔案,或在 Artifact Registry 中更新模型。如為需要容器環境的 Webhook 工作或服務,請使用 Cloud Run。

Cloud Run 服務和 Cloud Run 函式可快速擴充,也能縮減至零,有助於確保工作負載波動時的成本效益。這些服務適用於 Vertex AI Agents 工作流程中的模組化元件。您可以使用工作流程 應用程式整合,自動化調度管理元件序列。

Vertex AI 代管服務

Vertex AI 服務支援模組化,可協助您簡化 AI 和機器學習系統的開發與部署作業。這些服務可簡化基礎架構的複雜性,讓您專注於應用程式邏輯。

  • 如要調度以模組化步驟建構的工作流程,請使用 Vertex AI Pipelines。
  • 如要執行自訂 AI 和機器學習程式碼,請將程式碼封裝在 Docker 容器中,以便在 Vertex AI 自訂訓練和 Vertex AI 預測等代管服務上執行。
  • 如要使用模組化特徵工程管道,請使用 Vertex AI 特徵儲存庫
  • 如要進行模組化探索和原型設計,請使用筆記本環境,例如 Vertex AI WorkbenchColab Enterprise。將程式碼整理成可重複使用的函式、類別和指令碼。

代理應用程式

對於 AI 代理,Agent Development Kit (ADK) 提供模組化功能,例如工具狀態。如要啟用 LangChainLangGraphLlamaIndex 和 Vertex AI 等架構之間的互通性,您可以將 ADK 與 Agent2Agent (A2A) 通訊協定模型內容通訊協定 (MCP) 搭配使用。這項互通性可讓您使用各種元件,組成代理程式工作流程。

您可以在 Vertex AI Agent Engine 上部署代理,這是專為可擴充代理部署作業最佳化的受管理執行階段。如要執行容器化代理程式,可以運用 Cloud Run 的自動調度資源功能。

設計定義明確的介面

如要建構功能完善且易於維護的軟體系統,請務必確保系統元件鬆散耦合且模組化。這種做法可大幅減少系統不同部分之間的依附情形,因此具有顯著優勢。模組鬆耦合時,一個模組的變更對其他模組的影響極小。這種隔離機制可讓個別模組獨立更新和開發工作流程。

以下各節提供指引,協助確保 AI 和機器學習系統的模組之間能順暢通訊及整合。

通訊協定選擇

  • 如要提供通用存取權,請使用 HTTP API、遵守 RESTful 原則,並使用 JSON 進行語言無關的資料交換。設計 API 端點,代表資源的動作。
  • 如要進行微服務之間的高效能內部通訊,請使用 gRPC 通訊協定緩衝區 (ProtoBuf),以利進行有效率的序列化和嚴格型別作業。使用 .proto 檔案定義 ModelInput、PredictionResult 或 ADK 工具資料等資料結構,然後產生語言繫結。
  • 如要處理效能至關重要的用途,請針對大型資料集或連續流程 (例如即時文字轉語音或影片應用程式),運用 gRPC 串流。在 GKE 上部署 gRPC 服務。

標準化且詳盡的說明文件

無論選擇哪種介面通訊協定,標準化文件都至關重要。OpenAPI 規格說明 RESTful API。使用 OpenAPI 記錄 AI 和 ML API:路徑、方法、參數、連結至 JSON 結構定義的要求/回應格式,以及安全性。詳盡的 API 說明文件有助於提升探索能力和用戶端整合。如要編寫及呈現 API,請使用 Swagger 編輯器等 UI 工具。如要加快開發速度並確保一致性,可以使用 Gemini Code Assist 等 AI 輔助程式碼編寫工具,生成用戶端 SDK 和伺服器存根。將 OpenAPI 文件整合至 CI/CD 流程。

與 Google Cloud Vertex AI 等代管服務互動

您可以選擇抽象層級較高的 Vertex AI SDK (有助於提高開發效率),或是 REST API 提供的精細控制項。

  • Vertex AI SDK 可簡化工作和驗證程序。需要與 Vertex AI 互動時,請使用 SDK。
  • REST API 是功能強大的替代方案,特別是當系統層級之間需要互通性時。如果工具使用的語言沒有 SDK,或是您需要精細控管,這項功能就非常實用。

使用 API 隔離模組並抽象化實作詳細資料

為確保安全性、可擴充性和可視性,請務必為 AI 和 ML 服務導入健全的 API 管理機制。如要為定義的介面實作 API 管理,請使用下列產品:

  • API Gateway: 對於對外公開及管理的 API,API Gateway 提供集中式安全進入點。可簡化預測、訓練和資料 API 等無伺服器後端服務的存取程序。API Gateway 可協助整合存取點、強制執行 API 合約,以及管理 API 金鑰和 OAuth 2.0 等安全防護功能。為避免後端過載並確保可靠性,請在 API Gateway 中實作速率限制和用量配額。
  • Cloud Endpoints:如要在 GKE 和 Cloud Run 上簡化 API 開發和部署作業,請使用 Cloud Endpoints。這項服務提供易於使用的解決方案,可產生 API 金鑰。此外,它還提供 API 呼叫的整合式監控和追蹤功能,並自動產生 OpenAPI 規格,簡化文件和用戶端整合作業。您可以使用 Cloud Endpoints 管理內部或受控 AI 和 ML API 的存取權,例如觸發訓練和管理特徵商店。
  • Apigee: 對於企業級 AI 和機器學習,尤其是複雜的生成式 AI API,Apigee 提供進階且全面的 API 管理服務。Apigee 提供進階安全防護功能 (例如威脅防護和 OAuth 2.0)、流量管理功能 (例如快取、配額和中介服務),以及分析功能。Apigee 可協助您深入瞭解 API 使用模式、成效和參與度,這對於瞭解生成式 AI API 使用情形至關重要。

規劃優雅降級

在實際運作的 AI 和 ML 系統中,元件故障是無可避免的,就像其他系統一樣。系統會確保基本功能繼續運作,但效能可能會降低。這種做法可避免全面停機,並提升整體可用性。對於延遲時間敏感的推論、分散式訓練和生成式 AI 而言,優雅降級至關重要。

以下各節說明規劃及實作正常降級的技術。

故障隔離

  • 如要在分散式架構中找出故障元件,請使用彈性程式庫 (例如 Java 中的 Resilience4j 和 Python 中的 CircuitBreaker),實作斷路器模式
  • 為避免連鎖故障,請根據 AI 和機器學習工作負載指標 (例如錯誤率和延遲時間) 設定門檻,並定義備援機制,例如較簡單的模型和快取資料。

元件備援

針對重要元件,請實作備援和自動容錯移轉。舉例來說,您可以使用 GKE 多區域叢集或區域叢集,並在不同區域中以冗餘方式部署 Cloud Run 服務。如要偵測健康狀態不良的執行個體,並將流量轉送至健康狀態良好的執行個體,請使用 Cloud Load Balancing。

使用 Cloud Storage 多區域值區,確保資料備援。 如要進行分散式訓練,請實作非同步檢查點,以便在發生失敗後繼續訓練。如要進行彈性訓練,請使用Pathways

主動監控

系統故障時,優雅降級有助於確保系統可用性,但您也必須採取主動措施,持續進行健康狀態檢查和全面監控。收集 AI 和機器學習專屬指標,例如延遲時間、處理量和 GPU 使用率。此外,您也可以使用 Cloud Monitoring 和 Vertex AI Model Monitoring,收集模型和資料偏移等模型效能下降指標。

健康狀態檢查可能會觸發更換故障節點、部署更多容量的需求,或自動觸發使用更新資料的管道持續重新訓練或微調。這種主動式做法有助於防止準確度下降和系統層級的正常降級,並提升整體可靠性。

SRE 做法

如要監控系統健康狀態,建議採用 SRE 做法,實作服務等級目標 (SLO)。錯誤預算損失和消耗率的快訊可做為系統可靠性問題的早期指標。如要進一步瞭解 SRE 做法,請參閱 Google SRE 書籍

建構自動化端對端機器學習運作平台

如要在 Google Cloud上建構強大、可擴充且可靠的 AI 和機器學習系統,需要自動化端對端機器學習運作平台,才能完成模型開發生命週期。開發生命週期包括初始資料處理、持續模型訓練、部署,以及在正式環境中監控。在 Google Cloud自動執行這些階段,可建立可重複的程序、減少手動作業、降低錯誤,並加快創新速度。

自動化機器學習運作平台對於確保應用程式達到生產環境等級的可靠性至關重要。自動化有助於確保模型品質、保證可重現性,並持續整合及交付 AI 和機器學習成果。

如要建構自動化端對端 MLOps 平台,請參考下列建議。

自動化模型開發生命週期

自動化 MLOps 平台的核心要素,是將整個 AI 和機器學習工作流程調度管理為一系列相互連結的自動化步驟,包括資料準備和驗證、模型訓練、評估、部署及監控。

管理基礎架構即程式碼

基礎架構即程式碼 (IaC) 對於管理 AI 和 ML 系統基礎架構至關重要,有助於實現可重現、可擴充及可維護的部署作業。AI 和機器學習系統的基礎架構需求十分複雜,而且會不斷變化。這些系統通常需要 GPU 和 TPU 等專用硬體。IaC 可確保一致性、啟用復原功能,並讓部署作業可重複執行,有助於降低手動管理基礎架構的風險。

如要以程式碼有效管理基礎架構資源,請使用下列技術。

自動佈建資源

如要在 Google Cloud上有效管理 IaC,請使用 Terraform 定義及佈建 AI 和機器學習基礎架構資源。基礎架構可能包含下列資源:

  • 已設定節點集區的 GKE 叢集。您可以根據工作負載需求,最佳化節點集區。舉例來說,您可以使用 A100、H100、H200 或 B200 GPU 進行訓練,並使用 L4 GPU 進行推論。
  • Vertex AI 端點,已設定用於模型服務,並定義機器類型和擴充政策。
  • Cloud Storage bucket,用於存放資料和構件。

使用設定範本

將 Terraform 設定整理為模組化範本。如要加速佈建 AI 和 ML 資源,可以使用 Cluster Toolkit。這個工具包提供範例藍圖,也就是 Google 策劃的 Terraform 範本,可用於在 Slurm 或 GKE 中部署可立即使用的 HPC、AI 和機器學習叢集。您可以自訂 Terraform 程式碼,並在版本控管系統中管理。如要自動執行資源佈建和更新工作流程,可以使用 Cloud Build 將程式碼整合至 CI/CD 管道。

自動變更設定

佈建基礎架構後,以宣告方式管理持續進行的設定變更:

  • 在以 Kubernetes 為中心的環境中,使用 Config Connector 將資源管理為 Kubernetes 物件。 Google Cloud
  • 使用 YAML 資訊清單定義及管理 Vertex AI 資源,例如資料集、模型和端點、Cloud SQL 執行個體、Pub/Sub 主題和 Cloud Storage bucket。
  • 將資訊清單部署至 GKE 叢集,整合應用程式和基礎架構設定。
  • 使用 CI/CD 管道自動更新設定,並使用範本處理環境差異。
  • 使用 IaC 實作 Identity and Access Management (IAM) 政策和服務帳戶的設定。

整合 CI/CD

  • 將 IaC 整合至 CI/CD 管道,並使用 Cloud BuildInfrastructure Manager 等工具,自動執行 Google Cloud 基礎架構資源的生命週期。
  • 定義程式碼提交時自動更新的觸發條件。
  • 在管道中導入自動測試和驗證。舉例來說,您可以建立指令碼,自動執行 Terraform validateplan 指令。
  • 將設定儲存為構件,並啟用版本管理。
  • 在版本控制中定義不同的環境 (例如開發、預備和正式環境),並自動升級環境。

驗證模型行為

如要長期維持模型的準確度和關聯性,請在 MLOps 平台中自動執行訓練和評估程序。這項自動化功能搭配嚴格的驗證程序,可確保模型在部署至實際工作環境前,能根據相關資料正常運作。

  • 設定持續訓練管道,這些管道會由新資料和監控信號 (例如資料偏移) 觸發,或依排程執行。
    • 如要管理自動化訓練工作 (例如超參數調整試驗,以及較大型模型的分散式訓練設定),請使用 Vertex AI 自訂訓練
    • 如要微調基礎模型,請自動執行微調程序,並將作業整合至管道。
  • 每次成功執行訓練後,實作自動模型版本控管,並安全地儲存訓練好的模型構件。您可以將構件儲存在 Cloud Storage 中,或在 Model Registry 中註冊。
  • 定義評估指標並設定明確的門檻,例如最低準確度、最高錯誤率和最低 F1 分數。
    • 確保模型達到自動通過評估的門檻,並考慮部署。
    • 使用 Vertex AI 的模型評估服務等服務,自動執行評估。
    • 請確保評估內容包含生成輸出內容品質、事實準確度、安全屬性,以及是否符合指定樣式或格式等指標。
  • 如要自動記錄及追蹤每次訓練和評估作業的參數、程式碼版本、資料集版本和結果,請使用 Vertex AI Experiments。這種做法可提供有用的記錄,方便您比較、偵錯及重現結果。
  • 如要最佳化超參數調整,並根據您定義的目標自動搜尋最佳模型設定,請使用 Vertex AI Vizier
  • 如要將訓練指標視覺化,並在開發期間進行偵錯,請使用 Vertex AI TensorBoard

驗證 AI 和機器學習管道的輸入和輸出內容

為確保 AI 和 ML 系統的可靠性和完整性,您必須在資料進入系統和管道時驗證資料。您也必須在元件邊界驗證輸入和輸出內容。對所有輸入和輸出內容 (原始資料、處理過的資料、設定、引數和檔案) 進行嚴格驗證,有助於避免發生非預期行為,並在整個 MLOps 生命週期中維持模型品質。將這種主動式做法整合到 MLOps 平台後,有助於在錯誤傳播到整個系統之前偵測到錯誤,進而節省時間和資源。

如要有效驗證 AI 和 ML pipeline 的輸入和輸出內容,請使用下列技術。

自動驗證資料

  • 使用 TensorFlow Data Validation (TFDV),在資料擷取和前處理管道中導入自動化資料驗證。
    • 如要進行大規模的 SQL 資料品質檢查,請善用 BigQuery 等可擴充的處理服務。
    • 如要對串流或批次資料進行複雜的程式輔助驗證,請使用 Dataflow
  • 使用 TFDV 功能監控一段時間內的資料分布情形。
    • 使用與 Cloud Monitoring 整合的工具,將趨勢視覺化,以偵測資料偏移。當資料模式大幅變更時,您可以自動觸發模型重新訓練管道。
  • 將驗證結果和指標儲存在 BigQuery 中,以供分析及追蹤歷史記錄,並將驗證構件封存至 Cloud Storage。

驗證管道設定和輸入資料

為避免因設定錯誤而導致管道失敗或發生非預期行為,請對所有管道設定和指令列引數實作嚴格的驗證:

  • 使用 jsonschema 等 Python 專用的結構定義驗證程式庫,為 YAML 或 JSON 等設定檔定義明確的結構定義。在管道執行開始前和元件執行前,請根據這些結構定義驗證設定物件。
  • 使用 argparse 等引數剖析程式庫,為所有指令列引數和管道參數實作輸入驗證。驗證應檢查資料類型是否正確、值是否有效,以及是否提供必要引數。
  • Vertex AI Pipelines 中,使用內建的元件輸入驗證功能,定義元件參數的預期類型和屬性。
  • 為確保管線執行作業可重現,並維護稽核追蹤記錄,請將經過驗證的設定檔 (含版本) 儲存在 Cloud Storage 或 Artifact Registry 中。

驗證輸入和輸出檔案

驗證輸入和輸出檔案 (例如資料集、模型構件和評估報告) 的完整性和格式正確性:

  • 使用程式庫驗證 CSV、Parquet 和圖片類型等檔案格式。
  • 如果是大型檔案或重要構件,請使用 Cloud Storage 資料驗證和變更偵測功能,驗證檔案大小和總和檢查碼,偵測檔案是否毀損或傳輸不完整。
  • 使用 Cloud Run 函式 (例如根據檔案上傳事件) 或 Dataflow 管道執行檔案驗證。
  • 將驗證結果儲存在 BigQuery 中,方便日後擷取及分析。

自動化部署及實作持續監控

自動部署及持續監控正式環境中的模型,有助於確保可靠性、快速更新及及時偵測問題。包括管理模型版本、控管部署作業、使用 CI/CD 自動部署,以及全面監控,詳情請參閱下列各節。

管理模型版本

使用版本控管工具管理模型疊代和相關構件:

  • 如要追蹤模型版本和中繼資料,並連結至基礎模型構件,請使用 Model Registry
  • 實作明確的版本管理架構 (例如語意化版本管理)。為每個模型版本附加完整的中繼資料,例如訓練參數、驗證管道的評估指標和資料集版本。
  • 將模型構件 (例如模型檔案、預先訓練的權重和提供模型的容器映像檔) 儲存在 Artifact Registry 中,並使用其版本控管和標記功能。
  • 為符合安全性與管理需求,請為 Model Registry 和 Artifact Registry 定義嚴格的存取控制政策。
  • 如要透過程式註冊及管理版本,並將版本整合至自動化 CI/CD 管道,請使用 Vertex AI SDK 或 API。

執行受控部署作業

使用服務平台流量管理功能,控管模型版本部署至端點的作業。

  • 使用 Vertex AI 端點的流量分配功能,實作滾動式部署
  • 如果將模型部署至 GKE,請使用進階流量管理技術,例如Canary 部署
    1. 將一小部分正式環境流量轉送至新模型版本。
    2. 透過指標持續監控效能和錯誤率。
    3. 確認模型是否可靠。
    4. 將版本發布至所有流量。
  • 對 AI 虛擬服務專員執行 A/B 測試
    1. 將兩個不同的模型代理程式版本或完全不同的模型部署至同一個端點。
    2. 在部署作業之間拆分流量。
    3. 根據業務目標分析結果。
  • 導入自動復原機制,在觸發監控快訊或未達到效能門檻時,可快速將端點流量還原為先前的穩定模型版本。
  • 使用 Vertex AI SDK 或 API,以程式輔助方式設定流量分配和部署設定。
  • 使用 Cloud Monitoring 追蹤各版本的效能和流量。
  • 透過 CI/CD 管道自動部署。您可以使用 Cloud Build 建構容器、版本化構件,並觸發部署至 Vertex AI 端點。
  • 請確認 CI/CD 管道會管理版本,並從 Artifact Registry 提取版本。
  • 轉移流量前,請先自動測試端點,確認預測準確度、延遲時間、輸送量和 API 函式。
  • 將所有設定儲存在版本控管系統中。

持續監控

  • 使用模型監控自動偵測效能下降、資料偏移 (與訓練資料相比,輸入資料分布情形的變化) 和預測偏移 (模型輸出內容的變化)。
    • 設定具有門檻和快訊的漂移偵測工作。
    • 監控即時效能:預測延遲時間、輸送量、錯誤率。
  • Cloud Monitoring 中定義業務 KPI 的自訂指標。
  • 將模型監控結果和自訂指標與 Cloud Monitoring 整合,以便設定快訊和資訊主頁。
  • 設定電子郵件、Slack 或 PagerDuty 等通知管道,並設定自動補救措施。
  • 如要對預測記錄進行偵錯,請使用 Cloud Logging
  • 將監控與事件管理整合。

如果是生成式 AI 端點,請監控輸出內容的特徵,例如有害程度和連貫性:

  • 監控特徵服務的偏移。
  • 實作精細的預測驗證:使用自訂邏輯,根據預期範圍和格式驗證輸出內容。
  • 監控預測分布情形的變化。
  • 驗證輸出結構定義。
  • 設定非預期輸出和變動的快訊。
  • 使用 Pub/Sub 追蹤及回應即時驗證事件。

確保全面監控的輸出內容會回饋到持續訓練中。

透過資料和模型管理機制,維持信任和控管權

AI 和機器學習的可靠性不僅限於技術運作時間,包括信任和健全的資料與模型治理。AI 輸出內容可能不正確、有偏見或過時。這類問題會損害信任感,甚至造成傷害。全面追蹤、嚴格控管存取權、自動驗證及透明化做法,有助於確保 AI 輸出內容可靠、值得信賴,且符合道德標準。

如要透過資料和模型管理機制維持信任和控管,請參考下列建議。

建立資料和模型目錄,以利追蹤

為利於全面追蹤、稽核及瞭解 AI 和 ML 資產的沿革,請在整個生命週期中,維護資料和模型版本的集中式記錄。可靠的資料和模型目錄可做為單一資料來源,提供 AI 和機器學習管道使用的所有構件,包括原始資料來源、已處理的資料集、訓練好的模型版本,以及已部署的端點。

使用下列產品、工具和技術,為資料資產建立及維護目錄:

  • 使用 Dataplex Universal Catalog 建構企業級資料資產目錄。如要自動探索及建立資料資產的清查表,請將 Dataplex Universal Catalog 與儲存系統整合,例如 BigQueryCloud StoragePub/Sub
  • 將資料儲存在 Cloud Storage 多區域或雙區域值區,確保資料具有高可用性和耐久性。您上傳至這些值區的資料,至少會備援到兩個不同的地理位置。這項備援機制可內建復原能力,防範區域性服務中斷,並確保資料完整性。
  • 使用相關業務中繼資料、擁有權資訊、機密程度和歷程詳細資料,為資料集加上標記和註解。舉例來說,您可以將已處理的資料集連結至原始來源,以及建立該資料集的管道。
  • 使用 Model Registry 建立模型版本的中央存放區。註冊每個訓練好的模型版本,並連結至相關聯的中繼資料。 中繼資料可包含下列項目:
    • 訓練參數。
    • 驗證管道的評估指標。
    • 用於訓練的資料集版本,歷程追溯至相關的 Dataplex Universal Catalog 項目。
    • 產生資料集的程式碼版本。
    • 所用架構或基礎模型的詳細資料。
  • 將模型匯入 Model Registry 前,請先將模型構件 (例如模型檔案和預先訓練的權重) 儲存在 Cloud Storage 等服務中。將用於服務或自訂訓練工作的自訂容器映像檔,儲存在 Artifact Registry 等安全存放區。
  • 如要確保系統在建立或修改資料和模型資產時,會自動在各自的目錄中登錄及更新這些資產,請在 MLOps 管道中導入自動化程序。這項全面編目功能可提供從原始資料到預測結果的端對端追蹤功能,方便您稽核導致特定模型版本或預測結果的輸入內容和程序。稽核功能對於偵錯非預期行為、確保遵守資料使用政策,以及瞭解資料或模型變更對時間的影響至關重要。
  • 如果是生成式 AI 和基礎模型,目錄也必須追蹤所用特定基礎模型的詳細資料、微調參數,以及與生成輸出內容品質和安全性相關的評估結果。

導入完善的存取控管機制和稽核追蹤

為維護 AI 和 ML 系統的信任度和控制權,您必須保護私密資料和模型,防止未經授權的存取行為,並確保所有變更都有責任歸屬。

  • 在 AI 和機器學習系統的所有元件中,實施嚴格的存取權控管,並維護詳細的稽核追蹤記錄 Google Cloud。
  • 在 IAM 中為與 AI 和 ML 資源互動的使用者、群組和服務帳戶定義精細權限。
  • 嚴格遵循最低權限原則。
  • 只授予特定工作所需的最低權限。舉例來說,訓練服務帳戶需要訓練資料的讀取權限和模型構件的寫入權限,但服務可能不需要生產環境服務端點的寫入權限。

對 AI 和 ML 系統中的所有相關資產和資源套用一致的 IAM 政策,包括:

  • 含有機密資料或模型構件的 Cloud Storage bucket。
  • BigQuery 資料集。
  • Vertex AI 資源,例如模型存放區、端點、管道和特徵儲存庫資源。
  • 運算資源,例如 GKE 叢集和 Cloud Run 服務。

使用稽核和記錄功能擷取、監控及分析存取活動:

  • 為 AI 和 ML 系統使用的所有 Google Cloud 服務啟用 Cloud 稽核記錄
  • 設定稽核記錄,擷取 API 呼叫、資料存取事件,以及資源設定變更的詳細資訊。監控記錄,找出可疑活動、未經授權的存取嘗試,或重要資料/模型資產的意外修改。
  • 如要進行即時分析、設定快訊和產生視覺化資料,請將稽核記錄串流至 Cloud Logging
  • 如要以符合成本效益的方式長期儲存資料,並進行回溯安全分析或法規遵循稽核,請將記錄匯出至 BigQuery。
  • 如要集中監控安全性,請將稽核記錄與安全資訊與事件管理 (SIEM) 系統整合。定期檢查存取政策和稽核追蹤記錄,確保這些項目符合控管規定,並偵測潛在的政策違規行為。
  • 對於處理機密資料 (例如用於訓練或推論的個人識別資訊 (PII)) 的應用程式,請在管道或資料儲存空間內使用機密資料保護檢查。
  • 對於生成式 AI 和代理解決方案,稽核追蹤記錄可協助追蹤存取特定模型或工具的使用者、用於微調或提示的資料,以及傳送至正式端點的查詢。稽核記錄可協助您確保問責制,並提供重要資料,供您調查資料濫用或違反政策的情形。

解決偏誤、透明度和可解釋性問題

如要建構值得信賴的 AI 和機器學習系統,您必須修正資料和模型中固有的潛在偏誤,盡量提高系統行為的透明度,並說明模型輸出內容的依據。在敏感領域建構可信賴的系統,或使用複雜模型 (例如通常用於生成式 AI 應用程式的模型) 時,這點尤其重要。

  • 在整個機器學習運作生命週期中,實施主動做法,找出並減少偏誤。
  • 使用相關工具分析訓練資料的偏誤,偵測不同客層或敏感屬性特徵分布的偏斜。
  • 評估整體模型效能,以及預先定義的資料片段效能。這類評估有助於找出影響特定子群體的成效差異或偏誤。

如要提高模型透明度和可解釋性,請使用相關工具,協助使用者和開發人員瞭解模型做出特定預測或產生特定輸出內容的原因。

  • 如要為部署在 Vertex AI 端點的表格模型產生特徵歸因,請使用 Vertex Explainable AI。特徵歸因會指出對預測結果影響最大的輸入特徵。
  • 使用與模型無關的工具 (例如與 TensorBoard 整合的 What-If Tool),以互動方式探索資料集的模型行為和潛在偏誤。
  • 將可解釋性整合至監控資訊主頁。在需要瞭解模型推理過程的情況下,請透過應用程式介面直接向使用者提供可解釋性資料,以建立信任感或輔助決策。
  • 如果是用於生成式 AI 模型的 LLM 等複雜模型,請說明代理程式執行的程序,例如使用追蹤記錄。這類模型的可解釋性相對較難,但仍至關重要。
  • 在 RAG 應用程式中,請提供擷取資訊的引文。您也可以使用提示工程等技巧,引導模型提供說明或顯示推論步驟。
  • 在實際工作環境中持續監控,偵測模型行為或輸出內容的變化,這可能表示出現偏誤或不公平的情況。文件模型限制、預期用途和已知潛在偏誤,這些資訊會列在模型登錄的模型中繼資料中。

全面實施 AI 和機器學習觀測與可靠性做法

在實際運作環境中管理複雜的 AI 和機器學習系統時,全方位可觀測性至關重要。此外,由於複雜的 AI 和 ML 系統 (尤其是生成式 AI) 複雜度高、耗用大量資源,且可能產生無法預測的輸出內容,因此評估這類系統的可靠性也至關重要。全方位觀測包括觀察基礎架構、應用程式碼、資料和模型行為,以取得洞察資料,主動偵測、診斷及回應問題。這種可觀測性最終會帶來高效能的可靠系統。如要實現全方位觀測能力,請採取下列做法:

  • 採用 SRE 原則。
  • 定義明確的可靠性目標。
  • 追蹤系統層級的指標。
  • 運用觀測資料的洞察資訊,持續改善及主動管理。

如要在 Google Cloud中為 AI 和機器學習工作負載導入全方位的觀測和可靠性做法,請考慮下列建議。

制定可靠性目標和業務指標

找出 AI 和 ML 系統直接影響的主要成效指標 (KPI)。這些 KPI 可能包括受 AI 建議影響的收益、AI 系統預測或降低的顧客流失率,以及生成式 AI 功能帶動的使用者參與度和轉換率。

為各個 KPI 定義相應的技術可靠性指標,這些指標會影響 KPI。舉例來說,如果 KPI 是「顧客對對話式 AI 助理的滿意度」,則對應的可靠性指標可能包括:

  • 使用者要求的成功率。
  • 回覆延遲時間:LLM 的第一個權杖時間 (TTFT) 和權杖串流。
  • 不相關或有害的回覆率。
  • 服務專員成功完成工作的比率。

對於 AI 和 ML 訓練,可靠性指標可能包括模型 FLOPS 使用率 (MFU)、每秒疊代次數、每秒權杖數,以及每個裝置的權杖數。

如要有效評估及提升 AI 和機器學習的可靠性,請先設定明確的可靠性目標,並與整體業務目標保持一致。採用 SRE 方法,從使用者角度定義 SLO,量化 AI 和 ML 服務可接受的可靠性和效能等級。使用特定 SLO 目標量化這些技術可靠性指標。

以下是 SLO 目標的範例:

  • 99.9% 的 API 呼叫必須傳回成功的回應。
  • 第 95 個百分位數的推論延遲時間必須低於 300 毫秒。
  • 99% 的要求 TTFT 必須低於 500 毫秒。
  • 有害輸出內容的比例必須低於 0.1%。

直接根據業務需求調整 SLO,可確保可靠性工作著重於影響使用者和業務的最重要系統行為。這個方法有助於將可靠性轉化為可評估且可執行的工程屬性。

監控基礎架構和應用程式效能

追蹤 AI 和機器學習系統使用的所有資源基礎架構指標。這些指標包括處理器用量 (CPU、GPU 和 TPU)、記憶體用量、網路處理量和延遲時間,以及磁碟 I/O。追蹤代管環境 (例如 Vertex AI 訓練和服務) 的指標,以及自行管理的資源 (例如 GKE 節點和 Cloud Run 執行個體) 的指標。

監控 AI 和機器學習應用程式的四大黃金信號

  • 延遲:回應要求所需的時間。
  • 流量:要求或工作負載量。
  • 錯誤率:要求或作業失敗的比率。
  • 飽和度:CPU、記憶體和 GPU/TPU 加速器等重要資源的使用率,可指出系統距離容量上限有多近。

請使用下列技術執行監控作業:

  • 使用 Cloud Monitoring 收集、儲存及顯示基礎架構和應用程式指標。您可以針對 Google Cloud 服務使用預先建構的資訊主頁,並根據工作負載的特定效能指標和基礎架構健康狀態,建立專屬的自訂資訊主頁。
  • 使用 Cloud Logging,從 AI 和 ML 應用程式以及基礎架構收集詳細記錄。這些記錄對於疑難排解和效能分析至關重要。這些資料可提供事件和錯誤的相關背景資訊。
  • 使用 Cloud Trace 找出延遲問題,並瞭解分散式 AI 和 ML 微服務的要求流程。這項功能對於偵錯複雜的 Vertex AI Agents 互動或多元件推論管道至關重要。
  • 使用 Cloud Profiler 找出應用程式程式碼中函式區塊的效能瓶頸。找出效能瓶頸有助於最佳化資源用量和執行時間。
  • 使用 NVIDIA Data Center GPU Manager (DCGM) 等工具,收集特定加速器相關指標,例如每個程序的詳細 GPU 使用率、每個程序的記憶體用量和溫度。

導入資料和模型觀測功能

如要打造可靠的生成式 AI 系統,必須具備完善的資料和模型可觀測性,而這一切都從端對端管道監控開始。

  • 使用 Dataflow 等服務,追蹤資料擷取率、處理量和轉換延遲時間。
  • 監控 MLOps 管道中的工作成功和失敗率,包括由 Vertex AI Pipelines 管理的管道。

持續評估資料品質至關重要。

  • 使用 Dataplex Universal Catalog 管理及控管資料:
    • 根據真值驗證或追蹤離群值偵測率,評估準確度。
    • 根據資料的時效和更新頻率,對照服務水準協議監控資料更新間隔。
    • 追蹤空值百分比和必填欄位的填寫率,評估完整性。
    • 檢查是否符合結構定義和重複,確保有效性和一致性。
  • 透過 Cloud Monitoring 快訊主動偵測異常狀況,並運用清楚的資料沿襲追蹤資料。
  • 如果是 RAG 系統,請檢查檢索脈絡的關聯性,以及回覆的根據 (歸因於來源)。
  • 監控向量資料庫查詢的處理量。

重要的模型可觀測性指標包括輸入/輸出權杖計數,以及模型專屬的錯誤率,例如產生幻覺或查詢解析失敗。如要追蹤這些指標,請使用模型監控

  • 持續監控輸出內容的惡意指數和使用者意見回饋評分。
  • 使用 Gen AI Evaluation Service,根據定義的標準自動評估模型輸出內容。
  • 透過完整的錯誤率指標,有系統地監控資料和概念漂移,確保效能穩定。

如要追蹤模型指標,可以使用 TensorBoardMLflow。如要深入分析及剖析,以排解效能問題,可以使用 PyTorch XLA 剖析NVIDIA Nsight

貢獻者

作者:

  • 陳瑞貴 | AI 基礎架構現場解決方案架構師
  • Stef Ruinard | 生成式 AI 現場解決方案架構師

其他貢獻者:

AI 和機器學習觀點:成本最佳化

這份架構完善的 AI 和機器學習觀點文件,概述了在機器學習生命週期中,用來最佳化 AI 系統成本的原則和建議。只要採取主動且明智的成本管理方法,貴機構就能充分發揮 AI 和機器學習系統的潛力,同時維持財務紀律。本文中的建議與 Google Cloud 良好架構架構的成本最佳化支柱一致。

AI 和機器學習系統可協助您從資料中發掘寶貴的洞察資訊,並提供預測功能。舉例來說,您可以減少內部流程的阻礙提升使用者體驗,以及深入瞭解顧客洞察。雲端提供大量資源,可快速創造價值,不必預先投入大量資金,就能執行 AI 和機器學習工作負載。如要盡量提升商業價值,並根據業務目標調整支出,您需要瞭解成本驅動因素、主動最佳化成本、設定支出控管,以及採用 FinOps 做法。

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

定義及評估費用和報酬

如要在 Google Cloud有效管理 AI 和機器學習成本,您必須定義並評估雲端資源成本,以及 AI 和機器學習計畫的業務價值。為協助您精細追蹤支出, Google Cloud 提供完善的帳單和費用管理工具,例如:

  • Cloud Billing 報表和表格
  • Looker Studio 資訊主頁、預算和快訊
  • Cloud Monitoring
  • Cloud Logging

如要根據充分資訊做出資源分配和最佳化決策,請參考下列建議。

設定業務目標和 KPI

根據業務目標和主要成效指標 (KPI),為 AI 和機器學習專案做出適當的技術選擇。

定義策略目標和以投資報酬率為重點的 KPI

確保 AI 和機器學習專案符合收益成長、降低成本、顧客滿意度和效率等策略目標。與利害關係人互動,瞭解業務優先事項。定義明確、可衡量、可達成、相關且有時限 (SMART) 的 AI 和機器學習目標。舉例來說,SMART 目標可以是:「在 6 個月內,使用 AI 聊天機器人將客戶服務的即時通訊處理時間縮短 15%」。

如要達成業務目標並評估投資報酬率 (ROI),請為下列指標類別定義 KPI:

  • 訓練、推論、儲存空間和網路資源的費用,包括特定單位成本 (例如每次推論、資料點或工作的費用)。這些指標有助於深入瞭解效率和成本最佳化商機。您可以使用 Cloud Billing 報表Cloud Monitoring 資訊主頁追蹤這些費用。
  • 業務價值指標,例如收益成長、節省成本、顧客滿意度、效率、準確度和採用率。您可以使用 BigQuery AnalyticsLooker 資訊主頁追蹤這些指標。
  • 特定產業的指標,例如:

    • 零售業:評估收益升幅和流失率
    • 醫療保健業:評估病患時間和病患結果
    • 金融業:評估詐欺減少情形
  • 專案專屬指標。您可以使用 Vertex AI Experiments評估功能追蹤這些指標。

    • 預測型 AI:評估準確度和精確度
    • 生成式 AI:評估採用率、滿意度和內容品質
    • 電腦視覺 AI:評估準確度

培養注重成本的文化,並持續進行最佳化

採用 FinOps 原則,確保每個 AI 和機器學習專案都有預估成本,並在整個生命週期中,有方法可衡量及追蹤實際成本。確保專案的成本和業務效益已指派擁有者,並明確劃分責任歸屬。

詳情請參閱 Google Cloud 架構完善架構的「成本最佳化」支柱,瞭解如何培養成本意識文化

透過疊代和意見回饋提升價值並持續最佳化

直接將 AI 和機器學習應用程式對應至業務目標,並評估投資報酬率。

如要驗證投資報酬率假設,請先進行先導專案,並使用下列疊代最佳化週期:

  1. 持續監控及分析資料:監控 KPI 和費用,找出偏差值和最佳化機會。
  2. 根據資料洞察結果進行調整:根據資料洞察結果,最佳化策略、模型、基礎架構和資源分配。
  3. 反覆修正:根據所學內容和不斷變化的業務需求,調整業務目標和 KPI。這個疊代程序有助於維持關聯性及策略一致性。
  4. 建立意見回饋迴路:與利害關係人一起檢視成效、費用和價值,做為持續最佳化和未來專案規劃的依據。

使用 Cloud Billing 和標籤管理帳單資料

如要有效節省成本,您必須瞭解各項成本元素的來源。本節的建議可協助您使用 Google Cloud工具,深入瞭解 AI 和機器學習費用。您也可以將成本歸因於特定 AI 和 ML 專案、團隊和活動。這些深入分析結果是成本最佳化的基礎。

整理及標記 Google Cloud 資源

  • 以階層結構組織專案和資源,反映您的機構結構和 AI/ML 工作流程。如要追蹤及分析不同層級的費用,請使用機構、資料夾和專案來整理 Google Cloud 資源。詳情請參閱「為登陸區決定資源階層 Google Cloud 」。
  • 為資源套用有意義的標籤。您可以使用的標籤包括專案、團隊、環境、模型名稱、資料集、用途和效能需求。標籤可為帳單資料提供重要背景資訊,並進行精細的費用分析。
  • 在所有 AI 和機器學習專案中,標籤慣例應保持一致。一致的標籤慣例可確保帳單資料井然有序,方便分析。
  • 如要進行詳細分析和產生報表,請將帳單資料匯出至 BigQuery。 BigQuery 具備強大的查詢功能,可讓您分析帳單資料,瞭解相關費用。
  • 如要依標籤、專案或特定時間範圍匯總費用,您可以在 BigQuery 中編寫自訂 SQL 查詢。這類查詢可讓您將費用歸因於特定 AI 和機器學習活動,例如模型訓練、超參數調整或推論。
  • 如要找出費用異常或支出暴增的情況,請使用 BigQuery 的分析功能。這種做法有助於偵測 AI 和 ML 工作負載的潛在問題或效率低落情形。
  • 如要找出及管理意外費用,請使用 Cloud Billing 中的異常偵測資訊主頁
  • 如要根據資源用量在不同團隊或部門之間分配費用,請使用 Google Cloud的費用分配功能。成本分配有助於推動當責文化和資訊公開。
  • 如要深入瞭解支出模式,請查看預先建構的 Cloud Billing 報表。您可以篩選及自訂這些報表,著重分析特定 AI 和 ML 專案或服務。

使用資訊主頁、快訊和報表持續監控資源

如要建立可擴充且彈性的費用追蹤方式,您需要持續監控及產生報表。資訊主頁、快訊和報表是有效追蹤費用的基礎。有了這項基礎,您就能持續存取費用資訊、找出可最佳化的領域,並確保業務目標與費用相符。

建立回報系統

建立定期報表,並與適當的利害關係人分享。

使用 Cloud Monitoring 從各種來源收集指標,包括應用程式、基礎架構和服務,例如 Compute Engine、Google Kubernetes Engine (GKE) 和 Cloud Run 函式。 Google Cloud 如要即時查看指標和記錄,可以使用預先建構的 Cloud Monitoring 資訊主頁,或建立自訂資訊主頁。自訂資訊主頁可讓您定義及新增指標,追蹤系統的特定層面,例如模型效能、API 呼叫或業務層級 KPI。

使用 Cloud Logging 集中收集及儲存應用程式、系統和服務的記錄。 Google Cloud 記錄的用途如下:

  • 追蹤 CPU、記憶體、儲存空間和網路等資源的費用和使用情形。
  • 找出資源過度佈建 (資源未充分運用) 和佈建不足 (資源不足) 的情況。過度佈建會導致不必要的費用。如果資源不足,訓練時間就會變慢,而且可能會導致效能問題。
  • 找出閒置或使用率偏低的資源 (例如 VM 和 GPU),然後採取行動關閉或調整這些資源的大小,以節省費用。
  • 找出費用暴增的情況,偵測資源用量或費用是否突然意外增加。

使用 LookerLooker Studio 建立互動式資訊主頁和報表。將資訊主頁和報表連結至各種資料來源,包括 BigQuery 和 Cloud Monitoring。

根據重要 KPI 設定快訊門檻

針對 KPI,判斷應觸發快訊的門檻。有意義的警示門檻可協助您避免警示疲乏。在 Cloud Monitoring 中建立快訊政策,以便接收與 KPI 相關的通知。舉例來說,當準確度低於特定門檻或延遲時間超過定義的上限時,您會收到通知。以記錄資料為基礎的快訊可即時通知您潛在的費用問題。這類快訊可協助您立即採取修正措施,避免進一步的財務損失。

最佳化資源分配

如要在 Google Cloud中提高 AI 和機器學習工作負載的成本效益,請務必最佳化資源分配。為避免不必要的支出,並確保工作負載擁有執行最佳效能所需的資源,請根據工作負載需求分配資源。

如要最佳化雲端資源的分配,以供 AI 和機器學習工作負載使用,請參考下列建議。

運用自動調度資源功能動態調整資源

使用支援自動調度資源的 Google Cloud 服務,自動調整資源分配,以符合目前需求。自動調度資源有下列優點:

  • 成本和效能最佳化:避免支付閒置資源的費用。同時,自動調度資源功能可確保系統擁有必要的資源,即使在負載高峰期也能發揮最佳效能。
  • 提升效率:讓團隊專注於其他工作。
  • 提高敏捷度:您可以快速因應不斷變化的需求,並維持應用程式的高可用性。

下表摘要說明可用於實作自動調整資源配置的技術,適用於 AI 專案的不同階段。

階段 自動調度資源技術
訓練
  • 使用 Vertex AIGKE 等代管服務,這些服務提供訓練作業的內建自動調度資源功能。
  • 設定自動調度資源政策,根據 CPU 使用率、記憶體用量和工作佇列長度等指標,調度訓練例項數量。
  • 使用自訂調度指標,針對特定工作負載微調自動調度行為。
推論
  • 在可擴充的平台 (例如 Vertex AI InferenceGKE 上的 GPUGKE 上的 TPU) 部署模型。
  • 使用自動調度資源功能,根據要求率、延遲時間和資源用量等指標調整副本數量。
  • 實作負載平衡,在副本之間平均分配流量,確保高可用性。

從小型模型和資料集著手

為降低成本,請盡可能以小規模測試機器學習假設,並採用疊代式方法。這種方法使用較小的模型和資料集,可帶來下列優點:

  • 從一開始就降低成本:減少運算能力、儲存空間和處理時間,有助於在初步實驗和開發階段降低成本。
  • 加快疊代速度:訓練時間較短,因此您可以加快疊代速度、探索替代方法,並更有效率地找出有希望的方向。
  • 降低複雜度:簡化偵錯、分析和解讀結果的程序,加快開發週期。
  • 有效運用資源:降低資源過度佈建的機率。您只需要佈建目前工作負載所需的資源。

請參考下列建議:

  • 先使用樣本資料:根據資料的代表性子集訓練模型。這種做法可讓您評估模型成效,並找出潛在問題,不必處理整個資料集。
  • 使用筆記本進行實驗:先從較小的執行個體開始,再視需要調整規模。您可以使用 Vertex AI Workbench,這是代管的 Jupyter 筆記本環境,非常適合用來實驗不同的模型架構和資料集。
  • 從較簡單或預先訓練的模型開始:使用 Vertex AI Model Garden 探索預先訓練的模型。這類模型所需的運算資源較少。視效能需求,逐步提高複雜度。

    • 使用預先訓練模型執行圖片分類和自然語言處理等工作。如要節省訓練費用,一開始可以先使用較小的資料集微調模型。
    • 使用BigQuery ML 處理結構化資料。BigQuery ML 可讓您直接在 BigQuery 中建立及部署模型。這種做法可充分利用 BigQuery 的查詢計價模式,因此非常適合初步實驗,經濟實惠。
  • 資源調度,充分運用資源:使用 Google Cloud的彈性基礎架構,視需要調度資源。先從較小的執行個體開始,並視需要調整大小或數量。

透過實驗找出資源需求

AI 和機器學習工作負載的資源需求可能差異很大。如要盡量減少資源分配和成本,您必須透過系統化實驗瞭解工作負載的具體需求。如要找出最有效率的模型設定,請測試不同設定並分析其成效。然後根據需求,將用於訓練和服務的資源調整至最適規模。

我們建議採用下列實驗方法:

  1. 從基準開始:根據您對工作負載需求的初步估算,從基準設定開始。如要建立基準,您可以使用新工作負載的費用估算工具,或使用現有的帳單報表。詳情請參閱「Unlock the true cost of enterprise AI on Google Cloud」。
  2. 瞭解配額:開始大規模實驗前,請先熟悉您計畫使用的資源和 API 的 Google Cloud 專案配額。配額會決定您實際可測試的設定範圍。熟悉配額後,您就能在實驗階段使用可用的資源限制。
  3. 有系統地進行實驗:調整 CPU 數量、記憶體量、GPU 和 TPU 數量與類型,以及儲存空間容量等參數。Vertex AI 訓練Vertex AI 預測可讓您試用不同的機器類型和設定。
  4. 監控使用率、費用和效能:追蹤資源使用率、費用,以及訓練時間、推論延遲時間和模型準確度等重要效能指標,瞭解您實驗的每項設定。

    • 如要追蹤資源使用率和效能指標,請使用 Vertex AI 控制台。
    • 如要收集及分析詳細的效能指標,請使用 Cloud Monitoring。
    • 如要查看費用,請使用 Cloud Billing 報表Cloud Monitoring 資訊主頁
    • 如要找出模型中的效能瓶頸並盡量提高資源使用率,請使用 Vertex AI TensorBoard 等剖析工具。
  5. 分析費用:比較各項設定的費用和成效,找出最具成本效益的選項。

  6. 根據配額設定資源門檻和改善目標: 定義門檻,當資源調度開始產生遞減的成效回報時,例如訓練時間或延遲時間的減少幅度極小,但成本卻大幅增加,設定這些門檻時,請考慮專案配額。判斷成本和進一步擴充的潛在配額影響,是否不再能以效能提升為理由。

  7. 反覆調整:根據測試結果,以調整後的設定重複進行實驗。請務必確保資源用量維持在配額範圍內,並符合既定的成本效益門檻。

運用 MLOps 減少效率低落的情況

隨著機構越來越常使用機器學習技術來推動創新和提升效率,有效管理機器學習生命週期就變得至關重要。機器學習運作 (MLOps) 是一組做法,可自動化及簡化機器學習生命週期,從模型開發到部署和監控。

根據成本驅動因素調整機器學習運作

如要運用 MLOps 提升成本效益,請找出機器學習生命週期中的主要成本驅動因素。接著,您可以採用並導入與成本驅動因素一致的 MLOps 做法。優先採用 MLOps 功能,解決影響最大的成本因素。這種做法可確保您能順利節省大量成本。

導入機器學習運作,實現成本最佳化

以下是常見的 MLOps 做法,有助於降低成本:

  • 版本管控:Git 等工具可協助您追蹤程式碼、資料和模型的版本。版本控管可確保結果可重現、促進協作,並避免因版本問題造成成本高昂的重工。
  • 持續整合與持續推送軟體更新 (CI/CD)Cloud BuildArtifact Registry 可讓您實作 CI/CD 管道,自動建構、測試及部署 ML 模型。CI/CD 管道可確保資源得到有效利用,並盡量減少手動介入所產生的相關費用。
  • 可觀測性Cloud MonitoringCloud Logging 可讓您追蹤正式環境中的模型效能、找出問題,以及觸發警報以主動介入。可觀測性可協助您維持模型準確度、最佳化資源分配,並防止代價高昂的停機或效能下降。
  • 模型重新訓練Vertex AI Pipelines 可簡化定期重新訓練模型或模型效能下降時的程序。使用 Vertex AI Pipelines 重新訓練模型,有助於確保模型維持準確度和效率,避免不必要的資源耗用,並維持最佳效能。
  • 自動測試和評估Vertex AI 可協助您加快模型評估速度並標準化。在整個機器學習生命週期中實作自動化測試,確保模型品質和可靠性。這類測試有助於及早發現錯誤、避免實際運作時發生代價高昂的問題,並減少大量手動測試的需求。

詳情請參閱「機器學習運作:機器學習的持續推送軟體更新與自動化管線」。

落實資料管理和治理做法

有效的資料管理和控管做法對於成本最佳化至關重要。妥善整理資料可鼓勵團隊重複使用資料集、避免不必要的重複作業,並減少取得高品質資料所需的工作量。主動管理資料可降低儲存空間費用、提升資料品質,並確保機器學習模型以最相關且有價值的資料進行訓練。

如要實作資料管理和治理做法,請考慮採用下列建議。

建立及採用資料管理架構

隨著 AI 和 ML 日益重要,資料已成為數位轉型機構最有價值的資產。健全的資料治理架構是有效管理 AI 和機器學習工作負載的關鍵,可大幅節省成本。明確定義政策、程序和角色的資料管理架構,可提供結構化方法,在資料的整個生命週期中進行管理。這類架構有助於提升資料品質、強化安全性、提高使用率及減少冗餘。

建立資料管理架構

資料控管有許多現成架構,例如 EDM Council 發布的架構,適用於不同產業和機構規模。選擇並調整符合您特定需求和優先事項的架構。

實作資料治理架構

Google Cloud 提供下列服務和工具,協助您導入完善的資料治理架構:

  • Dataplex Universal Catalog 是智慧型資料架構,可協助您整合分散式資料,並自動執行資料治理,不必將資料集集中在一個位置。這有助於降低資料發布和維護成本、促進資料探索,以及推動重複使用。

  • Dataplex Universal Catalog 也是可擴充的全代管中繼資料管理服務。目錄可確保資料資產可供存取及重複使用,奠定穩固的基礎。

    • 系統會自動將支援 Google Cloud 來源的中繼資料擷取至通用目錄。如要使用 Google Cloud以外的資料來源,請建立自訂項目
    • 如要提升資料資產的探索和管理能力,請使用層面,以業務中繼資料充實技術中繼資料。
    • 確認資料科學家和機器學習從業人員有足夠的權限,可存取 Dataplex Universal Catalog 並使用搜尋功能。
  • BigQuery 共用功能可讓您安全又有效率地跨機構交換資料資產,解決資料可靠性和成本方面的難題。

    • 設定資料交換,並確保精選資料資產可做為商家資訊查看。
    • 使用資料無塵室安全地管理機密資料的存取權,並與外部團隊和機構有效合作,共同進行 AI 和 ML 專案。
    • 請確保資料科學家和機器學習從業人員具備足夠的權限,可查看資料集並發布至 BigQuery 共用。

在整個機器學習生命週期中重複使用資料集和特徵

為大幅提升效率和節省成本,請在多個機器學習專案中重複使用資料集和特徵。避免重複的資料工程和特徵開發工作,有助於貴機構加速模型開發、降低基礎架構成本,並將寶貴的資源用於其他重要工作。

Google Cloud 提供下列服務和工具,協助您重複使用資料集和特徵:

  • 資料和機器學習從業人員可以發布資料產品,盡量讓各團隊重複使用。接著,即可透過 Dataplex Universal Catalog 和 BigQuery 共用功能,探索及使用資料產品。
  • 對於表格和結構化資料集,您可以使用 Vertex AI 特徵儲存庫,透過 BigQuery 提升重複使用率並簡化特徵管理。
  • 您可以在 Cloud Storage 中儲存非結構化資料,並使用 BigQuery 物件資料表和簽署網址控管資料。
  • 您可以在向量搜尋索引中加入中繼資料,藉此管理向量嵌入。

透過機器學習運作機制自動化及簡化作業

採用機器學習運作做法的主要好處是降低技術和人員成本。自動化可協助您避免重複執行機器學習活動,並減少數據資料學家和機器學習工程師的工作量。

如要透過機器學習運作自動化及簡化機器學習開發作業,請考慮下列建議。

自動收集及處理資料,並將程序標準化

為減少機器學習開發工作和時間,請自動化及標準化資料收集和處理技術。

自動收集及處理資料

本節將摘要說明可用於自動收集及處理資料的產品、工具和技術。

找出並選擇適合 AI 和機器學習工作的資料來源:

為每個資料來源選擇擷取工具:

  • Dataflow:用於批次和串流處理來自各種來源的資料,並整合 ML 元件。對於事件驅動架構,您可以將 Dataflow 與 Eventarc 結合,有效處理機器學習資料。如要提升 MLOps 和機器學習工作效率,請使用 GPU 和最適資源配置功能。
  • Cloud Run 函式: 適用於事件驅動型資料擷取,由即時應用程式的資料來源變更觸發。
  • BigQuery:用於經常存取的傳統表格資料擷取作業。

選擇資料轉換和載入工具:

  • 使用 DataflowDataform 等工具,自動執行資料轉換作業,例如特徵縮放、編碼類別變數,以及批次、串流或即時建立新特徵。選取的工具取決於您的需求和所選服務。
  • 使用 Vertex AI 特徵儲存庫自動建立及管理特徵。您可以集中管理特徵,以便在不同模型和專案中重複使用。

標準化資料收集和處理程序

如要探索、瞭解及管理資料資產,請使用中繼資料管理服務,例如 Dataplex Universal Catalog。有助於統一資料定義,確保整個機構的資料一致性。

如要強制執行標準化,並避免維護多個自訂實作項目所產生的費用,請使用自動化訓練管道和調度管理。詳情請參閱下一節。

自動化訓練管道並重複使用現有資產

如要提升機器學習運作的效率和生產力,自動化訓練管道至關重要。 Google Cloud 提供一系列強大的工具和服務,可建構及部署訓練管道,並著重於重複使用現有資產。自動化訓練管道有助於加快模型開發速度、確保一致性,並減少重複作業。

自動化訓練管線

下表說明可用於自動執行訓練管道不同功能的 Google Cloud 服務和功能。

函式 Google Cloud 服務和功能
自動化調度管理:定義由多個步驟和依附元件組成的複雜機器學習工作流程。您可以將每個步驟定義為個別的容器化工作,輕鬆管理及擴充個別工作。
  • 如要建立及自動調度管理管道,請使用 Vertex AI Pipelines 或 Kubeflow Pipelines。這些工具支援簡單的資料轉換、模型訓練、模型部署和管道版本管理。您可以藉此定義步驟之間的依附元件、管理資料流程,以及自動執行整個工作流程。
  • 如要執行複雜的作業工作,且有大量的 CI/CD 和擷取、轉換及載入 (ETL) 需求,請使用 Cloud Composer。 如果您偏好使用 Airflow 進行資料自動調度管理,Cloud Composer 是以 Airflow 為基礎的相容代管服務。
  • 如要管理 Vertex AI Pipelines 以外的管道,請使用 Workflows 執行基礎架構相關工作,例如啟動及停止 VM,或與外部系統整合。
  • 如要自動執行 CI/CD 程序,請搭配使用 Cloud BuildPub/Sub。 您可以設定通知和自動觸發條件,在推送新程式碼或需要訓練新模型時觸發。
  • 如要使用全代管的可擴充管道管理解決方案,請使用 Cloud Data Fusion
版本管理:追蹤及控管不同版本的 pipeline 和元件,確保可重現性和可稽核性。 Artifact Registry 的 Kubeflow Pipelines 存放區中,儲存 Kubeflow 管道範本。
可重複使用:重複使用現有的管道元件和構件,例如準備好的資料集和訓練好的模型,加快開發速度。 將管道範本儲存在 Cloud Storage 中,並在整個機構中分享。
監控:監控管道執行作業,找出並解決任何問題。 使用 Cloud Logging 和 Cloud Monitoring。詳情請參閱「使用資訊主頁、快訊和報表持續監控資源」。

擴大管道以外的重複使用範圍

尋找機會,將可重複使用的項目擴展到訓練 pipeline 以外。以下是 Google Cloud 功能的範例,可讓您重複使用 ML 功能、資料集、模型和程式碼。

  • Vertex AI 特徵儲存庫是可供整理、儲存和提供機器學習特徵的集中存放區。您可以在不同專案和模型中重複使用特徵,提升一致性並減少特徵工程工作。您可以儲存、分享及存取線上和離線用途的功能。
  • Vertex AI 資料集可讓團隊集中建立及管理資料集,因此貴機構可以盡量重複使用資料,並減少資料重複。團隊可以使用 Dataplex Universal Catalog 搜尋及探索資料集。
  • Vertex AI Model Registry 可讓您儲存、管理及部署訓練好的模型。模型登錄可讓您在後續管道或線上預測中重複使用模型,充分利用先前的訓練成果。
  • 自訂容器可讓您將訓練程式碼和依附元件封裝到容器中,並將容器儲存在 Artifact Registry。自訂容器可讓您在不同管道和專案中,提供一致且可重現的訓練環境。

使用 Google Cloud 服務評估及調整模型

Google Cloud 提供強大的工具和服務套件,可簡化及自動化模型評估和調整作業。這些工具和服務可協助您縮短投入生產的時間,並減少持續訓練和監控所需的資源。使用這些服務,AI 和機器學習團隊就能以較少的昂貴疊代次數提升模型效能、更快獲得結果,並盡量減少運算資源浪費。

使用資源效率高的模型評估和實驗

在擴大解決方案規模前,請先透過實驗展開 AI 專案。在實驗中,追蹤各種中繼資料,例如資料集版本、模型參數和模型類型。如要進一步重現及比較結果,請使用中繼資料追蹤功能和程式碼版本控管功能,類似於 Git 的功能。為避免遺漏資訊或在正式環境中部署錯誤版本,請先使用 Vertex AI Experiments,再全面部署或訓練工作。

Vertex AI Experiments 可讓您執行下列操作:

  • 透過容易使用的 UI 和 API,簡化並自動化中繼資料追蹤和探索作業,以利處理正式版工作負載。
  • 分析模型的成效指標,並比較多個模型的指標。

模型訓練完成後,請持續監控一段時間,瞭解模型對傳入資料的成效和資料偏移情形。如要簡化這個程序,請使用 Vertex AI Model Monitoring,直接存取 Model Registry 中建立的模型。此外,模型監控功能也會透過線上和批次預測,自動監控資料和結果。您可以將結果匯出至 BigQuery,進行進一步分析和追蹤。

選擇最佳策略,自動執行訓練

如要調整超參數,建議採取下列做法:

  • 如要自動找出模型的最佳超參數,請使用 Vertex AI 超參數調整。Vertex AI 會使用進階演算法探索超參數空間,並找出最佳設定。
  • 如要有效率地調整超參數,請考慮使用貝氏最佳化技術,特別是在處理複雜模型和大型資料集時。

如要進行分散式訓練,建議採取下列方法:

  • 如果是大型資料集和複雜模型,請使用 Vertex AI 的分散式訓練基礎架構。這種做法可讓您在多部機器上訓練模型,大幅縮短訓練時間並降低相關成本。使用下列工具:

  • 選擇支援分散式訓練和有效運用資源的機器學習最佳化架構,例如 Keras 和 PyTorch。

使用 Explainable AI

瞭解模型做出特定決策的原因,並找出潛在偏誤或可改進之處,是至關重要的。使用 Vertex Explainable AI 深入瞭解模型的預測結果。Vertex Explainable AI 可自動產生與 Vertex AI 實驗相關的特徵和範例說明。

  • 以特徵為準:如要瞭解哪些特徵對模型預測結果的影響最大,請分析特徵歸因。 這項瞭解有助於引導特徵工程工作,並提升模型可解讀性。
  • 以範例為準: Vertex AI 會使用最鄰近搜尋,傳回與輸入內容最相似的範例清單 (通常來自訓練集)。由於類似的輸入內容通常會產生類似的預測結果,因此您可以運用這些說明來探索及解釋模型的行為。

使用代管服務和預先訓練模型

採用漸進式做法來選取及開發模型。這種做法可避免每次都從頭開始,進而節省過多費用。如要控管費用,請使用機器學習架構、代管服務和預先訓練的模型。

如要充分發揮代管服務和預先訓練模型的價值,請參考下列建議。

使用筆記本探索及實驗

筆記本環境對於經濟實惠的 ML 實驗至關重要。筆記本提供互動式協作空間,方便資料科學家和工程師探索資料、開發模型、分享知識,以及有效率地疊代。透過筆記本協作及分享知識,可大幅加快開發、程式碼審查和知識轉移的速度。筆記本有助於簡化工作流程,減少重複作業。

您不必為開發環境採購及管理昂貴的硬體,而是可以運用 Vertex AI Workbench 和 Colab Enterprise 的可擴充隨選基礎架構。

  • Vertex AI Workbench 是 Jupyter 筆記本開發環境,適用於整個資料科學工作流程。您可以透過執行個體的 Jupyter 筆記本,與 Vertex AI 和其他服務互動。 Google CloudVertex AI Workbench 整合功能和功能可協助您執行下列操作:

    • 使用 BigQuery 和 Cloud Storage 整合功能,在 Jupyter 筆記本中存取及探索資料。
    • 使用在 Vertex AI 上執行的排定程式碼,自動更新模型。
    • 在 Dataproc 叢集上執行筆記本,快速處理資料。
    • 使用 Vertex AI Pipelines,將筆記本做為管道中的步驟執行。
  • Colab Enterprise 是協作式的代管筆記本環境,具備 Google Cloud的安全性和法規遵循功能。如果專案的優先事項包括協作開發,以及減少管理基礎架構所需的心力,Colab Enterprise 就是理想選擇。Colab Enterprise 整合了Google Cloud 服務和 AI 輔助功能,後者採用 Gemini 技術。Colab Enterprise 可讓您執行下列操作:

    • 在筆記本中工作,不必管理基礎架構。
    • 與單一使用者、Google 群組或 Google Workspace 網域共用筆記本,您可以透過 Identity and Access Management (IAM) 控管筆記本存取權。
    • 與 Vertex AI 和 BigQuery 內建的功能互動。

如要追蹤變更並在必要時還原至先前的版本,您可以將筆記本與 Git 等版本管控工具整合。

從現有和預先訓練的模型開始

從頭開始訓練複雜模型 (尤其是深度學習模型) 需要大量運算資源和時間。如要加快模型選取和開發程序,請從現有和預先訓練的模型著手。這些模型是以大量資料集訓練而成,因此不必從頭訓練模型,可大幅降低成本並縮短開發時間。

降低訓練和開發成本

為每項機器學習工作選取合適的模型或 API,然後結合這些模型或 API,建立端對端機器學習開發程序。

Vertex AI Model Garden 提供大量預先訓練模型,可用於圖像分類、物件偵測和自然語言處理等工作。模型會分組為下列類別:

Google Cloud 提供 AI 和機器學習 API,開發人員不必從頭建構模型,就能將強大的 AI 功能整合至應用程式。

  • Cloud Vision API 可讓您從圖片取得深入分析。這項 API 非常適合用於圖片分析、內容審查和自動資料輸入等應用程式。
  • Cloud Natural Language API 可分析文字,瞭解其結構和意義。這項 API 適用於顧客意見回饋分析、內容分類和瞭解社群媒體趨勢等工作。
  • Speech-to-Text API 可將音訊轉換為文字。這項 API 支援多種語言和方言。
  • Video Intelligence API 會分析影片內容,找出物件、場景和動作。使用這個 API 進行影片內容分析、內容審核和影片搜尋。
  • Document AI API 可處理文件,以擷取、分類及解讀資料。這項 API 可協助您自動執行文件處理工作流程。
  • Dialogflow API 可用於建立對話式介面,例如聊天機器人和語音助理。您可以使用這項 API 建立客戶服務機器人和虛擬助理。
  • Vertex AI 中的 Gemini API 提供 Google 最強大且用途廣泛的 AI 模型。

降低微調成本

如要減少對大量資料和運算時間的需求,請使用特定資料集微調預先訓練模型。建議採取下列做法:

  • 遷移學習:運用預先訓練模型所學的知識來執行新工作,不必從頭開始。這種做法需要的資料和運算時間較少,有助於降低成本。
  • 適應器調整 (高效參數調整): 讓模型適應新工作或領域,不必進行完整微調。這種方法需要的運算資源和資料集都少得多。
  • 監督式微調: 使用加上標籤的資料集調整模型行為。這種做法可簡化基礎架構管理,以及自訂訓練作業所需的開發工作。

使用 Vertex AI Studio 探索及實驗

Vertex AI Studio 可讓您快速測試、設計及部署生成式 AI 應用程式。

  • 與 Model Garden 整合:可快速存取最新模型,並有效率地部署模型,節省時間和成本。
  • 統一存取專用模型:集中管理各種預先訓練模型和 API 的存取權,包括用於對話、文字、媒體、翻譯和語音的模型。這個統一存取方式可協助您減少搜尋及整合個別服務所花的時間。

使用代管服務訓練或提供模型

代管服務可協助您降低模型訓練成本,並簡化基礎架構管理作業,讓您專注於模型開發和最佳化。這種做法可大幅節省成本,並提高效率。

減輕作業負擔

如要降低基礎架構管理的複雜度和成本,請使用下列代管服務:

  • Vertex AI 訓練提供全代管環境,可大規模訓練模型。您可以從各種預先建構的容器中選擇熱門的機器學習架構,也可以使用自己的自訂容器。 Google Cloud 會處理基礎架構佈建、擴充和維護作業,因此您只需負擔較低的營運成本。
  • Vertex AI 預測可處理基礎架構擴充、負載平衡和要求路徑。您可享有高可用性和效能,不必手動介入。
  • Vertex AI 上的 Ray 提供全代管的 Ray 叢集。您可以使用叢集執行複雜的自訂 AI 工作負載,進行大量運算 (超參數調整、模型微調、分散式模型訓練,以及根據人類回饋進行強化學習),無須管理自己的基礎架構。

善用代管服務,充分運用資源

如要瞭解如何有效運用資源,請參閱「最佳化資源用量」。

貢獻者

作者:

其他貢獻者:

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

這份文件位於架構完善架構:AI 和機器學習觀點,概述了相關原則和建議,可協助您在 Google Cloud上最佳化 AI 和機器學習工作負載的效能。本文中的建議與 Google Cloud 架構完善架構的效能最佳化支柱一致。

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

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

將業務目標轉換為成效目標

如要做出可提升效能的架構決策,請先明確設定業務目標,然後設計 AI 和機器學習系統,提供支援業務目標和優先事項所需的技術效能。技術團隊必須瞭解成效目標與業務目標之間的對應關係。

請參考下列建議:

  • 將業務目標轉化為技術需求: 將 AI 和機器學習系統的業務目標轉化為具體的技術效能需求,並評估未達到這些需求所造成的影響。舉例來說,如果應用程式會預測客戶流失,機器學習模型應在準確率和喚回率等標準指標方面表現良好,應用程式應符合低延遲等運算需求。
  • 在模型生命週期的所有階段監控成效:在模型部署後的實驗和訓練期間,監控主要成效指標 (KPI),並觀察與業務目標的任何偏差。
  • 自動評估,確保可重現且標準化:有了標準化且可比較的實驗評估平台和方法,工程師就能加快提升成效的速度。

執行並追蹤頻繁的實驗

如要將創新和創意轉化為成效提升,您需要支援實驗的文化和平台。由於 AI 和機器學習技術不斷快速發展,因此效能提升是持續進行的過程。為維持快速的疊代程序,您需要將實驗空間與訓練和服務平台分開。標準化且健全的實驗程序非常重要。

請參考下列建議:

  • 建構實驗環境:如要提升效能,需要專用、功能強大且具互動性的環境,支援機器學習管道的實驗和協作開發。
  • 將實驗融入文化:在任何正式部署前執行實驗。反覆發布新版本,並持續收集效能資料。嘗試不同的資料類型、特徵轉換、演算法和超參數

建構及自動化訓練和服務服務

訓練及提供 AI 模型是 AI 服務的核心元件。您需要穩固的平台和做法,才能快速可靠地建立、部署及提供 AI 模型。投入時間和精力,為核心 AI 訓練和服務工作建立基礎平台。這些基礎平台有助於減少團隊的時間和精力,並從中長期來看提升輸出內容的品質。

請參考下列建議:

  • 使用訓練服務的 AI 專用元件:這類元件包括高效能運算和 MLOps 元件,例如特徵商店、模型登錄、中繼資料商店和模型效能評估服務。
  • 使用預測服務的 AI 專用元件:這類元件提供高效能且可擴充的資源、支援特徵監控,並可監控模型成效。如要避免及管理效能下降問題,請實作可靠的部署和回溯策略。

根據效能需求選擇設計

選擇改善效能的設計時,請仔細評估這些選擇是否符合業務需求,或是否會造成浪費和反效果。如要選擇合適的基礎架構、模型或設定,請找出效能瓶頸,並評估這些瓶頸與效能指標的關聯。舉例來說,即使使用效能極高的 GPU 加速器,訓練工作仍可能因儲存層的資料 I/O 問題,或模型本身的效能限制而出現效能瓶頸。

請參考下列建議:

  • 根據效能目標調整硬體用量:如要訓練及提供符合效能需求的機器學習模型,您必須在運算、儲存空間和網路層級最佳化基礎架構。您必須評估並瞭解影響成效目標的變數。訓練和推論的變數不同。
  • 著重於工作負載的特定需求:將效能最佳化工作重點放在 AI 和機器學習工作負載的獨特需求。仰賴代管服務的底層基礎架構效能。
  • 選擇合適的訓練策略:我們提供多種預先訓練和基礎模型,且經常發布更多這類模型。選擇可為工作提供最佳成效的訓練策略。決定是否要建構自己的模型、根據資料調整預先訓練的模型,或是使用預先訓練的模型 API。
  • 瞭解成效最佳化策略可能會出現邊際效益遞減的情況:如果特定成效最佳化策略無法提供可評估的業務價值增幅,請停止採用該策略。

如要創新、排解問題及調查效能問題,請建立設計選擇與效能結果之間的明確連結。除了實驗外,您還必須可靠地記錄資產、部署作業、模型輸出內容,以及產生輸出內容的設定和輸入內容的沿襲。

請參考下列建議:

  • 建立資料和模型沿襲系統:所有已部署的資產及其成效指標,都必須連結回資料、設定、程式碼,以及導致部署系統的選擇。此外,模型輸出內容必須連結至特定模型版本,以及輸出內容的產生方式。
  • 使用可解釋性工具提升模型效能:採用並標準化模型探索和可解釋性工具與基準。這些工具可協助機器學習工程師瞭解模型行為、提升效能或移除偏誤。

貢獻者

作者:

其他貢獻者: