LIUXIN67X commited on
Commit
fa8ce53
·
verified ·
1 Parent(s): 5aaaf05

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +104 -67
README.md CHANGED
@@ -23,28 +23,58 @@ pinned: false
23
 
24
  ---
25
 
26
- ## 👥 双轨并行分工与进度规划
27
 
28
- 为了保证在 11.18 前交付高质量的可演示版本,摒弃传统的串行交接,采用**“实验管线”与“统计分析”双轨并行**的敏捷协作模式。两名成员各自负责一条不可替代的产出线,并在关键节点进行交叉验收。
29
 
30
- ### 🟢 阶段一:基建与冻结(D1 - D5)
31
  **核心目标**:跑通全链路,锁定实验参数,消除后期返工风险。
32
- - **成员 A(管线轨)**:搭建环境与 7B 模型加载;完成 dev 抽样与单题冒烟测试;跑通 Pilot 实验(验证失败率<10%、截断率<5%);编写 `gen.py` 并验证断点续跑。产出:`ids.json`、`pilot.parquet`。
33
- - **成员 B(分析轨)**:完成文献矩阵梳理;确定 C/D 分解与 Bootstrap 的数学口径;用 Pilot 数据调通 `analyze.py` 与 `plots.py` 骨架。产出:`metrics_spec.md`。
34
- - **🔒 交汇点 1(D5 冻结)**:两人逐条对齐 `config.py` 与 `metrics_spec.md`,共同生成并签字 `frozen.json`。**此后 test 开跑,参数一律不准改**。
35
-
36
- ### 🟡 阶段二:生成与预写(D6 - D9)
37
- **核心目标**:完成全量数据生成,同时并行推进报告前置写作,确保主结果可验证。
38
- - **成员 A(管线轨)**:启动正式生成(优先跑 T=0.6 的全部 2 流),监控运行状态;跑完后合并分片,输出 `raw.parquet` 与 `main_stats_A.csv`;输出成本统计 `cost.csv`。
39
- - **成员 B(分析轨)**:在等待数据生成期间,并行撰写报告 Method、Setup 与 Related Work 草稿;搭建 `recompute.py` 独立复算脚本。
40
- - **🔒 交汇点 2(D9 独立复算)**:A 交付 `raw.parquet`;B 在 24h 内运行独立脚本复算主结果指标(Greedy Acc, C数, D数),与 A 的产出逐项比对(容差 `1e-6`)。**数值完全一致后方可进入下一阶段**。
41
-
42
- ### 🔴 阶段三:产出与整合(D10 - D14)
43
- **核心目标**:将数据转化为统计结论与可视化图表,并行完成报告组装与排练。
44
- - **成员 B(分析轨)**:运行完整 `analyze.py`,产出主比较区间、增量表、c₅ 分层与敏感性分析;绘制三张核心主图(准确率曲线、C/D 堆叠、c₅ 分组);撰写 Results 与 Discussion 主体。产出:`tables/`、`figs/`、报告初稿。
45
- - **成员 A(管线轨)**:整理失败率与计算成本附表;审核报告中的实验设置与成本段落;编写演示文稿中的管线与工程细节页;协助排查错例。产出:成本/失败率附表、演示实验页。
46
- - **🤝 交汇点 3(D13 结论边界)**:两人基于各自的视角,共同撰写“能说/不能说”段落,防止过度推断。
47
- - **最终定稿(D14)**:两人联合排练 8 分钟展示,**此后不再修改任何内容**,准备 11.18 答辩。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
 
49
  ---
50
 
@@ -63,73 +93,74 @@ pinned: false
63
 
64
  ---
65
 
66
- ## 📂 代码结构一览
67
 
68
  ```text
69
  project/
70
- ├── config.py # 全局配置唯一真源(双方共定)
71
- ├── common.py # 提示/抽取/采样/投票(基建共享)
72
  │
73
  ├── 【管线轨代码】 ──────────
74
- ├── gen.py # 正式生成:分片+断点续跑
75
- ├── merge.py # 合并与成本统计
76
- ├── degrade.py # 应急降级脚本
77
  │
78
  └── 【分析轨代码】 ──────────
79
- ├── recompute.py # 独立复算:交叉验证管线数据
80
- ├── analyze.py # C/D 分解 / c5 分层 / Bootstrap
81
- └── plots.py # 三张核心主图绘制
82
- ```
83
 
