You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
数据评测
评估器
复制全文
下载 pdf
评估器
本章节介绍如何创建日志服务 AgentLoop 数据评估器。​
概述​
评估器作为评测过程中的裁判,负责量化评测对象的表现。系统提供一系列预置评估器供您选择,这些模板分别从各种角度评估评测对象的输出是否符合指定的要求,例如评估输出的间接性、争议性等。如果没有合适的预置评估器,也可以根据页面提示,基于评估器模板创建一个符合当前评测场景的自建评估器。​
评估器通过以下方式进行评估:​
  • 指标得分:评估器根据预定义的评估标准对评测对象进行评分,涵盖准确性、效率等多个维度。​
  • 原因分析:提供评分原因,帮助开发者理解评测对象优劣原因及改进方向。​
以预置评估器 Agent 任务完成度为例:​
​​​
前提条件​
已准备用于评估运行的模型,详情可参考火山方舟快速入门。​
创建 LLM 评估器​
  1. 在顶部导航栏中,选择日志服务所在的地域。​
  1. 在左侧导航栏中,选择 AgentLoop > 评测 > 评估器。​
  1. 在评估器页面的自建评估器页签,选择新建评估器 > LLM 评估器。​
  • 可以根据评估器类型(LLM 或 Code)、评估对象、评估目标和业务场景,筛选不同的评估器模板。​
  • 如果评估器模板不符合需求,也可以单击自定义创建LLM评估器,编辑评估器的提示词。​
  1. 单击自定义创建LLM评估器,完成如下配置。​
  • ​
    参数​
    说明​
    名称​
    输入评估器名称。​
    描述​
    输入评估器的描述信息。​
    模型选择​
    选择评估器模型,当前仅支持dpf。​
    Prompt​
    输入评估器的提示词,指示评估器如何进行评估,也可以使用内置的 Prompt 模板或基于模版进行修改,模版示例详情可参考LLM 评估器 Prompt 示例。​
    单击选择模板链接,查看并选择一个Prompt 模板,单击应用,将自动填充该模版的提示词。​
    User Prompt(可选)​
    当评估规则较为复杂时,可以通过单击添加 User Prompt 添加 User Prompt,以强调特定的评估规则。​
    • User Prompt 的优先级高于 System Prompt,因此模型会优先处理和评估 User Prompt 中输入的规则内容。这样可以确保复杂规则得到准确的关注和应用。​
    • User Prompt 不支持设置多模态变量。​
    ​
  1. 单击调试,调试成功后,单击创建。​
创建 Code 评估器​
  1. 在顶部导航栏中,选择日志服务所在的地域。​
  1. 在左侧导航栏中,选择 AgentLoop > 评测 > 评估器。​
  1. 在评估器页面的自建评估器页签,选择新建评估器 > Code 评估器。​
  1. 单击自定义创建Code评估器,选择评估器语言(Python、Javascript),完成如下配置。​
  • ​
    参数​
    说明​
    名称​
    输入评估器名称。​
    描述​
    输入评估器的描述信息。​
    配置​
    输入评估器的执行函数体,指示评估器如何进行评估,也可以使用内置的模板或基于模版进行修改,模版示例详情可参考Code 评估器 Prompt 示例。​
    单击选择模板链接,查看并选择一个Prompt 模板,单击应用,将自动填充该模版的函数体。​
    ​
  1. 选择测试数据,单击试运行,运行成功后,单击创建。​
查看预置评估器​
  1. 在顶部导航栏中,选择日志服务所在的地域。​
  1. 在左侧导航栏中,选择 AgentLoop > 评测 > 评估器。​
  1. 在评估器页面的预置评估器页签,即可查看系统预置的评估器。​
  • ​​​
评估器 Prompt 示例​
LLM 评估器 Prompt 示例​
以正确性预置评估器为例:​
​
您是一位专业的数据标注员,负责评估模型输出的正确性。您的任务是根据以下评分标准给出评分:​
<评分标准>​
正确的答案应当:​
- 提供准确且完整的信息​
- 不包含事实性错误​
- 回答问题的所有部分​
- 逻辑上保持一致​
- 使用精确和准确的术语​
​
在打分时,您应该进行扣分的情况包括:​
- 事实性错误或不准确的信息​
- 不完整或部分的答案​
- 具有误导性或模糊不清的陈述​
- 错误的术语使用​
- 逻辑不一致​
- 缺失关键信息​
</评分标准>​
​
<指导说明>​
- 仔细阅读输入的问题和模型的输出。​
- 将输出与参考输出进行对比,以检查事实的准确性和完整性。​
- 重点关注输出中所呈现信息的正确性,而非其风格或冗长程度。​
</指导说明>​
​
<提醒>​
目标是评估回复的事实正确性和完整性。​
</提醒>​
​
<输入>​
{{input}}​
</输入>​
​
<输出>​
{{output}}​
</输出>​
​
<参考输出>​
{{reference_output}}​
</参考输出>​
​
Code 评估器 Prompt 示例​
以文本正则匹配预置评估器为例:​
  • Python​
  • ​
    import re​
    ​
    def exec_evaluation(turn):​
    try:​
    # 获取actual_output和reference_output(作为正则表达式)​
    actual_text = turn["evaluate_target_output_fields"]["actual_output"]["text"]​
    regex_pattern = turn["evaluate_dataset_fields"]["reference_output"]["text"]​
    ​
    # 检查actual_output是否匹配正则表达式​
    regex_match = bool(re.search(regex_pattern, actual_text))​
    score = 1.0 if regex_match else 0.0​
    reason = f"actual_output{'匹配' if regex_match else '不匹配'}正则表达式。actual_output: '{actual_text}', 正则表达式: '{regex_pattern}'"​
    ​
    return EvalOutput(score=score, reason=reason)​
    ​
    except re.error as e:​
    raise Exception(f"正则表达式错误: {e}")​
    except KeyError as e:​
    raise Exception(f"字段路径未找到: {e}")​
    except Exception as e:​
    raise Exception(f"评估失败: {e}")​
    ​
  • JavaScript​
  • ​
    function exec_evaluation(turn) {​
    /** 检查actual_output是否匹配正则表达式 */​
    try {​
    // 获取actual_output和reference_output(作为正则表达式)​
    const actual_text = turn["evaluate_target_output_fields"]["actual_output"]["text"];​
    const regex_pattern = turn["evaluate_dataset_fields"]["reference_output"]["text"];​
    ​
    const regex = new RegExp(regex_pattern);​
    const regex_match = regex.test(actual_text);​
    const score = regex_match ? 1.0 : 0.0;​
    const reason = `实际输出: '${actual_text}' ${regex_match ? '匹配' : '不匹配'} 正则表达式: '${regex_pattern}'`;​
    ​
    return { score: score, reason: reason };​
    } catch (e) {​
    return { score: 0.0, reason: `正则表达式错误或评估过程中出现错误: ${e.message}` };​
    }​
    }​
    ​
​
​
最近更新时间:2026.06.24 16:11:31
这个页面对您有帮助吗?
有用
有用
无用
无用