在过去的一年里,我一直在致力于构建由大型语言模型 (LLM) 驱动的应用程序,此外还与几家领先的 LLM/AI 公司的一些聪明人进行了广泛的交流。通过这些讨论,我发现一个常见的痛点是缺乏针对模型和应用程序级 LLM 系统的易于插入的评估。具体来说,人们经常对各种各样的 LLM 评估基准感到困惑,以及何时使用机器反馈、人工反馈或两者结合。
在这里,我旨在分享一些我遇到过的有关 LLM Evals 的最有用的读物。
关于我的背景:我曾担任专注于开发 AI/ML 驱动的应用程序的 PM/部分创始人,之前曾在 AWS AI 工作过。
什么是评估?
评估,通常缩写为“Evals”,是对 LLM 及其申请表现的系统评估和衡量。评估是一系列精心设计的测试和指标,用于判断您的申请是否“可用于生产”。
Eva 是提供深入洞察您的应用如何与用户输入和真实数据交互的重要工具。对您的应用进行稳健评估意味着确保它不仅符合技术规范,而且符合用户期望并在实际场景中证明其价值。
什么才是好的评估?
好的评价是——
- 涵盖你的大语言模型申请的最重要成果
- 最好有少量可解释的指标
- 快速、自动计算
- 在多样化和有代表性的数据集上进行测试
- 与人类判断高度相关
更好的数据,更好的指标 -> 更好的评估 —来源
传统评估指标
在 NLP 中,传统指标在塑造我们对语言模型及其功能的理解方面发挥了关键作用。从准确率和召回率到 BLEU 和 ROUGE 分数,这些指标提供了一种定量评估各种模型和算法性能的方法。它们在对进展进行基准测试、比较不同方法以及为未来的研究和开发设定方向方面发挥了至关重要的作用。
NLP 指标的引入时间线及其最初的应用 —来源
然而,随着语言模型(尤其是 LLM)的复杂性不断增加,传统指标的局限性变得越来越明显。这种转变要求我们重新评估衡量 NLP 成功和有效性的方法,从而探索能够跟上该领域进步步伐的更精细的指标。
传统指标的局限性
以 BLEU(双语评估测试)分数为例,这是机器翻译中常用的指标。BLEU 通过将翻译文本与一组高质量的参考翻译进行比较来评估翻译文本的质量。然而,它的重点主要放在单词匹配的准确性上,往往忽略了上下文和语义。
因此,译文可能因为单词顺序在技术上正确而获得高 BLEU 分数,但仍无法准确传达原文的正确语气、风格,甚至含义。
仅使用具有相似含义的不同单词,BLEU 文本相似度就会大幅下降 —来源
评估的演变:大语言模型辅助评估的兴起⚖️
这种创新方法标志着评估方法的重大转变,反映了一种更广泛的趋势:我们为理解人类语言而开发的工具也正在成为评估自身的基准。随着这些语言模型的进步,指标从非传统演变为我们现在所说的 LLM 辅助评估。
在当今现代 LLM 时代,同样的原则也适用,但规模更为复杂。研究人员现在正在使用 GPT-4 等 LLM 来评估类似模型的输出。这种对 LLM 进行评估的递归使用凸显了该领域的持续改进和完善。通过使用 LLM 作为评估的主题和工具,我们可以解锁更深层次的自省和优化。
推广此方法的一些最具影响力的论文包括:
- GPTScore:一种新颖的评估框架,利用生成预训练模型的零样本能力对文本进行评分。突出了该框架在评估各种文本生成任务方面的灵活性,无需大量训练或手动注释。
- LLM-Eval:一种使用单个 LLM 提示评估对话质量多个维度的方法。提供了一种多功能且强大的解决方案,在不同数据集上显示出与人类判断的高度相关性。
- LLM-as-a-judge:探索使用 LLM 作为人类评估的替代品,利用模型与人类偏好的一致性。证明像 GPT-4 这样的 LLM 法官可以实现与人类评估超过 80% 的一致率,提出了一种可扩展且有效的近似人类判断的方法。
人类和 GPT-4 评委在正确性和可读性分数上的一致性可以达到 80% 以上。如果要求小于或等于 1 分差异,一致性水平可以达到 95% 以上 —来源
大语言模型辅助评估的局限性
虽然 LLM 辅助评估代表了 NLP 领域的重大飞跃,但并非没有缺点。认识到这些局限性是确保评估准确且有意义的关键。
- 应用特定:一个主要限制因素是 LLM 驱动的评估者会生成应用特定指标。LLM 在一种情况下给出的数字分数不一定等于另一种情况下的相同值,这阻碍了不同项目之间指标的标准化。
- 立场偏见:根据一项研究,LLM 评估人员经常表现出立场偏见,在比较两个结果时更倾向于第一个结果。这可能会使评估偏向于更早出现的答案,而不管其实际质量如何。
- 冗长偏见:大语言模型也倾向于较长的回答。这种冗长偏见意味着,与简洁直接的回答相比,更冗长、可能不太清晰的回答可能更受青睐。
- 自我亲和力偏差:LLM 可能更喜欢其他 LLM 生成的答案,而不是人类撰写的文本,这可能会导致对机器生成内容的评价出现偏差。
- 随机性: LLM 固有的模糊性意味着,当单独调用时,它们可能会为相同的输出分配不同的分数,从而给评估增加了不可预测性。
为了减轻这些偏见并提高 LLM 评估的可靠性,可以采用以下几种策略:
- 位置交换:为了抵消位置偏差,在评估中交换参考和结果可确保被评估的结果处于第一个位置。
- 少量提示:在评估任务中引入一些示例或提示可以校准评估者并减少冗长偏见等偏见。
- 混合评估:为了实现更扎实的评估,将 LLM 评估与人工判断或先进的非传统指标相结合可能非常有效。这种组合方法提供了一个全面的评估框架,平衡了 LLM 的创新能力和非传统指标的可靠性。
从理论到实践:评估你的 LLM 申请
以下是 LLM 应用程序的广泛分类,每个应用程序都有其独特的背景:
- 简单的 LLM 包装器:用户友好的界面,将用户直接与 LLM 连接起来,执行总结、提取和内容生成等通用任务。
- RAG(检索增强生成):将 LLM 与其他数据源相结合的复杂系统,以使用更精确、更具上下文相关性的信息丰富模型的响应。
- 代理:配备多步推理能力的高级自主代理,能够执行模仿人类决策过程的复杂任务。
每种应用程序类型的评估方法都会有所不同,以根据其特定功能和用户要求进行量身定制。
评估方法
评估 LLM 申请的过程最好遵循结构化框架,包含一套专用工具和库。通过系统地应用评估方法,我们可以对我们的申请获得有意义的见解,确保它们符合我们的标准并实现预期结果。
来源 — LLM 评估 RAG 申请的最佳实践
步骤 1. 制作黄金测试集:
评估从创建基准数据集开始,该数据集应尽可能代表 LLM 在实际环境中遇到的数据。这通常被称为“黄金测试集”——衡量 LLM 表现的标准。
许多库允许我们生成测试合成测试集,例如Langchain 的 QA 生成链、llama-index和ragas,每个库都利用独特的技术来生成有效的测试集。
创建多样化且具有代表性的数据集是至关重要的一步,它为全面评估您的 LLM 申请奠定了基础。在这种情况下,我利用了RAGAS 的测试集生成功能;其创建评估集的方法在反映真实场景方面特别有效,使其成为准确衡量应用程序性能的绝佳选择。
第 2 步。对结果进行评分:
一旦我们有了完整的评估测试集,包括基本事实和 LLM 应用程序生成的响应,下一步就是对这些结果进行评分。此阶段涉及使用 LLM 辅助评估提示和更综合的混合方法。
有大量配备了可立即使用的评估提示的开源库,每个库都提供独特的功能和方法。
朗查因
来源——Langchain :LLM 评估器的准确率有多高?
骆驼指数
拉加斯
RAGAS 评估指标——来源
TruLens
TruEra 的 TruLens 是一款创新工具,也是大型语言模型操作 (LLMOps) 领域的有力竞争者。它可以帮助开发人员使用一组反馈功能客观地衡量基于 LLM 的应用程序的质量和有效性,以实现反馈驱动的分析、可解释性和有效性指标。
来源——Trulens :评估和跟踪你的 LLM 实验
这些反馈功能使开发人员能够以编程方式评估输入、输出和中间结果的质量。该库用途广泛,支持各种用例和集成。
具有人机交互的 LLM 增强型评估
下面是最近的 Scale AI 论文中的一张图表,展示了在评估框架中融入机器+人工反馈的一种可能流程。
关键在于如何选择最有效的人工评估者,需要多少个评估者,以及我们是否可以信任这些人作为最终的裁决者。
由于我之前设计了一个人机交互标签平台,因此这里有两个想法:尝试纳入直接客户反馈,如果不可能,人工评估人员应该紧密模仿你的 LLM 应用程序的目标客户群的分布。
其次,机器反馈和人工反馈模块应该灵活——每个 LLM 应用程序都应该有自己独特的机器/人工反馈模块序列。例如:
流程一:
确定性评估→机器反馈→人工反馈
流程二:
机器反馈 → 人类反馈 → 机器反馈 → 确定性评估
这里,流程二包含了另一层机器检查和人工反馈,当您刚开始选择最合适的人工评估者并且可能对他们的裁决准确性不是 100% 有信心时,这会非常有用。
RA/SD 衍生者AI训练营。发布者:chris,转载请注明出处:https://www.shxcj.com/archives/4287