84
  ---
85
 
86
  ## 📌 交付标准与验收清单
87
 
88
- 本项目不仅追求结果,更注重过程的严谨性。的最终展示与提交必须包含以下四件套:
 
 
 
 
89
 
90
- ### 1. 统计结果 (Statistical Results)
 
 
 
 
 
91
  - [ ] **主比较区间**:提供点估计与 95% 配对 Bootstrap 置信区间(基于 2000 次重采样)。
92
  - [ ] **增量分析**:展示相邻 N 的增量表(明确标注间距不均),并绘制三温度下的准确率曲线。
93
  - [ ] **C/D 分解**:清晰报告 \(C_N\)(纠错数)与 \(D_N\)(损害数),并绘制堆叠柱状图。
94
  - [ ] **一致性分层**:展示 \(c_5\) 三层分组(低/中/高)的组内样本量 \(n\)、N=5→20 的增益与区间(若 \(n<30\) 需标注“不稳定”)。
95
  - [ ] **敏感性分析**:提供“无效票计入分母”条件下的 \(c_5\) 对比附表。
96
 
97
- ### 2. 可复现代码仓库 (Reproducible Repo)
98
- - [ ] 包含 `ids.json` 与 `frozen.json` 的冻结快照。
99
- - [ ] 包含完整的生成管线(`gen.py`)与分析脚本(`analyze.py`)。
100
- - [ ] 提供环境依赖文件(`requirements.txt`)。
101
-
102
- ### 3. 最终报告 (Final Report)
103
- - [ ] 严格使用 ICLR 2027 MT_E 模板,正文控制在 **≤9 页**(附录不限)。
104
- - [ ] 包含“与 Proposal 的差异”说明(如:因时间约束,测试集降至 100 题,可检出效应约 ≥7pp)。
105
- - [ ] 附录包含:核心代码骨架、指标公式汇总、成员贡献声明、AI 工具使用声明。
106
-
107
- ### 4. 演示材料 (Presentation)
108
- - [ ] 15 分钟的高质量展示(含三张核心主图 + 一页“没发现什么”的负结果/边界声明)。
109
 
110
  ---
111
 
112
- ## 🛡️ 核心代码示例:跨成员独立复算 (Double-Check)
113
 
114
- 为了保证数据的绝对可靠性,本项目在 D9 设立了严格的交叉验证机制。**分析轨将使用独立编写的 recompute.py 从底层原始数据重新计算主结果,与管线轨的输出进行逐项比对(容差 1e-6),一致后方可进入正式分析与报告撰写阶段。**
115
 
