方法论
这一页说明本站的数据从哪里来、经过哪些清洗、按什么规则合并,以及我们明确不做什么。
榜单页上的每一个名次都可追溯到原始榜单;本页的规则与 src/ 下的实现一一对应,
改动规则会升方法论版本号并记录在变更日志里。
核心原则:聚合不篡改
Principles本站是第三方聚合展示,不是评测机构。我们不跑任何评测,不产生任何分数。
因此「跨榜对比」在本站的含义是:并列展示同一个模型在不同方法论下的名次, 供你观察它在不同评测体系里是否一致地强(或一致地弱),而不是给出一个"总分第一"。 这也是为什么跨榜表里有「上榜数」和「方法论覆盖」两列,却没有「综合分」列。
数据来源与口径边界
Sources下表列出每个榜的度量口径与使用限制。分数只在同一个榜内部可比,跨行比较无意义。
「状态」列如实反映上游情况:已退役的榜保留归档快照供参考,但不会被用来产出「当前第一」这类现状陈述。
为什么口径边界重要
- 真人盲测(Elo / Arena Score)测的是偏好,不是正确性。用户更喜欢答案,不等于答案更对;且投票人群有构成偏差。
- 客观基准测的是特定能力族。代码榜的成绩与所用的 Agent harness(脚手架)强相关——同一个底座模型,弱 harness 与强 harness 之间可能相差数十分。
- 公开题集可能被专项优化。模型可能在训练阶段见过公开题目,导致成绩高于真实泛化能力。
- 推理档位是成绩的一部分。同一模型开启/关闭扩展思考(
high/max/thinking),排名可能相差多个位次。本站保留档位标注(见 §04),不把不同档位的成绩混为一谈。
模型主数据层
Master data
各榜对同一个模型的写法往往不同:claude-3-5-sonnet-20241022、Claude Opus 4.5 (High)、
Qwen3.8-Max-0902(max)、GPT-4o-mini-2024-07-18。
如果按原始字符串直接聚合,同一个模型会被拆成多行,长尾 ID 还会淹没主表——这是聚合站最常见的数据混乱来源。
本站因此建立了一层模型主数据(master data):一个 canonical 实体 + 若干变体写法。
匹配策略:先确定、后猜测
- 精确匹配:把原始名按 §04 递归剥掉变体尾巴,得到一串候选(从「最折叠的基座名」到「原串」)。从最折叠的一端开始,逐个查注册表与别名表,命中即返回。
- 别名兜底:仍未命中时,用归一化后的基座名做包含匹配(例如
hy3→hunyuan-hy3)。 - 未注册:都没命中就用折叠后的归一化名作为 id,
registered=false,并如实标注厂商/国别未知。
Qwen3.8-Max-0902(max) 会先尝试
Qwen3.8-Max(正式实体)而不是停在 Qwen3.8——正式名里的 Max/Pro/Flash/Mini
不会被当作可剥离的档位词丢掉。
折叠自检:—。
该校验在每次生成数据时自动运行,结果写入 data/merged.json,
因此这里显示的永远是当次构建的真实结果,而非一句写死的承诺。
字段必填:把「未知」写成显式状态
三个标签字段一律非空,避免"空值"被下游误读成"否":
vendor—— 恒为字符串。推不出时是"未标注",不是空串。region—— 恒为字符串。推不出时是"other"。open——true/false/null三态。null表示上游未声明,显式表达「未知」,而不是当成闭源。
这样页面上的「开源」标注才是可信的:没标就是不知道,不是"我们判定它不开源"。
变体折叠规则
Variant folding
折叠是递归的:每轮尝试剥掉一层「变体尾巴」,直到无可剥。被剥掉的内容不会丢弃,
而是记为档位标注(variant),在页面上以小字显示在模型名下方。
| 类别 | 形态 | 示例 | 说明 |
|---|---|---|---|
| paren | 结尾括号内容 | (High) (max) (thinking) | 推理档位或期次标注 |
| date | 结尾日期戳 | 20241022 2025-01-31 06-05 0902 | 4 位纯数字需校验「前两位 1–12、后两位 1–31」,避免把 grok-4.20 误判为日期 |
| ctx | 上下文长度后缀 | -32k -128K -1M | 同一模型的不同上下文窗口配置 |
| mode | 档位/阶段词 | -high -medium -low -xhigh -thinking -preview -exp -max | 不含 pro/flash/mini/lite——这些是正式名的一部分 |
实际折叠示例
注意 Qwen3.8-Max:结尾的 Max 属于正式名(注册表里有 qwen3.8-max 这个实体),
因此不会被剥掉;而括号里的 (max) 是档位标注,会被剥掉并记入 variant。
两者同名但性质不同——这正是「从最折叠端开始匹配」要解决的问题。
同一榜内出现多个变体时
有些榜会同时列出同一模型的不同档位(如 -high 与 -low)。
本站把它们折叠为一个实体,取该榜上的最好名次,并把所有出现过的档位合并记入
variants。原始榜单快照本身不被修改。
32k / high),
点进溯源可以看到原始写法。若你认为应按「默认档位」取值,欢迎在
Issues 提出。
厂商与国别归一
Vendor & region
上游各榜给出的「机构」字段口径不一:LMArena 与 HF 用 slug(openai、z-ai、google),
SuperCLUE 用中文名(阿里巴巴),HF 榜里还混有上传者用户名
(如 Lunzima、MaziyarPanahi)——它们不是厂商。
直接展示会出现 openai 与 OpenAI 并存、以及把个人账号当厂商的情况。
厂商判定优先级
- 注册表:该模型已登记,直接取登记的厂商(最高可信度)。
- 机构 slug 归一:未登记时,把上游机构字段查别名表(约 50 条,如
zai/z-ai→智谱 AI);含中日韩字符的机构名直接保留。 - 名称关键词:机构字段也认不出时,按模型名猜(
claude*→ Anthropic、gemini*→ Google DeepMind、glm*→ 智谱 AI 等约 40 条规则)。 - 放弃:以上都不成立,写
"未标注",不猜。
国别由厂商推导(同一张映射表),原始机构字段另存为 vendor_raw 供追溯,页面上悬停厂商名即可看到。
「未标注」模型的处理:列出但不参与排名
厂商与国别都推不出来的模型(判定条件:vendor == "未标注" 或 region == "other"),
本站不剔除,而是:
- 照常列出,但整行标灰;
- 沉到跨榜表末尾,不参与名次竞争;
- 单独计数并在页面上说明数量与原因。
- 前缀、不参与排名)。
当前数据中这类模型有 — 个。
claude-opus-4 虽未注册,但名称关键词能认出它属 Anthropic、国别 us,
因此不算参考项。早期版本误用了 registered 作判据,把这类厂商明确的模型也标灰了,已修正。
跨榜合并与排序
Cross-board merge收录门槛
跨榜表只收录出现在 ≥ 2 个榜的模型。 单榜模型信息量低(无法做跨方法论对照),且会把大量长尾原始 ID 带进主表。 它们完整保留在「分榜明细」里,一个不少。
id 一律重算
合并时每个模型的 canonical id 都由主数据层重新计算,不信任上游或历史数据里存的 id。 原因是历史快照可能是旧算法产物,直接沿用会让同一模型在不同批次里落到不同 key, 表现为「表里出现两条同名记录」。重算保证了幂等:同一份输入无论跑多少次,结果一致。
排序规则
默认排序为四个键,依次比较:
| # | 键 | 方向 | 理由 |
|---|---|---|---|
| 0 | reference_only | 参考项沉底 | 厂商/国别不明的不参与名次竞争(见 §05) |
| 1 | appearance_count | ↓ 降序 | 被越多榜收录,跨方法论证据越强 |
| 2 | group_count | ↓ 降序 | 覆盖的方法论类别数(真人偏好 / 客观基准),比单纯榜数更能说明证据多样性 |
| 3 | 代表名次 | ↑ 升序 | 优先取代表榜的名次,都没有则取全部名次里的最好值 |
| 4 | display_name | 字典序 | 打破平局,保证排序稳定可复现 |
页面上的表头可点击,按任一榜的名次重排;排序规则文案由数据文件动态提供,与实际实现同源。
方法论覆盖与共识置信度
每行有一个 confidence 标签,它不是分数,而是「证据强度」的存在性分级:
verified—— 在 ≥2 类不同方法论下都被评测到(如同时有真人盲测与客观基准)partial—— 出现在 ≥2 个榜,但都属同一方法论类别single—— 只有一个来源(此类模型不进入跨榜表)
统计并列口径
Tie policy名次是点估计。两个模型分差 0.05 时,说"第 3 名比第 4 名强"在统计上站不住脚。 但承认噪声需要一个有出处的阈值,否则就是把主观判断伪装成精确性。
现行规则:白名单 + 出处
只有上游自己公布了容差口径的榜才启用统计并列,且出处写明:
编号方式:与上游一致
并列组采用密集编号(dense ranking:1, 1, 2, 2, 2, 3, 4),
而不是竞赛编号(1, 1, 3, 3, 3, 6)。选择密集编号是为了与上游显示一致——
以 SuperCLUE 为例,按官方口径(分差 1 分内并列)计算,本站得到
1, 1, 2, 2, 2, 3, 4, 5,与其官网榜单逐项相同。
读者交叉核对同一榜单时应看到相同数字,这是聚合站的基本要求。
分组时与组首分数比较而非与相邻行比较,避免链式漂移 (A≈B、B≈C,但 A 与 C 差距已超容差,不应并成一组)。
未启用并列的榜怎么看
其余榜保留原始名次,页面上会说明「上游未公布容差」。这意味着: 相邻两名的分差不代表显著性差异。判断两个模型是否真的有高下, 应回到原始榜单看它是否提供置信区间(如 LMArena 的 95% bootstrap 区间)。
抓取失败与降级链
Fallback chain上游站点会改版、限流、被墙。本站的原则是:宁可标注降级,也不静默展示旧数据或空数据。
四层独立冗余
数据契约(坏数据不落盘)
实时抓取的结果要先通过契约校验才会被采用并晋级为 LKG:行数下限、较上期跌幅、分数完整度。 不合格的结果不写入展示数据,转而走降级链。 这一步防的是「上游改版导致解析出半张表,页面照常展示」这种静默错误。
页面上的可见性
- 任何榜降级,页面顶部出现降级横幅,写明是哪几个榜、走了哪一层、滞后多少天。
- 分榜明细里每榜标注实际来源与数据版权。
- 降级时自动在 GitHub 开 Issue(带
data-degraded标签),恢复后自动评论并关闭。 - 前端取数也有多端点容灾:同源 → jsDelivr CDN → GitHub raw,再叠加浏览器本地末次成功缓存,全网络失败也不白屏。
关于「数据时间」
页面上显示的时间是数据抓取时间,不是页面打开时间,也不是部署时间。 静态站点的页面可能在你打开前已缓存数小时,但数据时间只在成功抓取新数据时前进。
已知局限
Limitations如实列出本站做不到或可能出错的地方。这些不是待办,是当前设计的边界。
1. 没有置信区间
上游多数榜不公开标准误,本站因此无法给出置信区间,也无法做严格的显著性检验。 这正是 §07 不采用自适应并列阈值的原因——没有误差量级,任何阈值都是编的。 需要统计严谨性时,请回到原始榜单(LMArena 提供 95% bootstrap 区间)。
2. 注册表是手工维护的,会有漏网
canonical 实体表靠人工登记,新模型发布到登记之间存在时间差。未登记的模型会走关键词兜底, 兜不住就标为「未标注」并沉入参考组。 当前多榜模型中未能识别的有 — 个,它们的 id 直接来自原始名。
3. 别名包含匹配可能过宽
第②级兜底用「归一化名包含别名」匹配,理论上可能把不同实体并到一起。
已知案例:GPT-5.5 Pro 会被解析为 GPT-5.5(注册表中无 gpt-5.5-pro 实体,
被包含匹配命中)。该写法在当前数据中出现 0 次,暂无实际影响,
但若上游开始使用 Pro 后缀变体,需要为它单独登记实体。
4. 取「最好名次」的乐观偏差
同榜多变体折叠时取最好名次(§04)。这会让模型在该榜的表现偏乐观,档位标注是唯一对冲手段。
5. 趋势数据点很少
历史趋势依赖每日快照累积。站点上线初期只有少数几个日期点, 此时趋势图不足以判断长期走向,只能看到最近的变化。 「与自己比」的漂移监控需要更多数据点才有意义,暂未实现。
6. 不覆盖的维度
本站不测量速度(tokens/s)、首字延迟、真实使用量。价格仅在 Artificial Analysis 榜可用, 因此性价比象限图只基于该榜数据(约 10 个模型),不代表全量模型的性价比排名。
7. 上游刷榜无法识别
若某榜存在刷榜,本站会如实呈现其结果。我们无法独立验证上游评测过程的公正性,
只能通过多榜交叉间接暴露异常(某模型在单一榜极高、其余榜极低时,
「方法论覆盖」列会显示为 1,共识置信度为 partial)。
版本与变更日志
Changelog每当改动「变体折叠 / 厂商归一 / 跨榜收录门槛 / 排序规则 / 并列规则」任一项, 方法论版本号就会递增。作用是让读者能判断「我看到的这套结论是按哪一版规则算出来的」, 也让历史数据可追溯。
复现
抓取、清洗、合并全流程开源。数据文件(data/merged.json 等)与生成它们的代码在同一仓库、同一提交,
因此任何一期榜单都可以按提交历史复现。
GitHub 仓库 ↗
· 主数据层实现 src/models.py ↗
· 合并逻辑 src/main.py ↗
· 反馈问题 ↗