29 lines
776 B
Python
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"
|