从零开始掌握大模型评估:RAG与智能体的关键指标与评估框架详解

本文系统介绍了大语言模型应用的评估方法,详细讨论了多轮对话、RAG系统和智能体应用的关键指标,包括相关性、完整性、知识保留等。文章比较了RAGAS、DeepEval等评估框架的特点和适用场景,指出DeepEval提供最全面的评估指标,而RAGAS专注于RAG应用评估。开发者可基于需求选择合适框架,同时强调人工抽样审核的重要性以确保评估准确性。


RAG和智能体的跟踪指标,以及有助于评估的框架

评估不同系统时可以测量的各种指标

基于智能体的评估(Agentic Evals)主要是关于测试您的LLM应用程序,以确保其性能的一致性。

这可能不是最令人兴奋的话题,但越来越多的公司开始关注它。因此,深入研究哪些指标可以用来实际衡量性能是值得的。

在推送更改时,拥有适当的评估也有助于确保系统不会出现异常。

因此,在本文中,我研究了多轮聊天机器人、RAG(检索增强生成)和基于智能体应用程序的常见指标。

我还简要介绍了DeepEval、RAGAS和OpenAI的Evals库等框架,以便您了解何时选择何种工具。

img

我们稍后将介绍的几种流行评估框架

本文分为两部分。如果您是新手,第1部分会简要讨论传统指标如BLEU和ROUGE,涉及LLM基准测试,并介绍在评估中使用LLM作为评判者的概念。

如果这些对您来说不陌生,可以跳过这部分。第2部分深入探讨了不同类型LLM应用程序的评估。

我们以前的做法

如果您熟悉我们如何评估NLP任务以及公共基准测试的工作原理,可以跳过第一部分。

如果不熟悉,了解准确率和BLEU等早期指标最初的用途和工作原理,以及我们如何测试MMLU等公共基准是有益的。

评估NLP任务

当我们评估传统的NLP任务,如分类、翻译、摘要等时,我们会使用传统指标,如准确率(accuracy)、精确率(precision)、F1值、BLEU和ROUGE。

img

这些指标至今仍在使用,但主要用于模型产生单一、易于比较的"正确"答案的情况。

以分类为例,任务是为每个文本分配一个标签。为了测试这一点,我们可以使用准确率,通过比较模型分配的标签与评估数据集中的参考标签,看它是否正确。

这非常明确:如果分配了错误的标签,得分为0;如果分配了正确的标签,得分为1。

这意味着,如果我们为包含1,000封电子邮件的垃圾邮件数据集构建分类器,而模型正确标记了其中的910封,则准确率为0.91。

对于文本分类,我们通常还使用F1值、精确率和召回率。

对于摘要和机器翻译等NLP任务,人们经常使用ROUGE和BLEU来查看模型的翻译或摘要与参考文本的匹配程度。

这两种评分都计算重叠的n-gram,虽然比较的方向不同**,**但本质上意味着共享的词块越多,得分越高。

这种方法相当简单,因为如果输出使用不同的措辞,得分会很低。

所有这些指标在有单一正确答案的情况下效果最佳,通常不适合我们今天构建的LLM应用程序。

LLM基准测试

如果您关注新闻,可能已经注意到每次发布大型语言模型的新版本时,都会跟随一些基准测试:MMLU Pro、GPQA或Big-Bench。

img

这些是通用评估,正确的术语实际上是"基准测试"(benchmark)而非"评估"(evals)(我们稍后会介绍)。

虽然每个模型还进行了其他各种评估,包括毒性、幻觉和偏见方面的评估,但最受关注的是那些更像考试或排行榜的评估。

像MMLU这样的数据集是多项选择题,已经存在很长时间了。我实际上曾浏览过它,发现它相当混乱。

一些问题和答案相当模糊,这让我认为LLM提供商会尝试在这些数据集上训练他们的模型,以确保它们能够正确回答。

这在公众中引起了一些担忧,认为大多数LLM在这些基准测试上表现良好时可能只是过拟合,这也是为什么需要更新的数据集和独立评估的原因。

LLM评分器

要对这些数据集进行评估,通常可以使用准确率和单元测试。然而,现在的不同之处在于增加了所谓的"LLM作为评判者"(LLM-as-a-judge)。

为了对模型进行基准测试,团队主要使用传统方法。

