一个数字本身不构成答案。fylite 的每个结果都带着它是怎么来的, 以及它在哪里不等价——后者是这套工具与「给个数就走」的区别所在。
溯源:每个结果带的那一段
每次运行都附一份溯源记录,至少说明三件事:
-
它是什么的约化档。 一个约化模型总是某个更完整表述的简化;记录点名那个上游, 而不是让你去猜这条曲线代表多高的保真度。
-
它在哪里不等价。 这是记录里最有用的一句:约化在什么条件下会失真、 在哪个区间不该拿去下结论。
-
哪一个二进制答的。 内核有版本与 ABI 号;同一份输入在不同版本上可能给不同的数, 所以「哪个版本算的」是结果的一部分,不是元数据里的装饰。
三种「没有数」,含义各不相同
| 你看到的 | 含义 |
|---|---|
| 报错 | 请求落在模型适用范围之外。不会返回一个看起来像答案的数。 |
| 标为缺口 | 这个能力还没建。它被列在能力目录里,而不是被一个返回零的函数填上。 |
| 明说是批式 | 能算,但不是即时的;分步进行、可中断。 |
★这三者被刻意分开,因为它们要求你做的事不同:第一种要改输入,第二种要等能力落地, 第三种只要等它跑完。把它们混成同一个「失败」,会让前两种被当成第三种来等。
保真度声明的读法
凡是给出「与某某相差 X %」的地方,同时会给两样东西:
-
零假设——「什么都不做」在同一指标上是多少。一个模型如果不比这条线好, 它就什么也没说;准稳态窗口上这条线往往比直觉高得多。
-
残余归因清单——差距里已经解释掉的部分与尚未解释的部分,分开列。 未归因的那些留在清单上,不打包进一句「符合良好」。
数值一致性
同一份输入,浏览器与本机 Python 得到同一个数:两边是同一个内核的两次编译, 不是两套实现。多线程与单线程也逐位一致——每个元素独立计算、同一算术顺序。 这几条由自动门在每次改动时校验。