本文提供參考架構,說明如何使用 Google Agentspace 和 Vertex AI,設計具備檢索增強生成 (RAG) 功能的生成式 AI 應用程式基礎架構。這項參考架構說明如何使用代管服務及部署單一 AI 代理程式,以利端對端 RAG 資料流程。Google Agentspace 是企業的統一代理協調平台。Vertex AI 可加速開發及部署自訂代理程式,並提供代管資料存放區,方便有效率地擷取 RAG 資料。
這份文件適用於生成式 AI 應用程式的架構師、開發人員和管理員。本文假設您已具備 AI、機器學習 (ML) 和大型語言模型 (LLM) 的基本概念。本文不會提供如何設計及開發生成式 AI 應用程式的指引。如要瞭解如何設計應用程式,請參閱「開發生成式 AI 應用程式」。
架構
下圖顯示本文介紹的架構概略視圖:
上圖中的架構有兩個子系統:資料擷取和服務。
- 資料擷取子系統會擷取及準備外部來源的資料,以供 RAG 使用。這個子系統會為擷取的資料生成嵌入,並使用這些嵌入在受管理資料存放區中,建構及維護可搜尋的向量索引。
- 服務子系統包含生成式 AI 應用程式的前端和後端服務。
- 前端服務會處理應用程式使用者的查詢/回覆流程,並將查詢轉送至後端服務。
- 後端服務會使用 Google Agentspace 和 Vertex AI 建構及部署 AI 代理,以協調 RAG 程序。這個程序會使用已建立索引的向量資料生成回覆,這些回覆會根據脈絡,並遵守負責任的 AI 安全性篩選器。
下圖詳細呈現相關架構:
以下各節將說明上述架構圖中各子系統的資料流程。
資料擷取子系統
資料擷取子系統會從外部來源擷取資料,並準備好 RAG 用的資料。資料擷取和準備流程的步驟如下:
- 資料工程師會將外部來源的資料上傳至 Cloud Storage 值區。外部來源可能是應用程式、資料庫或串流服務。
- 完成後,Cloud Storage 會將訊息發布至 Pub/Sub 主題。
- Pub/Sub 主題會觸發處理工作,在 Cloud Run 函式中執行。
- Cloud Run 函式會產生中繼資料並儲存為 JSON Lines (JSONL) 檔案,藉此處理原始資料。JSONL 檔案會儲存在獨立的 Cloud Storage bucket 中。
- 完成後,Cloud Run 函式會將訊息發布至 Pub/Sub 主題。
- Pub/Sub 主題會觸發處理工作,在 Google Agentspace 的受管理資料存放區中執行。處理作業會從 Cloud Storage 值區提取原始擷取的資料和中繼資料,然後剖析資料並將資料分塊,以便在服務期間有效率地擷取資料。Google Agentspace 會自動生成向量嵌入,無須進行任何設定。
服務子系統
服務子系統會處理生成式 AI 應用程式和使用者之間的查詢/回覆流程。服務流程的步驟如下:
- 應用程式使用者透過其中一項 Cloud Run 前端服務傳送查詢。 您可以自訂這些服務,打造不同的體驗,例如聊天機器人使用者介面、搜尋頁面或行動應用程式。
- 前端服務會接收查詢,然後將查詢轉送至集中式 Cloud Run 後端服務。這個後端提供單一統一的端點,支援所有不同的前端用戶端。後端服務也會執行必要的前置處理,包括為搜尋查詢建構篩選器。這種做法可讓前端清楚瞭解邏輯。
- 後端服務會使用 Google Agentspace API 端點,將準備好的要求傳送至 Google Agentspace,以啟動 RAG 工作流程。
- 為處理查詢,Google Agentspace 會使用企業搜尋和自訂代理執行下列工作:
- 建立使用者查詢的嵌入內容。
- 對受管理資料存放區中已建立索引的資料執行語意搜尋,找出最相關的資訊。
- 使用從受管理資料存放區擷取的資料擴增原始查詢,建立含有詳細背景資訊的提示。
- 根據增強後的提示生成最終回覆。
- Google Agentspace 會將生成的內容傳送至 Cloud Run 後端服務。
- 後端服務會將最終回應傳回給傳送原始要求的前端服務。前端服務會向應用程式使用者顯示答案。
使用的產品
這項參考架構使用下列 Google Cloud 產品:
- Google Agentspace:這個代管平台是企業內所有 AI 代理的中央登錄和互動中心,可讓應用程式順暢地探索、管理及使用代理。
-
Vertex AI:機器學習平台,可讓您訓練及部署機器學習模型和 AI 應用程式,並自訂 LLM 用於 AI 輔助的應用程式。
- Vertex AI Agent Engine:這個平台可讓您在正式環境中執行、管理及調度 AI 代理。
- Cloud Run:無伺服器運算平台,可讓您在 Google 可擴充的基礎架構上直接執行容器。
- Pub/Sub:可擴充的非同步訊息服務,會分離產生訊息的服務與處理訊息的服務。
- Cloud Storage:適用於多種資料類型的物件儲存庫,成本低廉且沒有限制。 資料在 Google Cloud 內外都能存取,且會複製到多個位置,以便提供備援機制。 Google Cloud
用途
這項架構專為企業情境設計,可讓生成式 AI 應用程式存取最新資訊,並深入瞭解脈絡,提供準確的回覆。
這個架構包含自訂資料擷取子系統,可滿足兩項重要的企業需求:
- 即時提供資料:事件驅動管道會在貴機構提供新資料時立即處理,例如新產品指南或更新的報表。這個管道也會在代管資料存放區中提供資訊。這項設計可確保資料可用性和使用之間的時間差極短,有助於減少資訊過時的情況。
- 豐富的脈絡搜尋:貴機構可透過自訂處理作業套用自己的業務邏輯,以有價值的的中繼資料充實資料。Cloud Run 函式可為每份文件加上特定屬性標記,例如產品線、作者、位置或文件類型。這類豐富的中繼資料有助於服務專員縮小搜尋範圍,並提供更精確、符合情境的答案。
RAG 是一種有效技術,可提升 LLM 生成的輸出內容品質。本節提供使用支援 RAG 的生成式 AI 應用程式的用途範例。
個人化的產品推薦內容
網路購物網站可能會使用 LLM 輔助的聊天機器人,協助顧客尋找產品或取得購物相關協助。系統會根據使用者的購物行為和網站互動模式,擴充使用者提出的問題。這類資料可能包括儲存在非結構化資料儲存庫中的使用者評論和意見回饋,或是儲存在網站分析資料倉儲中的搜尋相關指標。LLM 接著會處理增強後的問題,生成個人化回覆,讓使用者覺得更吸引人。
臨床輔助系統
醫院的醫生需要快速分析和診斷病患的健康狀況,才能決定合適的照護和用藥。如果生成式 AI 應用程式使用 Med-PaLM 等醫療 LLM,就能協助醫生進行臨床診斷。應用程式生成的回覆可以歷來病患記錄為基礎,方法是使用醫院的電子健康記錄 (EHR) 資料庫或 PubMed 等外部知識庫的資料,為醫生的提示提供背景資訊。
提升法律資訊檢索效率
律師可運用生成式 AI 輔助法律研究,快速查詢大量法規和判例,找出相關法律先例或摘要複雜的法律概念。律師可從律師事務所的專屬合約、過往法律通訊和內部案件記錄中擷取資料,並將這些資料加入提示,藉此提升研究輸出結果的品質。這種設計方法可確保生成的內容與律師專精的法律領域相關。
設計替代方案
本節將介紹其他設計方法,供您在 Google Cloud為支援 RAG 的生成式 AI 應用程式採用。
AI 基礎架構替代方案
如果您需要使用全代管向量搜尋產品的架構,可以採用 Vertex AI 和 Vector Search,這兩項服務提供經過最佳化的服務基礎架構,可進行大規模向量搜尋。詳情請參閱「使用 Vertex AI 和 Vector Search 建構生成式 AI 的 RAG 基礎架構」。
如要運用全代管 Google Cloud 資料庫 (例如 PostgreSQL 適用的 AlloyDB 或 Cloud SQL) 的向量儲存功能,請參閱使用 Vertex AI 和 PostgreSQL 適用的 AlloyDB 建構生成式 AI 的 RAG 基礎架構。
如要使用 Ray、Hugging Face 和 LangChain 等開放原始碼工具和模型,快速建構及部署支援 RAG 的生成式 AI 應用程式,請參閱使用 GKE 和 Cloud SQL 建構生成式 AI 的 RAG 基礎架構。
應用程式託管選項
如本文所示架構,Cloud Run 是生成式 AI 應用程式和資料處理的代管服務。Cloud Run 是以開發人員為中心的全代管應用程式,您也可以將應用程式部署至 Vertex AI Agent Engine、GKE 叢集或 Compute Engine VM。
如要選擇應用程式主機,請考量設定彈性和管理工作量之間的取捨:
- 使用無伺服器 Cloud Run 選項,即可將自訂服務部署至預先設定的代管環境。如要代管前端服務和要求前處理的自訂後端邏輯,這個架構必須能夠部署自訂應用程式。
- 使用 Vertex AI Agent Engine 選項時,您會用到專為代理服務設計的全代管平台。Vertex AI Agent Engine 可減少管理負擔,並確保與 Google Agentspace 緊密整合。
- 使用 Compute Engine VM 和 GKE 容器時,您必須負責管理基礎運算資源,但可享有更高的設定彈性和控制權。
如要進一步瞭解如何選擇合適的應用程式代管服務,請參閱下列文件:
其他基礎架構選項
如要瞭解其他基礎架構選項、支援的模型,以及可在Google Cloud生成式 AI 應用程式中使用的基礎技術,請參閱「為生成式 AI 應用程式選擇模型和基礎架構」。
設計須知
本節提供指引,協助您在 Google Cloud 中開發支援 RAG 的生成式 AI 架構,滿足安全性、法規遵循、可靠性、成本和效能方面的特定需求。本節的指引僅列出部分範例。視生成式 AI 應用程式的具體需求,以及您使用的 Google Cloud 產品和功能而定,您可能需要考量其他設計因素和取捨。
如要瞭解適用於 Google Cloud中 AI 和機器學習工作負載的架構原則和建議,請參閱 Well-Architected Framework 中的AI 和機器學習觀點。
安全性、隱私權和法規遵循
本節說明設計考量事項和建議,協助您在 Google Cloud 中設計拓撲,以符合工作負載的安全性和法規遵循需求。
產品 |
設計注意事項和建議 |
---|---|
Vertex AI |
Vertex AI 支援 Google Cloud 安全控管機制 ,可協助您滿足資料落地、資料加密、網路安全和存取透明化方面的需求。詳情請參閱下列說明文件: Google Agentspace Enterprise 會在 60 天內刪除使用者要求的資料。詳情請參閱Google Cloud上的資料刪除說明。 生成式 AI 模型可能會生成有害回覆,特別是當提示明確要求這類回覆時。為提升安全性及防範潛在的濫用行為,您可以設定內容篩選器,防止模型產生有害的回覆。詳情請參閱「安全和內容篩選器」。 |
Cloud Run |
根據預設,Cloud Run 會使用 Google-owned and Google-managed encryption keys加密資料。如要使用您控管的金鑰保護容器,可以採用客戶自行管理的加密金鑰 (CMEK)。詳情請參閱「使用客戶管理的加密金鑰」。 如要確保只有授權的容器映像檔會部署到 Cloud Run,可以使用二進位授權。 Cloud Run 可協助您滿足資料落地規定。Cloud Run 函式會在選取的區域中執行。 |
Cloud Storage |
根據預設,Cloud Storage 會使用 Google-owned and Google-managed encryption keys加密儲存的資料。如有需要,您可以使用 CMEK,或透過外部管理方法 (例如客戶提供的加密金鑰 (CSEK)) 管理自己的金鑰。詳情請參閱「資料加密選項」。 Cloud Storage 支援兩種方法,可授予使用者值區和物件的存取權:身分與存取權管理 (IAM) 和存取控制清單 (ACL)。在大多數情況下,我們建議您使用 IAM,在 bucket 和專案層級授予權限。詳情請參閱「存取權控管總覽」。 透過 Cloud Storage 載入資料擷取子系統的資料可能包含機密資料。您可以使用 Sensitive Data Protection 服務,探索、分類及去識別化機密資料。詳情請參閱「搭配 Cloud Storage 使用 Sensitive Data Protection」。 Cloud Storage 可協助您遵守資料落地規定。Cloud Storage 會在您指定的區域內儲存或複製資料。 |
Pub/Sub |
根據預設,Pub/Sub 會使用 Google-owned and Google-managed encryption keys加密所有訊息,包括靜態和傳輸中的訊息。Pub/Sub 支援使用 CMEK 在應用程式層加密訊息。詳情請參閱「設定訊息加密」。 如有資料落地規定,為確保訊息資料儲存在特定位置,您可以設定訊息儲存政策。 |
如要瞭解 AI 和機器學習工作負載專用的安全性原則和建議,請參閱 Well-Architected Framework 中的「AI 和機器學習觀點:安全性」。
可靠性
本節說明設計注意事項和建議,協助您在 Google Cloud中建構及運作可靠的部署基礎架構。
產品 |
設計注意事項和建議 |
---|---|
Vertex AI |
Vertex AI 可確保靜態資料的資料落地。Vertex AI 會將來源資料 (包括受管理資料儲存庫中的 RAG 資料) 儲存在您選取的 Google Cloud 位置。將處理作業與儲存空間分離,是平台提供高可靠性和法規遵循的根本要素。 |
Cloud Run |
Cloud Run 是區域性服務,會在區域內的多個可用區同步儲存資料。這項服務會自動在各個區域之間進行流量負載平衡。如果發生可用區中斷情形,Cloud Run 工作仍會繼續執行,資料也不會遺失。如果發生區域中斷,Cloud Run 工作會停止執行,直到 Google 解決中斷問題為止。 個別 Cloud Run 工作或工作可能會失敗。如要處理這類失敗情形,可以使用工作重試和檢查點。詳情請參閱「工作重試和檢查點最佳做法」。 |
Cloud Storage |
您可以建立三種位置類型的 Cloud Storage 值區:單一區域、雙區域或多區域。如果是單一地區值區中的資料,Cloud Storage 會在同一地區的多個區域之間同步複製資料。如要提高可用性,可以使用雙區域或多區域值區,Cloud Storage 會在區域間非同步複製資料。請確保所選做法符合法規遵循需求。 |
如要瞭解 AI 和機器學習工作負載專用的可靠性原則和建議,請參閱 Well-Architected Framework 中的「AI 和機器學習觀點:可靠性」。
成本最佳化
本節提供指引,說明如何盡量降低使用這項參考架構建構 Google Cloud 拓撲的設定和運作成本。
產品 |
設計注意事項和建議 |
---|---|
Vertex AI |
AI 代理叫用的基礎模型會直接影響使用該代理的費用。系統會根據每項要求的輸入和輸出權杖數量計算價格。詳情請參閱「Vertex AI 的生成式 AI 配額和系統限制」和 Google Cloud的「定價計算機」。 如要瞭解如何盡量減少權杖數量以降低費用,請參閱「最佳化提示和輸出內容長度」。 |
Cloud Run functions |
建立 Cloud Run 工作時,請指定要分配給容器執行個體的記憶體和 CPU 數量。 如要控管費用,請從預設的 CPU 和記憶體配置開始。如要提升效能,可以設定 CPU 上限和記憶體上限,增加分配量。 如果您可以預測 Cloud Run 工作的 CPU 和記憶體需求,就能透過承諾使用折扣省下費用。詳情請參閱「Cloud Run 承諾用量折扣」。 |
Cloud Storage |
針對用於將資料載入資料擷取子系統的 Cloud Storage 值區,請根據工作負載的資料保留和存取頻率需求,選擇適當的儲存空間類別。 舉例來說,您可以選擇 Standard 儲存空間級別,並使用物件生命週期管理功能控管儲存空間費用。物件生命週期管理功能會根據您設定的條件,自動將物件降級至成本較低的儲存空間級別,或刪除物件。 |
如要瞭解 AI 和機器學習工作負載專用的成本最佳化原則和建議,請參閱 Well-Architected Framework 中的「AI 和機器學習觀點:成本最佳化」。
效能最佳化
本節說明設計拓撲時的考量事項和建議,以符合工作負載的效能需求。 Google Cloud
產品 |
設計注意事項和建議 |
---|---|
Google Agentspace |
如要縮短服務期間的延遲時間,請在代理程式產生完整輸出內容前,先傳送模型回覆來串流回應。這項功能可即時處理輸出內容,讓您立即更新使用者介面及執行其他並行工作。串流可提升使用者對回應速度的感受,並打造更具互動性的使用者體驗。詳情請參閱「串流回答」。 |
Cloud Run |
根據效能需求,調整 Cloud Run 執行個體的記憶體和 CPU 配置。詳情請參閱「設定工作的 CPU 上限」和「設定服務的記憶體上限」。 |
Cloud Storage |
如要上傳大型檔案,可以使用「平行複合式上傳」方法。採用這項策略時,系統會將大型檔案分割為多個區塊。您會將區塊平行上傳至 Cloud Storage,然後 Cloud Storage 會在 Google Cloud中重新組裝資料。如果網路頻寬和磁碟速度充足,平行複合上傳作業的速度會比一般上傳作業更快。不過,這項策略有一些限制,且會影響費用。詳情請參閱「平行複合式上傳」。 |
如要瞭解 AI 和機器學習工作負載專用的效能最佳化原則和建議,請參閱 Well-Architected 架構中的「AI 和機器學習觀點:效能最佳化」。
部署作業
如要部署這個參考架構,請使用 GitHub 中提供的 Terraform 範例。詳情請參閱「使用 Google Agentspace 和 Vertex AI 建構生成式 AI 應用程式的 RAG 基礎架構」。
後續步驟
- 瞭解 Google Agentspace 如何將文件分塊,以供 RAG 使用。
- 瞭解如何在 Cloud Run 上代管 AI 應用程式和代理程式。
- 瞭解負責任的 AI 最佳做法和 Vertex AI 安全篩選器。
- 瞭解大型語言模型 (LLM) 的最佳做法。
- 如要瞭解適用於 Google Cloud中 AI 和機器學習工作負載的架構原則和建議,請參閱 Well-Architected Framework 中的AI 和機器學習觀點。
- 如需更多參考架構、圖表和最佳做法,請瀏覽 Cloud 架構中心。
貢獻者
作者:Samantha He | 技術文件撰稿者
其他貢獻者:
- Deepak Michael | 網路專員客戶工程師
- Kumar Dhanagopal | 跨產品解決方案開發人員
- Mark Schlagenhauf | 網路技術文件撰稿者
- Victor Moreno | 雲端網路產品經理
- Yehia Elshater | Google Cloud 生成式 AI 領域解決方案架構師
- Paarth Mahajan | Google Cloud 網路專家