只要是多项选择题或只有一个正确答案,除了将答案与参考进行精确匹配外,不需要其他方法。

img

对于多答案问题,我们只需解析响应

这适用于MMLU和GPQA等具有多项选择答案的数据集。

对于编码测试(HumanEval、SWE-Bench),评分器可以简单地运行模型的补丁或函数。如果每个测试都通过,则问题被视为已解决,反之亦然。

然而,可以想象,如果问题模糊或开放式,答案可能会波动。这一差距导致了"LLM作为评判者"的兴起,即使用GPT-4等大型语言模型对答案进行评分。

img

我们让LLM通过推理对答案进行评分

MT-Bench是使用LLM作为评分器的基准测试之一,它将两个竞争的多轮对话答案输入GPT-4,并询问哪一个更好。

使用人类评分员的Chatbot Arena,我认为现在也通过结合使用LLM作为评判者来扩展规模。

为了透明起见,您还可以使用BERTScore等语义评分器来比较语义相似性。我简略介绍了现有的方法,以保持内容简洁。

因此,团队可能仍然使用BLEU或ROUGE等重叠指标进行快速检查,或在可能的情况下依赖精确匹配解析,但新的方法是让另一个大型语言模型来评判输出。

我们如何处理LLM应用程序

现在主要的变化是我们不仅测试LLM本身,还测试整个系统。

img

我们评估的是整个系统的输出,而不仅仅是LLM

在可能的情况下,我们仍然使用程序化方法进行评估,就像以前一样。

对于更细微的输出,我们可以从便宜且确定性的方法如BLEU或ROUGE开始,查看n-gram重叠,但现在大多数现代框架将使用LLM评分器进行评估。

有三个值得讨论的领域:如何评估多轮对话、RAG和智能体,包括评估方法和可以使用的指标类型。

您可以在下面看到这三个领域中已经定义的大量指标。

img

在介绍帮助我们的不同框架之前,我们将简要讨论所有这些指标。

多轮对话

第一部分是关于为多轮对话构建评估,即我们在聊天机器人中看到的那种。

当我们与聊天机器人互动时,我们希望对话感觉自然、专业,并且它能记住正确的信息。我们希望它在整个对话中保持主题,并实际回答我们提出的问题。

这里有一些人们跟踪的标准指标。首先我们可以讨论相关性/连贯性(Relevancy/Coherence)和完整性(Completeness)。

相关性是一个应该跟踪LLM是否适当地解决用户查询并保持主题的指标,而完整性则是指最终结果是否真正解决了用户的目标。

img

也就是说,如果我们可以跟踪整个对话的满意度,我们也可以跟踪它是否真正"降低了支持成本"并增加了信任,同时提供高"自助服务率"。

第二部分是知识保留(Knowledge Retention)和可靠性(Reliability)。

也就是说:它是否记住了对话中的关键细节,我们是否可以信任它不会"迷失"?它不仅需要记住细节,还需要能够纠正自己。

img

这是我们在编程工具中看到的情况。它们忘记了自己犯过的错误,然后继续犯同样的错误。我们应该将此视为低可靠性或稳定性。

我们可以跟踪的第三部分是角色遵守(Role Adherence)和提示对齐(Prompt Alignment)。这跟踪LLM是否坚持其被赋予的角色,以及是否遵循系统提示中的指令。

接下来是关于安全的指标,如

幻觉(Hallucination)和偏见/毒性(Bias/Toxicity)。

幻觉很重要但也很难跟踪。人们可能尝试设置网络搜索来评估输出,或者将输出分成不同的声明,由更大的模型评估(LLM作为评判者风格)。

还有其他方法,如SelfCheckGPT,它通过在同一提示上多次调用模型来检查模型的一致性,看它是否坚持原始答案以及它偏离的次数。

对于偏见/毒性,您可以使用其他NLP方法,如微调的分类器。

您可能想要跟踪的其他指标可能是特定于您的应用程序的,例如,代码正确性、安全漏洞、JSON正确性等。

至于如何进行评估,您并不总是需要使用LLM,尽管在大多数情况下,标准解决方案确实使用LLM。

在我们可以提取正确答案的情况下,例如解析JSON,我们自然不需要使用LLM。正如我前面所说,许多LLM提供商也使用单元测试对与代码相关的指标进行基准测试。

