LLM Evaluation Metrics: Everything You Need for LLM Evaluation阅读笔记

参考链接: LLM 评估指标:LLM 评估所需的一切 - Confidence AI (confident-ai.com)

LLM 评估指标:LLM 评估所需的一切

LLM Evaluation Metrics: Everything You Need for LLM Evaluation

尽管评估大型语言模型 (LLM) 的输出对于任何希望提供强大的 LLM 应用程序的人来说都是必不可少的,但 LLM 评估对许多人来说仍然是一项具有挑战性的任务。无论您是通过微调来完善模型的准确性,还是增强检索增强生成 (RAG) 系统的上下文相关性,了解如何为您的用例开发和决定适当的 LLM 评估指标集对于构建无懈可击的 LLM 评估管道至关重要。

本文将教您有关 LLM 评估指标的所有知识,并包含代码示例。我们将深入探讨:

  • 什么是 LLM 评估指标、常见陷阱以及是什么让优秀的 LLM 评估指标变得很棒。
  • 对 LLM 评估指标进行评分的所有不同方法。
  • 如何实施和决定要使用的适当 LLM 评估指标集。

你准备好了吗?让我们开始吧。

什么是LLM评估指标?

评估指标架构

LLM 评估指标是根据您关心的标准对 LLM 的产出进行评分的指标。例如,如果您的 LLM 应用程序旨在总结新闻文章的页面,则需要一个 LLM 评估指标,该指标根据以下条件进行评分:

  1. 摘要是否包含来自原始文本的足够信息。
  2. 摘要是否包含与原文相矛盾或幻觉。

