# ICL-Bench 专业评测规范 v0.1

状态：设计草案；数学核心可运行，医学及产品资料待在线核验与专家审查。以下数量、权重、容差、预算均是本 Benchmark 的设计选择，不是已验证的临床或心理物理阈值。

## 1. 被测能力与任务单位

被测对象是能使用计算、文件、编程与实验工具的 Agent。基本任务不是回答“ICL 为什么有光圈”，而是：

> 给定眼部测量、明确的人工晶体设计参数及观察条件，构建可执行的术后光学环境，预测视网膜光分布与给定显示模型下的视觉示意；接受隐藏结构修改，并用物理证据解释变化。测量不足时，指出不能确定的部分并设计追加实验。

一次评测包括建模、运行、干预、反推、审计五个阶段。只读题面问答、只生成图片、只写公式都不能完成建设任务。

针对光圈的形态与位置，另有 [光圈专项病例](halo-cases.md)：14 个成对合成病例加 6 个待建立真实/厚眼真值的研究病例。专项要求区分输入光源、灯芯主像及光圈中心，预测半径/宽度、弧段、方位亮度和多源叠加。其开发数值分不替代本规范的完整专业分。

### 需要区分的输出

| 层 | 要回答的问题 | 可核验交付 |
|---|---|---|
| 医学结构 | 放了什么、放在哪里、还保留什么 | 有单位的 3D/轴向结构、间隙及介质邻接图 |
| 光传播 | 光如何到达视网膜 | 表面相交、Snell 折射、Fresnel 分光、波前与传播日志 |
| 光学成像 | 点光源及有限物体形成什么像 | 单色/多色 PSF、OTF/MTF、能量账本、离轴 PSF |
| 场景显示 | 给定夜间道路会呈现什么光学变化 | 线性视网膜图、固定显示映射、曝光说明 |
| 视觉体验 | 人是否一定会感受到这些现象 | 有条件的判断、不能外推的部分、心理物理验证计划 |

后三层不能互相替代。高对比度显示图不等于视网膜辐照度，更不等于患者主观严重度。

## 2. 专业轨道的 36 张任务

机器可读任务卡见 `tasks/catalog.json`。六组各 6 题，难度 1–5。

| 组 | 权重 | 主要区分点 |
|---|---:|---|
| A 医学与证据 | 15 | 有晶状体结构、中央孔语义、vault、参数来源与不可推断性 |
| B 光学环境建设 | 20 | 多表面、厚度与介质、坐标、非球面、离轴与人工晶体运动 |
| C 前向预测 | 25 | 衍射极限、残余屈光、散光、多色、中央孔及光学区边缘 |
| D 因果干预 | 15 | 用同一代码对隐藏结构变化作出可复现实验预测 |
| E 逆问题与主动实验 | 15 | 多解性、参数区间、最佳追加测量、域外拒答与校准 |
| F 数值与科学审计 | 10 | 能量、采样、解析极限、交叉求解、伪机制与可复现性 |

36 题是**任务模板**，不是 36 个固定答案。每个模板正式版至少生成 8 个独立测试实例，目标 288 个实例；目前未生成/审核该专业测试集。不得把模板数当成实测样本量。

### 具体的高区分题例

**中央孔因果鉴别（C05、D02）**：提供同一合成全眼及晶体几何，分别为实心光学体、透明通孔、黑色遮挡盘、折射率匹配的孔内介质。预测近轴与离轴点光源的 PSF 和能量。正确方向是遵守题面定义的材料边界；黑盘损失能量，透明孔允许传播，但不再经历同样的晶体材料光程。不能要求所有配置都出现一个固定半径的亮环，也不能把文献中的某一种机制推广到所有患者。

**同图多解（E01）**：只给经曝光与裁切的夜间光点图，让 Agent 反推偏心、像差及散射。高分答案必须展示至少两组拟合相近、结构不同的参数，承认无法唯一确定；选择能打破退化的追加测量，而不是报一个虚假的精确 vault 值。

**隐藏干预（D04）**：以同一提交程序旋转散光轴与偏心方向，测试图样和方向是否按坐标变换。再施加不对称离轴光源，检验旋转协变性的适用条件，不能机械要求所有像都中心对称。

**误导性漂亮图（F05）**：给四个有相似亮环的结果，分别来自原始 PSF、后期 bloom、FFT 回卷、错误孔模型。要求用能量、采样变化、波长响应和路径消融辨别，评分依据可复现实验。

