sparkle/mlx_streaming/mtp/bench_verdict.py
fiser_jun 4745f264b2
2026-08-04 14:34:00 +08:00

29 lines
776 B
Python

"""最小树 A/B 评测的纯裁决逻辑:中位数 + go/no-go 判定(无副作用,可单测)。"""
def median(xs):
"""样本中位数(偶数个取中间两数均值)。xs 非空。"""
s = sorted(xs)
n = len(s)
mid = n // 2
if n % 2 == 1:
return s[mid]
return (s[mid - 1] + s[mid]) / 2
def verdict_from_delta(delta, exact_all, margin=0.05):
"""按跨 prompt 中位相对提速 delta 与 lossless 门给出裁决。
- exact_all=False → "bug"(lossless 硬门一票否决)
- delta > margin → "go"
- delta < -margin → "no-go"
- 其余(含边界) → "even"
"""
if not exact_all:
return "bug"
if delta > margin:
return "go"
if delta < -margin:
return "no-go"
return "even"