回复
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
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
赞
收藏
回复
相关推荐