RAG系统数据优化实践:海量数据对问答效果的影响

释放双眼,带上耳机,听听看~!
本文通过实践探讨了RAG系统中海量数据对问答效果的影响,针对教育领域知识库问答进行了详细研究,为RAG系统数据优化提供了有益的经验和教训。

当我们用 Retrieval-Augmented Generation for Large Language Models: A Survey,不想阅读原始英文论文?使用「有道速读」快速了解什么是 RAG?

RAG 系统:数据越多,效果越好吗?

从宏观层面来看,RAG 包含两个核心的要素:数据和系统。RAG 的应用场景非常多,包括文档助手,智能客服机器人,领域 / 行业知识库问答等。不同的应用场景优化的侧重点可能有所差异。

对于文档助手这类应用来说,数据是已知的,我就上传几篇文档,就针对这些文档来问问题。我们几乎不用关注数据侧的事情,把精力放在优化系统就可以了。

而对于领域 / 行业知识库问答来说,需要从数据侧和系统侧同时优化。因为如果用户问题回答不上来,有可能是没相关数据,也有可能是有数据但 RAG 系统没找到。

数据侧的优化很 “简单”,就是尽可能多的收集领域内相关的数据,通通灌进知识库里面。但是, 请先别着急!在开始组织人力收集整理数据之前,我们首先得弄清楚一件事情:RAG 系统,数据越多,效果越好吗?

如果答案是肯定的,意味着:

  • 海量数据放心灌,我可以一批一批地往知识库中加数据,不用担心数据量太大相互干扰导致效果不佳。

  • 快速迭代快速优化,对于上线之后的 badcase,业务侧可以直接通过加相应数据来快速迭代优化。

  • 降低数据成本,收集和整理的成本,不用费劲心思去做数据去重和脏数据的处理。

  • 增加系统的稳定性,如果我加的数据不相关,问答的效果不一定会变好,但是起码能保证以前的效果不会变差。

反之,那工作量可就大了😭

实验:数据量对于问答效果的影响

以教育领域的知识库问答为例,我们基于 RAG 做了一个升学百科问答的应用,专门解答用户关于高考升学规划和志愿填报政策相关的问题。

RAG系统数据优化实践:海量数据对问答效果的影响升学百科问答

升学百科问答不是给定数据,给定问题,然后只需要去优化算法或者系统的 Benchmark 任务。它的问题是开放的,数据也是开放的(你可以收集到尽可能多的相关数据来提升问答的效果)。所以优化的变量就多了一个:系统是一部分,数据也是一部分。问答效果的好坏不光取决于好的 RAG 系统,还取决于你的数据量够不够,覆盖的知识全不全?如何优化 RAG 能让它完全发挥出海量数据的价值是我们研究的重点。

关于数据量对 RAG 问答质量的影响,我们在升学百科问答项目中做了比较详细的研究。实验设置如下:

  • 用户问题: 收集了 176 个升学百科相关的问题,包括升学路径、志愿填报、选科等相关政策咨询问题。

  • RAG 系统: 一个经典的 RAG 系统,包括文本解析切片,embedding 向量化建库,检索相关片段,语言模型总结问答等模块。

  • 领域数据: 我们收集了海量升学规划相关的资料来验证数据的问题,包括教育领域的互联网数据,书本资料,FAQ 问答对等。

RAG系统数据优化实践:海量数据对问答效果的影响

RAG 在升学百科问答中的实践

结果:检索退化问题

我们分批往 RAG 知识库中灌入数据,每加一批数据都做一次评测,观察随着数据量变大,问答效果的变化情况:

  • BCEmbedding 有非常强悍的双语和跨语种能力,能消除语义检索里面的中英语言之间的差异。其中包含的 embedding 和 rerank 模型均达到业界 有道 BECEmbedding 模型和 Rerank 模型指标汇总,如果需要单独使用 embedding 和 rerank 组件,点击下面的链接进行下载:

    github.com/netease-you…

    最终结果

    至此,我们可以在以上两阶段检索的 QAnything 系统上重新跑前三批数据的实验了。结果如下:

    RAG系统数据优化实践:海量数据对问答效果的影响

    在数据不变的情况,两阶段检索问答准确率从 52.8% 提升到 65.9%,这个结果再次证明了一阶段检索中存在数据互相干扰的情况。两阶段检索可以最大化的挖掘出数据的潜力,我们继续加数据,效果能够稳定提升。

    RAG系统数据优化实践:海量数据对问答效果的影响

    QAnything 实现数据越多效果越好

    QAnything 两阶段检索最大的意义不是在某一个实验上面提升了 10 个点。它最大的意义在于让 “数据越多,效果越好” 变成了现实。这是在准备开始优化一个 RAG 系统之前要确保的第一件事情。

    QAnything 应用

    QAnything 和有道领世联合推出*「AI 升学规划师」*。基于 QAnything 强劲的检索增强生成能力和有道领世多年深耕的海量升学数据资料,可以为每个学生和家长配备一名私人 AI 升学规划师,提供更加全面、专业、及时的升学规划服务。

    基于*「QAnything」*,有道 AI 升学规划师在升学百科问答中准确率达到 95%,可以解答用户关于高考政策、升学路径、学习生活以及职业规划等各种问题。并且随着不断地数据补充和更新,这个准确率会一直上涨。

    视频链接:https://www.ixigua.com/iframe/7332758551888461865?autoplay=0

    有道领世 AI 规划师(Powered by QAnything)

    展望

    两阶段检索是一个大的框架,给 RAG 提供了一个好的基础。未来可以在两阶段的基础上做更多细致的优化。这里有一些想法,贴出来和大家一起探讨:

    • 切片策略: 切片策略对检索召回的影响非常大,目前主流的切片策略还比较机械,经常造成一些信息的损失,未来可能会出现更加智能的切片方式。
    • 多路召回: 可以在 embedding 检索的基础上增加 BM25 检索,或者通过 LLM 改写 query 的方式生成多个检索 query 增加召回率。
    • 意图分类: 不同的问题走不同的知识库,或者用不同的处理逻辑。
    • Agent: 基于文档的问答能做的事情非常有限,Agent 和 RAG 结合起来可以做更多事情。

    自从_「QAnything」_项目开放源代码以来,受到了开发社区的热烈欢迎和广泛认可。截至 2024 年 2 月 1 日,项目在 GitHub 上已经积累了 3600 多个星标,这反映出了其流行度和用户对其价值的高度评价。

    RAG系统数据优化实践:海量数据对问答效果的影响

    欢迎点击下面的链接下载试用:

    QAnything github: github.com/ne‍tease-yo…

    QAnything gitee: gitee.com/netease-you…

    欢迎大家在 GitHub 上为「QAnything」加星助力,方便收到新版本更新的通知!

    RAG系统数据优化实践:海量数据对问答效果的影响

    参考信息

    QAnything: github.com/netea‍se-yo…

    BCEmbedding: github.com/netease-you…

    RAG Survery: Retrieval-Augmented Generation for Large Language Models: A Survey

    LlamaIndex RAG: docs.llamai‍ndex.ai/en/stable/g…

    Cross-encoder: www.sbert.net/examples/ap…

    Sentence-BERT: arxiv.org/pdf/1‍908.1…

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

AI开发者的技术发展与Coze平台应用-扣子的AI应用层面新纪元

2024-2-26 20:05:00

AI教程

Chatbot创建和使用初体验 - COZE

2024-2-26 20:32:00

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索