RAG框架 的核心在于将文档分割成独立的块( chunks ),然后通过检索过程识别与给定查询相关的块,并将检索到的块(以及查询)作为提示传递给合成模型LLM以生成所需的响应。 然而,检索步骤可能成为 性能瓶颈 ,因为错误的块可能导致合成LLM生成错误的响应( garbage in,garbage out )。
为了解决这个问题,提出了一种零样本(zeroshot)适应标准密集检索步骤的方法,以提高块的准确召回(recall)。具体来说,
将块分解为原子陈述( atomic statements ),然后基于这些原子生成一组 合成问题 (以块作为上下文),通过密集检索找到与用户查询最接近的合成问题集合及其相关的块
。
使用原子单位基于问题的检索,用于企业RAG
各环节(query改写,原子化,问题生成)的prompt
使用了重新格式化的SQuAD数据集来评估RAG框架。该数据集包含 2,067个块和10,570个查询 。
使用原子单位进行检索可以显著提高检索的准确率。特别是,通过生成针对原子的合成问题,可以进一步提高检索的准确率。例如,在R@1(即正确块在检索结果中排名第一的比例)上, 使用结构化原子文本的检索准确率从65.5%提高到70.2% ,而
使用合成问题进一步提高到73.8%
。
Atom-Structured :使用块的自然结构,将每个句子视为一个独立的原子。 Atom-Unstructured :原子生成系统(例如,针对指令微调的大型语言模型)被要求生成原子陈述,以最好地捕捉块中的所有信息。
这种方法不需要额外的训练, 可以零样本地应用于企业RAG系统中,以提高对公司文档的自动化查询性能 。未来的工作将扩展到不同领域的数据集,包括 金融和医疗 领域。
Question-Based Retrieval using Atomic Units for Enterprise RAG
https://github.com/OpenBMB/MiniCPM-Vhttps://arxiv.org/pdf/2405.12363
推荐阅读
- • 对齐LLM偏好的直接偏好优化方法:DPO、IPO、KTO
- • 2024:ToB、Agent、多模态
- • TA们的RAG真正投产了吗?(上)
- • Agent到多模态Agent再到多模态Multi-Agents系统的发展与案例讲解(1.2万字,20+文献,27张图)
欢迎关注我的公众号“ PaperAgent ”, 每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己。
