一句话概述

使用最少的codex的token来尽可能符合逻辑的复现出一篇论文。

解释

在复现计算机领域的代码时,经常出现代码给的不全/没给代码的情况。那么这种情况下,如何能够尽可能逻辑相符的复现论文。

核心就是依靠大模型。但是如何给大模型一个提示词,这个也很关键。同时,复现的过程中用什么样的python,什么CUDA等等运行环境或者什么样的模型什么样的数据集等等这种东西每次复现论文都需要重复的去做。

租服务器为例,如何减少这些重复动作呢,那么就需要拆解成最小执行流程,重复工作直接做成一个提示词模板(为什么不做成skill,说白了,就是为了节省token,让codex使用最小的token来完成这个任务)

流程

第一步确定服务器执行环境和下载好论文需要的数据集和模型;第二步在网页版模型(最好用能够深度思考一些的模型)给出服务器中的环境和论文,给出输出项目代码;第三步在网页版开一个新的模型审查这个代码项目;第四步在网页版模型根据审查修改的项目代码。重复第三步和第四步(5次左右即可以)

具体提示词

1.给codex提示词

[确定服务器资源和下载好复现论文需要的数据集(123)和模型(456)]

你现在负责为论文消融实验复现准备 AutoDL 服务器环境、模型和数据集。
​
已确认服务器中不存在所需模型和数据集,**不要搜索已有资源,直接下载**。本阶段不要编写复现代码,不要运行实验。
​
## 输入变量
​
```text
MODEL_NAME = 456
DATASET_NAME =123
```
​
根据资源名称自动生成安全的目录名:
​
```text
MODEL_DIR_NAME = 将 MODEL_NAME 中的空格、斜杠和特殊字符替换为下划线
DATASET_DIR_NAME = 将 DATASET_NAME 中的空格、斜杠和特殊字符替换为下划线
```
​
例如:
​
```text
MODEL_NAME = llava-hf/llava-1.5-7b-hf
MODEL_DIR_NAME = llava-hf_llava-1.5-7b-hf
```
​
## 任务
​
1. 检查 GPU、显存、CUDA、Python、Conda、PyTorch和磁盘空间。
2. 优先复用兼容的 Conda 环境;没有兼容环境时再创建新环境。
3. 根据官方来源确认 `MODEL_NAME` 和 `DATASET_NAME` 的正确版本、下载地址及磁盘占用。
4. 参考 AutoDL 下载加速说明,使用 Hugging Face、ModelScope、GitHub 或其他适用镜像下载。
5. 使用断点续传,并将缓存和资源保存到数据盘。
6. 下载完成后检查模型权重、配置、Tokenizer、Processor、数据文件、标注和划分是否完整。
7. 输出后续代码可直接使用的真实绝对路径。
​
## 目录规则
​
根据变量创建目录:
​
```bash
MODEL_ROOT="/root/autodl-tmp/models"
DATASET_ROOT="/root/autodl-tmp/datasets"
PROJECT_ROOT="/root/autodl-tmp/paper_ablation_reproduction"
​
MODEL_PATH="${MODEL_ROOT}/${MODEL_DIR_NAME}"
DATASET_PATH="${DATASET_ROOT}/${DATASET_DIR_NAME}"
OUTPUT_DIR="${PROJECT_ROOT}/outputs"
LOG_DIR="${PROJECT_ROOT}/logs"
CACHE_DIR="/root/autodl-tmp/cache"
```
​
先检查磁盘空间,再创建目录:
​
```bash
df -h
​
mkdir -p \
  "${MODEL_PATH}" \
  "${DATASET_PATH}" \
  "${PROJECT_ROOT}" \
  "${OUTPUT_DIR}" \
  "${LOG_DIR}" \
  "${CACHE_DIR}"
```
​
变量在实际执行时必须替换为真实值,最终配置文件中必须保存展开后的**绝对路径**,不能保留 `${MODEL_PATH}` 等未解析变量。
​
## 模型准备
​
下载 `MODEL_NAME` 时:
​
* 使用官方模型仓库;
* 固定版本、revision 或 commit;
* 下载完整权重、配置、Tokenizer 和 Processor;
* 使用 AutoDL 可用的下载加速方式;
* 不使用其他模型替代;
* 不进行正式推理。
​
记录:
​
```text
模型名称
模型版本或 revision
官方来源
本地绝对路径
资源总大小
完整性检查结果
```
​
## 数据集准备
​
下载 `DATASET_NAME` 时:
​
* 使用论文对应的官方版本;
* 下载原始数据、标注文件和官方划分;
* 确认消融实验使用的数据子集或划分;
* 不自行重新划分数据;
* 不使用示例数据替代;
* 随机检查至少 5 个样本;
* 统计各划分样本数量。
​
记录:
​
```text
数据集名称和版本
官方来源
数据集根目录
图像目录
标注目录
训练、验证和测试划分路径
消融实验使用的划分
样本数量
完整性检查结果
```
​
## 最终输出
​
生成 `server_resources.yaml`:
​
```yaml
environment:
  conda_env: ""
  activation_command: ""
  python_path: ""
  python_version: ""
  torch_version: ""
  cuda_version: ""
  gpu: ""
  gpu_memory: ""
​
model:
  name: ""
  revision: ""
  source: ""
  local_path: ""
  status: ""
​
dataset:
  name: ""
  version: ""
  source: ""
  root_path: ""
  image_path: ""
  annotation_path: ""
  train_split: ""
  validation_split: ""
  test_split: ""
  ablation_split: ""
  status: ""
​
paths:
  project_root: ""
  output_dir: ""
  log_dir: ""
  cache_dir: ""
```
​
同时生成 `WEB_MODEL_CONTEXT.md`,提供:
​
```text
服务器环境及激活命令
模型的版本、加载方式和本地绝对路径
数据集的版本、目录结构、标注字段、划分和本地绝对路径
项目根目录、输出目录和缓存目录
```
​
所有内容必须来自服务器实际检查和下载结果。下载失败、权限不足、网络异常或磁盘不足时,记录真实原因,不得使用替代资源。

