在企業中建構及部署生成式 AI 和機器學習模型

Last reviewed 2024-03-28 UTC

隨著生成式 AI 和機器學習 (ML) 模型在企業的業務活動和業務程序中越來越常見,企業越來越需要模型開發方面的指引,以確保一致性、可重複性、安全性和安全性。為協助大型企業建構及部署生成式 AI 和 ML 模型,我們製作了企業生成式 AI 和機器學習藍圖。這份藍圖提供詳盡指南,說明整個 AI 開發生命週期,從初步資料探索和實驗,到模型訓練、部署及監控,無所不包。

企業生成式 AI 和 ML 藍圖可帶來許多好處,包括:

  • 指導性指引:清楚說明如何根據 Vertex AI 建立、設定及部署生成式 AI 和機器學習開發環境。您可以使用 Vertex AI 開發自己的模型。
  • 提高效率:透過大量自動化功能,減少部署基礎架構和開發生成式 AI 與機器學習模型時的辛勞。自動化功能可讓您專注於模型設計和實驗等加值工作。
  • 強化管理和稽核能力:這項藍圖的設計納入模型的可重現性、可追溯性,以及受控部署。這項福利可協助您更妥善地管理生成式 AI 和機器學習模型生命週期,並確保您能持續重新訓練及評估模型,同時提供清楚的稽核追蹤記錄。
  • 安全性:藍圖的設計符合美國國家標準暨技術研究院 (NIST) 架構網路風險機構 (CRI) 架構的規定。

企業生成式 AI 和機器學習藍圖包含下列內容:

  • GitHub 存放區,內含一組 Terraform 設定、Jupyter 筆記本Vertex AI Pipelines 定義、Cloud Composer 有向非循環圖 (DAG),以及輔助指令碼。存放區中的元件會完成下列事項:
    • Terraform 設定會建立 Vertex AI 模型開發平台,支援多個模型開發團隊。
    • 您可以使用 Jupyter 筆記本以互動方式開發模型。
    • Vertex AI Pipelines 定義會將 Jupyter 筆記本轉換為可重複使用的模式,用於正式環境。
    • Cloud Composer DAG 提供 Vertex AI Pipelines 的替代方法。
    • 輔助指令碼可協助部署 Terraform 程式碼和管道。
  • 本藍圖的架構、設計、安全控管和作業程序指南 (本文件)。

企業生成式 AI 和 ML 藍圖的設計與企業基礎藍圖相容。企業基礎藍圖提供多項此藍圖依賴的基礎層級服務,例如 VPC 網路。如果您的 Google Cloud 環境提供支援企業生成式 AI 和機器學習藍圖的必要功能,您可以部署企業生成式 AI 和機器學習藍圖,而不需部署企業基礎藍圖。

這份文件適用於雲端架構師、數據資料學家和資料工程師,他們可以運用藍圖在 Google Cloud上建構及部署新的生成式 AI 或機器學習模型。本文假設您熟悉生成式 AI 和機器學習模型開發,以及 Vertex AI 機器學習平台

如要瞭解 AI 和機器學習工作負載的專屬架構原則和建議,請參閱 Well-Architected Framework 中的「 Google Cloud」AI 和機器學習觀點

企業生成式 AI 和機器學習藍圖總覽

企業生成式 AI 和機器學習藍圖採用分層做法,提供生成式 AI 和機器學習模型訓練功能。藍圖應透過機器學習運作 (MLOps) 工作流程部署及控管。下圖顯示這個藍圖部署的 MLOps 層與環境中其他層的關係。

藍圖圖層。

這張圖包含下列項目:

  • Google Cloud 基礎架構提供安全性功能,例如靜態資料加密傳輸中資料加密,以及運算和儲存空間等基本建構區塊。
  • 企業基礎提供資源基準,例如身分、網路、記錄、監控和部署系統,可讓您採用 Google Cloud AI 工作負載。
  • 資料層是開發堆疊中的選用層,可提供各種功能,例如資料擷取、資料儲存、資料存取控管、資料治理、資料監控和資料共用。
  • 生成式 AI 和機器學習層 (本藍圖) 可讓您建構及部署模型。您可以使用這個層進行初步資料探索和實驗、模型訓練、模型服務和監控。
  • CI/CD 提供各種工具,可自動佈建、設定、管理及部署基礎架構、工作流程和軟體元件。這些元件可協助您確保部署作業一致、可靠且可稽核,盡量減少人為錯誤,並加快整體開發週期。

