当前位置:   article > 正文

RAG框架,都在这了!_开源rag框架

开源rag框架

RAG 很多人都听说过,或者实践过,目前最直接的应用就是构建智能问答系统

什么是 RAG?

RAG 是 Retrieval Augmented Generation 的简写,翻译过来就是检索增强生成

从名字就可以拆分出 RAG 的三大部分,检索、增强、生成,表面意思就是

1、去知识库检索相关的各种东西

2、把检索出来的信息,融合到 prompt 中,增强输入信息

3、最后是大模型生成更符合事实性的回答

为什么需要用到 RAG 呢?

大模型"幻觉"的问题一直存在,RAG 是缓解其幻觉的一个很重要的途径,当然还有其他缓解的方式,SFT 这些。

有几点比较重要的优势吧。

  1. 外挂知识,可以增加 LLM 推理的能力、准确性,能够更加复合客观事实。
  2. 知识库增删修改更加方便,遇到 bug 及时修复知识库,或者更新知识库即可,基本是用户没有感知的状态,不像 SFT 还需要重新训练,耗费时间。
  3. 再就是可解释性,通过工程手段,可以给出合理的引用链接,增加可信度,比如现在做的一些智能搜索,后面会列出答案来自的链接。

如果还有其他的,下面评论区留言哈,大家一起探讨。

那么现在有多少开源框架可以很方便的做这个事情呢?

是否需要重复造轮子呢?

这是个好问题。

所以总结下目前都有哪些开源的 RAG 框架,看下是否满足开发需要,就是一个蛮有必要的事情。

这里总结一些 RAG 框架,有其他的可以评论区留言。

框架一:LangChain

LangChain 是一个用于开发由大型语言模型 (LLMs) 驱动的应用程序的框架。

项目地址:https://github.com/langchain-ai/langchain

目前已获得 86.2k starts 关注,众人关注。

图片

对于这些应用程序,LangChain 简化了整个应用程序生命周期:

开源库:使用 LangChain 的模块化构建块和组件构建您的应用程序。与数百家第三方提供商集成。

生产化:使用 LangSmith 检查、监控和评估您的应用程序,以便您可以充满信心地不断优化和部署。

部署:使用 LangServe 将任何链转换为 REST API。

现在市面上有很多人用 LangChain 结合 LLM 构造 RAG 流程,因为 Langchain 里面包含了各种组件,向量检索、文本分割、大模型调用,还有很多其他的都在里面。

图片

这里有一份 LangChain RAG 的教资料,可收藏:https://python.langchain.com/v0.2/docs/tutorials/rag/

框架二:Langchain-Chatchat

一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。

图片

项目地址:https://github.com/chatchat-space/Langchain-Chatchat

目前已收获 28.7k 关注。

图片

这是项目的流程框架。

图片

它解决的痛点

该项目是一个可以实现 完全本地化推理的知识库增强方案, 重点解决数据安全保护,私域化部署的企业痛点。

可以免费商用,无需付费。

支持市面上主流的本地大语言模型和 Embedding 模型,支持开源的本地向量数据库。

这里是一份框架的文档: https://github.com/chatchat-space/Langchain-Chatchat/wiki/

框架三:QAnything

图片

QAnything (Question and Answer based on Anything) 是致力于支持任意格式文件或数据库的本地知识库问答系统,可断网安装使用。

目前已支持格式: PDF(pdf),Word(docx),PPT(pptx),XLS(xlsx),Markdown(md),电子邮件(eml),TXT(txt),图片(jpg,jpeg,png),CSV(csv),网页链接(html)

项目地址: https://github.com/netease-youdao/QAnything/tree/master

网易出品,目前已收获 9.9k 关注。

图片

架构如下

图片

有个很重要的关键点;两阶段检索

知识库数据量大的场景下两阶段优势非常明显,如果只用一阶段 embedding 检索,随着数据量增大会出现检索退化的问题,如下图中绿线所示,二阶段 rerank 重排后能实现准确率稳定增长,即数据越多,效果越好。

图片

这是文档:https://qanything.ai/docs/introduce

框架四:RAGFlow

RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。

图片

项目地址: https://github.com/infiniflow/ragflow/tree/main

目前已收获 8.8k 关注

图片

主要功能

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】

推荐阅读
相关标签