LLM-as-a-Judge 是评估 LLM 输出的最广泛使用的技术之一,但我们究竟应该如何实现 LLM-as-a-Judge 呢?
为了回答这个问题,我们来看一些广泛引用的论文/博客/教程,研究它们对 LLM-as-a-Judge 的具体实现,并尝试找出一些有用的模式。
(1) Vicuna 是最早使用 LLM 作为评估者的模型之一。他们的方法因所解决的问题而异。为 i) 一般问题,ii) 编码问题,和 iii) 数学问题编写了不同的提示。每个特定领域的提示相比于普通提示引入了一些额外的、相关的细节。例如:
- 编码提示提供了一个良好解决方案的期望特征列表。
- 数学提示要求评估者在生成分数之前先解决问题。
有趣的是,评估者在其提示中同时得到两个模型输出,但要求对每个输出进行 1-10 评分,而不是仅仅选择较好的输出。
(2) AlpacaEval 是最广泛使用的 LLM 排行榜之一,它完全基于 LLM-as-a-Judge!AlpacaEval 当前的方法基于 GPT-4-Turbo,并使用了一个非常简单的提示,其中包括:
- 提供对评估者的指示。
- 给评估者两个指示的示例响应。
- 要求评估者基于人类偏好识别出更好的响应。
尽管简单,这种策略与人类偏好评分高度相关(即,与聊天机器人竞技场的 Spearman 相关系数为 0.9+)。
(3) G-Eval 是最早显示出与人类判断高度相关的 LLM 驱动评估指标之一。该指标成功的关键在于利用了两阶段提示方法。首先,LLM 接收到任务/指示作为输入,并被要求生成一系列用于评估此任务解决方案的步骤。这种方法称为 AutoCoT。然后,LLM 在生成实际分数时使用这种推理策略,发现这能提高评分准确性!
(4) LLM-as-a-Judge 论文本身使用了一个相当简单的提示策略来对模型输出进行评分。然而,该模型还被要求提供其评分的解释。生成这样的解释类似于链式思考提示策略,发现这能提高评分准确性。进一步地,论文中探索并发现了几种不同的提示策略——包括点对点和成对提示——都有效。
主要收获。从这些例子中,我们可以得出一些共同的收获/学习:
- LLM 评估者在识别对人类更有吸引力的响应方面非常出色(由于使用了 RLHF 进行训练)。
- 为每个领域/应用创建专门的评估提示是有用的。
- 提供评分标准或良好解决方案的期望属性列表对 LLM 有帮助。
- 简单的提示可以非常有效(不要过于复杂!)。
- 为复杂问题(例如数学)提供(或生成)参考解决方案是有用的。
- 链式思考提示(各种形式)是有帮助的。
- 点对点和成对提示都被广泛使用。
- 成对提示可以要求对每个输出进行评分,也可以要求识别出更好的输出。