---
name: prai-reproducibility
description: 在为《模式识别与人工智能》(Pattern Recognition and Artificial Intelligence, PR&AI) 准备可复现性与实验可重复材料时调用。覆盖固定随机种子、锁定软硬件环境与依赖版本、固定数据集划分与预处理、预训练权重与大模型版本的记录、复现包(脚本/配置/环境文件)的组织、大数据与权重的稳定托管、以及可复现自查冒烟测试。用于让本刊模式识别/机器学习论文的实验结果能被外审与后续读者重复，降低"结果无法复现"的信任风险；本刊是否设强制复现要求以官网当期须知为准(待核实)。
---

# 《模式识别与人工智能》可复现性与实验可重复

本技能帮助为《模式识别与人工智能》(Pattern Recognition and Artificial Intelligence, PR&AI) 论文
建立可复现的实验证据。模式识别/机器学习结果易受随机性、环境与数据划分影响，可复现性直接关系外审
对结果的信任。事实核验日期 2026-07-09，见 `resources/official-source-map.md`；本刊是否设**强制**
代码/数据可用性或复现要求 **待核实**，以官网当期须知为准。

## 一、随机性控制

- 固定所有随机源的**种子**：框架(PyTorch/NumPy/Python)、数据打乱、初始化、增强。
- 记录是否使用确定性算子（如 cudnn.deterministic），并说明其对速度的影响。
- 报告**多次运行**的均值±标准差（与 `prai-experiments` 一致），而非单次幸运结果。

## 二、环境与依赖锁定

| 项 | 记录方式 |
|---|---|
| Python/框架版本 | requirements.txt / environment.yml 精确版本 |
| CUDA/cuDNN/驱动 | 写入 README，影响可复现 |
| 硬件 | GPU 型号与数量、显存、CPU |
| 容器 | 可选 Dockerfile 固化环境 |

## 三、数据与划分固定

- **数据集划分**（train/val/test）固定并随复现包提供划分文件或脚本。
- 预处理（归一化、裁剪、分词、采样）脚本化、可重跑、对所有方法一致。
- 数据来源与许可写清；不可公开的数据说明获取途径与替代验证方式。
- 排查**数据泄漏**：划分无重叠、预训练语料与评测集不重叠。

## 四、预训练与大模型记录

- 记录预训练权重来源、版本、checkpoint 标识。
- 若用大模型/外部 API，记录**模型版本与调用日期**（模型会更新，影响可复现）。
- 说明是否可能在预训练阶段见过评测数据（污染风险）。

## 五、复现包组织（建议结构）

```
artifact/
  README.md          # 环境、一键复现步骤、结果对照说明
  requirements.txt   # 精确依赖
  configs/           # 每个实验的配置(含种子)
  scripts/run_all.sh # 一键复现主结果
  data/README.md     # 数据获取与划分说明(大数据走稳定托管)
  results/           # 期望产物(对照论文表图)
```

## 六、干净环境冒烟测试

投稿前在**全新环境**跑一次，确认从零可复现（参见 `resources/code/README.md`）：

```bash
python3 -m venv .venv && . .venv/bin/activate
pip install -r requirements.txt
bash scripts/run_all.sh --seed 20260709
# 人工比对 results/ 与论文主表/主图
```

## 七、稳定托管

- 大数据集、预训练权重不塞进代码仓库；用可分配 DOI 的归档或稳定对象存储。
- 代码用版本库并**打 tag / 固定 commit**，论文引用该版本。
- 链接长期可访问；避免个人临时网盘等易失链接。

## 八、与投稿匿名的协调

- 若本刊审稿要求作者信息与正文分离（是否双盲 **待核实**），复现材料也要去身份：清理仓库用户名、
  机构路径、邮箱、致谢显名。
- 匿名托管可用于外审阶段；录用后再换正式署名版本（见 `prai-camera-ready`）。

## 九、可复现性自检清单

1. 种子是否全固定、是否多次运行报告均值±标准差？
2. 依赖/CUDA/硬件是否记录？
3. 数据划分与预处理是否固定、可重跑、无泄漏？
4. 预训练/大模型版本是否记录？
5. 复现包是否能在干净环境一键跑通并对上主表？
6. 大数据/权重是否稳定托管、代码是否打 tag？
7. 审外材料是否已按匿名要求去身份(若需)？

## 十、与其他技能衔接

- 上游 `prai-experiments` 定证据；平级 `prai-artifact-evaluation` 讲可用性声明；`prai-supplementary`
  决定哪些复现细节进附录。投稿前核对见 `prai-submission`。

## 十一、可复现性的三个层次

为《模式识别与人工智能》(Pattern Recognition and Artificial Intelligence, PR&AI) 论文规划可复现性
时，区分三个由易到难的层次，逐层夯实：

| 层次 | 含义 | 关键动作 |
|---|---|---|
| 结果可重复 | 同代码同环境能复现论文数字 | 固定种子、锁环境、提供一键脚本 |
| 方法可复现 | 他人按论文描述能重实现 | 方法/超参/训练细节写清 |
| 结论可推广 | 结论在新数据/设定下仍成立 | 多数据集、跨设定验证 |

第一层是底线，第二层靠写作透明度(见 `prai-writing-style`)，第三层靠实验广度(见
`prai-experiments`)。三层都强，外审对结果的信任度最高。

## 十二、随机性与硬件差异的现实处理

深度学习实验受 GPU 非确定性算子、浮点累加顺序等影响，即使固定种子也可能有微小波动：

- 坦诚报告这类波动：用**多次运行的均值±标准差**吸收随机性，而非追求逐位复现。
- 记录 cudnn 确定性设置及其对速度的影响，让复现者可权衡。
- 硬件差异(不同 GPU 型号)可能改变绝对数值，报告时说明硬件，比较时保持同一硬件。
- 关键结论应对随机种子稳健：若换个种子结论就翻转，说明证据不足，需回 `prai-experiments` 加强。

## 十三、复现材料与论文的对照说明

复现包的 README 要给一张"论文表图 ↔ 复现命令 ↔ 期望产物"的对照表，让外审或读者能按图索骥：例如
"论文表 2 主结果 → 运行 scripts/run_all.sh → 产物在 results/main/"。这张对照表是可复现性的"目录"，
也是自查是否每个关键结果都可复现的工具。凡不可公开的部分，在对照表中标明原因与替代验证途径，与
`prai-artifact-evaluation` 的可用性声明保持一致。

## 输出格式

```text
[PR&AI 可复现] 达标 / 待补
[随机性] 种子全固定？多次运行均值±标准差？
[环境] 依赖/CUDA/硬件是否记录：___
[数据] 划分固定？预处理脚本化？无泄漏？
[大模型] 版本/日期是否记录：___
[复现包] 干净环境一键跑通并对上主表：是/否
[托管] 大数据稳定托管？代码打 tag？
[匿名(若需)] 材料是否去身份：___
[待补项] ___
```