2.给网页版提示词(直接写第一版代码项目)

需要输入的是
1. 论文 PDF;
2. 需要复现的消融实验表格或实验配置;
3. `WEB_MODEL_CONTEXT.md`;
4. `server_resources.yaml`。
你是一名论文代码复现工程师。请根据我提供的论文和服务器资源信息,生成一个完整的论文消融实验复现项目。 ​ ## 输入材料 ​ 1. 论文 PDF; 2. 需要复现的消融实验表格或实验配置; 3. `WEB_MODEL_CONTEXT.md`; 4. `server_resources.yaml`。 ​ ## 复现范围 ​ 本次**只复现论文中的消融实验**,不需要实现论文的其他主实验、泛化实验、可视化实验或效率实验。 ​ 请先从论文中明确: ​ ```text 消融实验对应的表格或章节 参与对比的所有实验配置 每个配置关闭、替换或保留的模块 使用的模型、数据集划分和评价指标 训练与推理流程 ``` ​ 如果论文消融实验包含完整方法和多个删减版本,应实现: ​ ```text 完整方法 基线配置 移除单个模块的配置 论文表格中的其他消融配置 ``` ​ ## 服务器约束 ​ 严格读取 `WEB_MODEL_CONTEXT.md` 和 `server_resources.yaml`。 ​ 必须使用其中提供的: ​ ```text Python和依赖版本 模型本地绝对路径 数据集本地绝对路径 项目根目录 输出目录 缓存目录 ``` ​ 禁止: ​ ```text 重新下载模型 重新下载数据集 将路径写成123或456 使用在线模型名称代替本地路径 自行假设服务器环境 ``` ​ 最终代码中的配置文件必须填写服务器资源文件中已经展开的真实绝对路径。 ​ ## 实现要求 ​ 根据论文的方法、公式、伪代码和实验设置,生成一个完整项目,而不是零散代码。 ​ 至少包含: ​ ```text configs/ src/ scripts/ tests/ requirements.txt README.md ``` ​ 项目需要实现: ​ 1. 数据集读取与预处理; 2. 模型本地加载; 3. 论文核心方法; 4. 损失函数; 5. 训练或推理流程; 6. 论文评价指标; 7. 所有消融配置; 8. 结果保存与汇总; 9. 单批次测试入口; 10. 一键运行消融实验的脚本。 ​ 消融实验必须通过配置控制,例如: ​ ```yaml ablation: use_module_a: true use_module_b: false ``` ​ 不要要求通过手动修改源代码切换实验配置。 ​ ## 代码逻辑要求 ​ 代码需要尽可能与论文逻辑一致,包括: ​ ```text 模块输入和输出 张量维度 模块连接顺序 损失计算 训练参数 推理流程 评价指标 消融变量 ``` ​ 对于论文没有明确说明的实现细节: ​ 1. 优先依据公式、上下文和补充材料推断; 2. 采用最合理且最容易验证的实现; 3. 在代码注释和 README 中明确标记为“论文未明确说明的实现假设”; 4. 不得将推断内容描述为论文原文结论。 ​ ## 运行入口 ​ 至少提供: ​ ```bash python scripts/smoke_test.py --config configs/ablation_full.yaml ​ python scripts/run_ablation.py \ --config configs/ablation_full.yaml ``` ​ 并提供统一脚本: ​ ```bash bash scripts/run_all_ablations.sh ``` ​ 统一脚本应依次运行论文消融表格中的所有配置,并生成: ​ ```text outputs/ ├── checkpoints/ ├── predictions/ ├── metrics/ ├── logs/ └── ablation_results.csv ``` ​ `ablation_results.csv` 至少包含: ​ ```text 实验配置 启用模块 关闭模块 评价指标 运行状态 结果文件路径 ``` ​ ## 测试要求 ​ 至少编写以下测试: ​ ```text 数据字段解析 模型配置加载 单批次前向传播 张量维度 损失函数 消融开关 评价指标 结果保存 ``` ​ 提供: ​ ```bash python -m compileall -q src scripts tests pytest -q ``` ​ ## README要求 ​ README中必须明确说明: ​ ```text 本次复现的消融实验范围 模型和数据集路径 服务器环境 项目结构 环境激活方式 单批次测试命令 每个消融配置的运行命令 全部消融实验的一键运行命令 输出文件位置 论文逻辑与当前实现的对应关系 论文未明确说明的实现假设 ``` ​ ## 重要限制 ​ 你是网页版模型,无法访问服务器,也无法实际运行生成的代码。 ​ 因此: ​ ```text 只需保证项目结构完整、代码接口闭合、实现逻辑与论文一致 不得声称代码已经运行通过 不得编造实验结果 不得编造模型或数据集路径 不得因无法验证而只给伪代码或方案 ``` ​ 即使无法验证,也必须生成完整代码项目,使其能够被保存并上传到服务器,由 Codex 后续实际检查、运行和修复。 ​ 现在开始: ​ ```text 阅读论文 → 定位消融实验 → 提取消融配置 → 读取服务器资源文件 → 设计项目结构 → 实现完整代码 → 编写测试与运行脚本 → 编写README → 输出完整项目 ``` ​

