如何在 UI 中将评估器绑定到数据集
虽然您可以以编程方式指定评估器来对实验结果进行评分(有关更多信息,请参阅本指南),但您也可以在 UI 中将评估器绑定到数据集。这允许您配置自动评估器来对实验结果进行评分。我们支持基于 LLM 的评估器和自定义 Python 代码评估器。
配置此过程与配置跟踪的在线评估器的过程非常相似。
当您为数据集配置评估器时,它只会影响在评估器配置之后创建的实验运行。它不会影响在评估器配置之前创建的实验运行的评估。
- 通过单击侧边栏中的数据集和测试并选择要配置评估器的数据集,导航到数据集详细信息页面。
- 单击
添加自动评估器
按钮,将评估器添加到数据集。这将打开一个模式窗口,您可以使用它来配置评估器。
后续步骤因评估器类型而异。
LLM 作为判官评估器
- 选择 LLM 作为判官类型的评估器
- 为您的评估器命名并设置内联提示或从提示中心加载提示,该提示将用于评估实验中运行的结果。
重要的是,评估器提示只能包含以下输入变量:
input
(必需):您正在评估的目标的输入output
(必需):您正在评估的目标的输出reference
:参考输出,取自数据集
您在应用程序中配置的自动评估器仅当您的评估目标的输入
、评估目标的输出
以及数据集中的示例
都是单键字典时才有效。LangSmith 将自动从字典中提取值并将其传递给评估器。
LangSmith 目前不支持在应用程序中设置对输入
、输出
或示例
字典中的多个键进行操作的评估器。
您可以在“schema”字段中指定评分标准。在此示例中,我们要求 LLM 根据参考对输出的“正确性”进行评分,布尔输出为 0 或 1。schema 中字段的名称将被解释为反馈键,类型将是分数的类型。
- 保存评估器并导航回数据集详细信息页面。此后,数据集的每个后续实验运行都将由您配置的评估器进行评估。请注意,在下面的图像中,实验中的每次运行都有一个“正确性”分数。
自定义代码评估器
- 选择
自定义代码
类型的评估器 - 编写您的评估函数
允许的库:您可以导入所有标准库函数,以及以下公共包
numpy (v2.2.2): "numpy"
pandas (v1.5.2): "pandas"
jsonschema (v4.21.1): "jsonschema"
scipy (v1.14.1): "scipy"
sklearn (v1.26.4): "scikit-learn"
网络访问:您不能从自定义代码评估器访问互联网。
在 UI 中,您将看到一个面板,允许您内联编写代码,并提供一些入门代码。
自定义代码评估器接受两个参数
- 一个
Run
(参考)。这表示您的实验中的新运行。例如,如果您通过 SDK 运行实验,这将包含您正在测试的链或模型的输入/输出。 - 一个
Example
。这表示您正在测试的链或模型使用的参考示例。运行和示例的输入
应该相同。如果您的示例有参考输出
,那么您可以使用它来与运行的输出进行比较以进行评分。
它们返回单个值
- 反馈字典:一个字典,其键是您要返回的反馈类型,值是您将为该反馈键提供的分数。例如,
{"correctness": 1, "silliness": 0}
将在您的实验运行中创建两种类型的反馈,一种表示它是正确的,另一种表示它不是愚蠢的。
在下面的截图中,您可以看到一个简单函数的示例,该函数验证实验中的每个运行都有一个已知的 json 字段
import json
def perform_eval(run, example):
output_to_validate = run['outputs']
is_valid_json = 0
# assert you can serialize/deserialize as json
try:
json.loads(json.dumps(output_to_validate))
except Exception as e:
return { "formatted": False }
# assert output facts exist
if "facts" not in output_to_validate:
return { "formatted": False }
# assert required fields exist
if "years_mentioned" not in output_to_validate["facts"]:
return { "formatted": False }
return {"formatted": True}
- 测试并保存您的评估函数
保存之前,您可以单击测试,LangSmith 将在过去的运行+示例对上运行您的代码,以确保您的评估代码正常工作。
此自动评估器现在将对任何未来的实验提供反馈,无论是来自 SDK 还是通过 Playground。
- 查看实际效果
要可视化新实验中的反馈,请尝试通过 Playground 运行新实验。
在数据集上,如果您现在点击experiments
选项卡 -> + Experiment
-> Run in Playground
,您可以看到实际效果。您的实验中的运行将自动标记为您的代码示例中指定的键(此处为formatted
)。
如果您导航回数据集,您将在experiments
选项卡中看到该实验的汇总统计数据。