工作流评估
工作流会随着时间而变化。评估是您的工作区如何知道更改是使其更好还是更坏的方式:保存的一组测试用例,一个按钮用于对所选版本运行它们,以及可以将每次运行的结果进行比较的历史记录。
打开工作流并选择评估选项卡。
测试用例是输入加上一个规则,用于定义良好输出的样子。您可以手动编写一个,或者从您喜欢的运行器选项卡中保存一个。每个用例都有一个评分者——决定合格或不合格的规则:
| 评分者 | 检查内容 |
|---|---|
| 精确匹配 | 输出等于预期文本。 |
| 包含 | 输出包含预期文本。 |
| JSON 路径 | 结构化输出中的字段匹配一个值,或者存在。 |
| LLM judge | 语言模型根据您编写的评分标准对输出进行打分。 |
前三种评分方式是精确和免费的。judge 是用于自由格式输出的情形,在这种情况下,“包含”并不有用。
运行开始针对所选版本的每个启用的用例。每个用例作为工作流的真实执行运行,然后其评分者对结果进行打分。您可以实时查看用例的完成情况,取消正在进行的运行,并打开任何用例的执行以查看每个步骤生成的内容。
运行也可以在计划上启动,并且工作流可以门控激活它的套件,因此其最新运行低于您选择的及格率的版本不能成为激活版本,除非拥有者明确记录的覆盖。
每次运行显示通过 / 总数,旁边有一个95% 区间,例如3/3 passed (95% CI 44–100%)。将区间视为运行不能排除的真实通过率范围。三次通过的用例与一个超过一半时间失败的工作流是一致的;三十次通过的用例则不是。
如果您想要更窄的区间,请添加用例。
该区间是信息。激活门根据您设置的阈值自行决定通过率。
LLM judge
Section titled “LLM judge”对于LLM judge,您需要编写一个评分标准——一个简短的描述,说明良好输出的标准——并可选择性地设置一个介于 0 和 1 之间的通过阈值。judge 返回一个从 0 到 1 的分数和一句理由;阈值决定合格或不合格。通过调整阈值来微调标准,而不是通过反复措辞评分标准直到 judge 同意。
编写一个持久有效的评分标准:
- 使其仅从输出中可检查:“引用一个来源”可以,“有帮助”则不行。
- 列出标准:“回答问题并保持在 100 字以内”。
- 指明什么应被视为不合格:虚构事实、错误格式、缺失警告。
judge 使用固定的、经济的模型,并将随机性降低。如果它无法产生可用的裁定,则该用例被标记为错误——永远不算通过,也不算不合格。
Judge 样本
Section titled “Judge 样本”语言模型并非一个完全可重复的工具:相同的输出有时在不同的日子会收到不同的裁定。套件设置 → Judge 样本允许您的工作区量化这一点,而不是忽视它。
将其设定为超过 1(最多 5),每个由 judge 评分的用例在每次运行时都被评分多次:
- 通过是裁定的多数。平局则视为不合格。
- 评分是平均值。
- 每个裁定都被保留。一个裁定不一致的用例被标记为judge 不同意,显示裁定打开每个样本的分数和理由,以便您查看哪个样本不同意以及原因。
- 运行的区间由于不一致而扩大,其标题显示为
包含 judge 噪声。如果所有样本一致,运行将显示与一个样本时相同的区间。
如果任一个样本不合格,该用例就构成一个错误,并指明该样本。门仍然根据通过率做出决定;judge 样本改变的是区间所传达的信息,而不是门的决策。
它的费用。 每个样本都是一次单独的 judge 调用,因此 3 个样本的套件所消耗的 judge 使用量是同一套件 1 个样本的三倍。judge 使用量在使用页面上记录到您的工作区,但不向其收费。该设置是每个工作流适用的,更改将在下一个运行中生效,而不是正在进行的一个。
它不做的事情。 更多的样本更精确地测量相同的 judge。它们并不会使模糊的评分标准变得良好——如果 judge 不停通过您会认为不合格的输出,请更改评分标准。
选择两个运行作为A和B,并逐个用例并排查看,有裁定翻转的用例会突出显示。在两个运行之间新增或移除的用例将单独列出,而不是视为失败。