為展示如何使用生成式 AI 和機器學習環境,藍圖中包含機器學習模型開發範例。範例模型開發作業會引導您建構模型、建立作業 pipeline、訓練模型、測試模型,以及部署模型。

架構

企業生成式 AI 和機器學習藍圖可讓您直接處理資料。您可以在互動式 (開發) 環境中建立模型,並將模型升級至作業 (正式或非正式) 環境。

在互動式環境中,您可以使用 Vertex AI Workbench 開發機器學習模型。這項服務是由 Google 管理的 Jupyter 筆記本服務。您可以在互動式環境中建構資料擷取、資料轉換和模型微調功能,並將這些功能升級至作業環境。

在作業 (非正式環境) 環境中,您可以使用管道以可重複且可控的方式建構及測試模型。如果對模型成效感到滿意,可以將模型部署至作業 (正式) 環境。下圖顯示互動式和作業環境的各種元件。

藍圖架構。

這張圖包含下列項目:

  1. 部署系統:服務目錄Cloud Build 等服務會將 Google Cloud 資源部署到互動式環境。Cloud Build 也會將 Google Cloud 資源和模型建構工作流程部署到作業環境。
  2. 資料來源:BigQueryCloud StorageSpannerAlloyDB for PostgreSQL 等服務會代管您的資料。藍圖提供 BigQuery 和 Cloud Storage 中的範例資料。
  3. 互動式環境:您可以在這個環境中直接與資料互動、實驗模型,並建構管道,以便在作業環境中使用。
  4. 作業環境:您可以在這個環境中以可重複的方式建構及測試模型,然後將模型部署至實際工作環境。
  5. 模型服務:下列服務支援各種 MLOps 活動:
  6. 構件儲存空間:這些服務會儲存程式碼和容器,供模型開發和管道使用。這些服務包括:
    • 構件登錄會儲存作業環境中管道使用的容器,以控管模型開發的各個階段。
    • Git 存放區會儲存模型開發中使用的各種元件程式碼。

平台人物角色

部署藍圖時,您會建立四種使用者群組:MLOps 工程師群組、DevOps 工程師群組、資料科學家群組和資料工程師群組。這些群組的職責如下:

  • MLOps 工程師團隊會開發 Service Catalog 使用的 Terraform 範本。這個團隊提供許多模型使用的範本。
  • 開發運作工程師群組會核准機器學習運作開發人員群組建立的 Terraform 範本。
  • 資料科學家群組會開發模型、管道和管道使用的容器。通常會由單一團隊專門建構單一模型。
  • 資料工程師群組會核准使用資料科學群組建立的構件。

機構架構

這個藍圖以企業基礎藍圖的機構結構為基礎,部署 AI 和 ML 工作負載。下圖顯示新增至基礎的專案,可啟用 AI 和機器學習工作負載。

藍圖機構架構。

下表說明生成式 AI 和 ML 藍圖使用的專案。

資料夾 專案 說明

common

prj-c-infra-pipeline

內含部署管線,用於建構藍圖的生成式 AI 和機器學習元件。詳情請參閱企業基礎藍圖中的基礎架構管道

prj-c-service-catalog

包含 Service Catalog 用於在互動式環境中部署資源的基礎架構。

development

prj-d-machine-learning

包含以互動模式開發 AI 和機器學習用途的元件。

non-production

prj-n-machine-learning

包含用於測試及評估 AI 和機器學習用途的元件,可部署至正式環境

production

prj-p-machine-learning

包含將 AI 和機器學習應用情境部署至正式環境的元件。

網路

藍圖會使用企業基礎藍圖中建立的共用虛擬私有雲網路。在互動式 (開發) 環境中,Vertex AI Workbench 筆記本會部署在服務專案中。內部部署使用者可以使用共用虛擬私有雲端網路中的私人 IP 位址空間存取專案。內部部署使用者可以透過 Private Service Connect 存取 Google Cloud API,例如 Cloud Storage。每個共用 VPC 網路 (開發、非實際工作環境和實際工作環境) 都有不同的 Private Service Connect 端點。

藍圖網路。

作業環境 (非實際工作環境和實際工作環境) 有兩個獨立的共用虛擬私有雲網路,內部部署資源可透過私人 IP 位址存取這些網路。互動式和作業環境受到 VPC Service Controls 保護。

Cloud Logging

本藍圖使用企業基礎藍圖提供的 Cloud Logging 功能。

