本文提供參考架構,說明如何使用 Gemini Enterprise 和 Agent Platform,為檢索增強生成 (RAG) 的生成式 AI 應用程式設計基礎架構。這項參考架構說明如何使用代管服務及部署單一 AI 代理,簡化端對端 RAG 資料流程。Gemini Enterprise 是企業適用的統一代理自動化調度管理平台。Agent Platform 可加速自訂代理的開發及部署作業,並提供代管資料儲存區,方便有效檢索 RAG 資料。
這份文件適用於生成式 AI 應用程式的架構師、開發人員和管理員。文件中假設您已具備 AI、機器學習 (ML) 和大型語言模型 (LLM) 概念的基本知識。這份文件不會提供生成式 AI 應用程式的設計和開發指南。如要瞭解如何設計應用程式,請參閱「開發生成式 AI 應用程式」。
架構
下圖顯示本文介紹的架構概略視圖:
上圖中的架構有兩個子系統:資料擷取和服務。
- 資料擷取子系統會擷取及準備外部來源的資料,以供 RAG 使用。這個子系統會為擷取的資料生成嵌入,並使用這些嵌入在受管理資料存放區中,建構及維護可搜尋的向量索引。
- 服務子系統包含生成式 AI 應用程式的前端和後端服務。
- 前端服務會處理應用程式使用者的查詢/回覆流程,並將查詢轉送至後端服務。
- 後端服務會使用 Gemini Enterprise 和 Agent Platform 建構及部署 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 主題會觸發處理工作,在 Gemini Enterprise 的受管理資料儲存庫中執行。處理工作會從 Cloud Storage 值區提取原始擷取的資料和中繼資料,然後剖析資料並將資料分塊,以便在服務期間有效率地擷取資料。Gemini Enterprise 會自動生成向量嵌入,無需任何設定。
服務子系統
服務子系統會處理生成式 AI 應用程式和使用者之間的查詢/回覆流程。服務流程的步驟如下:
- 應用程式使用者透過其中一項 Cloud Run 前端服務傳送查詢。 您可以自訂這些服務,提供不同的體驗,例如聊天機器人 UI、搜尋頁面或行動應用程式。
- 前端服務會接收查詢,然後將查詢轉送至集中式 Cloud Run 後端服務。這個後端會提供單一統一的端點,支援所有不同的前端用戶端。後端服務也會執行必要的前處理作業,包括為搜尋查詢建構篩選器。這種做法可讓前端清楚瞭解邏輯。
- 後端服務會使用 Gemini Enterprise API 端點,將準備好的要求傳送至 Gemini Enterprise,以啟動 RAG 工作流程。
- 為處理查詢,Gemini Enterprise 會使用企業搜尋和自訂代理執行下列工作:
- 建立使用者查詢的嵌入內容。
- 對受管理資料存放區中已建立索引的資料執行語意搜尋,找出最相關的資訊。
- 使用從受管理資料存放區擷取的資料擴增原始查詢,建立含有詳細背景資訊的提示。
- 根據增強後的提示生成最終回覆。
- Gemini Enterprise 會將生成的回覆傳送至 Cloud Run 後端服務。
- 後端服務會將最終回應傳回給傳送原始要求的前端服務。前端服務會向應用程式使用者顯示答案。
使用的產品
這項參考架構使用下列 Google Cloud 產品:
- Gemini Enterprise:全代管安全平台,可在企業內部署及管理 AI 代理。
-
Gemini Enterprise Agent Platform:全方位平台,可協助您建構、擴充、管理及最佳化調整企業級的 AI 代理。
- Gemini Enterprise Agent Platform 的 Agent Runtime:這個平台可讓您在正式環境中執行、管理及擴充 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 輔助法律研究,快速查詢大量法規和判例法,找出相關法律先例或歸納複雜的法律概念。律師可從律師事務所的專屬合約、過往法律通訊和內部案件記錄中擷取資料,並將這些資料加入提示,藉此提升研究結果的品質。這種設計方法可確保生成的內容與律師專精的法律領域相關。
設計替代方案
本節將介紹可考慮用於支援 RAG 的生成式 AI 應用程式的替代設計方法。 Google Cloud
AI 基礎架構替代方案
如需設計及部署具備 RAG 功能的生成式 AI 應用程式架構指南清單,請參閱 Google Cloud「具備 RAG 功能的生成式 AI」一文。
應用程式託管選項
如本文所示架構,Cloud Run 是生成式 AI 應用程式和資料處理的代管服務。Cloud Run 是專為開發人員設計的全代管應用程式。您也可以將應用程式部署至 Gemini Enterprise Agent Platform 的 Agent Runtime、GKE 叢集或 Compute Engine VM。
如要選擇應用程式主機,請考量設定彈性和管理工作量之間的取捨:
- 使用無伺服器 Cloud Run 選項,即可將自訂服務部署至預先設定的代管環境。如要代管前端服務和要求前置處理的自訂後端邏輯,這個架構必須能夠部署自訂應用程式。
- 使用 Agent Runtime 選項時,您會使用專為代理服務設計的全代管平台。Agent Runtime 可減少管理負擔,並確保與 Gemini Enterprise 緊密整合。
- 使用 Compute Engine VM 和 GKE 容器時,您必須負責管理基礎運算資源,但可享有更大的設定彈性和控制權。
如要進一步瞭解如何選擇合適的應用程式代管服務,請參閱下列文件:
其他基礎架構選項
如要瞭解其他基礎架構選項、支援的模型,以及可在Google Cloud中用於生成式 AI 應用程式的基礎技術,請參閱「為生成式 AI 應用程式選擇模型和基礎架構」。
設計須知
本節提供指引,協助您在 Google Cloud 中開發支援 RAG 的生成式 AI 架構,滿足安全性、法規遵循、可靠性、成本和效能方面的特定需求。本節的指引僅列出部分範例。視生成式 AI 應用程式的具體需求,以及您使用的 Google Cloud 產品和功能而定,您可能需要考量其他設計因素和取捨。
如要瞭解適用於 Google Cloud中 AI 和機器學習工作負載的架構原則和建議,請參閱 Well-Architected Framework 中的AI 和機器學習觀點。
安全性、隱私權和法規遵循
本節說明設計拓撲時的考量事項和建議,以符合工作負載的安全性和法規遵循需求。 Google Cloud
產品 |
設計注意事項和建議 |
|---|---|
Agent Platform |
Agent Platform 支援 Google Cloud 安全控管機制 ,可協助您滿足資料落地、資料加密、網路安全和存取透明度方面的需求。詳情請參閱下列說明文件: Gemini 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 探索、分類及去識別化機密資料。詳情請參閱「將 Sensitive Data Protection 與 Cloud Storage 搭配使用」。 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中建構及運作可靠的部署基礎架構。
產品 |
設計注意事項和建議 |
|---|---|
Agent Platform |
Agent Platform 可確保靜態資料落地。Agent Platform 會將來源資料 (包括受管理資料存放區中的 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 拓撲的成本。您可使用本參考架構建構拓撲。
產品 |
設計注意事項和建議 |
|---|---|
Agent Platform |
代理程式叫用的基礎 AI 模型會直接影響使用該代理程式的費用。系統會根據每項要求輸入和輸出的權杖數量計算價格。詳情請參閱「Agent Platform 上的生成式 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
產品 |
設計注意事項和建議 |
|---|---|
Gemini Enterprise |
為減少服務期間的延遲時間,請在代理程式生成完整輸出內容前,先傳送模型回覆來串流回覆。這樣就能即時處理輸出內容,您也可以立即更新使用者介面並執行其他並行工作。串流可提升感知回應速度,並打造更具互動性的使用者體驗。詳情請參閱「串流回覆」。 |
Cloud Run |
根據效能需求,調整 Cloud Run 執行個體的記憶體和 CPU 配置。詳情請參閱「設定工作的 CPU 上限」和「設定服務的記憶體上限」。 |
Cloud Storage |
如要上傳大型檔案,可以使用稱為平行複合式上傳的方法。採用這項策略時,系統會將大型檔案分割成多個區塊。您可平行上傳區塊至 Cloud Storage,Cloud Storage 接著會以 Google Cloud重新組裝資料。如果網路頻寬和磁碟速度充足,平行複合上傳作業的速度會比一般上傳作業更快。不過,這項策略有一些限制,且會影響費用。詳情請參閱「平行複合式上傳」。 |
如要瞭解 AI 和機器學習工作負載的效能最佳化原則和建議,請參閱 Well-Architected Framework 中的「AI 和機器學習觀點:效能最佳化」。
部署作業
如要部署這項參考架構,請使用 GitHub 中提供的 Terraform 範例。詳情請參閱「使用 Gemini Enterprise 和 Agent Platform 建構生成式 AI 應用程式的 RAG 基礎架構」。
後續步驟
- 瞭解 Gemini Enterprise 如何將文件分塊以供 RAG 使用。
- 瞭解如何在 Cloud Run 上代管 AI 應用程式和代理程式。
- 瞭解負責任的 AI 技術最佳做法和 Agent Platform 安全性篩選器。
- 瞭解 LLM 的提示策略。
- 如要瞭解適用於 Google Cloud中 AI 和機器學習工作負載的架構原則和建議,請參閱 Well-Architected Framework 中的AI 和機器學習觀點。
- 如要查看更多參考架構、圖表和最佳做法,請瀏覽 Cloud Architecture Center。
貢獻者
作者:Samantha He | 技術文件撰稿者
其他貢獻者:
- Deepak Michael | 網路專員客戶工程師
- Kumar Dhanagopal | 跨產品解決方案開發人員
- Mark Schlagenhauf | 網路技術文件撰稿者
- Victor Moreno | 雲端網路產品經理
- Yehia Elshater | Google Cloud 生成式 AI 領域解決方案架構師
- Paarth Mahajan | Google Cloud 網路專家