RAG 企業級應用落地框架細節差異對比 原創
1、什么是 RAG ?
RAG 檢索增強生成本質上來講,就三件事情:
第一、Indexing 索引。即如何更有效地存儲知識。
第二、Retrieval 檢索。即在龐大的知識庫中,如何篩選出少量的有益知識,供大模型參考。
第三、Generation 生成。即如何將用戶的提問與檢索到的知識相結合,使得大模型能夠生成有價值的回答。
這三個步驟表面上看似乎并不復雜,然而在 RAG 從構建到實際部署的整個流程中,包含了眾多精細且復雜的工作環節,這些落地細節是最具挑戰的工作。
雖然 RAG 架構基本上是按照這些模塊來設計的,但不同的實施方案在具體落地時各有其獨特之處。
下面詳細對比剖析。
2、RAG 開源框架架構對比
第一、網易 QAnything
網易 QAnything 的亮點在于 Rerank 模塊。
第二、RAGFlow
RAGFlow 的亮點在于數據處理模塊和知識索引構建模塊。
第三、智譜 RAG
智譜 RAG 的亮點在于文檔解析、切片、Query 改寫及 Recall 模型的微調。
第四、FastGPT
FastGPT 的優點是模塊動態配置靈活。
3、開源 RAG 框架的各個模塊對比
第一、知識處理模塊
- QAnything的此模塊使用了 PDF 文件解析,具體是通過 PyMuPDF 庫來完成的,該庫是目前效率最高的解析工具。在解析文檔內容時,無論是文本文件還是圖像文件,均使用 PyMuPDF 的 get_text 方法。需要注意的是,如果圖像文件中不包含文字,使用此方法時將會出現錯誤。
- RAGFlow 的此模塊 使用 OCR 和文檔布局分析等功能,在標準的 RAG(檢索增強生成)系統中通常被歸為一個不太顯眼的非結構化數據加載器部分。據此推測,RagFlow 的一個關鍵優勢很可能在于其文件解析的能力。
- 智譜 RAG--:
- FastGPT--:
第二、召回模塊
- QAnything 向量庫使用了 Milvus 的混合檢索策略(結合 BM25 全文檢索和向量檢索),在檢索過程中不設定任何閾值,直接返回前 100 個最相關的結果(TopK =100)。
- RAGFlow 向量數據庫選用了 ElasticSearch 進行操作。它實現了文本檢索與向量檢索的混合模式,盡管未明確指定所用的向量模型,但在文本檢索方面,使用了 “huqie” 作為分詞工具。
- 智譜 RAG混合檢索結合語義和全文檢索,利用 BGE-M3 向量模型,不直接通過向量或文本檢索召回數據,而是使用 RFF 算法進行排序。
- FastGPT文章結構切片和遞增索引策略有效解決了問題。四種數據構建方案表現佳:
- 查詢對原文:直接召回知識片段。
- 查詢對查詢:便于維護,自動提取查詢。
- 查詢對摘要:建立摘要與片段映射。
- 偽答案對原文:生成偽答案召回片段。
并對 Embedding 模型進行微調。
第三、Rerank 模塊
- QAnything 精確排序使用自定義的 Rerank 模型,閾值設定為 0.35。
- RAGFlow 重排排序結合了文本匹配得分和向量匹配得分,其中文本匹配的默認權重為 0.3,向量匹配的權重為 0.7。
- 智譜 RAG支持重排功能,可動態調整設置;整合嵌入向量(Embedding)與全文搜索(FullText)的結果,并按 ID 進行去重處理;對問答(QA)字符串進行拼接,移除其中的空格和標點符號,并對處理后的字符串進行哈希編碼以實現去重;若已配置重排序(Rerank)模型,則調用該模型對結果進行重新排序,并在評分(Score)中新增重排序得分;若未配置,則評分中不會包含重排序得分。
- ?FastGPT--:
第四、大模型處理模塊
- QAnything 將所有數據集合并至一個提示詞(Prompt),并對最大 token 長度進行了優化處理。
- RAGFlow 對大模型可處理的 token 數量進行限制篩選。
- 智譜 RAG--。
- ?FastGPT在模型微調過程中,我們采取了分步驟的策略:起初使用公開可用的通用問答數據集進行初步微調,隨后利用特定領域的問答數據進行進一步微調,最終使用經過人工精確標注的高質量問答數據來進行細致的微調。
第五、Web 服務模塊
- QAnything 利用 Sanic 框架搭建 Web 服務。
- RAGFlow 基于 Flask 構建 Web 服務。
- 智譜 RAG--。
- ?FastGPT--。
第六、切詞處理模塊
- QAnything 利用自定義的 ChineseTextSplitter 完成。
- RAGFlow 基于 huqie 完成。
- 智譜 RAG--。
- ?FastGPT--。
第七、文件存儲模塊
- QAnything --。
- RAGFlow MinIO 被選用于文件存儲解決方案。。
- 智譜 RAG--。
- ?FastGPT--。
4、RAG 框架總結
1、Qanything 的 Rerank 模塊設計極為出色。
2、RAGFlow 在文檔處理方面表現卓越。
3、FastGPT 模塊具備豐富的動態配置選項。
4、智譜 RAG 在特定領域數據的微調訓練上表現最佳。
然而,一切脫離業務場景談架構都是耍流氓,結合具體業務場景考慮下,并不存在絕對的“最好”。在各自的業務場景應用中,能夠成功實施并產生效果的就是最佳選擇。實踐落地才是關鍵,落地成效為王道!
本文轉載自公眾號玄姐聊AGI 作者:玄姐
原文鏈接:??https://mp.weixin.qq.com/s/HoQ0Ex9yuxrBp0aW6kuWcQ??
?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
標簽
贊
收藏
回復
分享
微博
QQ
微信
舉報

回復
相關推薦