不言而喻,用于评判的LLM并不总是超级可靠,就像它们评估的应用程序一样,但我没有具体数据提供给您,所以您需要自行寻找这方面的信息。

检索增强生成(RAG)

继续构建我们可以跟踪的多轮对话指标,我们可以转向使用RAG时需要测量的内容。

对于RAG系统,我们需要将过程分为两部分:分别测量检索和生成指标。

img

要测量的第一部分是检索,以及获取的文档是否是查询的正确文档。

如果我们在检索方面得分较低,我们可以通过设置更好的分块策略、更改嵌入模型、添加混合搜索和重排序等技术、使用元数据过滤等方法来调整系统。

为了测量检索,我们可以使用依赖于精心策划的数据集的旧指标,或者使用以LLM作为评判者的无参考方法。

我首先需要提到经典的IR(信息检索)指标,因为它们是最早出现的。对于这些指标,我们需要"黄金"答案,即设置一个查询,然后为该特定查询对每个文档进行排名。

虽然您可以使用LLM构建这些数据集,但我们不使用LLM进行测量,因为我们已经在数据集中有了可以比较的分数。

img

最著名的IR指标是Precision@k、Recall@k和Hit@k。

这些指标测量获取的相关文档数量、基于黄金参考答案检索到的相关文档数量,以及至少一个相关文档是否进入了结果。

RAGAS和DeepEval等较新的框架引入了无参考、LLM评判风格的指标,如上下文召回率(Context Recall)和上下文精确率(Context Precision)。

这些指标根据查询计算真正相关的块有多少进入了前K列表,使用LLM进行评判。

也就是说,基于查询,系统是否真的返回了任何相关文档,或者是否有太多不相关的文档无法正确回答问题?

要构建用于评估检索的数据集,您可以从真实日志中挖掘问题,然后让人类进行策划。

您还可以使用LLM的帮助使用数据集生成器,这些生成器存在于大多数框架中,或者作为独立工具,如YourBench。

如果您要使用LLM设置自己的数据集生成器,可以执行以下操作。

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line

如果我们转向RAG系统的生成部分,我们现在测量它如何使用提供的文档回答问题。

如果这部分表现不佳,我们可以调整提示,调整模型设置(温度等),完全替换模型,或者针对领域专业知识进行微调。我们还可以强制它使用CoT风格的循环进行"推理",检查自我一致性等。

对于这部分,RAGAS提供了有用的指标:答案相关性(Answer Relevancy)、忠实度(Faithfulness)和噪声敏感性(Noise Sensitivity)。

img

这些指标询问答案是否真正解决了用户的问题,答案中的每个声明是否都得到了检索文档的支持,以及一点不相关的上下文是否会使模型偏离轨道。

如果我们看RAGAS,对于第一个指标,他们可能会要求LLM"从0到1评分这个答案直接解决问题的程度",提供问题、答案和检索的上下文。这会返回一个原始的0-1分数,可用于计算平均值。

因此,总结一下,我们将系统分为两部分进行评估,虽然您可以使用依赖于IR指标的方法,但也可以使用依赖于LLM评分的无参考方法。

最后,我们需要介绍智能体如何扩展我们现在需要跟踪的指标集,超出我们已经介绍的内容。

智能体

对于智能体,我们不仅关注输出、对话和上下文。

现在我们还评估它如何"移动":它是否能完成任务或工作流程,它的效率如何,以及它是否在正确的时间调用正确的工具。

框架可能会对这些指标有不同的称呼,但本质上您想要跟踪的两个主要指标是任务完成(Task Completion)和工具正确性(Tool Correctness)。

img

对于跟踪工具使用情况,我们想知道是否为用户的查询使用了正确的工具。

我们确实需要某种带有内置真实情况的黄金脚本来测试每次运行,但您可以一次性编写它,然后在每次进行更改时使用它。

对于任务完成,评估是阅读整个跟踪和目标,并返回一个介于0和1之间的数字,并附有理由。这应该衡量智能体完成任务的有效性。

对于智能体,您仍然需要测试我们已经介绍过的其他方面,具体取决于您的应用程序。

我必须指出:即使有相当多的已定义指标可用,您的用例会有所不同,所以值得了解常见的指标,但不要假设它们是跟踪您的应用程序的最佳指标。

接下来,让我们概述一下可以帮助您的流行框架。

