Skip to content
LLM 评估

用 Potato 做 LLM 评估与偏好数据收集

在你自己的服务器上为 RLHF 和 DPO 收集成对偏好数据,用量规给模型输出打分,并检验 LLM 评审者与人类评分者是否一致。

Potato 收集 LLM 评估和后训练所需的人类判断,包括用于 RLHF 和 DPO、允许平局的成对偏好,量规得分,生成文本中的错误片段,以及用来检验 LLM-as-a-judge 的人工标签。Potato 免费开源,运行在你自己的服务器上,未发布的模型输出和私有提示都留在你的基础设施里。

人类判断仍然是衡量模型和自动指标的参照,而把这些判断收集好本身就是一个标注问题。团队要选定回答形式和每个条目的评分者人数,防止评分者偏向更长的回答,还要证明标签是可靠的。Potato 负责研究层面的工作:随机化的并排呈现、每个条目分配多名评分者、研究进行中实时计算一致性,以及保留每位评分者答案的导出。

Potato 中的 LLM 评估任务

每一行是 Potato 自带的一种标注类型或工具,链接页面给出了它的配置。

任务Potato 的做法文档
为奖励模型和 DPO 收集成对偏好pairwise,支持二选一、量表和多维度模式,允许平局,A/B 顺序随机成对比较
按量规打分rubric_eval,含具名评分维度,每个维度一个分数量规评估
对多个输出排序最佳-最差量表,把从小组输出中选出的最佳和最差项转换为分数最优-最差量表
查找错误与幻觉以 MQM 的方式在生成文本中标出错误片段错误片段
检验 LLM 评审者对一个样本做人工标注,在相同条目上与评审者的标签比较LLM 评审者与人类的一致性
实时比较模型把同一个提示并排发给多个模型,生成胜率排行榜模型竞技场
RAG 与有依据的回答对照检索到的段落评判回答质量及其支撑程度RAG 评估

一个偏好收集任务

下面的 annotation_schemes 块要求评分者给出允许平局的二选一偏好,再写一句理由。包含提示和两个回复的完整任务见 RLHF 与偏好数据。

yaml
annotation_schemes:
  - annotation_type: pairwise
    name: preference
    description: "Which response better follows the instruction and is more helpful and harmless?"
    mode: binary
    allow_tie: true
  - annotation_type: text
    name: rationale
    description: "One sentence on why you chose it."
    label_requirement:
      required: false

理由设为选填,因为写理由会拖慢评分者,不过至少在一个样本上收集理由是值得的。有了理由,你就能审查偏好数据,找出那些看重长度或格式而非质量的评分者。

与 Label Studio、Argilla、Langfuse 和 LMArena 的分工

Label Studio 有用于收集人类偏好的成对比较模板,Argilla 提供评分和排序题,用于构建偏好数据集。Langfuse 让团队在标注队列中给生产环境的 trace 打分。Chatbot Arena(现名 LMArena)确立了盲测并排投票、再用 Bradley-Terry 模型排名的模式(Zheng et al., 2023)。Potato 的重点是把评估当作一项研究来做:每个条目分配多名评分者,每个方案都测量一致性,对众包评分者设置注意力检查和黄金标准检查,统计计算在浏览器中完成。Bradley-Terry 计算器根据成对判断给模型排名,评审者一致性计算器检验 LLM 评审者与人的一致程度。

常见问题

如何检验我的 LLM-as-a-judge 与人类评分者是否一致?

先让至少两个人在看不到评审者答案的情况下标注一个条目样本,再把评审者与这些人的一致性同这些人彼此之间的一致性作比较。如果评审者与人类之间的 Cohen's kappa 接近人类彼此之间的 kappa,这个评审者的表现就和多一名标注者差不多。LLM 评审者与人类的一致性给出了具体步骤,评审者一致性计算器可以对一个 CSV 文件做这项比较。

应该用成对比较、李克特评分还是量规?

需要偏好数据或模型排名时用成对比较,因为评分者比较两个输出,比给出稳定的绝对分数更可靠。需要知道一个输出为什么更好时用量规,因为逐维度打分能把有用性和准确性分开。对单个输出做李克特评分适合快速的质量检查。成对比较与最佳-最差量表和评分量表比较了这些形式。

能否在不向第三方发送数据的情况下做盲测并排比较?

可以。Potato 运行在你自己的服务器上,以随机顺序显示两个输出,评分者无法分辨哪个输出来自哪个模型。除非你配置了托管的 AI 端点,否则数据不会离开你的服务器;模型竞技场也可以通过 Ollama 或 vLLM 调用本地模型。

偏好标签每个条目需要多少名评分者?

人数取决于评分者在你的条目上分歧有多大。每个条目两名评分者可以直接测量一致性;在不允许平局的二选一中,奇数名评分者总能形成多数。你需要多少位标注者?和标注功效规划器可以帮你按目标精度确定研究规模。

延伸阅读

参考文献

  1. Zheng et al. (2023). Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. NeurIPS 2023 Datasets and Benchmarks. https://arxiv.org/abs/2306.05685

从这里开始

示例设计

每个设计都是可以下载并直接运行的 Potato 配置。

其他领域

全部应用场景