這份Google Cloud 架構完善架構文件說明相關原則和建議,協助您在 Google Cloud 中設計、建構及管理 AI 和機器學習工作負載,以達成營運、安全性、可靠性、成本和效能目標。
這份文件的目標對象包括決策者、架構師、管理員、開發人員和營運人員,他們負責在 Google Cloud中設計、建構、部署及維護 AI 和機器學習工作負載。
以下頁面說明適用於 AI 和 ML 的原則和建議,並依據 Well-Architected Framework 的每個支柱分類:
貢獻者
作者:
- Benjamin Sadik | AI 和機器學習專員客戶工程師
- Charlotte Gistelinck 博士 | 合作夥伴工程師
- Filipe Gracio 博士 | 客戶工程師
- Isaac Lo | AI 業務開發經理
- Kamilla Kurta | GenAI/ML Specialist Customer Engineer
- Mohamed Fawzi | 比荷盧經濟聯盟安全與法規遵循主管
- Rick (Rugui) Chen | AI 基礎架構解決方案架構師
- Sannya Dang | AI 解決方案架構師
其他貢獻者:
- Daniel Lees | 雲端安全架構師
- Gary Harmson | 首席架構師
- Jose Andrade | 企業基礎架構客戶工程師
- Kumar Dhanagopal | 跨產品解決方案開發人員
- Marwan Al Shawi | 合作夥伴客戶工程師
- Nicolas Pintaux | 客戶工程師、應用程式現代化專家
- Radhika Kanakam | Cloud GTM 資深專案經理
- Ryan Cox | 首席架構師
- Samantha He | 技術文件撰稿者
- Stef Ruinard | 生成式 AI 領域解決方案架構師
- Wade Holmes | 全球解決方案總監
- Zach Seils | 網路專員
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 Build 和 Cloud 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。如果您為應用程式程式碼執行測試套件,確保基礎架構、依附元件和模型封裝符合部署需求,這項服務就特別有效。
機器學習系統通常需要程式碼測試以外的額外步驟。舉例來說,您需要對模型進行壓力測試,瞭解模型在不同負載下的表現、執行大量評估作業,評估模型在不同資料集上的成效,以及在重新訓練前驗證資料完整性。如要模擬實際工作負載進行壓力測試,可以使用 Locust、Grafana k6 或 Apache 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 和 ML 系統所有元件的記錄。
- 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 Engine 和 GKE 中設定自動調度資源政策。如果尖峰模式可預測,請考慮使用預測式自動調度資源功能。如要根據應用程式專屬信號觸發自動調度,請使用 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 搭配 Dataflow 或 Dataproc 進行分散式資料預先處理、加速模型訓練、可擴充的超參數調整、強化學習,以及平行化批次預測。
貢獻者
作者:
- Charlotte Gistelinck 博士 | 合作夥伴工程師
- Sannya Dang | AI 解決方案架構師
- Filipe Gracio 博士 | 客戶工程師
其他貢獻者:
- Gary Harmson | 首席架構師
- Kumar Dhanagopal | 跨產品解決方案開發人員
- Marwan Al Shawi | 合作夥伴客戶工程師
- Ryan Cox | 首席架構師
- Stef Ruinard | 生成式 AI 領域解決方案架構師
AI 和機器學習觀點:安全性
這份架構完善架構:AI 和機器學習觀點文件概述了相關原則和建議,可確保 AI 和機器學習部署作業符合貴機構的安全性和法規遵循需求。本文中的建議與 Google Cloud 架構完善架構的安全性支柱一致。
安全地部署 AI 和 ML 工作負載是至關重要的需求,尤其是在企業環境中。為滿足這項需求,您需要採取全方位的安全防護措施,從 AI 和機器學習解決方案的初步概念化階段開始,一直延伸到開發、部署和持續營運階段。 Google Cloud 提供多種強大的工具和服務,可協助您保護 AI 和機器學習工作負載。
設定明確的目標和需求
在設計和開發流程初期整合必要的安全性和法規遵循控制項,會比在開發完成後再新增控制項更輕鬆。在設計和開發程序開始時,請根據特定風險環境和特定業務優先事項做出適當決策。
請參考下列建議:
- 從一開始就找出潛在攻擊媒介,並從安全性和法規遵循的角度著手。設計及演進 AI 系統時,請持續追蹤攻擊面、潛在風險和您可能面臨的義務。
- 確保 AI 和機器學習安全防護工作與業務目標一致,並將安全防護納入整體策略。瞭解安全性選擇對主要業務目標的影響。
確保資料安全,避免遺失或誤用
資料是寶貴的機密資產,必須妥善保護。資料安全有助於維護使用者信任感、支援業務目標,以及符合法規遵循要求。
請參考下列建議:
- 請勿收集、保留或使用與業務目標無關的資料。如有可能,請使用合成或完全匿名資料。
- 監控資料收集、儲存和轉換作業。維護所有資料存取和操控活動的記錄。這些記錄有助於稽核資料存取情形、偵測未經授權的存取嘗試,以及防範未經授權的存取。
- 根據使用者角色實作不同層級的存取權 (例如無存取權、唯讀或寫入)。請務必根據最低權限原則指派權限。使用者必須只擁有執行角色活動所需的最低權限。
- 實施加密、安全周邊和資料移動限制等措施。這些措施有助於防止資料遭竊和遺失。
- 防範機器學習訓練系統的資料汙染。
確保 AI pipeline 安全無虞,且不會遭到竄改
AI 和機器學習程式碼,以及程式碼定義的管道都是重要資產。未受保護的程式碼可能會遭到竄改,導致資料外洩、不符法規,以及重要業務活動中斷。確保 AI 和機器學習程式碼安全無虞,有助於維護模型和模型輸出內容的完整性和價值。
請參考下列建議:
- 在模型開發期間,請採用安全的程式設計做法,例如管理依附元件或驗證及清理輸入內容,以防範安全漏洞。
- 保護管道程式碼和模型構件 (例如檔案、模型權重和部署規格),避免未經授權的存取行為。根據使用者角色和需求,為每個構件實作不同存取層級。
- 強制執行資產和管道執行的沿襲和追蹤。這項強制措施可協助您符合法規遵循要求,並避免影響生產系統。
使用安全工具和構件,在安全系統上部署
確保程式碼和模型在安全環境中執行,該環境具有完善的存取控制系統,並為部署在環境中的工具和構件提供安全保障。
請參考下列建議:
- 在安全環境中訓練及部署模型,並採取適當的存取控管和保護措施,防止未經授權的使用或操弄行為。
- 針對 AI 專屬構件 (例如模型和軟體套件),遵循標準的軟體構件供應鏈級別 (SLSA) 指南。
- 建議使用經過驗證的預建容器映像檔,這些映像檔專為 AI 工作負載設計。
保護及監控輸入內容
AI 系統需要輸入內容,才能做出預測、生成內容或自動執行動作。部分輸入內容可能造成風險,或做為攻擊向量,因此必須偵測並清除。及早偵測潛在的惡意輸入內容,有助於確保 AI 系統安全無虞,並按照預期運作。
請參考下列建議:
- 導入安全做法,開發及管理生成式 AI 系統的提示,並確保提示經過有害意圖篩選。
- 監控預測或生成系統的輸入內容,避免發生端點超載或系統無法處理的提示等問題。
- 確保只有已部署系統的指定使用者可以存取。
監控、評估及準備回覆輸出內容
AI 系統可產生輸出內容,協助、改善或自動化人類決策,因此能帶來價值。為維護 AI 系統和應用程式的完整性和可信度,請務必確保輸出內容安全無虞,且符合預期參數。此外,您也需要制定事件回應計畫。
請參考下列建議:
- 監控實際工作環境中的 AI 和 ML 模型輸出內容,並找出任何效能、安全性和法規遵循問題。
- 導入健全的指標和安全措施,評估模型成效,例如在預測模型中找出超出範圍的生成回覆或極端輸出內容。收集使用者對模型成效的意見回饋。
- 實作完善的快訊和事件回應程序,解決任何潛在問題。
貢獻者
作者:
- Kamilla Kurta | GenAI/ML Specialist Customer Engineer
- Filipe Gracio 博士 | 客戶工程師
- Mohamed Fawzi | 比荷盧經濟聯盟安全與法規遵循主管
其他貢獻者:
- Daniel Lees | 雲端安全架構師
- Kumar Dhanagopal | 跨產品解決方案開發人員
- Marwan Al Shawi | 合作夥伴客戶工程師
- Wade Holmes | 全球解決方案總監
AI 和機器學習觀點:可靠性
這份架構完善的 AI 和機器學習觀點文件,概述了在 Google Cloud上設計及運作可靠 AI 和機器學習系統的原則和建議。本課程將探討如何將進階可靠性做法和可觀測性整合至架構藍圖。本文中的建議符合 Google Cloud 架構完善架構的可靠性支柱。
在快速發展的 AI 和機器學習領域,可靠的系統是確保顧客滿意度和達成業務目標的必要條件。您需要強大、可靠且能適應預測型機器學習和生成式 AI 獨特需求的 AI 和機器學習系統。如要處理 MLOps 的複雜性 (從開發到部署,再到持續改善),您需要採用「可靠性優先」的方法。 Google Cloud 提供專為 AI 打造的基礎架構,符合網站可靠性工程 (SRE) 原則,並為可靠的 AI 和機器學習系統奠定堅實基礎。
確保基礎架構可擴充且具備高可用性
透過架構設計,確保應用程式具備擴充性和可用性,即使需求量不同,服務也不會中斷或效能降低。也就是說,即使基礎架構中斷或流量過高,使用者仍可存取您的 AI 服務。
請參考下列建議:
- 設計 AI 系統時,請加入自動和動態調整資源配置功能,以因應需求波動。這有助於確保最佳效能,即使在流量高峰期也不例外。
- 透過負載測試和效能監控,主動管理資源並預測未來需求。運用歷來資料和預測分析,針對資源分配做出明智決策。
- 採用多可用區和多區域部署原型,在 Google Cloud 中實作備援和複製作業,設計高可用性和容錯能力。
- 將傳入流量分配給多個 AI 和 ML 服務與端點執行個體。負載平衡有助於避免任何單一執行個體過載,並確保效能和可用性一致。
採用模組化和鬆耦合架構
如要確保 AI 系統不會因個別元件故障而失效,請使用模組化架構。舉例來說,您可以將資料處理和資料驗證元件設計為獨立模組。如果特定元件發生故障,模組化架構有助於盡量減少停機時間,讓團隊更快開發及部署修正程式。
請參考下列建議:
- 將 AI 和機器學習系統分成小型獨立模組或元件。這種方法可提高程式碼的重複使用率、簡化測試和維護作業,並讓您獨立開發及部署個別元件。
- 設計鬆耦合模組時,請使用明確定義的介面。這種做法可減少依附元件,讓您獨立進行更新和變更,而不影響整個系統。
- 規劃優雅降級。當某個元件故障時,系統的其他部分必須繼續提供足夠的功能。
- 使用 API 在模組之間建立明確界線,並隱藏模組層級的實作詳細資料。這個方法可讓您更新或替換個別元件,而不會影響與系統其他部分的互動。
建構自動化 MLOps 平台
有了自動化 MLOps 平台,模型生命週期的階段和輸出內容會更加可靠。透過提升一致性、鬆散耦合和模組化,並以程式碼表示作業和基礎架構,您可以移除容易出錯的手動步驟,維護更穩健可靠的 AI 和機器學習系統。
請參考下列建議:
- 自動執行模型開發生命週期,包括準備和驗證資料、訓練、評估、部署及監控模型。
- 管理基礎架構即程式碼 (IaC)。這種做法可有效控管版本、在必要時快速復原,以及重複部署。
- 使用相關資料驗證模型行為是否符合預期。自動監控模型成效,並針對非預期的輸出內容建立適當的快訊。
- 驗證 AI 和機器學習管線的輸入和輸出內容。例如,驗證資料、設定、指令引數、檔案和預測結果。針對非預期或不允許的值設定快訊。
- 為模型端點採用受管理版本控制策略。這種策略可讓您逐步發布版本,並在發生問題時快速復原。
透過資料和模型管理機制,維持信任和控管權
AI 和機器學習系統的可靠性取決於資料和模型的信任與控管能力。AI 輸出內容可能無法滿足需求,但不會發出任何警示。舉例來說,輸出內容可能在形式上一致,但可能不正確或不適當。導入追溯功能和嚴格管理機制,確保輸出內容可靠且值得信賴。
請參考下列建議:
- 使用資料和模型目錄,有效追蹤及管理資產。為方便追蹤和稽核,請在整個生命週期中維護資料和模型版本的完整記錄。
- 實施嚴格的存取控管和稽核追蹤,保護機密資料和模型。
- 解決 AI 偏誤的重大問題,特別是生成式 AI 應用程式。如要建立信任感,請盡量公開模型輸出內容的相關資訊,並說明輸出內容的來由。
- 自動產生特徵統計資料,並實作異常偵測功能,主動找出資料問題。為確保模型可靠性,請建立機制來偵測及減輕資料分布變化造成的影響。
全面實施 AI 和機器學習觀測與可靠性做法
如要持續改善 AI 作業,您需要定義有意義的可靠性目標,並評估進展。可觀測性是可靠系統的基礎要素。觀測能力可協助您管理持續進行的作業和重大事件。妥善導入可觀測性,有助於為使用者建構及維護可靠的服務。
請參考下列建議:
- 追蹤處理器 (CPU、GPU 和 TPU) 的基礎架構指標,以及記憶體用量、網路延遲和磁碟用量等其他資源的指標。執行負載測試和效能監控。運用監控結果和指標,管理 AI 和機器學習系統的資源調度和容量。
- 設定可靠性目標,並追蹤應用程式指標。測量您建構的 AI 應用程式的處理量和延遲時間等指標。監控應用程式和公開端點的使用模式。
- 建立模型專屬指標 (例如準確度或安全指標),以評估模型可靠性。長期追蹤這些指標,找出任何偏移或退化情形。如要有效率地進行版本控管和自動化作業,請以程式碼形式定義監控設定。
- 定義及追蹤業務層級指標,瞭解模型和可靠性對業務成果的影響。如要評估 AI 和 ML 服務的可靠性,請考慮採用 SRE 方法,並定義服務等級目標 (SLO)。
貢獻者
作者:
- Rick (Rugui) Chen | AI 基礎架構解決方案架構師
- Filipe Gracio 博士 | 客戶工程師
其他貢獻者:
- Jose Andrade | 企業基礎架構客戶工程師
- Kumar Dhanagopal | 跨產品解決方案開發人員
- Marwan Al Shawi | 合作夥伴客戶工程師
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 Analytics 和 Looker 資訊主頁追蹤這些指標。
特定產業的指標,例如:
- 零售業:評估收益升幅和流失率
- 醫療保健業:評估病患時間和病患結果
- 金融業:評估詐欺減少情形
專案專屬指標。您可以使用 Vertex AI Experiments 和評估功能追蹤這些指標。
- 預測型 AI:評估準確度和精確度
- 生成式 AI:評估採用率、滿意度和內容品質
- 電腦視覺 AI:評估準確度
培養成本意識,並持續進行最佳化
採用 FinOps 原則,確保每個 AI 和機器學習專案都有預估成本,並在整個生命週期中,有方法可衡量及追蹤實際成本。確保專案的成本和業務效益已指派擁有者,並明確劃分責任歸屬。
詳情請參閱 Google Cloud 架構完善架構的「成本最佳化」支柱,瞭解如何培養成本意識文化。
透過疊代和意見回饋提升價值並持續最佳化
直接將 AI 和機器學習應用程式對應至業務目標,並評估投資報酬率。
如要驗證投資報酬率假設,請先進行先導專案,並使用下列疊代最佳化週期:
- 持續監控及分析資料:監控 KPI 和費用,找出偏差值和最佳化機會。
- 根據資料洞察結果進行調整:根據資料洞察結果,最佳化策略、模型、基礎架構和資源分配。
- 反覆調整:根據所學內容和不斷變化的業務需求,調整業務目標和 KPI。這個疊代程序有助於維持關聯性及策略一致性。
- 建立意見回饋迴路:與利害關係人一同檢視成效、費用和價值,做為持續最佳化和未來專案規劃的依據。
使用 Cloud Billing 和標籤管理帳單資料
如要有效節省成本,您必須瞭解各項成本元素的來源。本節的建議可協助您使用 Google Cloud工具,深入瞭解 AI 和機器學習費用。您也可以將成本歸因於特定 AI 和 ML 專案、團隊和活動。這些洞察資料是成本最佳化的基礎。
整理及標記 Google Cloud 資源
- 以階層結構組織專案和資源,反映您的機構結構和 AI/ML 工作流程。如要追蹤及分析不同層級的費用,請使用機構、資料夾和專案來整理 Google Cloud 資源。詳情請參閱「為登陸區決定資源階層 Google Cloud 」。
- 為資源套用有意義的標籤。您可以使用的標籤包括專案、團隊、環境、模型名稱、資料集、用途和效能需求。標籤可為帳單資料提供實用背景資訊,並進行精細的費用分析。
- 在所有 AI 和機器學習專案中,標籤慣例應保持一致。一致的標籤慣例可確保帳單資料井然有序,方便分析。
使用帳單相關工具
- 如要進行詳細分析和產生報表,請將帳單資料匯出至 BigQuery。 BigQuery 具備強大的查詢功能,可讓您分析帳單資料,瞭解相關費用。
- 如要依標籤、專案或特定時間範圍匯總費用,您可以在 BigQuery 中編寫自訂 SQL 查詢。這類查詢可讓您將費用歸因於特定 AI 和機器學習活動,例如模型訓練、超參數調整或推論。
- 如要找出費用異常或支出暴增的情況,請使用 BigQuery 的分析功能。這種做法有助於偵測 AI 和機器學習工作負載的潛在問題或效率低落情況。
- 如要找出及管理意外費用,請使用 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),然後採取行動關閉或調整這些資源的大小,以節省費用。
- 找出費用暴增的情況,偵測資源用量或費用是否突然意外增加。
使用 Looker 或 Looker Studio 建立互動式資訊主頁和報表。將資訊主頁和報表連結至各種資料來源,包括 BigQuery 和 Cloud Monitoring。
根據重要 KPI 設定快訊門檻
針對 KPI,判斷應觸發快訊的門檻。有意義的警示門檻可協助您避免警示疲乏。在 Cloud Monitoring 中建立快訊政策,以便接收與 KPI 相關的通知。舉例來說,當準確度低於特定門檻或延遲時間超過定義的上限時,您會收到通知。以記錄資料為基礎的快訊可即時通知您潛在的費用問題。這類快訊可協助您立即採取修正措施,避免進一步的財務損失。
最佳化資源分配
如要在 Google Cloud中提高 AI 和機器學習工作負載的成本效益,請務必最佳化資源分配。為避免不必要的支出,並確保工作負載有足夠的資源可發揮最佳效能,請根據工作負載需求分配資源。
如要最佳化雲端資源的分配,以供 AI 和機器學習工作負載使用,請參考下列建議。
運用自動調度資源功能動態調整資源
使用支援自動調度資源的 Google Cloud 服務,自動調整資源分配,以符合目前需求。自動調度資源有下列優點:
- 成本和效能最佳化:避免支付閒置資源的費用。同時,自動調度資源功能可確保系統具備必要的資源,即使在負載量達到高峰時,也能發揮最佳效能。
- 提升效率:讓團隊專注於其他工作。
- 提高靈活度:您可以快速因應不斷變化的需求,並維持應用程式的高可用性。
下表摘要說明可用於實作自動調整資源配置的技術,適用於 AI 專案的不同階段。
階段 | 自動調度資源技術 |
---|---|
訓練 | |
推論 |
|
從小型模型和資料集著手
為降低成本,請盡可能以小規模測試機器學習假設,並採用疊代式方法。使用較小的模型和資料集,可帶來下列優點:
- 從一開始就降低成本:減少運算能力、儲存空間和處理時間,有助於在初步實驗和開發階段降低成本。
- 加快疊代速度:訓練時間較短,因此您可以加快疊代速度、探索替代方法,並更有效率地找出有希望的方向。
- 降低複雜度:簡化偵錯、分析和解讀結果的程序,加快開發週期。
- 有效運用資源:降低資源過度佈建的機率。您只需要佈建目前工作負載所需的資源。
請參考下列建議:
- 先使用樣本資料:根據資料的代表性子集訓練模型。這種做法可讓您評估模型成效,並找出潛在問題,不必處理整個資料集。
- 使用筆記本進行實驗:先從較小的執行個體著手,再視需要調整規模。您可以使用 Vertex AI Workbench,這是代管的 Jupyter 筆記本環境,非常適合用來實驗不同的模型架構和資料集。
從較簡單或預先訓練的模型開始:使用 Vertex AI Model Garden 探索預先訓練的模型。這類模型所需的運算資源較少。視效能需求,逐步提高複雜度。
- 使用預先訓練模型執行圖片分類和自然語言處理等工作。如要節省訓練費用,一開始可以先使用較小的資料集微調模型。
- 使用BigQuery ML 處理結構化資料。BigQuery ML 可讓您直接在 BigQuery 中建立及部署模型。這種做法可充分利用 BigQuery 的查詢計價模式,因此非常適合初步實驗,經濟實惠。
資源調度最佳化:使用 Google Cloud的彈性基礎架構,視需要調度資源。先從較小的執行個體開始,並視需要調整大小或數量。
透過實驗找出資源需求
AI 和機器學習工作負載的資源需求可能差異很大。如要盡量減少資源分配和成本,您必須透過系統化實驗瞭解工作負載的具體需求。如要找出最有效率的模型設定,請測試不同設定並分析其效能。然後根據需求,將用於訓練和服務的資源調整至最適規模。
我們建議採用下列實驗方法:
- 從基準開始:根據您對工作負載需求的初步估算,從基準設定開始。如要建立基準,您可以使用新工作負載的費用估算工具,或使用現有的帳單報表。詳情請參閱「Unlock the true cost of enterprise AI on Google Cloud」。
- 瞭解配額:開始大規模實驗前,請先熟悉您打算使用的資源和 API 的 Google Cloud 專案配額。配額會決定您實際可測試的設定範圍。熟悉配額後,您就能在實驗階段使用可用的資源限制。
- 有系統地進行實驗:調整 CPU 數量、記憶體量、GPU 和 TPU 數量與類型,以及儲存空間容量等參數。Vertex AI 訓練和 Vertex AI 預測可讓您試用不同的機器類型和設定。
監控使用率、費用和效能:追蹤資源使用率、費用,以及訓練時間、推論延遲和模型準確度等重要效能指標,瞭解您實驗的每項設定。
- 如要追蹤資源使用率和效能指標,請使用 Vertex AI 控制台。
- 如要收集及分析詳細的效能指標,請使用 Cloud Monitoring。
- 如要查看費用,請使用 Cloud Billing 報表和 Cloud Monitoring 資訊主頁。
- 如要找出模型中的效能瓶頸並盡量提高資源使用率,請使用 Vertex AI TensorBoard 等剖析工具。
分析費用:比較各項設定的費用和效能,找出最具成本效益的選項。
根據配額設定資源門檻和改善目標: 定義門檻,當資源調度開始產生遞減的成效回報時,例如訓練時間或延遲時間的減少幅度極小,但成本卻大幅增加,設定這些門檻時,請考慮專案配額。判斷成本和進一步擴充的潛在配額影響,是否不再能以效能提升來證明合理性。
反覆調整:根據測試結果,以調整後的設定重複進行實驗。請務必確保資源用量維持在配額範圍內,並符合既定的成本效益門檻。
使用 MLOps 減少效率不彰的情況
隨著機構越來越常使用機器學習技術來推動創新和提升效率,有效管理機器學習生命週期也變得至關重要。機器學習運作 (MLOps) 是一組做法,可自動化及簡化機器學習生命週期,從模型開發到部署和監控皆適用。
根據成本驅動因素調整機器學習運作
如要運用 MLOps 提升成本效益,請找出機器學習生命週期中的主要成本驅動因素。接著,您可以採用並導入符合成本驅動因素的 MLOps 做法。優先採用 MLOps 功能,解決影響最大的成本因素。這種做法可確保您能順利節省大量成本。
導入機器學習運作,實現成本最佳化
以下是常見的 MLOps 做法,有助於降低成本:
- 版本管控:Git 等工具可協助您追蹤程式碼、資料和模型的版本。版本控管可確保結果可重現、促進協作,並避免因版本問題造成成本高昂的重工。
- 持續整合與持續推送軟體更新 (CI/CD): Cloud Build 和 Artifact Registry 可讓您實作 CI/CD 管道,自動建構、測試及部署 ML 模型。CI/CD 管道可確保資源得到有效利用,並盡量減少手動介入所產生的相關費用。
- 可觀測性: Cloud Monitoring 和 Cloud Logging 可讓您追蹤模型在正式環境中的效能、找出問題,以及觸發警報以主動介入。可觀測性有助於維持模型準確度、調整資源分配,以及避免代價高昂的停機或效能下降問題。
- 模型重新訓練: Vertex AI Pipelines 可簡化定期重新訓練模型或模型效能下降時的程序。使用 Vertex AI Pipelines 重新訓練模型,有助於確保模型維持準確度和效率,避免不必要的資源耗用,並維持最佳效能。
- 自動測試和評估: Vertex AI 可協助您加快模型評估速度並標準化。在整個機器學習生命週期中實作自動化測試,確保模型品質和可靠性。這類測試有助於及早發現錯誤、避免實際運作時發生代價高昂的問題,並減少大量手動測試的需求。
詳情請參閱「機器學習運作:機器學習的持續推送軟體更新與自動化管線」。
落實資料管理和治理實務
有效的資料管理和控管做法對於成本最佳化至關重要。妥善整理資料可鼓勵團隊重複使用資料集、避免不必要的重複作業,並減少取得高品質資料所需的工作量。主動管理資料可降低儲存空間費用、提升資料品質,並確保機器學習模型以最相關且有價值的資料進行訓練。
如要實作資料管理和治理做法,請考慮採用下列建議。
建立及採用資料管理架構
隨著 AI 和 ML 越來越重要,資料已成為數位轉型機構最有價值的資產。健全的資料治理架構是重要條件,有助於以經濟實惠的方式大規模管理 AI 和機器學習工作負載。明確定義政策、程序和角色的資料管理架構,可提供結構化方法,在資料的整個生命週期中進行管理。這類架構有助於提升資料品質、強化安全性、提高使用率及減少冗餘。
建立資料管理架構
資料控管有許多現成架構,例如 EDM Council 發布的架構,適用於不同產業和機構規模。選擇並調整符合您特定需求和優先事項的架構。
實作資料治理架構
Google Cloud 提供下列服務和工具,協助您導入完善的資料治理架構:
Dataplex Universal Catalog 是智慧型資料架構,可協助您整合分散式資料,並自動執行資料治理,不必將資料集集中在一個位置。這有助於降低資料發布和維護成本、促進資料探索,以及推動重複使用。
- 如要整理資料,請使用 Dataplex Universal Catalog 抽象化功能,並設定邏輯資料湖泊和可用區。
- 如要管理資料湖和區域的存取權,請使用 Google 群組和 Dataplex Universal Catalog 角色。
- 如要簡化資料品質程序,請啟用自動分析資料品質。
Dataplex Universal Catalog 也是可擴充的全代管中繼資料管理服務。目錄可確保資料資產可供存取及重複使用,奠定資料控管的基礎。
- 系統會自動將支援 Google Cloud 來源的中繼資料擷取至通用目錄。如要使用 Google Cloud以外的資料來源,請建立自訂項目。
- 如要提升資料資產的探索和管理能力,請使用層面,以業務中繼資料充實技術中繼資料。
- 確認資料科學家和 ML 實務人員有足夠的權限,可存取 Dataplex Universal Catalog 並使用搜尋功能。
BigQuery 共用功能可讓您安全又有效率地跨機構交換資料資產,解決資料可靠性和成本方面的難題。
在整個機器學習生命週期中重複使用資料集和特徵
為大幅提升效率和節省成本,請在多個機器學習專案中重複使用資料集和特徵。避免重複的資料工程和特徵開發工作,有助於貴機構加速模型開發、降低基礎架構成本,並將寶貴資源用於其他重要工作。
Google Cloud 提供下列服務和工具,協助您重複使用資料集和特徵:
- 資料和機器學習從業人員可以發布資料產品,盡量讓各團隊重複使用。接著,即可透過 Dataplex Universal Catalog 和 BigQuery 共用功能,探索及使用資料產品。
- 對於表格和結構化資料集,您可以使用 Vertex AI 特徵儲存庫,透過 BigQuery 提升重複使用率並簡化特徵管理。
- 您可以在 Cloud Storage 中儲存非結構化資料,並使用 BigQuery 物件資料表和簽署網址控管資料。
- 您可以在向量搜尋索引中加入中繼資料,藉此管理向量嵌入。
透過機器學習運作機制自動化及簡化作業
採用機器學習運作做法的主要好處是降低技術和人員成本。自動化功能可協助您避免重複執行機器學習活動,並減少數據資料學家和機器學習工程師的工作量。
如要透過機器學習運作自動化及簡化機器學習開發作業,請考慮下列建議。
自動收集及處理資料,並將程序標準化
為減少機器學習開發工作和時間,請自動化及標準化資料收集和處理技術。
自動收集及處理資料
本節將摘要說明可用於自動收集及處理資料的產品、工具和技術。
找出並選擇適合 AI 和機器學習工作的資料來源:
- 資料庫選項包括: Cloud SQL、 Spanner、 PostgreSQL 適用的 AlloyDB、 Firestore 和 BigQuery。 選擇取決於您的需求,例如寫入存取權的延遲時間 (靜態或動態)、資料量 (高或低),以及資料格式 (結構化、非結構化或半結構化)。詳情請參閱Google Cloud 資料庫。
- 資料湖泊,例如使用 BigLake 的 Cloud Storage。
- Dataplex Universal Catalog,可管理各來源的資料。
- 串流事件平台,例如 Pub/Sub、Dataflow 或 Apache Kafka。
- 外部 API。
為每個資料來源選擇擷取工具:
- Dataflow:用於批次和串流處理來自各種來源的資料,並整合機器學習元件。對於事件驅動架構,您可以將 Dataflow 與 Eventarc 結合,有效處理機器學習資料。如要提升 MLOps 和機器學習工作效率,請使用 GPU 和最適資源配置功能。
- Cloud Run 函式: 適用於事件驅動型資料擷取,由資料來源的變更觸發,適用於即時應用程式。
- BigQuery:用於經常存取的傳統表格資料擷取作業。
選擇資料轉換和載入工具:
- 使用 Dataflow 或 Dataform 等工具,自動執行資料轉換作業,例如特徵縮放、編碼類別變數,以及批次、串流或即時建立新特徵。選取的工具取決於您的需求和所選服務。
- 使用 Vertex AI 特徵儲存庫自動建立及管理特徵。您可以集中管理特徵,以便在不同模型和專案中重複使用。
標準化資料收集和處理程序
如要探索、瞭解及管理資料資產,請使用 Dataplex Universal Catalog 等中繼資料管理服務。有助於統一資料定義,確保整個機構的資料一致性。
如要強制執行標準化,並避免維護多個自訂實作項目所產生的費用,請使用自動化訓練管道和調度管理。詳情請參閱下一節。
自動化訓練管道並重複使用現有資產
如要提升機器學習運作的效率和生產力,自動化訓練管道至關重要。 Google Cloud 提供一系列強大的工具和服務,可建構及部署訓練管道,並著重於重複使用現有資產。自動化訓練管道有助於加快模型開發速度、確保一致性,並減少重複作業。
自動化訓練管線
下表說明可用於自動執行訓練管道不同功能的 Google Cloud 服務和功能。
函式 | Google Cloud 服務和功能 |
---|---|
調度:定義由多個步驟和依附元件組成的複雜機器學習工作流程。您可以將每個步驟定義為個別的容器化工作,輕鬆管理及擴展個別工作。 |
|
版本管理:追蹤及控管不同版本的 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 的分散式訓練基礎架構。這種做法可讓您在多部機器上訓練模型,大幅縮短訓練時間並降低相關成本。使用下列工具:
- Vertex AI 調整 對 Gemini、Imagen 和其他模型執行監督式微調。
- Vertex AI 訓練或 Vertex AI 上的 Ray,用於自訂分散式訓練。
選擇支援分散式訓練和有效運用資源的機器學習最佳化架構,例如 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 模型,例如 Gemini 系列模型和 Imagen (用於生成圖片)。
- 開放原始碼模型,例如 Gemma 和 Llama。
- 第三方模型,例如 Anthropic 和 Mistral AI 的模型。
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 工作負載,進行大量運算 (超參數調整、模型微調、分散式模型訓練,以及根據人類回饋進行強化學習),無須管理自己的基礎架構。
善用代管服務,提高資源使用率
如要瞭解如何有效運用資源,請參閱「最佳化資源用量」。
貢獻者
作者:
- Isaac Lo | AI 業務開發經理
- Anastasia Prokaeva | 現場解決方案架構師,生成式 AI
- Amy Southwood | 技術解決方案顧問,資料分析與 AI
其他貢獻者:
- Filipe Gracio 博士 | 客戶工程師
- Kumar Dhanagopal | 跨產品解決方案開發人員
- Marwan Al Shawi | 合作夥伴客戶工程師
- Nicolas Pintaux | 客戶工程師、應用程式現代化專家
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。
- 瞭解成效最佳化策略可能會出現邊際效益遞減的情況:如果特定成效最佳化策略無法提供可評估的業務價值增幅,請停止採用該策略。
將連結成效指標與設計和設定選項建立關聯
如要創新、排解問題及調查效能問題,請建立設計選擇與效能結果之間的明確連結。除了實驗之外,您還必須可靠地記錄資產、部署作業、模型輸出內容,以及產生輸出內容的設定和輸入內容的沿革。
請參考下列建議:
- 建立資料和模型沿襲系統:所有已部署的資產及其成效指標,都必須連結回資料、設定、程式碼,以及導致部署系統的選擇。此外,模型輸出內容必須連結至特定模型版本,以及輸出內容的產生方式。
- 使用可解釋性工具提升模型成效:採用並標準化模型探索和可解釋性工具與基準。這些工具可協助機器學習工程師瞭解模型行為、提升效能或移除偏誤。
貢獻者
作者:
- Benjamin Sadik | AI 和機器學習專員客戶工程師
- Filipe Gracio 博士 | 客戶工程師
其他貢獻者:
- Kumar Dhanagopal | 跨產品解決方案開發人員
- Marwan Al Shawi | 合作夥伴客戶工程師
- Zach Seils | 網路專員