--dry 显示整批都要重跑。可你知道这次改动不影响任何一道题,整批重跑却要花真钱。
这时用 niceeval accept 明确接受那些旧结果。NiceEval 不会仅凭你的确认就放行,它会自己验证这次变化确实不影响结果。只有两种变化能通过验证:
- Experiment 改了名,其它都没变。改名还可以直接用
niceeval exp rename,见 CLI 参考。 - 官方
dockerSandbox的镜像引用换了地址,但新旧两个引用都写明了同一个@sha256:digest 和完整的 platform。只写 tag 的镜像不行,因为 tag 指向的内容可能已经变了。
accept-ineligible。这些变化可能真的改变结果,应该重跑。
从运行计划找到可以接受的旧结果
先预览当前要跑的 Experiment:accept 命令。你写进命令的 locator 就是这次接受的全部范围;NiceEval 不会顺带接受同一个 Run 或同一个 Experiment 的其它结果。
如果整批旧结果都来自同一个 Run、都能被接受,--dry 会改为建议 niceeval accept --run <run-id> --dry,一次预览整个 Run。
接受前先核对旧结果
用完整 locator 在终端打开这个旧 Attempt:接受需要的结果
--dry。
NiceEval 会先检查全部输入。任何一个 locator 无效、不符合条件或和另一个输入冲突时,整条命令都不会写入任何结果,不会只接受一半。
成功后,NiceEval 新建一个 Run,在对应位置引用原来的 Attempt,并记下这是你明确接受的。原 Attempt、它所在的 Run 和它的 locator 都保持不变,结果也不会被复制一份。
核对新建的 Run
成功反馈会显示新 Run 的 ID。打开它确认结果:accepted,没有接受的位置显示为 not-dispatched。只接受了一部分时,报告会如实显示结果不全。
每次 accept 都新建一个 Run,不会修改或合并上一次的接受。想让一批结果出现在同一个 Run 里,就把它们写进同一条命令。
常见失败
自动沿用和强制重跑怎样选择,见修改后只重跑受影响的评估。