隨著 大語言模型 (LLM) 在各種問答系統中的普及, 檢索增強生成 (RAG) 流程也成為焦點。RAG 流程將 LLM 的生成能力與外部數據源和檢索機制相結合,使模型能夠訪問微調期間可能不存在的特定領域信息。
RAG 性能很大程度上取決于底層文本嵌入模型的質量。嵌入模型不佳會導致檢索結果欠佳,進而降低 RAG 系統的整體性能。在處理企業特定的內部數據時尤其如此,因為開箱即用的模型可能無法提供所需的準確性。
為確保 RAG 系統能夠有效處理您的特定數據,您必須評估預訓練嵌入模型在語料庫中的表現是否良好。此評估所需的標注數據與最終用戶提交的查詢類型非常相似。例如,帶標注的樣本數據集可能包括以下內容:
Question: How do I reset my enterprise VPN password? Passage: To reset your VPN password, visit the IT help portal, select ‘Reset Password,’ and follow the on-screen instructions. Answer: Visit the IT help portal and select 'Reset Password' |
在許多情況下,現有嵌入模型在應用于特定領域的數據時無法產生最佳結果。這就需要使用與企業語料庫共享相同分布的標注數據來定制這些模型。
在本文中,我們將討論如何使用新的 NVIDIA 合成數據生成 (SDG) 流程創建合成數據,以評估和自定義嵌入模型。通過生成高質量的合成標注,您可以增強嵌入模型的性能,并針對企業特定用例優化檢索準確性。
自定義和評估 Embedding 模型
嵌入模型通過將文檔語料庫和用戶查詢轉換為密集數值向量,在 RAG 系統中發揮著至關重要的作用。這些嵌入存儲在數據庫中,使 RAG 系統能夠高效檢索與給定查詢最相關的文檔。
雖然預訓練嵌入模型適用于通用文本,但它們通常無法捕獲特定領域數據的細微差別。這種差距會導致搜索結果不可靠、連接中斷以及 RAG 性能不佳。
為解決這一問題,必須使用特定領域的數據評估和定制嵌入模型。這種自定義可調整模型的內部權重,使其能夠更好地理解與目標企業應用相關的上下文含義。
例如,在不同上下文中考慮“pitch”一詞:
- 體育:“ 棒球 pitch 非常棒 ”。這里的“pitch”是指一次拋球。
- 業務:“初創公司為投資者提供了一個很好的 pitch ”。在本例中,“pitch”是指演示。
如果嵌入模型主要基于體育數據進行訓練,則“pitch”的向量傾向于體育語境。在用于業務查詢時,這可能會導致檢索不準確。
通過在業務特定文本上微調模型,“pitch”的嵌入會轉變為表示其與業務相關的含義,從而提高該領域文檔檢索的準確性。
為嵌入模型創建評估和自定義數據極具挑戰性
公開可用的數據集在應用于企業特定數據時通常缺乏相關性。這些數據集通常從公開可用的來源收集,其中的詞匯、上下文和結構可能與企業內部發現的特定領域的內容不匹配。
因此,使用公共數據集評估或定制 RAG 系統可能會導致性能評估不準確和模型微調欠佳。
創建人工標注的 enterprise-specific 數據集既昂貴又耗時。此過程需要領域專家對大量數據進行標記,確保標注能夠捕獲行業的特定術語和上下文。此外,這種方法難以擴展,尤其是考慮到企業的需求會隨著時間的推移而變化。
使用 NVIDIA NeMo Curator 生成高質量的合成數據
NVIDIA NeMo Curator 通過大規模處理用于訓練和定制的文本、圖像和視頻數據,提高生成式 AI 模型的準確性。它還提供用于生成合成數據的預構建流程,以自定義和評估嵌入模型。
用于生成 RAG 評估數據的 SDG 流程經過專門設計,可生成高質量的問答 (QA) 對,以評估嵌入模型的表現。它由三個關鍵組件組成,每個組件均可確保生成的數據與上下文相關、具有適當的挑戰性,并以源材料為基礎:
- QA 配對生成 LLM
- 嵌入模型即評判,為問題輕松度
- 用于接地的 Answerability filter
NVIDIA NeMo Retriever 是 NVIDIA NeMo 平臺的關鍵組件,它還利用打包為 NVIDIA NIM 微服務的優化模型,通過更快、更精確的多模態數據提取和檢索來增強 RAG 應用。為域自定義嵌入模型后,使用 NeMo Retriever 部署這些模型,以在生產流程中進行評估和擴展。
QA 配對生成 LLM
此組件使用任何 NVIDIA NIM LLM 從種子文檔中生成問答對。我們提供經過優化的系統提示,指導 LLM 創建更符合上下文且更相關的問題。
Example Input: Seed Document: "Our enterprise offers cloud-based cybersecurity solutions to prevent data breaches." Example Output: Question: "What type of solutions does the enterprise offer?" Answer: "Cloud-based cybersecurity solutions." |
通過使用專為這項任務設計的系統提示,LLM 生成與種子數據上下文相符的問題,確保更高質量的輸出。
嵌入模型即評判,為問題輕松度
為確保生成的問題涵蓋一系列困難,此組件使用 embedding model 來評估每個問題的復雜性并對其進行排序。
嵌入模型可用作判斷工具,根據生成的問題與上下文文檔的余弦相似度過濾掉這些問題。通過使用手動標注的數據集進行校準以模擬人類判斷來確定閾值,并且可以輕松定制這些閾值以滿足特定需求。
可以通過更改這些 thresholds 來控制數據集的難度分布。降低 thresholds 可能會導致更難回答的問題的百分比更高,并且有助于生成更難回答的評估數據集。
通過應用這些值,管道可確保最終數據集均衡地混合了簡單、中等和困難的問題,從而提高模型評估的可靠性。
用于接地的 Answerability filter
最后一個組件充當過濾器,確保生成的每個問題都直接基于種子文檔。此步驟可防止數據集中包含不相關或有幻覺的問題,從而保持評估數據的質量和可靠性。這可確保僅保留由源材料直接支持的材料,從而提高最終數據集的可信度和相關性。
NeMo Curator 還提供了為嵌入模型生成自定義數據的流程。除了評估流程中的組件外,它還添加了一個 Hard Negative Mining 模塊。
了解 Hard-Negative Mining
硬負在提高嵌入模型的對比學習性能方面發揮著至關重要的作用。這些樣本被定義為難以區分正樣本但包含不包含查詢答案的上下文的樣本。
通過整合 hard negatives,模型被迫學習更具判別性的特征,從而提高其區分相似但不同的數據點的能力。這種方法有助于微調模型的決策邊界,從而實現更穩健、更通用的表示。
在定制期間,目標是增加負面文檔嵌入與問題文檔嵌入之間的距離,同時縮短正面文檔與問題文檔嵌入之間的距離。此過程有助于模型學習更好地區分相關信息和不相關信息。
對于大多數嵌入模型而言,問題與無關文檔之間的距離已經很遠。因此,僅使用隨機的負值文檔并不會顯著影響模型的學習。
相反,模型使用 hard negatives 來訓練,即由于嵌入與問題具有更高的余弦相似性(cosine similarity),因此更難區分的負文檔。通過專注于這些更困難的案例,該模型能夠進一步理解細微差別,從而獲得更準確的檢索結果。
您可以使用以下方法使用 hard negative documents:
- Top-K 選擇:系統識別與問題具有最高余弦相似性的頂部 K 個負文檔。通過選擇此類負數,訓練模型可以更好地分離向量空間中接近的相關文檔和不相關文檔。這是最簡單的方法之一。
- 基于閾值的選擇: 替代方法是為負數和問題之間的 cosine similarity 設置最小和最大閾值,并選擇位于這些閾值內的頂部 K 個負值文檔。這可確保在訓練期間僅使用最具挑戰性的負數,從而進一步微調模型的決策邊界。
- 積極感知挖掘:該方法使用正相關性分數作為錨定值,以更有效地消除假陰性。 這種方法旨在解決為對比學習選擇高質量的硬性否定段落的挑戰。我們將最大負相似度值定義為正分數的百分比。此方法表現非常好,將值設置為正分數的 95%。如需了解有關消融研究的更多信息,請參閱 NV-Retriever:通過有效的硬陰性挖掘改進文本嵌入模型 。
借助 hard-negative mining,您可以生成高質量數據來自定義嵌入模型,并提高 RAG 應用的準確性。
總結
在本文中,我們討論了 NeMo Curator 的 SDG 流程如何簡化高質量數據集的生成,從而實現文本嵌入模型的精確評估和自定義。
借助這些增強型數據集,您可以有效地評估和微調 RAG 性能,深入了解檢索系統的性能,并確定提高準確性和相關性的方法。
有關如何開始使用的更多信息,請參閱以下資源:
借助 NeMo Retriever 嵌入微服務 ,您可以進一步優化多模態文檔檢索,以顯著降低成本大規模提高 RAG 應用的整體準確性。
?