## 3. 数据包与参数契约

每例包括 `eye.json`、`implant.json`、`illumination.json`、`detector.json`、可选测量数组及不确定度。每个参数携带 `value / unit / source / uncertainty / status`，status 为 `measured / documented / synthetic / estimated / unknown`。

最低几何字段：角膜前后表面、前房介质、虹膜/瞳孔面、ICL 前后表面与通孔孔壁、天然晶状体前后表面、玻璃体、视网膜；球面/圆锥曲面半径及非球面系数、顶点、厚度、刚体变换、折射率及波长依赖。定义 vault 的测量轴与两端表面，不能把 anterior chamber depth 或 ICL 顶点位置直接作为 vault。

基础测量范围只在各题给定。眼轴、角膜曲率、瞳孔、晶体厚度/位置、像差、散射和泪膜不可从“近视 800 度”唯一确定。人工晶体标称屈光度、中心厚度和曲率也不能任意互换。

**不公开的产品曲面必须用清楚标注的合成设计替代。** 不允许编造厂家非球面、色散或孔壁几何。

## 4. 提交契约

专业提交包：

```text
submission/
  manifest.json          # 模型、工具、版本、依赖、随机种子、计算预算
  source/                # 可执行求解器与环境建设代码
  model/eye.json         # 几何、介质、来源及不确定度
  run                    # 接收输入目录、输出目录；不得联网查询答案
  results/<case-id>/
    psf_linear.npz       # 单位、角分辨率、视场及归一化方法
    energy.json          # 入射/反射/透射/吸收/遮挡/裁切/数值残差
    paths.npz            # 可抽查光线与分支权重；可另交波前
    metrics.json         # 原始 PSF 派生指标，不作为评分唯一依据
    retinal_linear.npz  # 多光源场景，保留 HDR
    preview.png          # 统一显示映射后的图
  experiments.json      # 干预、消融、收敛、逆问题和追加测量
  report.md             # 结论、模型范围、证据、误差与失败
```

评测程序应在容器中执行 `run INPUT OUTPUT`；固定时间/内存/CPU，记录依赖、构建时间与推理成本。代码提交后冻结，隐藏干预只改输入。工具运行日志与产物哈希归档，不能把 Agent 的文字承诺当作执行证据。

## 5. 参考真值与容差

### 三类真值分别建立

1. **解析/合成真值**：薄透镜、圆孔 Airy 衍射、平面界面 Snell/Fresnel、已知 Zernike 波前。用途是验证物理与求解器，不证明临床真实性。
2. **独立数值真值**：与被测提交及公开基线独立的表面光线追踪 + 波动传播实现；至少两个求解途径，并做采样和能量收敛。商业光学软件可作为其中之一，但不能靠同一实现相互复制来“验证”。
3. **实测证据**：光学台模型眼的标定 PSF/杂散光测量，再到经同意及伦理审批的脱敏临床数据。患者问卷、光晕仪、像差仪和实拍数据分别记录测量定义，不能将其中任意一种自动当成视网膜 PSF。

“光晕半径”仅在径向曲线有可分辨环峰时定义；算法需注册峰显著性、径向区间与曝光条件。不存在环峰时返回 `not_detected`。环数、亮度和患者症状之间不设置未经验证的硬性对应。

### 数值验收先于比较

- 网格步长减半、FFT padding 加倍、光线数增加，分别检查；padding 不能代替物理表面或瞳面采样。
- 入射采样窗口、探测器视场与数值孔径分开收敛；截获能量和窗口外损失单独记录。
- 对主评分指标，要求估计数值误差小于最终容差的 1/3；否则该参考例暂不进入排名。
- 参考之间差异、测量误差及有意的模型误差建立误差预算。容差取预先注册的绝对/相对界限与误差预算较大值，不在看到模型答案后调分。
- 各参数是否可辨识由多配置、多波长或多瞳孔测量决定，不以“参考参数完全相同”作为逆问题唯一得分条件。

当前数值核心的容差只是开发轨道的固定尺度，专业轨道的容差仍待双求解器与专家校准。

## 6. 正式评分

每张任务卡的 observable checks 按 `0 / 0.5 / 1` 评分：不满足 / 部分满足且有证据 / 完整满足且可重复。每条检查等权，题内取平均；组内六题等权；总分 `15A + 20B + 25C + 15D + 15E + 10F`，组分取 0–1。

