仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接
在当今的信息时代,问答系统(QA)已经成为我们获取信息的重要工具。然而,尽管现有的检索增强生成(RAG)技术在问答任务中表现出色,但仍然存在许多失败案例。这些失败往往不是因为大型语言模型(LLM)的能力不足,而是因为检索到的信息不准确。
RAG系统通常分为三个阶段:首先,将给定的语料库分割成多个片段;其次,根据问题检索出最相关的K个片段作为上下文;最后,将问题和上下文输入到LLM中生成答案。然而,这一过程存在两个主要问题:
无效的语料库分割:现有的RAG系统通常将语料库分割成固定长度的片段,而没有考虑语义的连贯性。这导致检索到的片段可能不完整,从而影响答案的准确性。
噪声检索和缺失检索:在检索过程中,系统可能会检索到不相关的片段(噪声检索),或者遗漏关键的片段(缺失检索)。这两种情况都会导致LLM生成错误的答案。
RAG系统通常分为三个阶段,每个阶段都对最终答案的准确性和成本效率有着重要影响。
语料库分割:首先,将选定的语料库分割成多个片段(chunks)。这些片段随后通过嵌入模型转换为向量表示。
向量存储:这些向量表示被存储在一个向量数据库中,以便后续检索。
问题嵌入:当系统接收到一个问题时,使用相同的嵌入模型将问题转换为向量。
向量查询:这个问题的向量用于在向量数据库中进行查询,找出与问题向量最相似的N个片段向量(通常通过最短余弦距离确定)。
上下文提取:这N个片段被提取出来,作为LLM的上下文。
提示构建:将问题和检索到的片段组合成一个适当的提示(prompt)。
LLM生成答案:这个提示被输入到LLM中,生成最终的答案。
LLM推理的成本可以通过计算输入和输出token的费用来量化。例如,OpenAI的GPT-4可能会对每百万个输入token收费10美元,对每百万个输出token收费30美元。因此,LLM推理的成本可以通过以下公式计算:
成本
其中,(I_t)和(O_t)分别表示LLM的输入token和输出token的数量,(c_i)和(c_o)分别表示每个输入token和输出token的成本。
为了综合考虑问答质量和LLM推理成本,我们引入了一个成本效率指标,其计算公式如下:
成本效率成本
其中,Acc表示答案的准确性或其他评估指标(如F1-Score或BELU-1),成本则来自上述的成本公式。更高的成本效率意味着更好的性能与成本比。
SAGE框架的工作流程可以分为三个主要阶段:向量数据库构建、检索和答案生成。每个阶段都对最终答案的准确性和成本效率有着重要影响。
语料库分割:首先,使用训练好的分割模型将语料库中的每个段落分割成短小但语义完整的片段(chunks),并将这些片段存储在集合T中。
向量嵌入:接着,使用嵌入模型fe(⋅)fe(⋅)将这些片段转换为向量表示fe(T)fe(T)。
向量存储:这些向量表示被存储在一个向量数据库中,并记录每个片段在T中的索引与其对应向量的映射关系,以便后续检索。
问题嵌入:当系统接收到一个问题时,使用相同的嵌入模型fe(⋅)f**e(⋅)将问题转换为向量。
向量查询:在向量数据库中进行查询,找出与问题向量最相似的N个片段向量,并检索出对应的N个片段。
片段重排序:这些N个片段通过重排序模型进行评估,根据它们与问题的相关性进行打分。
动态选择:根据得分从高到低排序,选择得分显著下降前的K个片段,确保只选择与问题最相关的片段进入下一阶段。
提示构建:将检索到的片段和问题组合成一个适当的提示(prompt),输入到LLM中生成答案。
自反馈机制:生成的答案与初始问题和检索到的片段一起组成反馈提示,用于评估答案的质量和片段的适当性。如果答案得分超过预定阈值,则返回给用户;否则,根据反馈调整K值,并重新进行梯度选择和生成过程,直到答案得分超过阈值或反馈循环执行三次。
语义分割在RAG系统中起着至关重要的作用。无效的分割会导致语义不完整的片段,从而影响检索的准确性和答案的质量。
嵌入模型:使用最先进的轻量级设计,将两个句子嵌入为向量和。
特征增强模块:对和进行减法和乘法操作,得到它们的差和积。
MLP模型:将、、和输入到MLP模型中,生成一个得分,决定这两个句子是否应该分割。
从Wikipedia数据集中收集大量语义分割的训练数据,生成句子对及其标签。通过梯度下降优化方法,调整嵌入模型和MLP模型的参数,使输出得分与每个句子对的标签相匹配。
最终将语料库中每两个相邻句子输入到分割模型中,根据得分是否低于预定的分割阈值来决定是否分割。
对比基线方法:与BiDAF、BM25+BERT和RecursivelySummarizingBooks等基线方法相比,SAGE在ROUGE和METEOR指标上分别提升了258.4%和225.7%。
在TRIVIA_QA数据集上,我们测试了SAGE框架在高并发环境下的可扩展性。实验结果表明,即使在10倍并发的情况下,SAGE框架的内存使用量仅增加了27%,且检索延迟仅增加了不到两秒。这得益于GPU的高并行处理能力,使得SAGE框架在高并发环境下仍能保持高效运行。
为了验证SAGE框架中各个模块的有效性,我们在NarrativeQA数据集上进行了消融实验。实验结果表明,单独使用语义分割、梯度选择算法和自反馈机制都能显著提升问答性能,而结合所有模块的SAGE框架在ROUGE、BLEU-1、BLEU-4和METEOR指标上分别提升了11.25%、19.95%、486.21%和13.28%。
在QuALITY数据集上,我们对比了SAGE框架与不同嵌入模型的成本效率。实验结果表明,SAGE框架在成本效率上平均提升了53.85%、45.14%和49.25%。这主要得益于SAGE框架通过消除噪声片段,减少了LLM推理时的token消耗。
我们对比了使用SAGE分割模型和GPT-4进行语料库分割的时间和金钱成本。实验结果表明,SAGE分割模型在QuALITY、NarrativeQA和QASPER数据集上分别节省了90.71%、89.43%和91.49%的时间,以及99.69%、99.65%和99.72%的金钱成本。
在答案来自多个文档的场景中,多跳检索非常重要。此外LLM的熟练程度对RAG系统的性能至关重要,使用最强大的LLM(如GPT-4)成本较高。
目前,SAGE选择相关性得分较高的片段。尽管SAGE选择了一个动态数量的片段,但仍然可能存在无用的片段。
#学习大模型&讨论Kaggle#
△长按添加竞赛小助手
每天大模型、算法竞赛、干货资讯
与36000+来自竞赛爱好者一起交流~