本节摘要:本书核心交付物之一:一页评测可信度核对表,把前三章的全部判定方法收进四区十五项——出题区(题库公开可审计、版本日期可查、污染检查声明、新题/动态机制)、阅卷区(判分方式透明、人工抽检一致率、裁判与被评无亲缘、风格与长度控制)、统计区(置信区间、样本量、分层分项、多轮稳定)、动机区(无利益冲突、披露失败案例、方法学公开)。每项按 0/1/2 打分(0 不满足、1 部分满足、2 满足),配打分器脚本汇总成三档:高可信(≥80%,分数直接进证据链)、中可信(5079%,折价 + 双源交叉)、低可信(<50%,仅当线索,自测为准)。它与 3.3 十问清单的分工:十问审一份报告,核对表审一切评测产物——榜单、基准、平台、厂商自报通吃,20 分钟出档位。两个使用场景收尾:选型初筛时对 35 个信息源各跑一遍定权重;供应商答辩时把核对表当问题清单。与《Evals 实战》9.3 的分工:那边审自己的评测体系,这边审别人的。
阅读完本节,你应当能够:
3.3 的十问清单解决"一份报告怎么读";但选择者面对的评测产物更杂:一张长期关注的榜单、一个新冒出的基准、一个聚合平台的综合分、厂商发布会的自报数字。逐个"凭感觉信不信"不可交接、不可复核。核对表把感觉变成流程:同样的四区、同样的打分、同样的档位规则——两同事对同一榜单各打一遍,分差大的项就是需要讨论的项。
四区与前文的对应关系:出题区来自 4.1(污染)与 1.2(基准格局);阅卷区来自第 3 章(口径)与 2.3(风格);统计区来自 2.2(区间与采样);动机区来自 1.1(利益结构)。
评分口径:每项 0(不满足/查无信息)、1(部分满足)、2(满足)。
| 区 | # | 检查项 | 检查什么 | 不满足时的动作 |
|---|---|---|---|---|
| 出题 | 1 | 题库公开且可审计 | 题目/构成/来源可查 | 整体折价,要求出示 |
| 2 | 版本与日期可查 | 基准版本、评测时间窗 | 无法做时间窗检查(4.1) | |
| 3 | 污染检查并声明 | 检查方法与结果披露 | 记为"背题分未排除" | |
| 4 | 新题或动态机制 | 换题/轮换制度 | 老题库额外折价 | |
| 阅卷 | 5 | 判分方式透明 | EM/规则/裁判及 rubric | 分数口径未知(3.1/3.2) |
| 6 | 人工抽检且报一致率 | 抽检方法 + 一致率数字 | 自动判分未经校验 | |
| 7 | 裁判与被评无亲缘 | 裁判模型独立于被评方 | 警惕自家人打分偏高 | |
| 8 | 风格与长度控制 | 竞技场查风格视图;裁判查偏见治理 | 风格红利未剥离(2.3) | |
| 统计 | 9 | 报告置信区间 | 分数带误差棒/区间 | "领先"不可检验(2.2) |
| 10 | 样本量充足 | 每分项 n 可查 | 小样本分项不采信 | |
| 11 | 分层分项报告 | 按任务/难度/语言拆分 | 总分掩盖短板(0.1) | |
| 12 | 多轮重复稳定 | 多次运行均值±波动 | 单轮分数当运气看 | |
| 动机 | 13 | 无利益冲突 | 出题/付费方与被评方独立 | 厂商自报强制折价(1.1) |
| 14 | 披露失败案例 | bad case 与局限章节 | 全绿报告默认折价 | |
| 15 | 方法学公开 | 复现路径/脚本/第三方可跑 | 只能当营销素材 |
# credibility_score.py(纯标准库,可直接运行) """评测可信度核对表打分器:四区十五项,0/1/2 打分汇总成档位。""" ZONES = { "出题(题目哪来)": ["题库公开且可审计", "版本与日期可查", "做过污染检查并声明", "有新题或动态更新机制"], "阅卷(谁打的分)": ["判分方式透明可复现", "人工抽检且报一致率", "裁判与被评模型无亲缘", "做了风格与长度控制"], "统计(分数多硬)": ["报告置信区间", "样本量充足", "分层分项报告", "多轮重复稳定"], "动机(谁付钱)": ["与被评方无利益冲突", "披露失败案例与局限", "方法学公开"], } def score(answers): total = sum(answers.values()) pct = total / (2 * len(answers)) if pct >= 0.8: return total, "高可信:分数可直接进入选型证据链" if pct >= 0.5: return total, "中可信:分数折价使用,需第二来源交叉验证" return total, "低可信:分数仅作参考,以自测为准(第 6 章)" if __name__ == "__main__": answers = { # 示意:一份厂商自报评测的典型打分 "题库公开且可审计": 0, "版本与日期可查": 1, "做过污染检查并声明": 0, "有新题或动态更新机制": 1, "判分方式透明可复现": 1, "人工抽检且报一致率": 0, "裁判与被评模型无亲缘": 0, "做了风格与长度控制": 0, "报告置信区间": 0, "样本量充足": 1, "分层分项报告": 1, "多轮重复稳定": 0, "与被评方无利益冲突": 0, "披露失败案例与局限": 1, "方法学公开": 1, } for zone, items in ZONES.items(): print(f"[{zone}] " + ",".join(f"{i}={answers[i]}" for i in items)) total, verdict = score(answers) print(f"总分 {total}/{2 * len(answers)} → {verdict}")
一次运行的真实输出(实测,示意输入):
[出题(题目哪来)] 题库公开且可审计=0,版本与日期可查=1,做过污染检查并声明=0,有新题或动态更新机制=1 [阅卷(谁打的分)] 判分方式透明可复现=1,人工抽检且报一致率=0,裁判与被评模型无亲缘=0,做了风格与长度控制=0 [统计(分数多硬)] 报告置信区间=0,样本量充足=1,分层分项报告=1,多轮重复稳定=0 [动机(谁付钱)] 与被评方无利益冲突=0,披露失败案例与局限=1,方法学公开=1 总分 7/30 → 低可信:分数仅作参考,以自测为准(第 6 章)
7/30 ≈ 23%——一份"方法半透明、统计裸奔、动机存疑"的典型自报评测,在流程里被稳定地钉进低档。
💡 打分纪律:查无信息记 0,不记 1。"没写"与"做了没宣传"无法区分时,按没做处理——这是核对表保守性的来源,也是它有用的来源。
三项边界,写进使用说明:
与姊妹篇的分工收个尾:《Evals 实战》9.3 节"评测的评测:元问题与反模式"审的是自家评测体系有没有过拟合、gaming、腐化;本表审别人的评测产物。一体两面,纪律同源。
三道折价至此收进一页纸,基础判定方法完整了。接下来:分数可信之后,先确认"给你分数的那个模型"没被悄悄换掉(第 5 章),再把证据抓回自己手里(第 6 章五十条盲测),最后写成选型决定(第 7~9 章)。