由于 LLM 应用通常会生成没有唯一正确答案的对话文本,因此评估它们可能颇具挑战。 本指南将介绍如何使用 LangSmith UI 为离线评估定义一个 LLM-as-a-judge 评估器。
本指南使用 LangSmith UI。你也可以使用 SDK 以编程方式创建 LLM-as-a-judge 评估器,并且它会与在此处创建的评估器一样显示在 LangSmith UI 中。请参阅 使用 SDK 管理评估器。如果要在生产环境的跟踪记录上实时运行评估,请参阅设置在线评估。
如果你的数据集示例是通过在标注队列中编写断言构建的,LLM-as-a-judge 评估器可以读取 example.outputs["assertions"],并针对你的应用输出对每条断言进行评分。

第 1 步:创建评估器

  1. 在 LangSmith UI 中,从 评估器页面点击 + Evaluator,或点击数据集或跟踪项目中的 Evaluators 标签页。
  2. 在 Add Evaluator 面板中,在 Create from scratch 下选择 LLM-as-a-Judge Evaluator。或者,选择 Create from a template,从现成的评估器开始并进行编辑。

评估器模板

评估器模板是设置评估时很有用的起点。在 Add Evaluator 面板中选择 Create from a template,即可浏览按类别组织的模板,例如安全性、保障性和质量。 你可以配置 LLM-as-a-Judge 评估器:

自定义 LLM-as-a-judge 评估器

为 LLM-as-a-judge 评估器提示词添加具体说明,并配置应传递给评估器的输入、输出和参考输出中的部分内容。

第 2 步:配置评估器

提示词

创建新的提示词,或从 提示词中心中选择现有提示词。
  • Create your own prompt:直接创建自定义提示词。
  • Pull a prompt from the prompt hub:使用 Select a prompt 下拉菜单,从现有提示词中选择。你无法直接在提示词编辑器中编辑这些提示词,但可以查看提示词及其使用的 schema。如需修改,请在 Playground 中编辑提示词并提交该版本,然后在评估器中引入新的提示词。

模型

从提供的选项中选择所需的模型。

映射变量

使用变量映射来指定从运行记录或示例传递到评估器提示词中的变量。为了帮助进行变量映射,系统会提供一个示例(或运行记录)供参考。点击提示词中的变量,并使用下拉菜单将其映射到输入、输出或参考输出中的相应部分。 如果使用 mustache 格式(默认格式),请输入带双花括号的提示词变量 {{prompt_var}};如果使用 f-string 格式,则请输入带单花括号的提示词变量 {prompt_var}。 你可以根据需要移除变量。例如,如果你要评估简洁性等指标,通常不需要参考输出,因此可以移除该变量。

预览

预览提示词后,你可以看到使用右侧显示的参考运行记录和数据集示例时,格式化后的提示词是什么样的。

使用 few-shot 示例改进评估器

为了让 LLM-as-a-judge 评估器更好地符合人工偏好,LangSmith 允许你针对评估器评分收集人工修正。启用此选项后,修正内容会自动作为 few-shot 示例插入提示词中。 了解如何设置 few-shot 示例并进行修正。

反馈配置

反馈配置是 LLM-as-a-judge 评估器将使用的评分标准。你可以将其视为评估器据此评分的评价标准。评分会作为反馈添加到运行记录或示例中。为评估器定义反馈:
  1. 命名反馈键:这是查看评估结果时显示的名称。不同实验中的名称应保持唯一。
  2. 添加描述:描述该反馈所代表的内容。
  3. 选择反馈类型:
    • Boolean:True/false 反馈。
    • Categorical:从预定义类别中选择。
    • Continuous:在指定范围内进行数值评分。
在后台,反馈配置会作为结构化输出添加到 LLM-as-a-judge 提示词中。如果你使用的是提示词中心中的现有提示词,则必须先为该提示词添加输出 schema,然后才能配置评估器使用它。输出 schema 中的每个顶层键都会被视为一项独立的反馈。

第 3 步:保存评估器

完成配置后,保存更改。