Cloud Monitoring

如要監控自訂訓練工作,藍圖會提供資訊主頁,方便您監控下列指標:

  • 每個訓練節點的 CPU 使用率
  • 每個訓練節點的記憶體使用率
  • 網路用量

如果自訂訓練工作失敗,藍圖會使用 Cloud Monitoring 提供電子郵件快訊機制,通知您工作失敗。如要監控使用 Vertex AI 端點部署的模型,藍圖會提供含有下列指標的資訊主頁:

  • 成效指標:
    • 每秒預測數
    • 模型延遲時間
  • 資源用量:
    • CPU 使用率
    • 記憶體用量

設定機構政策

除了企業基礎藍圖建立的機構政策,這個藍圖還會新增預先定義的 AI 安全狀態 (擴充版) 中列出的機構政策。

作業

本節說明藍圖中包含的環境。

互動式環境

為了讓您探索資料及開發模型,同時維持貴機構的安全防護機制,互動式環境提供一組可執行的受控動作。您可以使用下列其中一種方法部署 Google Cloud資源:

  • 使用服務目錄,透過資源範本自動預先設定
  • 使用 Vertex AI Workbench 筆記本建構程式碼構件,並將其提交至 Git 存放區

下圖說明互動式環境。

藍圖互動式環境。

一般互動式流程包含下列步驟和相關聯的元件:

  1. Service Catalog 提供精選的Google Cloud 資源清單,數據科學家可將這些資源部署到互動式環境。資料科學家從服務目錄部署 Vertex AI Workbench 筆記本資源。
  2. Vertex AI Workbench 筆記本是資料科學家使用的主要介面,可與部署在互動式環境中的 Google Cloud 資源搭配運作。資料科學家可透過筆記本從 Git 提取程式碼,並視需要更新程式碼。
  3. 來源資料會儲存在互動式環境以外,並與這個藍圖分開管理。資料存取權由資料擁有者控管。資料科學家可以要求來源資料的讀取權,但無法寫入來源資料。
  4. 資料科學家可以將來源資料轉移至互動式環境,並匯入透過服務目錄建立的資源。在互動式環境中,資料科學家可以讀取、寫入及操控資料。不過,資料科學家無法將資料移出互動式環境,也無法授予存取服務目錄所建立資源的權限。BigQuery 儲存結構化和半結構化資料,Cloud Storage 則儲存非結構化資料。
  5. 特徵儲存庫可讓資料科學家以低延遲的方式存取特徵,用於訓練模型。
  6. 資料科學家使用 Vertex AI 自訂訓練工作訓練模型。藍圖也會使用 Vertex AI 進行超參數調整

  7. 資料科學家會使用 Vertex AI ExperimentsVertex AI TensorBoard 評估模型。您可以使用不同的參數、建模技術、架構和輸入內容,對模型執行多項訓練。Vertex AI TensorBoard 可讓您追蹤及比較執行的各種實驗、以視覺化的方式呈現實驗,然後選擇觀察到的特徵最符合需求的模型進行驗證。

  8. 資料科學家會使用 Vertex AI 評估驗證模型。為驗證模型,資料科學家會將來源資料分割為訓練資料集和驗證資料集,並對模型執行 Vertex AI 評估

  9. 資料科學家會使用 Cloud Build 建構容器、將容器儲存在 Artifact Registry 中,並在營運環境的管道中使用容器。

作業環境

作業環境會使用 Git 存放區和管道。這個環境包括企業基礎藍圖的正式環境和非正式環境。在非正式環境中,資料科學家會從互動式環境中開發的管道中選取管道。資料科學家可以在非正式環境中執行管線、評估結果,然後決定要將哪個模型升級至正式環境。

藍圖包含使用 Cloud Composer 建構的管道範例,以及使用 Vertex AI Pipelines 建構的管道範例。下圖顯示作業環境。

藍圖作業環境。

