文档
编写测试套件,用它做门控。
Oloproof 依据置信区间而不是点估计来决定发布。这些页面介绍如何声明要度量的内容、如何把决策转化为退出码,以及 LLM 评判模型在获准为任何发布做门控之前必须达到的要求。
快速入门安装引擎,生成项目骨架,并在你自己的机器上完成第一次运行、得到第一个门控决策。除非你主动推送,否则任何数据都不会离开这台机器。核心概念Oloproof 度量 AI 系统的方式,与一项研究度量任何事物的方式相同:同样的用例、同样的评判器、同样的随机种子,在每次变更时运行。它在测试套件之上增加的,是每个数字都附带其不确定性,而发布决策依据的是区间,而不是估计值。编写测试套件一个测试套件由两个文件和一个数据集组成。oloproof init 会生成这两个文件的骨架,并且骨架中带有注释,因为第一次入门走查中有四次尝试失败,原因是缺了一个字符串,而不是缺了某个功能。Python APICLI 能做的一切,库也都能做。当评估应当放在脚本、notebook 或测试套件中,而不是放在配置文件旁边时,就使用它。Recording what a system didA system's output is what an evaluator reads by default. Everything else it did — the prompt it built, the passages it retrieved, the tools it called, the tokens it spent — is recorded alongside the output as artifacts and usage, and every artifact is stored content-addressed with the execution that produced it.进度与并发针对线上模型运行一个测试套件需要几分钟,而其中大部分时间都花在等待模型上。本页介绍 Oloproof 会同时保持多少个进行中的调用、在调用运行期间向你展示什么,以及如何得知还需要多少次运行才能让一条未做出决策的规则得出结论。Gating CIA gate compares measured evidence against a threshold you declared, and exits with a code your CI understands. The decision is made on the interval, not on the estimate.在 CI 中运行CI 门控 介绍发布策略以及每个退出码的含义。本页讲的是 CI 作业内部发生的部分:如何在其中安装 Oloproof,作业运行期间证据存放在哪里,如何在不解析表格的情况下读取结果,以及如何将拉取请求与其目标分支进行比较。Comparing a candidate to a baselineThe workflow the rest of this product exists for: you changed something, and you want to know whether it helped. A comparison pairs two runs case by case and reports the difference with an interval, so a two-point move is never mistaken for a win.比较规则将候选与基线进行比较 展示了工作流程。本页是比较判定所依据规则的参考:有哪些种类、每种规则问的是什么、容许界值以什么单位度量,以及哪些因素会改变规则所依据的区间。聚类用例大多数区间计算都假设每个用例与其他所有用例相互独立。同一段对话中的三轮并非如此:当对话出了问题,这三轮往往会一起出问题。把它们当作相互独立的测试套件,报告的区间会比证据所能支持的更窄,而门控可能因此通过。切片整体比率可能保持稳定,而测试套件的某一部分却已崩溃。切片是测试套件中一个经过声明、单独度量的部分,从而让这种崩溃可见。切片附带两条纪律,因为同时查看测试套件的许多部分,正是评估把噪声当作发现的常见方式。JudgesAn LLM judge is one kind of evaluator, not all of them. Oloproof has three kinds — deterministic, LLM judge, and custom — and the rules on this page are about the second, because a model's verdict is the one that needs measuring against a human's.RAG 评估检索增强生成的回答出错可能有四种不同的原因:正确的段落从未被检索到;它被检索到了,但排名太低;它的排名足够高,却随后被从上下文中丢弃;或者它到达了模型,而模型依然答错了。单一的准确率数字无法区分这些情况。Oloproof 将 RAG 系统作为两个它能看到的阶段来运行,分别度量每个阶段,并在受控的变更下重新执行失败的用例,以查明适用的是哪种原因。智能体与工具Oloproof 不驱动智能体。你的智能体运行自己的循环,调用自己的工具,并将所发生的事情记录为一个 agent_trajectory/v1 制品。每个智能体指标都从这条记录中读取,因此这条记录就是全部的集成工作。分类器与回归器预测模型的评估方式与其他系统相同:一个可调用对象为每个用例返回一个预测,评估器读取该预测。变化的是分母。准确率、召回率和精确率是三个不同行集合上的三个比率,一个模型可能在其中一个上表现良好,却无法回答业务真正关心的问题。通知通过的运行不会通知任何人。Oloproof 发出通知,意味着某件事需要做出决定,或者某样东西即将停止工作:门控阻止了一次发布、一次托管运行结束了、额度即将用完。错误本页存在的意义在于这个区分:失败的运行和出错的运行是两回事,把其中一个呈现为另一个,就等于告诉开发者他们的变更有问题,而实际情况是评测框架自己崩了。CLI 参考Oloproof 注册的每一条命令及其作用。每条命令都接受 --help,它会打印出这些摘要所依据的完整说明。