RAG(Retrieval-AugmentedGeneration)评测面来自:AiGC面试宝典宁静致远2024年01月28日10:12一、为什么需要对RAG进行评测?在探索和优化RAG(检索增强生成器)的过程中,如何有效评估其性能已经成为关键问题。二、如何合成RAG测试集?假设你已经成功构建了一个RAG系统,并且现在想要评估它的性能。为了这个目的,你需要一个评估数据集,该数据集包含以下列:前两列代表真实数据,最后两列代表RAG预测数据。要创建这样的数据集,我们首先需要生成问题和答案的元组。接下来,在RAG上运行这些问题以获得预测结果。要生成(问题、答案)元组,我们首先需要准备RAG数据,我们将其拆分为块,并将其嵌入向量数据库中。完成这些步骤后,我们会指示LLM从指定主题中生成num_questions个问题,从而得•RAG(Retrieval-AugmentedGeneration)评测面•一、为什么需要对RAG进行评测?•二、如何合成RAG测试集?•三、RAG有哪些评估方法?•3.1独立评估•3.1.1介绍一下独立评估?•3.1.2介绍一下独立评估模块?•3.2端到端评估•3.2.1介绍一下端到端评估•3.2.2介绍一下端到端评估模块?•四、RAG有哪些关键指标和能力?•五、RAG有哪些评估框架?•4.1RAGAS•4.2ARES•致谢•question(问题):想要评估的RAG的问题•ground_truths(真实答案):问题的真实答案•answer(答案):RAG预测的答案•contexts(上下文):RAG用于生成答案的相关信息列表•生成问题和基准答案(实践中可能会出现偏差)扫码加查看更多到问题和答案元组。为了从给定的上下文中生成问题和答案,我们需要按照以下步骤操作:1.选择一个随机块并将其作为根上下文2.从向量数据库中检索K个相似的上下文3.将根上下文和其K个相邻上下文的文本连接起来以构建一个更大的上下文4.使用这个大的上下文和num_questions在以下的提示模板中生成问题和答案"""\\Yourtaskistoformulateexactly{num_questions}questionsfromgivencontextandprovidetheanswertoeachone.Endeachquestionwitha'?'characterandtheninanewlinewritetheanswertothatquestionusingonlythecontextprovided.Separateeachquestion/answerpairby"XXX"Eachquestionmuststartwith"question:".Eachanswermuststartwith"answer:".Thequestionmustsatisfytherulesgivenbelow:1.Thequestionshouldmakesensetohumansevenwhenreadwithoutthegivencontext.2.Thequestionshouldbefullyansweredfromthegivencontext.3.Thequestionshouldbeframedfromapartofcontextthatcontainsimportantinformation.Itcanalsobefromtables,code,etc.4.Theanswertothequestionshouldnotcontainanylinks.5.Thequestionshouldbeofmoderatedifficulty.6.Thequestionmustbereasonableandmustbeunderstoodandrespondedbyhumans.7.Donousephraseslike'providedcontext',etcinthequestion8.Avoidframingquestionusingword"and"thatcanbedecomposedintomorethanonequestion.9.Thequestionshouldnotcontainmorethan10words,makeofuseofabbreviationwhereverpossible.context:{context}""""""\\您的任务是根据给定的上下文提出{num_questions}个问题,并给出每个问题的答案。在每个问题的末尾加上"?提供的上下文写出该问题的答案。每个问题/答案之间用"XXX"隔开。每个问题必须以"question:"开头。每个答案必须以"answer:"开头。问题必须符合以下规则:1.即使在没有给定上下文的情况下,问题也应该对人类有意义。基于上面的工作流程,下面是我生成问题和答案的结果示例。首先构建一个向量存储,其中包含RAG使用的数据。2.问题应能根据给定的上下文给出完整的答案。3.问题应从包含重要信息的上下文中提取。也可以是表格、代码等。4.问题答案不应包含任何链接。5.问题难度应适中。6.问题必须合理,必须为人类所理解和回答。7.不要在问题中使用"提供上下文"等短语。8.避免在问题中使用"和"字,因为它可以分解成多个问题。9.问题不应超过10个单词,尽可能使用缩写。语境:{上下文}"""5.重复以上步骤num_count次,每次改变上下文并生成不同的问题。||question|ground_truths||---:|:------------------------------...
发表评论取消回复