数值任务先运行客观检查，再由专家检查模型与解释。大模型裁判只能整理证据，不能作为物理正确性的唯一裁判。至少两名独立评审盲审医学及机制解释；分歧交第三人，公开一致性统计及仲裁记录。

以下五项是认证门槛，**单列通过/失败，不悄悄用平均分稀释**：

| 门槛 | 失败条件 | 后果 |
|---|---|---|
| G1 解剖 | 主任务把 ICL 当作替换天然晶状体，或位置错误 | 总分仍可诊断展示；不合格 |
| G2 物理 | 未解释的能量增益、禁用机制却保留其效果 | 不合格 |
| G3 可执行 | 无法冷启动运行或隐藏干预靠改图/改代码 | 不合格 |
| G4 数值 | 未做收敛，且关键结论随采样翻转 | 不合格 |
| G5 证据 | 编造产品参数、实测数据或临床验证 | 不合格 |

严重机制错误不能仅因术语齐全获得该检查的 0.5。未提交题目计 0；参考有争议的题在评测前冻结剔除，对所有参评者一致处理。公开原始总分、门槛、六组分与缺失题数。

正式榜单同时报告固定预算下 3 次独立运行的均值、最差值、完成率和成本；按**病例/设计族**聚类 bootstrap 95% 区间，不能把高度相关的像素或同一干预对当成独立样本。排行榜按是否通过门槛分组，再按分数排序。

## 7. 数据拆分与防记忆

建议专业版本每模板 8 实例：2 train、2 dev、4 private test，即 72/72/144。先按基础眼型、晶体设计族与随机种子分组，再做拆分；一个基础眼及其所有反事实必须属于同一 split。跨族/OOD 测试与分布内分开报告。

评测方私有环境保存 test 实例、参考数据及扰动序列；禁止参评容器访问。新种子本身不能消除公开公式带来的记忆风险，应组合从未出现的结构与测量噪声。输入中写明所有需要的合成设计参数，不能靠隐瞒必要物理数据增加难度。

公开 demo 和 `baseline reference` 只用于格式/管道自检。当前仓库未执行任何模型实测，不存在模型排名。若允许参考库辅助，单列 `reference-assisted` 轨道；从头建设轨道不能直接 import `iclbench`。

## 8. 运行预算与发布步骤

试运行建议：建设阶段 90 分钟、干预运行 20 分钟、4 CPU / 8 GB RAM，允许公开依赖、禁止私有答案访问。另设不限构建时间的研究轨道，报告实际成本。上述预算需用基线 Agent 试运行校准后冻结。

发布前的必要里程碑：

1. 文献与术语由屈光手术眼科专家审核；光学方审核物理机制及边界条件。
2. 选定合成厚晶体和模型眼参数，给每个真值例建立采样/能量误差预算。
3. 完成两个独立求解器对照与光学台测量，冻结专业容差。
4. 完成 288 实例、设计族拆分、脱敏与数据授权；没有临床数据时只发布合成专业轨道。
5. 用常量 PSF、Gaussian blur、手画光圈、几何光学单引擎、忽略中央孔、知识问答型和完整混合模型等基线跑盲测，分析排序稳定性、天花板/地板及项目区分度。
6. 冻结题面/评分/参考版本，才运行模型评测并发布榜单。

如果基线均接近满分或全部失败，须在发布前修改题目和预算并重新校准，不能事后挑选有利成绩。

## 9. 患者感知扩展层 v0.4

[患者感知层](patient-layer.md)现提供原创问卷、P01–P07观察条件、离线形态/位置标注及可运行的一致性评分。该层不是新增一个已通过的临床真值等级；目前仅有48份虚构软件测试报告，尚无真实患者数据或量表验证。

主分分解为存在性20%、环带空间IoU40%、轮廓距离20%、数量/光源归因20%；先按条件重复平均，再按患者宏平均，附患者簇bootstrap、重复波动、缺交及排除审计。困扰程度与生活影响独立报告。权重、容差和实际采集方法仍需先导研究验证。

Agent仍必须通过原有物理和机制任务。描述与患者一致，不能单独证明其理解中央孔或某个光学机制；完整协议见[采集与评分](../patient-study/protocol.md)。