帮助您的框架

有相当多的框架可以帮助您进行评估,但我想谈谈几个流行的框架:RAGAS、DeepEval、OpenAI和MLFlow的Evals,并分析它们的优势以及何时使用哪一个。

img

您可以在这个仓库中找到我发现的不同评估框架的完整列表。

您还可以使用相当多的特定于框架的评估系统,如LlamaIndex,特别是用于快速原型设计。

OpenAI和MLFlow的Evals是附加组件而非独立框架,而RAGAS主要是为评估RAG应用程序而构建的指标库(尽管它们也提供其他指标)。

DeepEval可能是所有这些中最全面的评估库。

img

然而,重要的是要提到,它们都提供了在自己的数据集上运行评估的能力,适用于多轮对话、RAG和智能体,支持LLM作为评判者,允许设置自定义指标,并且对CI友好。

它们的区别,如前所述,在于它们的全面性。

MLFlow主要是为评估传统ML管道而构建的,因此它为基于LLM的应用程序提供的指标数量较少。OpenAI是一个非常轻量级的解决方案,期望您设置自己的指标,尽管它提供了一个示例库来帮助您入门。

RAGAS提供了相当多的指标,并与LangChain集成,因此您可以轻松运行它们。

DeepEval提供了大量开箱即用的功能,包括RAGAS指标。

img

框架比较,请参见这里的Github仓库

如果我们看一下提供的指标,我们可以了解这些解决方案的广泛程度。

值得注意的是,提供指标的框架并不总是遵循标准命名。它们可能指的是同一件事,但称呼不同。

例如,一个框架中的忠实度(faithfulness)可能与另一个框架中的接地性(groundedness)相同。答案相关性(answer relevancy)可能与响应相关性(response relevance)相同,等等。

这在评估系统方面造成了很多不必要的混淆和复杂性。

尽管如此,DeepEval以超过40个可用指标脱颖而出,并提供了一个名为G-Eval的框架,帮助您快速设置自定义指标,使其成为从想法到可运行指标的最快途径。

OpenAI的Evals框架更适合于需要定制逻辑的情况,而不是仅需要快速评判的情况。

根据DeepEval团队的说法,自定义指标是开发人员最常设置的,所以不要纠结于谁提供什么指标。您的用例将是独特的,评估方式也是如此。

那么,在什么情况下应该使用哪种框架?

当您需要针对RAG管道的专门指标且设置最少时,使用RAGAS。当您想要一个完整的、开箱即用的评估套件时,选择DeepEval。

如果您已经投资于MLFlow或偏好内置跟踪和UI功能,MLFlow是一个不错的选择。OpenAI的Evals框架是最基础的,因此如果您与OpenAI基础设施绑定并希望灵活性,它是最佳选择。

最后,DeepEval还通过其DeepTeam框架提供红队测试,该框架自动化LLM系统的对抗性测试。其他框架也提供这一功能,尽管可能不那么全面。

我将来需要研究LLM系统的对抗性测试和提示注入。这是一个有趣的话题。

数据集业务是一个利润丰厚的业务,这就是为什么我们现在能够使用其他LLM来注释数据或评分测试是很好的。

然而,LLM评判者并不神奇,您设置的评估可能会有点不稳定,就像您构建的任何其他LLM应用程序一样。根据互联网的说法,大多数团队和公司每隔几周进行人工抽样审核以保持真实性。

您为应用程序设置的指标可能是自定义的,所以即使我现在让您听了很多标准指标,您可能还是会构建自己的指标。

了解标准指标是什么还是很好的。

希望这篇文章对您有所启发。

如果您喜欢这篇文章,请务必阅读我关于智能体框架或构建高级RAG智能体的其他文章。

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

优快云粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传优快云,朋友们如果需要可以扫描下方二维码&点击下方优快云官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉优快云大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
在这里插入图片描述

在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型实战项目&项目源码👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战项目来学习。(全套教程文末领取哈)
在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
在这里插入图片描述

为什么分享这些资料?

只要你是真心想学AI大模型,我这份资料就可以无偿分享给你学习,我国在这方面的相关人才比较紧缺,大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!

这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

在这里插入图片描述
在这里插入图片描述

优快云粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传优快云,朋友们如果需要可以扫描下方二维码&点击下方优快云官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉优快云大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值