一般作業流程包含下列步驟:

  1. 資料科學家成功將開發分支合併至部署分支。
  2. 合併至部署分支會觸發 Cloud Build 管道。
  3. 發生下列其中一種情況:
    • 如果資料科學家使用 Cloud Composer 做為自動化調度管理工具,Cloud Build 管道會將 DAG 移至 Cloud Storage。
    • 如果資料科學家使用 Vertex AI Pipelines 做為協調器,pipeline 會將 Python 檔案移至 Cloud Storage。
  4. Cloud Build 管道會觸發自動調度管理工具 (Cloud Composer 或 Vertex AI Pipelines)。
  5. 自動化調度工具會從 Cloud Storage 提取管道定義,並開始執行管道。
  6. 這個管道會從 Artifact Registry 提取容器,供管道的所有階段用來觸發 Vertex AI 服務。
  7. 管道會使用容器,從來源資料專案觸發資料轉移至作業環境。
  8. 管道會轉換、驗證、分割資料,並準備用於模型訓練和驗證。
  9. 如有需要,管道會將資料移至 Vertex AI 特徵儲存庫,方便在模型訓練期間存取。
  10. 管道會使用 Vertex AI 自訂模型訓練來訓練模型。
  11. 這個管道會使用 Vertex AI 評估服務驗證模型。
  12. 經過驗證的模型會由管道匯入模型登錄
  13. 接著,透過線上預測批次預測,使用匯入的模型產生預測結果。
  14. 模型部署到正式環境後,管道會使用 Vertex AI 模型監控功能,監控訓練/應用偏差預測偏移,偵測模型效能是否下降。

部署作業

藍圖會使用一系列 Cloud Build 管道,佈建藍圖基礎架構、作業環境中的管道,以及用於建立生成式 AI 和機器學習模型的容器。使用的管道和佈建的資源如下:

  • 基礎架構管道 這個管道是企業基礎藍圖的一部分。這個管道會佈建與互動式環境和作業環境相關聯的 Google Cloud 資源。
  • 互動式管道:互動式管道是互動式環境的一部分。這個管道會將 Terraform 範本從 Git 存放區複製到 Service Catalog 可讀取的 Cloud Storage 值區。如果對主要分支版本提出提取要求,系統就會觸發互動式管道。
  • 容器管道:藍圖包含 Cloud Build 管道,可建構作業管道中使用的容器。跨環境部署的容器是不可變更的容器映像檔。不可變更的容器映像檔可確保在所有環境中部署相同的映像檔,且映像檔在執行期間無法修改。如需修改應用程式,請務必重新建構及重新部署映像檔。藍圖中使用的容器映像檔會儲存在 Artifact Registry 中,並由作業管道中使用的設定檔參照。
  • 作業管道:作業管道是作業環境的一部分。這個管道會複製 Cloud Composer 或 Vertex AI Pipelines 的 DAG,然後用於建構、測試及部署模型。

Service Catalog

開發人員和雲端管理員可透過 Service Catalog,讓內部企業使用者使用解決方案。Service Catalog 中的 Terraform 模組會透過 Cloud Build CI/CD 管道建構,並以構件形式發布至 Cloud Storage 值區。將模組複製到 bucket 後,開發人員就能在 Service Catalog 管理頁面建立 Terraform 解決方案、將解決方案新增至 Service Catalog,並與互動式環境專案共用解決方案,讓使用者部署資源。

互動式環境會使用 Service Catalog,讓資料科學家以符合企業安全態勢的方式部署 Google Cloud 資源。開發需要Google Cloud 資源 (例如 Cloud Storage bucket) 的模型時,資料科學家會從服務目錄選取資源、設定資源,並在互動式環境中部署資源。服務目錄包含各種資源的預先設定範本,資料科學家可在互動式環境中部署這些範本。 Google Cloud 資料科學家無法變更資源範本,但可透過範本公開的設定變數設定資源。下圖顯示 Service Catalog 和互動式環境的相互關係結構。

藍圖目錄。

資料科學家會使用服務目錄部署資源,如下列步驟所述:

  1. MLOps 工程師會將Google Cloud 的 Terraform 資源範本放入 Git 存放區。
  2. 提交至 Git 會觸發 Cloud Build 管道。
  3. Cloud Build 會將範本和任何相關聯的設定檔複製到 Cloud Storage。
  4. MLOps 工程師會手動設定 Service Catalog 解決方案和 Service Catalog。接著,工程師會在互動式環境中,與服務專案共用 Service Catalog。
  5. 資料科學家從服務目錄中選取資源。
  6. Service Catalog 會將範本部署至互動式環境。
  7. 資源會提取所有必要的設定指令碼。
  8. 資料科學家會與資源互動。

存放區

部署一節所述的管道會因對應存放區的變更而觸發。為確保無人能獨立變更正式環境,提交程式碼的使用者和核准程式碼變更的使用者之間,有明確的責任劃分。下表說明藍圖存放區,以及提交者和核准者。