3.给另一个网页版模型(审查)

需要显示输入的内容:
1. 论文 PDF;
2. 需要复现的消融实验表格或章节;
3. 完整代码项目压缩包或代码文件;
4. 可选:`WEB_MODEL_CONTEXT.md` 和 `server_resources.yaml`。
你是一名论文复现代码审查工程师。请根据我提供的论文和完整代码项目,审查该项目是否正确实现了论文中的消融实验。 ​ ## 输入材料 ​ 1. 论文 PDF; 2. 需要复现的消融实验表格或章节; 3. 完整代码项目; 4. 可选:`WEB_MODEL_CONTEXT.md` 和 `server_resources.yaml`。 ​ 本次只审查论文中的消融实验复现代码,不审查其他实验。 ​ ## 审查目标 ​ 判断代码是否满足: ​ ```text 消融实验范围完整 方法逻辑与论文一致 各消融配置正确生效 模型、数据、训练、推理和评价链路完整 具备上传服务器测试的基本条件 ``` ​ 本次属于静态审查,不得声称代码已经运行成功。 ​ ## 一、提取论文要求 ​ 先从论文中整理: ​ ```text 消融实验对应表格或章节 完整方法配置 所有消融配置 每个配置启用、移除或替换的模块 使用的模型 数据集及划分 训练与推理流程 评价指标 ``` ​ 形成论文要求清单,再逐项对照代码。 ​ ## 二、审查项目完整性 ​ 检查是否包含: ​ ```text 配置文件 数据集读取 模型加载 论文方法实现 损失函数 训练脚本 推理与评价脚本 消融实验入口 指标计算 测试代码 README 结果保存逻辑 ``` ​ 重点检查: ​ ```text pass TODO NotImplementedError 空实现 伪代码 随机结果 硬编码路径 缺失入口 配置项定义但未生效 ``` ​ ## 三、审查方法逻辑 ​ 逐模块对照论文检查: ​ ```text 输入与输出 张量维度 执行顺序 模块连接 损失计算 梯度链路 训练和推理差异 ``` ​ 重点排查: ​ * 公式实现错误; * 运算顺序错误; * 同名模块但逻辑不一致; * 遗漏归一化、掩码、残差、权重、阈值或温度系数; * 错误的求和、平均、拼接或广播; * 张量维度错误; * 梯度被意外截断; * 使用了错误的模型输出。 ​ 输出: ​ | 模块 | 论文逻辑 | 代码实现 | 是否一致 | 问题 | | -- | ---- | ---- | ---- | -- | ​ ## 四、审查消融配置 ​ 逐项检查论文表格中的所有消融配置: ​ ```text 完整方法是否启用全部模块 关闭模块时是否只关闭目标模块 配置开关是否真正传递到模型内部 关闭后是否仍残留对应计算 不同配置是否保持相同训练和评价条件 ``` ​ 输出: ​ | 消融配置 | 论文要求 | 代码实际配置 | 是否正确 | 问题 | | ---- | ---- | ------ | ---- | -- | ​ ## 五、审查数据和模型 ​ 检查: ​ ```text 数据路径和模型路径是否来自配置 数据字段和论文是否一致 训练、验证、测试划分是否正确 是否改变官方划分 模型类型和版本是否正确 Tokenizer和Processor是否匹配 是否从本地路径加载 是否存在随机初始化或权重缺失被静默忽略 冻结和训练参数范围是否符合论文 ``` ​ ## 六、审查训练和评价 ​ 检查: ​ ```text 优化器 学习率 batch size epoch 随机种子 损失权重 梯度累积 混合精度 checkpoint 最佳模型选择 评价指标 阈值 结果聚合 逐样本预测保存 ``` ​ 重点排查: ​ ```text 损失计算但未加入总损失 模块参数未加入优化器 输出被detach 验证集参与训练 测试集用于调参 macro和micro计算错误 多批次结果重复或遗漏 ``` ​ ## 七、审查静态可运行性 ​ 检查以下命令在代码逻辑上是否具备执行条件: ​ ```bash python -m compileall -q src scripts tests pytest -q python scripts/smoke_test.py --config configs/ablation_full.yaml bash scripts/run_all_ablations.sh ``` ​ 无法仅通过静态代码确认的内容标记为: ​ ```text 需要服务器实际验证 ``` ​ ## 八、问题分级 ​ ### P0:必须修改 ​ 包括: ​ ```text 代码无法运行 核心方法逻辑错误 消融开关失效 数据或模型无法加载 评价指标错误 结果不具备可比性 ``` ​ ### P1:正式实验前建议修改 ​ 包括: ​ ```text 边界条件风险 配置不完整 测试覆盖不足 异常处理不足 可复现性风险 ``` ​ ### P2:一般优化 ​ 包括: ​ ```text 代码结构 命名 注释 重复代码 可维护性 ``` ​ ## 九、修改意见输出规则 ​ 只有发现 P0、P1 或会明显影响论文复现结果的问题时,才输出代码修改意见。 ​ 每条修改意见必须包含: ​ ```text 问题所在文件和代码位置 当前实现的问题 与论文逻辑的差异 可能造成的影响 正确修改方式 需要修改的文件 ``` ​ 能够明确确定修改方式时,给出关键修改代码或伪差异说明。 ​ 不要只写: ​ ```text 建议优化 建议检查 建议调整 ``` ​ 必须说明具体改什么以及为什么改。 ​ 如果项目已经基本符合论文逻辑,仅存在不影响实验正确性的代码风格或轻微可维护性问题,则: ​ ```text 不需要给出代码修改意见 ``` ​ 直接明确写: ​ ```text 当前代码在静态审查范围内基本符合论文消融实验逻辑,未发现必须修改的实质性问题,可以进入服务器实际测试。 ``` ​ 不要为了生成审查内容而刻意寻找无关问题。 ​ ## 十、最终输出 ​ ### 1. 总体结论 ​ 从以下结论中选择一个: ​ ```text 可以直接进入服务器测试 修复P0后可以进入服务器测试 存在较大逻辑偏差,需要重新实现部分模块 当前项目无法用于论文消融实验复现 ``` ​ ### 2. 审查汇总 ​ | 审查项   | 状态 | 主要问题 | | ------ | -- | ---- | | 项目完整性 |   |     | | 方法一致性 |   |     | | 消融配置   |   |     | | 数据链路   |   |     | | 模型加载   |   |     | | 训练逻辑   |   |     | | 评价逻辑   |   |     | | 静态可运行性 |   |     | ​ ### 3. 问题清单 ​ 按照 P0、P1、P2 排序。 ​ 没有对应问题时写: ​ ```text 无 ``` ​ ### 4. 代码修改意见 ​ 仅在存在实质问题时输出。 ​ 如果基本符合,则本节只写: ​ ```text 无需修改,进入服务器实际测试。 ``` ​ ## 审查原则 ​ * 必须阅读核心代码,不能只看 README; * 必须逐项检查消融配置; * 不得编造运行结果; * 不得把无法静态验证的内容判断为已经通过; * 不要求代码逐行复制官方实现; * 判断标准是方法逻辑、实验设置和评价方式是否与论文一致。

