擷取增強生成(RAG)是一種強大的技術,結合了大型語言模型(LLM)與實時數據擷取,以產生更精確的up-to-date,以及內容相關的回應。
這種方法對於回答專屬、經常變更或領域特定資訊的問題特別有價值。
什麼是「檢索增強生成」?
最簡單的形式是RAG代理程式會執行下列動作:
- 擷取:使用者的要求可用來查詢外部知識庫,例如向量存放區、關鍵詞搜尋或 SQL 資料庫。 目標是取得 LLM 回應的支持數據。
- 擴充:支持數據通常會與使用者的請求結合,使用範本並結合 LLM 的額外格式設定和指示,以生成提示訊息。
- 產生:提示會傳遞至 LLM,以產生使用者要求的回應。
RAG 優點
RAG 會以下列方式改善 LLM:
- 專屬知識:RAG 可以包含最初不用來訓練 LLM 的專屬資訊,例如備忘、電子郵件和文件,以回答特定領域問題。
- 最新資訊: RAG 應用程式可以從更新的知識庫中提供資訊給 LLM。
- 引用來源:RAG 可讓 LLM 引用特定來源,讓使用者驗證回應的事實正確性。
- 數據安全性和訪問控制清單(ACL): 擷取步驟的設計目的是根據使用者認證選擇性地擷取個人或專屬資訊。
RAG 元件
典型的 RAG 應用程式牽涉到數個階段:
數據管線:預先處理和編製文件、數據表或其他數據的索引,以快速且準確地擷取。
RAG 鏈結(擷取、擴增、生成):執行一系列(或鏈結)步驟,以:
- 瞭解用戶的問題。
- 擷取支持的數據。
- 使用支援的數據增強提示。
- 使用擴充提示從 LLM 產生回應。
評估和監視:評估RAG應用程式以判斷其品質、成本和延遲,以確保其符合您的商務需求。
治理和 LLMOps:追蹤和管理每個元件的生命週期,包括資料譜系和存取控制。
RAG 數據類型:結構化和非結構化
RAG 架構可以搭配非結構化或結構化佐證資料使用。 您搭配 RAG 使用的資料取決於您的使用案例。
非結構化資料: 沒有特定結構或組織的資料。
- PDF 檔案
- Google/Office 文件
- 維基網站
- 圖片
- 影片
結構化數據: 以具有特定架構的數據列和數據行排列的表格式數據,例如資料庫中的數據表。
- BI 或資料倉儲系統中的客戶記錄
- 來自 SQL 資料庫的事務資料
- 從應用程式 API 的資料 (例如 SAP、Salesforce 等)
評估與監視
評估和監視有助於判斷 RAG 應用程式是否符合您的品質、成本和延遲需求。 評估會在開發期間發生,而監視會在應用程式部署至生產環境時發生。
非結構化資料的 RAG 有許多影響品質的元件。 例如,數據格式化變更可能會影響擷取的區塊,以及 LLM 產生相關回應的能力。 因此,除了整體應用程式之外,請務必評估個別元件。
如需詳細資訊,請參閱 馬賽克 AI 代理程式評估 (MLflow 2)。
Databricks 上的 RAG
Databricks 提供用於 RAG 開發的端對端平臺,包括:
- 整合式數據管線與 Delta Lake 和 Lakeflow 宣告式管線
- 使用 Databricks 向量搜尋進行可調整向量搜尋
- 模型服務 和協調流程工具
- Gen AI 評估以改善效能和品質
- 已部署RAG應用程式的 Gen AI 監視
- 內建治理和安全性,請參閱 安全性和信任中心和AI 閘道。
後續步驟
了解資料管線,這是RAG應用程式的重要元件。 請參閱 建置 RAG 的非結構化數據管線
使用 AI 遊樂場建立您自己的 RAG 代理程式的原型。 請參閱 AI 遊樂場中的原型工具呼叫代理程式。
- 使用 Agent Bricks: Knowledge Assistant 建立 RAG 代理作為檔案上的聊天機器人,並作為可在下游應用程式中使用的端點。 請參閱 使用 Agent Bricks:知識助理,透過您的文件創建高品質的聊天機器人。