116
  ```python
117
- # recompute.py - 由成员 B 独立编写与执行(不 import 成员 A 的分析代码)
118
  import pandas as pd
119
  import config as C
120
 
121
  def verify_main_results():
122
- # 1. B 独立读取底层数据
123
  df = pd.read_parquet(C.RAW_PARQUET)
124
 
125
- # 2. B 独立计算核心指标
126
  greedy_acc = df.drop_duplicates("qid").greedy_correct.mean()
127
  main_df = df[(df.T == C.MAIN_T) & (df.N == C.MAIN_N)]
128
  main_acc = main_df.correct.mean()
129
  C_count = int(((~main_df.greedy_correct) & main_df.correct).sum())
130
  D_count = int((main_df.greedy_correct & (~main_df.correct)).sum())
131
 
132
- # 3. 与成员 A 的产出一一比对
133
  ref = pd.read_csv(C.MAIN_STATS_A).iloc[0]
134
  checks = {
135
  "greedy_acc": (greedy_acc, ref.greedy_acc),
@@ -138,11 +169,11 @@ def verify_main_results():
138
  "D": (D_count, int(ref.D))
139
  }
140
 
141
- # 4. 强制一致性校验(不通过则阻断流水线)
142
  for k, (v, r) in checks.items():
143
- assert abs(float(v) - float(r)) < 1e-6, f"{k} 数值不一致!A={r}, B={v}"
144
 
145
- print("✅ [交接点 2 通过] 成员 B 独立复算成功,数据一致性校验通过。")
146
 
147
  if __name__ == "__main__":
148
  verify_main_results()
@@ -150,31 +181,37 @@ if __name__ == "__main__":
150
 
151
  ---
152
 
153
- ## 📅 项目时间线 (2-Week Sprint to D-Day)
 
 
 
 
 
 
 
 
 
 
 
154
 
155
- 为了确保交付高质量的展示版本,采用倒排期管理,将 2 周时间精确到天,并设置了三个“不通过不推进”的硬交接点:
 
 
 
156
 
157
- - **[D1-D2] 需求冻结 (11.04 - 11.05)**:环境搭建、数据抽样冻���(Test 100 / Dev 30)、文献矩阵梳理。
158
- - **[D3-D4] Pilot 与骨架 (11.06 - 11.07)**:跑通小网格测试,分析脚本与绘图模板使用 Pilot 数据联调。
159
- - **[D5] 🔒 硬闸门:参数冻结 (11.08)**:双方签字确认 `frozen.json` 与 `metrics_spec.md`,此后不得单方面修改实验口径。
160
- - **[D6-D8] 正式生成 (11.09 - 11.11)**:A 启动断点续跑生成(优先跑完 T=0.6),B 同步撰写 Method/Setup 草稿。
161
- - **[D9] 🚦 硬闸门:独立复算 (11.12)**:A 交付 `raw.parquet`,B 必须在 24h 内跑通 `recompute.py` 并签字,否则触发降级预案。
162
- - **[D10-D12] 分析与产出 (11.13 - 11.15)**:输出主比较区间、C/D 分解、c5 分层;B 完成主图绘制,A 完成实验演示页。
163
- - **[D13] 🤝 硬闸门:结论边界 (11.16)**:共同撰写“能说/不能说”的 Discussion 段落,防止过度推断。
164
- - **[D14] 最终定稿与排练 (11.17)**:15分钟展示排练,设备检查。**此后不再修改任何内容**。
165
  - **[D-Day] 项目展示 (11.18)** 🎯
166
 
167
  ---
168
 
169
  ## 📜 学术规范与声明 (Academic Integrity)
170
 
171
- 作为课程项目的重要组成部分,将严格遵守学术规范,并在最终报告中作如下声明:
172
 
173
  ### 成员贡献声明 (CRediT)
174
- 本项目采用双轨并行模式,两位成员对项目成功做出同等贡献:
175
- - **成员 A (实验管线轨)**:负责模型部署与显存调度、提示与解析规则验证、12,100次生成的网格调度与断点续跑;负责原始数据落盘及计算成本/失败率统计;撰写报告中实验设置与工程细节部分;参与结论边界撰写。
176
- - **成员 B (统计与分析轨)**:负责 C/D 分解与配对 Bootstrap 实现、c₅ 分层与敏感性分析、全部核心图表绘制;在 D9 建立独立复算脚本对管线数据执行强制交叉验证;撰写报告中的文献综述、统计结果与讨论主体。
177
- - **共同承担**:研究问题定义、主比较口径决策、参数冻结(D5)、结论边界撰写(D13)、报告交叉互审与联合排练。
178
 
179
  ### AI 工具使用声明 (AI Usage)
180
  本项目在以下环节使用了生成式 AI 工具辅助:
 
23
 
24
  ---
25
 
26
+ ## 👥 分阶段双轨并行工作安排
27
 
28
+ 为了保证在 11.18 前交付高质量的可演示版本,本项目采用**“双轨并行、阶段推进、交叉验收”**的敏捷协作模式。我们将 2 周时间划分为三个明确的阶段,两人各自负责一条独立产出线,在关键节点进行成果汇总与强制验证。
29
 
30
+ ### 🟢 阶段 0:基建与冻结(D1 - D5)
31
  **核心目标**:跑通全链路,锁定实验参数,消除后期返工风险。
32
+ - **管线轨(成员 A)**:
33
+ - 搭建环境与加载 Qwen2.5-7B 模型。
34
+ - 完成 dev 30 / test 100 数据抽样,并生成冻结快照 `ids.json`。
35
+ - 跑通 Pilot 实验,验证解析失败率 < 10% 且截断率 < 5%。
36
+ - 编写并测试核心生成脚本 `gen.py`(验证断点续跑机制)。
37
+ - **产出**:`ids.json`、`pilot.parquet`、可运行的 `gen.py`。
38
+ - **分析轨(成员 B)**:
39
+ - 梳理文献矩阵,明确对比基线。
40
+ - 编写 `metrics_spec.md`,严格定义 C/D 分解、c₅ 分层、配对 Bootstrap 的数学口径。
41
+ - 使用 Pilot 假数据跑通 `analyze.py` 与 `plots.py` 骨架。
42
+ - **产出**:`metrics_spec.md`、分析脚本骨架。
43
+ - **🔒 阶段交汇(D5 参数冻结)**:
44
+ - 双方逐条核对 `config.py` 与 `metrics_spec.md`,确认无误后生成 `frozen.json` 并签字。
45
+ - **纪律要求**:此后 test 集正式开跑,**任何参数(T、N、Prompt)一律不准修改**。
46
+
47
+ ### 🟡 阶段 1:全量生成与前置写作(D6 - D9)
48
+ **核心目标**:完成 12,100 次全量生成,同时并行推进报告前置章节,确保主结果绝对可验证。
49
+ - **管线轨(成员 A)**:
50
+ - 启动正式生成(优先跑 T=0.6 的全部 2 流),监控运行状态。
51
+ - 跑完后合并分片,输出统一的原始数据格式 `raw.parquet` 及管线内部主统计 `main_stats_A.csv`。
52
+ - 生成计算成本统计表 `cost.csv`。
53
+ - **产出**:`raw.parquet`、`cost.csv`、`main_stats_A.csv`。
54
+ - **分析轨(成员 B)**:
55
+ - 并行撰写报告 Method、Setup 与 Related Work 草稿。
56
+ - 编写独立复算脚本 `recompute.py`。
57
+ - **产出**:报告前置章节草稿、`recompute.py`。
58
+ - **🔒 阶段交汇(D9 独立复算与数据对齐)**:
59
+ - ��线轨交付 `raw.parquet`;分析轨在 24 小时内运行独立脚本复算主结果指标(Greedy Acc, C 数, D 数)。
60
+ - **纪律要求**:双方产出数值必须逐项比对完全一致(容差 `1e-6`)。**验证通过后**,才能解锁后续的统计分析阶段;不一致则必须停下排查解析或合并逻辑。
61
+
62
+ ### 🔴 阶段 2:可靠性分析与产出整合(D10 - D14)
63
+ **核心目标**:将数据转化为统计结论与可视化图表,并行完成报告组装与最终排练。
64
+ - **分析轨(成员 B)**:
65
+ - 运行完整 `analyze.py`,产出主比较区间、增量表、c₅ 分层与敏感性分析。
66
+ - 绘制三张核心主图(准确率曲线、C/D 堆叠、c₅ 分组)。
67
+ - 撰写 Results 与 Discussion 主体。
68
+ - **产出**:`tables/`、`figs/`、报告初稿。
69
+ - **管线轨(成员 A)**:
70
+ - 整理失败率与计算成本附表。
71
+ - 审核报告中的实验设置与成本段落。
72
+ - 编写演示文稿中的管线与工程细节页;协助排查错例。
73
+ - **产出**:成本/失败率附表、演示实验页。
74
+ - **🤝 阶段交汇(D13 结论边界)**:
75
+ - 两人基于各自的视角,共同撰写“能说/不能说”段落,防止过度推断。
76
+ - **最终定稿(D14)**:
77
+ - 两人联合排练 15 分钟展示,**此后不再修改任何内容**,准备 11.18 答辩。
78
 
79
  ---
80
 
 
93
 
94
  ---
95
 
96
+ ## 📂 代码结构(按双轨并行划分)
97
 
98
  ```text