此外,如果您的 LLM 应用程序具有基于 RAG 的架构,您可能还需要为检索上下文的质量打分。关键是,LLM 评估指标根据 LLM 应用程序设计要执行的任务来评估它。 (请注意,LLM 应用程序可以只是 LLM 本身!

优秀的评估指标是:

  1. 定量的。在评估手头的任务时,指标应始终计算分数。这种方法使你能够设置一个最低及格阈值,以确定你的 LLM 应用程序是否“足够好”,并允许你监控这些分数在迭代和改进实现时如何随时间变化。
  2. 可靠。尽管 LLM 输出是不可预测的,但您最不希望看到的就是 LLM 评估指标同样不稳定。因此,尽管使用 LLM 评估的指标(又名。LLM-Evals),例如 G-Eval,比传统的评分方法更准确,但它们通常不一致,这是大多数 LLM-Evals 的不足之处。
  3. 准确。如果可靠的分数不能真正代表您的 LLM 应用程序的性能,那么它们就毫无意义。事实上,让一个好的 LLM 评估指标变得伟大的秘诀是让它尽可能地符合人类的期望。

那么问题来了,LLM评估指标如何计算出可靠和准确的分数?

计算指标分数的不同方法

在文章中,谈到了 LLM 产出是出了名的难以评估。幸运的是,有许多既定的方法来计算指标分数——有些利用神经网络,包括嵌入模型和 LLM,而另一些则完全基于统计分析。

指标评分器的类型

在本节结束时,我们将介绍每种方法并讨论最佳方法,因此请继续阅读以找出答案!

统计记分员

在我们开始之前,我想首先说,在我看来,统计评分方法不是必需的,所以如果你赶时间,请随时直接跳到“G-Eval”部分。这是因为每当需要推理时,统计方法的表现都很差,这使得它作为大多数 LLM 评估标准的评分标准太不准确。

要快速浏览它们,请执行以下操作:

  • BLEU(双语评估替补)评分员根据带注释的地面实况(或预期输出)评估您的LLM申请的输出。它计算 LLM 输出和预期输出之间每个匹配的 n-gram(n 个连续单词)的精度,以计算它们的几何平均值,并在需要时应用简洁惩罚。
  • ROUGE(Recall-Oriented Understudy for Gisting Evaluation)评分器主要用于评估NLP模型中的文本摘要,并通过比较LLM输出和预期输出之间n-gram的重叠来计算召回率。它确定 LLM 输出中存在的参考中 n-gram 的比例 (0–1)。
  • METEOR(Metric for Evaluation of Translation with Explicit Ordering)评分器更全面,因为它通过评估精确率(n-gram 匹配)和召回率(n-gram 重叠)来计算分数,并针对 LLM 输出和预期输出之间的词序差异进行调整。它还利用外部语言数据库(如 WordNet)来解释同义词。最终分数是精确度和召回率的调和平均值,对排序差异进行惩罚。
  • Levenshtein 距离(或编辑距离,您可能认为这是 LeetCode 硬 DP 问题)评分器计算将一个单词或文本字符串更改为另一个单词或文本字符串所需的最小单字符编辑(插入、删除或替换)次数,这对于评估拼写更正或其他字符精确对齐至关重要的任务非常有用。

由于纯粹的统计评分器几乎没有不考虑任何语义,并且推理能力极其有限,因此它们对于评估通常冗长而复杂的 LLM 输出来说不够准确。

基于模型的评分器

纯粹统计的评分器是可靠的,但不准确,因为它们很难考虑语义。在本节中,情况恰恰相反——纯粹依赖 NLP 模型的评分器相对更准确,但由于其概率性,它们也更不可靠。

这不足为奇,但是,非基于 LLM 的评分员的表现比 LLM-Evals 差,这也是由于统计评分员的相同原因。非法学硕士评分员包括:

  • NLI 评分器,它使用自然语言推理模型(这是一种 NLP 分类模型)来分类 LLM 输出相对于给定参考文本在逻辑上是一致的(蕴涵)、矛盾还是不相关(中性的)。分数通常介于蕴涵(值为 1)和矛盾(值为 0)之间,提供了逻辑连贯性的衡量标准。
  • BLEURT(Bilingual Evaluation Understudy with Representations from Transformers)评分器,它使用预训练模型(如BERT)对LLM输出进行一些预期输出的评分。

除了分数不一致之外,现实情况是这些方法有几个缺点。例如,NLI 评分员在处理长文本时也会难以提高准确性,而 BLEURT 则受到其训练数据的质量和代表性的限制。

所以,我们开始吧,让我们来谈谈LLM-Evals。

G-评估

G-Eval 是最近开发的一个框架,来自一篇题为“使用 GPT-4 进行 NLG 评估,具有更好的人类对齐”的论文,该论文使用 LLM 来评估 LLM 输出(又名。LLM-Evals)。

G-Eval Algorithm

正如我之前的一篇文章中所介绍的,G-Eval 首先使用思维链 (CoT) 生成一系列评估步骤,然后使用生成的步骤通过填表范式确定最终分数(这只是一种花哨的说法,G-Eval 需要几条信息才能工作)。例如,使用 G-Eval 评估 LLM 输出一致性涉及构建一个提示,其中包含要评估的标准和文本以生成评估步骤,然后使用 LLM 根据这些步骤输出从 1 到 5 的分数。

让我们使用这个例子来了解一下 G-Eval 算法。首先,生成评估步骤:

  1. 将评估任务引入您选择的 LLM(例如,根据连贯性将此输出从 1-5 评分)
  2. 为您的标准给出定义(例如。“连贯性——实际产出中所有句子的集体质量”)。

(请注意,在最初的 G-Eval 论文中,作者只使用 GPT-3.5 和 GPT-4 进行实验,并且亲自为 G-Eval 尝试过不同的 LLM,我强烈建议您坚持使用这些模型。

生成一系列评估步骤后:

  1. 通过将评估步骤与评估步骤中列出的所有参数连接起来创建提示(例如,如果您希望评估 LLM 输出的一致性,则 LLM 输出将是必需的参数)。
  2. 在提示结束时,要求它生成一个介于 1-5 之间的分数,其中 5 比 1 更好。
  3. (可选)从 LLM 中获取输出令牌的概率来归一化分数,并将其加权求和作为最终结果。

第 3 步是可选的,因为要获得输出令牌的概率,您需要访问原始模型嵌入,截至 2024 年,该嵌入仍无法通过 OpenAI API 获得。然而,这一步是在论文中引入的,因为它提供了更细粒度的分数,并最大限度地减少了 LLM 评分中的偏差(如论文所述,已知 3 在 1-5 的范围内具有更高的标记概率)。

以下是该论文的结果,它显示了 G-Eval 如何优于本文前面提到的所有传统的非 LLM 评估:

较高的 Spearman 和 Kendall-Tau 相关性表示与人类判断的一致性更高。

G-Eval 很棒,因为作为 LLM-Eval,它能够考虑 LLM 输出的完整语义,使其更加准确。这很有意义——想想看,非 LLM Evals,它使用的评分员的能力远不如 LLM,怎么可能理解 LLM 生成的全部文本范围?

尽管与同类产品相比,G-Eval 与人类判断的相关性要高得多,但它仍然可能不可靠,因为要求 LLM 提出分数无疑是任意的。

话虽如此,考虑到 G-Eval 的评估标准非常灵活,我个人已经将 G-Eval 作为 DeepEval 的指标,DeepEval 是我一直在研究的一个开源 LLM 评估框架

<span style="color:#c9ced6"><span style="background-color:#ffffff"><span style="color:var(--neutral--800)"><span style="background-color:#2d2d2d"><span style="color:#cccccc"><code class="language-bash"><span style="color:#999999"># Install
</span>pip <span style="color:#f08d49">install</span> deepeval
<span style="color:#999999"># Set OpenAI API key as env variable
</span><span style="color:#f08d49">export</span> OPENAI_API_KEY<span style="color:#67cdcc">=</span><span style="color:#7ec699">"..."</span>
</code></span></span></span></span></span>
<span style="color:#c9ced6"><span style="background-color:#ffffff"><span style="color:var(--neutral--800)"><span style="background-color:#2d2d2d"><span style="color:#cccccc"><code class="language-python"><span style="color:#cc99cd">from</span> deepeval<span style="color:#cccccc">.</span>test_case <span style="color:#cc99cd">import</span> LLMTestCase<span style="color:#cccccc">,</span> LLMTestCaseParams
<span style="color:#cc99cd">from</span> deepeval<span style="color:#cccccc">.</span>metrics <span style="color:#cc99cd"
  • 16
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值