步驟 5 (擷取)。 如何偵錯擷取品質
此頁面說明如何識別擷取問題的根本原因。 當根本原因分析指出根本原因 Improve Retrieval
時,請使用此頁面。
擷取品質可以說是 RAG 應用程式最重要的元件。 如果未針對指定的查詢傳回最相關的區塊,LLM 將無法存取必要的資訊,以 generate 高品質的回應。 擷取不佳可能會導致不相關、不完整或產生幻覺的輸出。 此步驟需要手動分析基礎資料。 馬賽克 AI 代理程式架構在數據平臺之間緊密整合(包括 Unity Catalog 和向量搜尋),以及使用 MLflow 進行實驗追蹤(包括 LLM 評估和 MLflow 追蹤)可讓您更輕鬆地進行疑難解答。
指示
請遵循下列步驟來解決擷取品質問題:
- 開啟 B_quality_iteration/01_root_cause_quality_issues 筆記本。
- 使用查詢來載入具有擷取品質問題的記錄的 MLflow 追蹤。
- 針對每個記錄,手動檢查擷取的區塊。 如果有的話,請將其與基準真相擷取文件進行比較。
- 在擷取品質較低的查詢中尋找模式或常見問題。 例如:
- 向量資料庫完全遺漏相關資訊。
- 擷取查詢傳回的區塊或文件數目不足。
- 區塊太小,且缺乏足夠的內容。
- 區塊太大,且包含多個不相關的主題。
- 嵌入模型無法擷取特定領域字詞的語意相似性。
- 根據已識別的問題,假設潛在的根本原因和對應的修正。 如需指導,請參閱擷取品質不佳的常見原因。
- 請遵循實作和評估變更中的步驟來實作及評估可能的修正。 這可能涉及修改資料管線 (例如,調整區塊大小或嘗試不同的內嵌模型),或修改 RAG 鏈結 (例如,實作混合式搜尋或擷取更多區塊)。
- 如果擷取品質仍然不盡如人意,請針對下一個最有希望的修正重複步驟 4 和 5,直到實現所需效能為止。
- 重新執行根本原因分析,以判定整體鏈結是否有應解決的任何其他根本原因。
擷取品質不佳的常見原因
下列 table 列出偵錯步驟和常見取回問題的潛在解決方案。 修正會依元件分類:
- 資料管線
- 鏈結設定
- 鏈結程式碼
此元件定義了您在實作和評估變更步驟中應遵循的步驟。
擷取問題 | 偵錯步驟 | 可能的修正 |
---|---|---|
區塊太小 | - 檢查區塊中是否有不完整的截止資訊。 |
-
資料管線 增加區塊大小或重疊。 - 資料管線 嘗試不同的區塊化策略。 |
區塊太大 | - 檢查擷取的區塊是否包含多個不相關的主題。 |
-
資料管線 減少區塊大小。 - 資料管線 改善區塊化策略,以避免混合不相關的主題 (例如語意區塊化)。 |
區塊沒有足夠的關於其來源文字的資訊 | - 評估每個區塊缺少內容是否會導致擷取的結果混亂或模稜兩可。 |
-
資料管線 請嘗試將中繼資料和標題新增至每個區塊 (例如區段標題)。 - 鏈結設定 擷取更多區塊,並使用具有較大內容大小的 LLM。 |
內嵌模型無法準確地了解使用者查詢中的網域或關鍵片語 | - 檢查是否針對相同的查詢擷取語意類似的區塊。 |
-
資料管線 請嘗試不同的內嵌模型。 - 鏈結設定 嘗試混合式搜尋。 - 鏈結程式碼 過度擷取結果,然後重新排名。 僅將排名最高的結果饋送至 LLM 內容。 - 資料管線 微調領域特定資料上的內嵌模型。 |
向量資料庫遺漏相關資訊 | - 檢查向量資料庫中是否有任何相關的文件或區段遺漏。 |
-
資料管線 將更多相關的檔新增至向量資料庫。 - 資料管線 改善檔剖析和中繼資料擷取。 |
擷取查詢制定不佳 | - 如果使用者查詢正直接用於語意搜尋,請分析這些查詢,並檢查是否模棱兩可或缺乏明確性。 這可能會在多回合交談中輕鬆發生,where 原始使用者查詢參考先前的交談部分,使其不適合直接作為擷取查詢使用。 - 檢查查詢字詞是否符合搜尋主體中使用的術語。 |
-
鏈結程式碼 新增查詢擴充或轉換方法 (例如,指定使用者查詢,在語意搜尋之前轉換查詢)。 - 鏈結程式碼 新增查詢瞭解以識別意圖和實體 (例如,使用 LLM 來擷取要用於中繼資料篩選的屬性)。 |
後續步驟
如果您也識別了產生品質的問題,請繼續進行步驟 5 (產生)。如何偵錯產生品質。
如果您認為您已解決所有已識別的問題,請繼續進行 步驟 6。對 AI 代理程式進行和評估品質修正。