跳转到内容

工作流评估

工作流会随着时间而变化。评估是您的工作区如何知道更改是使其更好还是更坏的方式:保存的一组测试用例,一个按钮用于对所选版本运行它们,以及可以将每次运行的结果进行比较的历史记录。

打开工作流并选择评估选项卡。

测试用例是输入加上一个规则,用于定义良好输出的样子。您可以手动编写一个,或者从您喜欢的运行器选项卡中保存一个。每个用例都有一个评分者——决定合格或不合格的规则:

评分者 检查内容
精确匹配 输出等于预期文本。
包含 输出包含预期文本。
JSON 路径 结构化输出中的字段匹配一个值,或者存在。
LLM judge 语言模型根据您编写的评分标准对输出进行打分。

前三种评分方式是精确和免费的。judge 是用于自由格式输出的情形,在这种情况下,“包含”并不有用。

运行开始针对所选版本的每个启用的用例。每个用例作为工作流的真实执行运行,然后其评分者对结果进行打分。您可以实时查看用例的完成情况,取消正在进行的运行,并打开任何用例的执行以查看每个步骤生成的内容。

运行也可以在计划上启动,并且工作流可以门控激活它的套件,因此其最新运行低于您选择的及格率的版本不能成为激活版本,除非拥有者明确记录的覆盖。

每次运行显示通过 / 总数,旁边有一个95% 区间,例如3/3 passed (95% CI 44–100%)。将区间视为运行不能排除的真实通过率范围。三次通过的用例与一个超过一半时间失败的工作流是一致的;三十次通过的用例则不是。 如果您想要更窄的区间,请添加用例。

该区间是信息。激活门根据您设置的阈值自行决定通过率。

对于LLM judge,您需要编写一个评分标准——一个简短的描述,说明良好输出的标准——并可选择性地设置一个介于 0 和 1 之间的通过阈值。judge 返回一个从 0 到 1 的分数和一句理由;阈值决定合格或不合格。通过调整阈值来微调标准,而不是通过反复措辞评分标准直到 judge 同意。

编写一个持久有效的评分标准:

  • 使其仅从输出中可检查:“引用一个来源”可以,“有帮助”则不行。
  • 列出标准:“回答问题并保持在 100 字以内”。
  • 指明什么应被视为不合格:虚构事实、错误格式、缺失警告。

judge 使用固定的、经济的模型,并将随机性降低。如果它无法产生可用的裁定,则该用例被标记为错误——永远不算通过,也不算不合格。

语言模型并非一个完全可重复的工具:相同的输出有时在不同的日子会收到不同的裁定。套件设置 → Judge 样本允许您的工作区量化这一点,而不是忽视它。

将其设定为超过 1(最多 5),每个由 judge 评分的用例在每次运行时都被评分多次:

  • 通过是裁定的多数。平局则视为不合格。
  • 评分是平均值。
  • 每个裁定都被保留。一个裁定不一致的用例被标记为judge 不同意,显示裁定打开每个样本的分数和理由,以便您查看哪个样本不同意以及原因。
  • 运行的区间由于不一致而扩大,其标题显示为包含 judge 噪声。如果所有样本一致,运行将显示与一个样本时相同的区间。

如果任一个样本不合格,该用例就构成一个错误,并指明该样本。门仍然根据通过率做出决定;judge 样本改变的是区间所传达的信息,而不是门的决策。

它的费用。 每个样本都是一次单独的 judge 调用,因此 3 个样本的套件所消耗的 judge 使用量是同一套件 1 个样本的三倍。judge 使用量在使用页面上记录到您的工作区,但不向其收费。该设置是每个工作流适用的,更改将在下一个运行中生效,而不是正在进行的一个。

它不做的事情。 更多的样本更精确地测量相同的 judge。它们并不会使模糊的评分标准变得良好——如果 judge 不停通过您会认为不合格的输出,请更改评分标准。

选择两个运行作为A和B,并逐个用例并排查看,有裁定翻转的用例会突出显示。在两个运行之间新增或移除的用例将单独列出,而不是视为失败。