99
  project/
100
+ ├── config.py # [全局] 唯一真源:参数配置、种子规则
101
+ ├── common.py # [全局] 提示构造 / 答案抽取 / 投票逻辑
102
  │
103
  ├── 【管线轨代码】 ──────────
104
+ ├── gen.py # [阶段1] 正式生成:网格调度 + 断点续跑
105
+ ├── merge.py # [阶段1] 合并分片 + 生成成本统计
106
+ ├── degrade.py # [应急] 超时/失败降级预案
107
  │
108
  └── 【分析轨代码】 ──────────
109
+ ├── recompute.py # [阶段1] 独立复算:交叉验证管线数据正确性
110
+ ├── analyze.py # [阶段2] C/D 分解 / c5 分层 / Bootstrap
111
+ └── plots.py # [阶段2] 三张核心主图绘制
 
112
 
113
  ---
114
 
115
  ## 📌 交付标准与验收清单
116
 
117
+ 本项目不仅追求统计结果,更注重过程的可复现性与工程严谨性。围绕三个阶段的推进,11 月 18 日的最终提交必须包含以下交付物,并逐项完成验收:
118
+
119
+ ### 1. 阶段 0 产出:基线与冻结规范
120
+ - [ ] **参数冻结快照**:包含 `ids.json`(Data Split)与 `frozen.json`(Prompt、T、N、Seed 等全局参数)。
121
+ - [ ] **统计口径规范**:包含 `metrics_spec.md`(C/D 分解、c₅ 分层边界、Bootstrap 实现口径),且双方已签字确认。
122
 