4.给第三个网页版模型(修改代码)

需要输入的内容:
1. 论文 PDF;
2. 需要复现的消融实验表格或章节;
3. 原始完整代码项目;
4. 代码审查报告;
5. 可选:`WEB_MODEL_CONTEXT.md`;
6. 可选:`server_resources.yaml`。
你是一名论文复现代码修改工程师。请根据论文、原始代码项目和代码审查报告,直接修改代码,使其正确实现论文中的消融实验。 ​ ## 输入材料 ​ 1. 论文 PDF; 2. 需要复现的消融实验表格或章节; 3. 原始完整代码项目; 4. 代码审查报告; 5. 可选:`WEB_MODEL_CONTEXT.md`; 6. 可选:`server_resources.yaml`。 ​ ## 任务范围 ​ 本次只处理论文中的**消融实验复现代码**。 ​ 你的任务是: ​ ```text 阅读论文 → 阅读审查报告 → 检查原始代码 → 判断审查意见是否成立 → 修改确实存在的问题 → 输出修改后的完整代码项目 ``` ​ 不要重新设计整个项目,也不要无依据地大规模重写已经正确的代码。 ​ ## 一、先判断是否需要修改 ​ 首先查看审查报告的最终结论。 ​ 如果审查报告明确认为: ​ ```text 当前代码基本符合论文逻辑 未发现实质性问题 无需修改 可以进入服务器测试 ``` ​ 则不要为了产生修改结果而改动代码。 ​ 直接输出: ​ ```text 审查报告未发现需要修改的实质性问题,保留原始代码项目,直接进入服务器实际测试。 ``` ​ 如果审查报告包含 P0、P1 或其他会影响消融实验正确性的问题,则继续修改。 ​ ## 二、修改依据优先级 ​ 发生冲突时,按照以下优先级判断: ​ ```text 论文正文、公式和补充材料 → 论文消融实验设置 → 审查报告 → 原始代码当前实现 → 合理且明确标记的实现假设 ``` ​ 审查报告不是绝对正确的。每条修改意见都必须结合论文和实际代码确认后再执行。 ​ 如果审查意见与论文明显冲突,不要机械修改,应保留正确实现,并在修改报告中说明原因。 ​ ## 三、修改原则 ​ 1. 只修改真实存在的问题。 2. 优先进行局部修改,不无故重构整个项目。 3. 保留已经正确的数据、模型、训练和评价逻辑。 4. 不删除与当前消融实验有关的有效功能。 5. 不改变服务器中已经确定的模型和数据集路径。 6. 不重新下载模型或数据集。 7. 不用随机数据、模拟结果或占位实现替代正式逻辑。 8. 不编造实验结果。 9. 不声称修改后的代码已经运行通过。 10. 论文未明确的细节必须在代码和 README 中标记为实现假设。 ​ ## 四、逐条处理审查意见 ​ 对审查报告中的每个问题,建立处理表: ​ | 编号 | 级别       | 审查问题 | 是否成立     | 处理方式       | | -- | -------- | ---- | -------- | ---------- | | 1 | P0/P1/P2 |     | 是/否/部分成立 | 修改/保留/部分修改 | ​ 对于判断为“不成立”的问题,必须说明论文或代码依据。 ​ 对于判断为“成立”的问题,必须落实到具体代码修改,不能只更新 README 或注释。 ​ ## 五、重点修改内容 ​ ### 1. 论文方法逻辑 ​ 检查并修复: ​ ```text 模块输入和输出 张量维度 运算顺序 模块连接关系 归一化 掩码 残差 权重系数 阈值 温度参数 损失函数 梯度链路 训练与推理差异 ``` ​ 禁止只修改模块名称而不修改内部逻辑。 ​ ### 2. 消融实验配置 ​ 逐项对应论文消融表格,确认: ​ ```text 完整方法启用全部必要模块 基线只保留论文规定的部分 w/o 某模块时真正关闭该模块 加入某模块时只增加对应模块 不同配置使用相同的数据和评价条件 ``` ​ 消融切换必须通过配置文件完成,例如: ​ ```yaml ablation: use_module_a: true use_module_b: false ``` ​ 不得要求用户手动修改源代码运行不同配置。 ​ 必须检查配置值是否真正传入: ​ ```text 配置文件 → 参数解析 → 模型初始化 → forward → 损失计算 → 推理和评价 ``` ​ ### 3. 数据链路 ​ 检查并修复: ​ ```text 数据集路径 图像和标注匹配 数据字段解析 训练、验证、测试划分 消融实验使用的划分 预处理方式 batch整理 异常样本处理 ``` ​ 不得改变论文官方划分,除非论文未提供划分且代码中已明确记录实现假设。 ​ ### 4. 模型加载 ​ 检查并修复: ​ ```text 模型类型和版本 本地模型路径 Tokenizer Processor 视觉编码器 文本编码器 附加权重 冻结范围 可训练参数 ``` ​ 模型必须从 `server_resources.yaml` 或 `WEB_MODEL_CONTEXT.md` 提供的本地绝对路径加载。 ​ 不得: ​ ```text 自动联网下载 使用其他模型替代 静默随机初始化 使用 strict=False 隐藏大量权重缺失 ``` ​ 如果必须使用 `strict=False`,需要检查并输出缺失键和意外键。 ​ ### 5. 训练逻辑 ​ 检查并修复: ​ ```text 优化器参数 学习率 batch size epoch 损失权重 梯度累积 混合精度 梯度裁剪 学习率调度 checkpoint 最佳模型保存 恢复训练 随机种子 ``` ​ 重点确认: ​ ```text 所有论文损失项加入总损失 需要训练的参数加入优化器 输出未被错误 detach 训练时模型处于 train 模式 验证时模型处于 eval 模式 验证集不参与参数更新 ``` ​ ### 6. 评价逻辑 ​ 检查并修复: ​ ```text 评价指标定义 macro或micro计算 阈值 正负样本定义 结果聚合 多批次统计 最佳checkpoint加载 逐样本预测保存 消融结果汇总 ``` ​ 不得在测试集上搜索阈值或调参,除非论文明确如此设置。 ​ ## 六、测试代码同步修改 ​ 每个实质性修改都应补充或更新对应测试。 ​ 至少检查: ​ ```text 数据字段解析 模型配置加载 张量维度 单批次forward 损失计算 梯度是否存在 消融配置开关 评价指标 结果保存 ``` ​ 如果审查报告指出某个问题,优先增加能够防止该问题再次出现的回归测试。 ​ 例如: ​ ```text 消融开关失效 → 增加不同配置输出或模块状态差异测试 ​ 损失未进入总损失 → 增加梯度非零测试 ​ 指标计算错误 → 增加手工可验证的小样本测试 ``` ​ ## 七、配置和路径要求 ​ 严格使用服务器资源文件中的真实信息: ​ ```text Conda环境 Python版本 模型绝对路径 数据集绝对路径 项目目录 输出目录 缓存目录 ``` ​ 禁止在最终项目中保留: ​ ```text 123 456 MODEL_NAME占位符 DATASET_NAME占位符 /path/to/model /path/to/dataset ``` ​ 除非这些内容仅出现在明确标记的示例配置中。 ​ ## 八、README同步更新 ​ 根据代码修改同步更新 README,包括: ​ ```text 本次复现的消融实验 论文表格和配置对应关系 模型和数据集路径 环境激活方式 Smoke Test命令 单个消融实验命令 全部消融实验命令 输出目录 修改后的方法逻辑 论文未明确的实现假设 ``` ​ README必须与实际代码一致,不能只修改代码而保留旧命令。 ​ ## 九、修改后应具备的入口 ​ 确保以下入口存在且参数一致: ​ ```bash python -m compileall -q src scripts tests ​ pytest -q ​ python scripts/smoke_test.py \ --config configs/ablation_full.yaml ​ python scripts/run_ablation.py \ --config configs/ablation_full.yaml ​ bash scripts/run_all_ablations.sh ``` ​ 统一消融脚本应运行论文要求的全部消融配置,并输出: ​ ```text outputs/ ├── checkpoints/ ├── predictions/ ├── metrics/ ├── logs/ └── ablation_results.csv ``` ​ ## 十、最终交付要求 ​ 不要只输出修改建议或代码片段。 ​ 必须输出一个**修改后的完整代码项目**,包含: ​ ```text 完整源代码 完整配置文件 完整运行脚本 完整测试 更新后的README 依赖文件 修改记录 ``` ​ 不要省略未修改的必要文件。 ​ 如果输出平台支持文件生成,请提供修改后的项目压缩包。 ​ 如果只能输出文本,则按照项目目录逐文件给出完整内容,不能只给 diff。 ​ ## 十一、生成修改报告 ​ 在项目中增加: ​ ```text CODE_MODIFICATION_REPORT.md ``` ​ 内容包括: ​ ### 1. 修改结论 ​ 从以下结论中选择: ​ ```text 已完成全部必要修改 已完成主要修改,仍有服务器验证项 审查意见存在冲突,仅修改了确认成立的问题 无需修改,保留原始项目 ``` ​ ### 2. 修改清单 ​ | 文件 | 修改内容 | 对应审查问题 | 修改原因 | | -- | ---- | ------ | ---- | ​ ### 3. 未采纳意见 ​ | 审查意见 | 未采纳原因 | 论文或代码依据 | | ---- | ----- | ------- | ​ 没有未采纳意见时写: ​ ```text 无 ``` ​ ### 4. 尚需服务器验证的内容 ​ 例如: ​ ```text 真实模型权重能否完整加载 真实数据集字段是否与代码一致 GPU显存是否足够 混合精度是否兼容 正式指标是否与论文结果接近 ``` ​ ### 5. 运行命令 ​ 给出可以直接复制到服务器执行的命令。 ​ ## 十二、重要限制 ​ 你是网页版模型,无法在真实服务器上运行代码,因此: ​ ```text 不得声称compileall已经通过 不得声称pytest已经通过 不得声称模型已经加载成功 不得声称消融实验已经完成 不得编造任何指标 ``` ​ 所有运行状态统一标记为: ​ ```text 待服务器验证 ``` ​ 现在开始: ​ ```text 阅读论文和消融实验 → 阅读审查报告 → 阅读原始代码 → 判断每条审查意见 → 修改成立的问题 → 更新测试和README → 输出修改后的完整项目 → 生成CODE_MODIFICATION_REPORT.md ```

更多推荐