存放區 pipeline 說明 提交者 核准者

ml-foundation

基礎架構
包含生成式 AI 和機器學習藍圖的 Terraform 程式碼,可建立互動式和作業環境。 機器學習運作工程師 開發運作工程師

service-catalog

互動式 包含 Service Catalog 可部署資源的範本。 機器學習運作工程師 開發運作工程師

artifact-publish

容器 包含作業環境中管道可使用的容器。 資料科學家 資料工程師

machine-learning

可使用 包含作業環境中的管道可使用的原始碼。 資料科學家 資料工程師

分支策略

藍圖會使用持續分支,將程式碼部署至相關聯的環境。藍圖使用三個分支 (開發、非正式環境和正式環境),分別對應相應的環境。

安全性控管

企業生成式 AI 和機器學習藍圖採用層層防禦的深度防禦安全模型,使用預設 Google Cloud 功能、Google Cloud 服務和安全功能,這些功能是透過企業基礎藍圖設定。下圖顯示藍圖中各種安全控制項的層疊方式。

藍圖安全控制項。

這些圖層的功能如下:

  • 介面:為資料科學家提供服務,讓他們以受控方式與藍圖互動。
  • 部署作業:提供一系列管道,用於部署基礎架構、建構容器及建立模型。使用管道可進行稽核、追蹤及重複作業。
  • 網路:在 API 層和 IP 層提供藍圖資源的資料外洩防護。
  • 存取權管理:控管哪些使用者可以存取哪些資源,有助於防止未經授權使用資源。
  • 加密:您可以控管加密金鑰和密碼,並透過預設的靜態資料加密和傳輸中資料加密機制,保護資料安全。
  • Detective:協助偵測錯誤設定和惡意活動。
  • 預防性:提供控管及限制基礎架構部署方式的工具。

下表說明與各層相關的安全性控制措施。

圖層 資源 安全控管
介面 Vertex AI Workbench 提供整合使用者存取權控管網路存取權控管IAM 存取權控管停用檔案下載功能的代管筆記本體驗。這些功能可提供更安全的使用者體驗。
Git 存放區 提供使用者存取權控管,保護存放區。
Service Catalog 為資料科學家提供精選資源清單,這些資源只能在核准的設定中部署。
部署作業 基礎架構管道 提供安全流程,透過 Terraform 部署藍圖基礎架構。
互動式管道 提供安全流程,可將範本從 Git 存放區轉移至 Google Cloud 機構內的儲存空間。
容器管道 提供安全流程,用於建構作業管道使用的容器。
營運管道 提供受控流程,用於訓練、測試、驗證及部署模型。
Artifact Registry 使用資源存取權控管機制,以安全的方式儲存容器映像檔
網路 Private Service Connect 可讓您使用私有 IP 位址與 Google Cloud API 通訊,避免將流量暴露在網際網路上。
具有私人 IP 位址的虛擬私有雲 藍圖會使用具有私人 IP 位址的 VPC,協助消除暴露於網際網路威脅的風險。
VPC Service Controls 協助保護受保護的資源,避免資料遭竊。
防火牆 有助於保護虛擬私有雲網路,避免遭到未經授權的存取。
存取權管理 Cloud Identity 提供集中式使用者管理功能,降低未經授權存取的風險。
IAM 精細控管使用者對哪些資源可執行哪些動作,進而實現存取權管理中的最小權限原則。
加密 Cloud KMS 控管機構使用的加密金鑰。Google Cloud
Secret Manager 為模型提供由 IAM 控制的密鑰儲存空間。
靜態資料加密 根據預設, Google Cloud 會加密靜態資料。
傳輸中資料加密 預設會 Google Cloud 加密傳輸中的資料。
偵測性 Security Command Center 提供威脅偵測器,協助保護貴機構。 Google Cloud
持續架構 持續根據您定義的一系列 Open Policy Agent (OPA) 政策檢查機構。 Google Cloud
IAM 建議工具 分析使用者權限,並提供減少權限的建議,協助強制執行最低權限原則。
防火牆深入分析 分析防火牆規則、找出權限過於寬鬆的防火牆規則,並建議更嚴格的防火牆,協助您提升整體安全防護機制。
Cloud Logging 提供系統活動的相關資訊,協助偵測異常和惡意活動。
Cloud Monitoring 追蹤有助於識別可疑活動的重要信號和事件。
預防 機構政策服務 可限制機構內的操作。 Google Cloud

後續步驟