123
+ ### 2. 阶段 1 产出:原始数据与交叉验证
124
+ - [ ] **原始数据仓库**:完整的 `raw.parquet`(约 2400 行),无重复、无遗漏。
125
+ - [ ] **独立复算记录**:包含 `recompute.py` 脚本及 `handoff2.md` 签字,证明分析轨在独立环境下复算的 Greedy Acc、C 数、D 数与管线轨产出**完全一致(容差 1e-6)**。
126
+ - [ ] **成本与失败率**:`cost.csv` 记录了各配置的 Token 消耗与解析失败率。
127
+
128
+ ### 3. 阶段 2 产出:统计分析结果
129
  - [ ] **主比较区间**:提供点估计与 95% 配对 Bootstrap 置信区间(基于 2000 次重采样)。
130
  - [ ] **增量分析**:展示相邻 N 的增量表(明确标注间距不均),并绘制三温度下的准确率曲线。
131
  - [ ] **C/D 分解**:清晰报告 \(C_N\)(纠错数)与 \(D_N\)(损害数),并绘制堆叠柱状图。
132
  - [ ] **一致性分层**:展示 \(c_5\) 三层分组(低/中/高)的组内样本量 \(n\)、N=5→20 的增益与区间(若 \(n<30\) 需标注“不稳定”)。
133
  - [ ] **敏感性分析**:提供“无效票计入分母”条件下的 \(c_5\) 对比附表。
134
 
135
+ ### 4. 最终报告与演示 (Final Report & Presentation)
136
+ - [ ] **报告格式**:严格使用 ICLR 2027 MT_E 模板,正文控制在 **≤9 页**(附录不限)。
137
+ - [ ] **差异声明**:包含“与 Proposal 的差异”说明(如:因时间约束,测试集降至 100 题,可检出效应约 ≥7pp)。
138
+ - [ ] **附录规范**:包含核心代码骨架、指标公式汇总、成员贡献声明、AI 工具使用声明。
139
+ - [ ] **演示材料**:15 分钟的高质量展示(含三张核心主图 + 一页“没发现什么”的负结果/边界声明)。
 
 
 
 
 
 
 
140
 
141
  ---
142
 
143
+ ## 🛡️ 核心代码示例:跨轨独立复算 (Cross-Track Validation)
144
 
145
+ 为了打破“一人跑数据、一人写报告”的串行反模式,本项目在**阶段 1 末尾(D9)**设置了强制验证点。**分析轨必须使用独立的 `recompute.py` 从底层原始数据重新计算主结果,与管线轨的产出逐项比对,一致后方可解锁阶段 2 的正式分析。**
146
 
