在评测过程中,评估器充当裁判的角色,通过量化评测对象的输出结果来评估其表现。在发起评测实验前,至少要创建一个评估器。本文指导你在扣子罗盘中创建和管理评估器。
评估器(Evaluator)是用于自动化或半自动化评估工具。评估器通过预定义的规则,对评估对象的输出进行多维度分析,生成可量化的指标和归因结论。
在执行评测实验时,LLM 评估器会根据 Prompt 中预设的标准和规则对评估对象的输出进行打分,并提供得分原因。得分范围从 0.0 到 1.0,1.0 表示完全满足评分标准,0.0 表示完全不满足评分标准。开发者也可以在评估器中自行定义评估标准和分值范围。
说明
LLM 评估器的得分和原因由 AI 生成,可能存在偏差。扣子罗盘支持对评估器的得分进行人工校准和修改。详细说明可参考人工标注评测数据。
评估器用于根据预设的标准和规则判断预期输出和实际输出的差异,开发者可以根据评测实验的业务场景,自行创建评估器、编写评估器 Prompt。
根据来源划分,评估器可分为预置评估器与自建评估器。
根据评估器的评估方式,我们可以将评估器分为以下两种:
参考以下步骤,创建一个 LLM 评估器。
访问扣子罗盘,并在左侧导航栏顶部,选择一个空间。
在左侧导航栏,选择评测 > 评估器。
在页面右上角单击 + 新建评估器,并选择 LLM 评估器。
选择一个评估器模板,或者单击使用自定义创建。
扣子罗盘预置了适合多种评测场景的评估器模板供你快速创建评估器,这些模板分别从各种角度评估评测对象的输出是否符合指定的要求,例如评估输出的间接性、争议性等。你可以根据评估器类型(LLM 或 Code)、评估对象、评估目标和业务场景,筛选不同的评估器模板。
如果评估器模板不符合你的需求,你也可以单击自定义创建LLM评估器,自己编辑评估器的提示词。
在新建评估器页面,参考以下信息配置评估器。
|
配置 |
说明 |
|---|---|
|
名称 |
输入评估器名称。 |
|
描述 |
提供一个评估器的说明信息。 |
|
模型选择 |
使用豆包模型。 |
|
Prompt |
输入评估器的提示词,指示评估器如何进行评估,也可以使用内置的 Prompt 模板或基于模版进行修改。 |
|
+ 添加 User Prompt(可选) |
当评估规则较为复杂时,可以通过单击 + 添加 User Prompt 添加 User Prompt,以强调特定的评估规则。User Prompt 的优先级高于 System Prompt,因此模型会优先处理和评估 User Prompt 中输入的规则内容。这样可以确保复杂规则得到准确的关注和应用。 |
在完成评估器配置后,单击调试,测试一下评估器效果。
在弹出的预览与调试页面,输入一组测试数据,然后单击运行查看评估效果是否符合预期。
以下图中的评估器为例,它对构造的output内容评估完全准确。
在调试后,单击创建并提交评估器版本。
说明
Code 评估器默认支持 Python 和 JavaScript 官方库,也支持以下第三方库:
参考以下步骤,创建一个 Code 评估器。
选择**基于评测集**,单击**构造测试数据**。

根据页面提示选择评测集、指定版本号,并选择评测集中用于测试评估器的数据。
选择评测对象及版本。
确认测试数据,扣子罗盘会自动生成模拟输出。
示例如下:

output内容评估完全准确。评估器主要的使用场景是用于在评测实验。结合评测集的输入,对评测对象的输出进行评估打分。在一个评测实验中,可以配置多个评估器或同个自建评估器的不同版本,详情请参考管理实验。
|
场景 |
配置方式 |
|---|---|
|
迭代评估对象 |
在多个实验中,控制评估器不变,配置不同的评测对象( Prompt 的不同版本),查看评测结果。 |
|
迭代评估器 |
在同个实验中,评测对象保持不变,配置同个评估器的不同版本,查看评测结果精确度。 |
推荐采用如下单行样本结构,便于在离线与在线评测之间统一格式,并与评估器的输入协议对齐:
{
"evaluate_dataset_fields": {
"input": {"content_type": "Text", "text": "问题或输入"},
"reference_output": {"content_type": "Text", "text": "理想答案或参考输出"}
},
"evaluate_target_output_fields": {
"actual_output": {"content_type": "Text", "text": "待评测模型的真实输出"}
},
"ext": {
"dataset_version": "v2025-09-26",
"sample_id": "uuid-xxx"
}
}
字段说明:
|
字段名称 |
字段说明 |
|---|---|
|
evaluate_dataset_fields |
数据集输入数据。 |
|
evaluate_target_output_fields |
评估对象输出数据。 |
|
input |
数据集输入,代表用户问题或任务描述。 |
|
reference_output |
理想输出或标准答案,用于对齐实际输出。 |
|
actual_output |
被评测对象的真实输出,用于打分与误差分析。 |
|
ext |
元信息,用于开发者自行定义使用,通常被定义为数据版本、样本 ID、来源渠道等。建议统一键名便于追踪。 |
|
content_type |
与内容匹配的类型标记,多模态样本应按类型选择相应结构,避免混用。常用枚举值包括 Text、Image、Audio、MultiPart 等。 |
content_type 的完整枚举值及各个类型内容的详细配置可参考以下 IDL:
typedef string ContentType(ts.enum="true")
const ContentType ContentType_Text = "Text" // 空间
const ContentType ContentType_Image = "Image"
const ContentType ContentType_Audio = "Audio"
const ContentType ContentType_MultiPart = "MultiPart"
const ContentType ContentType_MultiPartVariable = "multi_part_variable"
struct Content {
1: optional ContentType content_type (go.tag='mapstructure:"content_type"'),
10: optional string text (go.tag='mapstructure:"text"'),
11: optional Image image (go.tag='mapstructure:"image"'),
12: optional list<Content> multi_part (go.tag='mapstructure:"multi_part"'),
13: optional Audio audio (go.tag='mapstructure:"audio"'),
}
struct AudioContent {
1: optional list<Audio> audios,
}
struct Audio {
1: optional string format,
2: optional string url,
}
struct Image {
1: optional string name,
2: optional string url,
3: optional string uri,
4: optional string thumb_url,
}