核心原则
凡复现已发布数字所需的一切,均随开源版本一同发布。护城河在于数据的新鲜度、规模、策划质量,以及对测试集的保留——绝不在于机制本身,也绝不在于已发布数字所基于的种子内容。具体而言,一个数据集最多被拆分为两个层级:
一个数据集可以是仅开放(完全公开)、拆分式(开放种子 + 私有留出集),或仅私有(无法再分发的授权语料库)。它绝不能是开放评分但方法保密:如果一个已发布分数基于某些数据计算得出,则必须开放足够多的数据(或一个可信的公开样本)以复现该方法。
层级与资产系统的对应关系
各层级依托现有的三源AssetSpec(参见 clousight_bench.core.assets),在工作负载/任务的 manifest.yaml 中声明:
bundled/remote仅依赖开源核心即可解析。remote必须携带license和sha256(用于审计与完整性验证)。private委托给已安装的PrivateAssetResolver处理。若未安装任何解析器,解析将抛出NeedLicense——这是一个明确的错误,而非程序崩溃——因此开放基准测试仍可在其开放层级上正常运行。
命名与版本规范
- 在资产名称中添加层级后缀:
*-seed/*-test(开放),*-heldout(私有)。跨层级保持相同的基础名称,以便明确关联关系。 - 每个资产均携带
version;内容变更时需递增版本号。一次运行的可复现性标识记录{name, version, source, sha256}——而非内容本身——因此结果始终可溯源,同时不会泄露留出数据。 - 已发布维度的默认配置必须指向开放资产。私有资产只能提高上限(更难的拆分、更大规模),而不得作为复现已发布数字的必要条件。
防刷分:为何保留留出集
如果全部评分数据集均公开,实现方可对其进行过拟合,导致分数不再衡量真实的运行时性能。留出层级的存在,是为了能够在未见数据上运行相同的方法论:- 方法(套件接线、评分、可复现性等级)是开放且可审查的;
- 开放种子让任何人都能复现参考数字,并对我们提出质疑;
- 留出拆分在许可证下获取,用于权威性/防刷分运行,经校验和验证但不再分发。
治理
- 发布数据集(或将拆分从私有升级为开放)是维护者决策,须记录于
CHANGELOG.md;此操作可能改变已发布数字,因此需要对受影响维度进行版本递增。 - 切勿将授权或留出内容提交到本仓库。仅通过
private资产 + 解析器进行引用。 remote资产的再分发必须遵守其声明的许可证;若无法再分发,则应使用private而非remote。