147
  ```python
148
+ # recompute.py - 由分析轨独立编写与执行(不 import 管线轨的分析代码)
149
  import pandas as pd
150
  import config as C
151
 
152
  def verify_main_results():
153
+ # 1. 分析轨独立读取底层数据
154
  df = pd.read_parquet(C.RAW_PARQUET)
155
 
156
+ # 2. 独立计算核心指标
157
  greedy_acc = df.drop_duplicates("qid").greedy_correct.mean()
158
  main_df = df[(df.T == C.MAIN_T) & (df.N == C.MAIN_N)]
159
  main_acc = main_df.correct.mean()
160
  C_count = int(((~main_df.greedy_correct) & main_df.correct).sum())
161
  D_count = int((main_df.greedy_correct & (~main_df.correct)).sum())
162
 
163
+ # 3. 与管线轨的产出一一比对
164
  ref = pd.read_csv(C.MAIN_STATS_A).iloc[0]
165
  checks = {
166
  "greedy_acc": (greedy_acc, ref.greedy_acc),
 
169
  "D": (D_count, int(ref.D))
170
  }
171
 
172
+ # 4. 强制一致性校验(不通过则阻断流水线,进入阶段 2)
173
  for k, (v, r) in checks.items():
174
+ assert abs(float(v) - float(r)) < 1e-6, f"{k} 数值不一致!管线轨={r}, 分析轨={v}"
175
 
176
+ print("✅ [阶段 1 闸门通过] 独立复算成功,数据一致性校验通过,解锁阶段 2。")
177
 
178
  if __name__ == "__main__":
179
  verify_main_results()
 
181
 
182
  ---
183
 
184
+ ## 📅 项目时间线 (三阶段冲刺计划)
185
+
186
+ 为了确保在 11.18 前交付高质量的版本,团队采用“三阶段”并行推进,并在关键节点设立硬闸门:
187
+
188
+ - **[阶段 0] 基建与冻结 (11.04 - 11.08)**:
189
+ - 11.04 - 11.05:环境搭建、数据抽样冻结、文献矩阵梳理。
190
+ - 11.06 - 11.07:Pilot 测试跑通,分析脚本骨架联调。
191
+ - **11.08 (硬闸门 1)**:双方签字确认 `frozen.json` 与 `metrics_spec.md`,**此后 test 集正式开跑,参数一律不准改**。
192
+
193
+ - **[阶段 1] 生成与验证 (11.09 - 11.12)**:
194
+ - 11.09 - 11.11:管线轨启动全量生成(优先跑 T=0.6),分析轨撰写 Method/Setup 草稿。
195
+ - **11.12 (硬闸门 2)**:管线轨交付 `raw.parquet`;分析轨 24h 内跑通独立复算,**数值不一致不推进**。
196
 
197
+ - **[阶段 2] 分析与交付 (11.13 - 11.17)**:
198
+ - 11.13 - 11.15:输出四件套(主比较、增量、C/D、c₅),完成三图绘制与报告主体。
199
+ - **11.16 (硬闸门 3)**:共同撰写“能说/不能说”的 Discussion 边界。
200
+ - **11.17 (最终定稿)**:15 分钟展示排练,设备检查。**此后不再修改任何内容**。
201
 
 
 
 
 
 
 
 
 
202
  - **[D-Day] 项目展示 (11.18)** 🎯
203
 
204
  ---
205
 
206
  ## 📜 学术规范与声明 (Academic Integrity)
207
 
208
+ 作为课程项目的重要组成部分,本项目严格遵守学术规范,并在最终报告中作如下声明:
209
 
210
  ### 成员贡献声明 (CRediT)
211
+ 本项目采用三阶段双轨并行模式,两位成员对项目成功做出了同等贡献:
212
+ - **成员 A (管线轨)**:负责阶段 0 的环境搭建与参数冻结;负责阶段 1 的 12,100 次生成任务调度、断点续跑与原始数据落盘;负责阶段 2 的工程细节段落撰写;参与结论边界撰写。
213
+ - **成员 B (分析轨)**:负责阶段 0 的评估口径约定;负责阶段 1 的前置章节撰写;负责阶段 2 的 C/D 分解、c₅ 分层、Bootstrap 区间计算与图表绘制。**并在阶段 1 末尾建立独立复算脚本,对管线数据执行强制交叉验证**。
214
+ - **共同承担**:研究问题定义、主比较口径决策、各阶段交汇点签字、结论边界撰写、报告交叉互审与最终排练。
215
 
216
  ### AI 工具使用声明 (AI Usage)
217
  本项目在以下环节使用了生成式 AI 工具辅助: