主题
在实验上自动运行评估器
LangSmith 支持两种方式对通过 SDK 创建的实验进行评分:
- 以编程方式,在代码中指定评估器(详见如何评估 LLM 应用)
- 在 UI 中将评估器绑定到数据集。除了你通过 SDK 设置的任何评估器外,这还会自动对所创建的任何新实验运行这些评估器。当你在迭代应用(目标函数),并且有一组想要对所有实验运行的标准评估器时,这很有用。
在数据集上配置评估器
- 在 LangSmith UI 中,选择一个数据集。
- 点击 Evaluators 标签页。
- 点击 + Evaluator 打开 Configure Evaluator 面板。
- 选择以下其中一项:
- 从头创建:构建新的 LLM-as-a-Judge、Code 或 Composite 评估器,或选择 From labeled data 来创建一个与人类反馈对齐的 LLM-as-a-judge 评估器。要使用决策模型作为评判者,请选择 LLM-as-a-Judge Evaluator,然后选择一个决策模型。
- 附加现有评估器:选择你工作区中已有的评估器以复用它。
- 从模板创建:从现成的评估器开始。
NOTE
当你为数据集配置评估器时,它只会影响在配置评估器之后创建的实验运行。它不会影响对在配置评估器之前创建的实验运行的评估。
LLM-as-a-judge 评估器
将评估器绑定到数据集的过程与在 Playground 中配置 LLM-as-a-judge 评估器的过程非常相似。查看在 Playground 中配置 LLM-as-a-judge 评估器。
决策模型评估器
决策模型评估器使用决策模型(例如 SemIf 或 Jev)作为评判者。在数据集上,你可以将参考输出映射到评估器的状态中,并提出问题将其与运行的输出进行比较。有关说明,请参阅如何定义决策模型评估器。
自定义代码评估器
将代码评估器绑定到数据集的过程与在线评估中配置代码评估器的过程非常相似。查看配置代码评估器的说明。
在线评估中配置代码评估器与将代码评估器绑定到数据集之间唯一的区别在于,自定义代码评估器可以引用属于数据集 Example 一部分的输出。
对于绑定到数据集的自定义代码评估器,评估器函数接收两个参数:
- 一个
Run(参考)。它表示你实验中的新运行。例如,如果你通过 SDK 运行了一个实验,它将包含你正在测试的链或模型的输入/输出。 - 一个
Example(参考)。它表示你数据集中你正在测试的链或模型所使用的参考示例。Run 和 Example 的inputs应当相同。如果你的 Example 有参考outputs,那么你可以用它来与运行的输出进行比较以进行评分。
下面的代码展示了一个简单的评估器函数示例,它检查输出是否与参考输出完全相等。
python
import numpy as np
def perform_eval(run, example):
# run is a Run object
# example is an Example object
output = run['outputs']['output']
ref_output = example['outputs']['outputs']
output_match = np.array_equal(output, ref_output)
return { "exact_match": output_match }javascript
function perform_eval(run, example) {
// run is a Run object
// example is an Example object
const output = run.outputs.output;
const refOutput = example.outputs.outputs;
// Deep equality check for arrays/objects
const outputMatch = JSON.stringify(output) === JSON.stringify(refOutput);
return { "exact_match": outputMatch };
}