什麼是 RAG 系統?
下面是一個簡單的基於 RAG 的聊天機器人的例子,用於查詢您的私人知識庫。
第一步是以適合查詢的格式存儲內部文檔的知識。我們通過使用嵌入模型嵌入它來做到這一點:
𝟭: 將整個知識庫的文本語料庫分割成塊——塊將表示可查詢的單個上下文。感興趣的數據可以來自多個來源,例如由 PDF 報告補充的 Confluence 中的文檔。
𝟮: 使用嵌入模型將每個塊轉換爲矢量嵌入。
𝟯: 將所有矢量嵌入存儲在矢量數據庫中。
𝟰: 將分別表示每個嵌入的文本與指向嵌入的指針一起保存(我們稍後需要)。
接下來,我們可以開始構建感興趣的問題 / 查詢的答案:
𝟱: 使用用於嵌入知識庫本身的嵌入模型嵌入您要問的問題 / 查詢。
𝟲: 使用生成的矢量嵌入對矢量數據庫中的索引運行查詢。選擇要從矢量數據庫中檢索的矢量數量——這將等於您將要檢索並最終用於回答查詢問題的上下文數量。
𝟳: 向量 DB 針對索引對所提供的向量嵌入執行近似最近鄰(ANN)搜索,並返回先前選擇的上下文向量量。該過程返回在給定嵌入 / 潛在空間中最相似的向量。
𝟴: 將返回的矢量嵌入映射到表示它們的文本塊。
𝟵: 通過提示將問題和檢索到的上下文文本塊一起傳遞給 LLM。指示 LLM 僅使用提供的上下文來回答給定的問題。這並不意味着不需要即時工程——您需要確保 LLM 返回的答案符合預期的界限,例如,如果檢索到的上下文中沒有可以使用的數據,請確保沒有提供虛構的答案。
爲了讓它成爲一個真正的聊天機器人,使用一個 Web UI 來面對整個應用程序,該 UI 公開了一個文本輸入框作爲聊天界面。在通過步驟 1。至 9.- 返回並顯示生成的答案。這就是當今大多數基於單個或多個內部知識庫來源的聊天機器人的實際構建方式。
如上所述,該系統實際上只是一個幼稚的 RAG,通常不適合生產級應用。您需要了解系統中的所有移動部件,以便通過應用先進技術來調整它們,從而將 Naive RAG 轉換爲適合生產的 advanced RAG。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/6zce-SiRlsaF_XqqrL_cgg