使用LangSmith进行成对评估
了解什么是成对评估,为什么在LLM应用开发中可能需要它,并通过LangChain的LangSmith示例了解如何使用它。
评估模型输出是LLM应用开发中最关键的挑战之一。然而,对于许多任务(如聊天或写作),人类偏好难以通过一组规则来编码。相反,对多个候选LLM答案进行成对评估,可以更有效地教会LLM人类偏好。
成对评估的起源
成对评估在测试和基准测试LLM模型性能的讨论中开始扮演重要角色。例如,基于人类反馈的强化学习(RLHF)在LLM对齐中采用了成对评估的概念。人类训练者会看到针对同一输入的一对LLM回复,并选择哪个更符合某些标准(如有用性、信息量或安全性)。
最流行的LLM基准之一Chatbot Arena也使用了这一想法:它针对给定的用户提示展示两个匿名的LLM生成结果,让用户选择更好的一个。虽然Chatbot Arena依赖人类反馈进行成对评估,但也可以使用LLM作为评判者来预测人类偏好并自动化这一过程。
尽管成对评估在公共基准测试和LLM对齐中很流行,但许多用户可能不知道如何利用自定义成对评估来改进他们的LLM应用。考虑到这一限制,我们在LangSmith中新增了成对评估功能。
LangSmith中的成对评估器
LangSmith的成对评估允许用户:(1) 使用任意期望的标准定义自定义成对LLM作为评判的评估器;(2) 使用该评估器比较两个LLM生成结果。与选择要比较的运行不同,当您点击“数据集与测试”选项卡时,会看到一个新的子标题“成对实验”。
这与比较视图有何不同?
您可能会问:“这与比较视图有何不同?”
如果您错过了,几周前我们发布了改进的比较视图用于回归测试。这允许您比较两个运行并识别回归。成对评估在目标上类似,但实现方式明显不同。
在以前的比较视图中,您会单独评估每个运行,然后比较分数。例如,您会给每个运行打1-10分(独立评分),然后查找一个运行得分高于另一个运行的情况。
成对评估同时查看结果。这允许您定义一个明确比较两个结果的评估器。然后您会得到该对的分数。它不是单独对每个运行评分。
何时使用成对评估?
为了说明这一功能,本视频展示了一个与内容生成相关的常见用例。在此示例中,我们希望LLM生成吸引人的推文来总结学术论文。我们构建了一个包含10篇不同论文的数据集,并由4个不同LLM生成总结。
由于没有单一的“真实”论文摘要,我们使用了一个标准评估器,根据5个标准(例如,使用表情符号、吸引人的标题等)对总结推文从1(最差)到5(最佳)进行评分。
我们将这个summary_engagement_score捕获到数据集中,如下所示。
然而,这立即凸显了一个问题:4个LLM中的3个在summary_engagement_score上都获得了满分,彼此之间没有差异。孤立地看,很难定义一个标准评估器来区分不同的LLM。而成对评估提供了另一种解决这一挑战的方法。
使用自定义成对评估
如视频所示,我们在LangSmith SDK中使用自定义成对评估器,并在LangSmith UI中可视化成对评估的结果。为了将其应用于上述问题,我们首先定义一个成对评估提示,编码我们关心的标准(例如,基于标题、要点等,哪条推文总结更吸引人)。然后,我们只需在已运行的数据集上运行自定义评估器evaluate_pairwise。
from langsmith.evaluation import evaluate_comparative evaluate_comparative( ["summary-cmd-r-f692a55c", "summary-opus-21590361"], evaluators=[evaluate_pairwise], )
在UI中,我们将在数据集的“成对实验”选项卡中看到所有成对评估的结果。重要的是,我们看到成对评估显示了对某些LLM的明显偏好——这与几乎没有区分度的单独标准评估形成对比。
UI允许我们深入每个成对实验,显示根据我们的标准偏好哪个LLM生成结果(在列顶部使用颜色和拇指图标)。通过点击每个答案下的ranked_preference分数,我们可以进一步钻取到每个评估轨迹,其中提供了排名的解释。
结论
许多LLM用例,如文本生成或聊天,没有单一或具体的“正确”答案用于评估。在这些情况下,使用人类或LLM选择偏好响应的成对评估是一种强大的方法。
在这篇博文中,我们展示了如何在评估推文总结生成这一模糊任务上进行测试,并揭示了单独评估标准的缺陷。我们的自定义成对评估器使我们能够直接比较生成结果,突出了模型之间的明显偏好。
要深入了解,请查看我们的视频和文档。您可以立即试用LangSmith进行稳健的实验和评估,支持提示版本管理、调试和人工注释——从而在构建LLM应用时获得生产可观测性。
看看你的代理真正在做什么
LangSmith,我们的代理工程平台,帮助开发者调试每个代理决策、评估变化并一键部署。
试用LangSmith
获取演示