Update README.md
Browse files
README.md
CHANGED
|
@@ -6,9 +6,10 @@ colorTo: purple
|
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
| 8 |
---
|
| 9 |
-
# stage2 各任务说明
|
| 10 |
|
| 11 |
-
|
|
|
|
| 12 |
|
| 13 |
**输入什么**
|
| 14 |
|
|
@@ -27,7 +28,51 @@ pinned: false
|
|
| 27 |
|
| 28 |
---
|
| 29 |
|
| 30 |
-
## 任务二:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
|
| 32 |
**输入什么**
|
| 33 |
|
|
@@ -48,7 +93,7 @@ pinned: false
|
|
| 48 |
|
| 49 |
---
|
| 50 |
|
| 51 |
-
## 任务
|
| 52 |
|
| 53 |
**输入什么**
|
| 54 |
|
|
@@ -70,32 +115,11 @@ pinned: false
|
|
| 70 |
|
| 71 |
---
|
| 72 |
|
| 73 |
-
## 任务
|
| 74 |
|
| 75 |
**输入什么**
|
| 76 |
|
| 77 |
-
1. `
|
| 78 |
-
2. 校准流程代码(`calibrate.ipynb`)+ `metrics.py`
|
| 79 |
-
|
| 80 |
-
**要做什么**
|
| 81 |
-
|
| 82 |
-
1. `RUN="fit"`:只用 val → 拟合 TF-IDF 自己的 T → 在校准 val 上选自己的 tau_fpr5/tau_f1 → 选自己的 t
|
| 83 |
-
2. `RUN="apply"`:把冻结参数应用到三个 split,绝不重选
|
| 84 |
-
3. AUROC 校准前后必须一致;ECE/Brier 记录变化
|
| 85 |
-
|
| 86 |
-
**输出什么**
|
| 87 |
-
|
| 88 |
-
- `pred_tfidf_{val,test_id,test_ood}_calibrated.csv`
|
| 89 |
-
- `metrics_tfidf_binary.csv`(9 行)、`metrics_tfidf_three_way.csv`(3 行)
|
| 90 |
-
- `thresholds.json` 新增 `tfidf` 条目(TF-IDF 自己的 T/tau/t,不共用 RoBERTa 的参数)
|
| 91 |
-
|
| 92 |
-
---
|
| 93 |
-
|
| 94 |
-
## 任务五:跨模型汇总与 id 对齐
|
| 95 |
-
|
| 96 |
-
**输入什么**
|
| 97 |
-
|
| 98 |
-
1. 各模型的 `pred_*_calibrated.csv`(RoBERTa 在本目录、TF-IDF 由任务四产出、Qwen 在固定 200 条子集上)
|
| 99 |
2. 各模型两张 metrics 表
|
| 100 |
3. thresholds.json(四模型条目齐后)
|
| 101 |
|
|
@@ -113,61 +137,52 @@ pinned: false
|
|
| 113 |
|
| 114 |
---
|
| 115 |
|
| 116 |
-
## 任务
|
| 117 |
|
| 118 |
**输入什么**
|
| 119 |
|
| 120 |
-
1.
|
| 121 |
-
2.
|
| 122 |
-
3. 固定 200 条平衡子集(成员 1 已产出)
|
| 123 |
|
| 124 |
**要做什么**
|
| 125 |
|
| 126 |
-
1.
|
| 127 |
-
2.
|
| 128 |
-
3. 所有指标结论注明"固定 200 条人工平衡子集,小样本限定"
|
| 129 |
|
| 130 |
**输出什么**
|
| 131 |
|
| 132 |
-
-
|
| 133 |
-
- thresholds.json 新增 `qwen_zeroshot`、`qwen_fewshot` 两个条目
|
| 134 |
-
|
| 135 |
-
**已知卡点**:目前成员 1 的子集只从 test_id 抽,**Qwen 没有 val 预测,fit 没原料**——需先确认是否补跑一份 val 预测(可同为固定子集),并同步全组口径。
|
| 136 |
|
| 137 |
---
|
| 138 |
|
| 139 |
-
## 任务
|
| 140 |
|
| 141 |
**输入什么**
|
| 142 |
|
| 143 |
-
1.
|
| 144 |
-
2. 各模型
|
|
|
|
|
|
|
| 145 |
|
| 146 |
**要做什么**
|
| 147 |
|
| 148 |
-
1.
|
| 149 |
-
2.
|
|
|
|
|
|
|
| 150 |
|
| 151 |
**输出什么**
|
| 152 |
|
| 153 |
-
-
|
|
|
|
|
|
|
|
|
|
| 154 |
|
| 155 |
---
|
| 156 |
|
| 157 |
-
## 任务
|
| 158 |
|
| 159 |
-
**输入什么**
|
| 160 |
-
|
| 161 |
-
1. `stage2/output/` 顶层的全部 `*.csv`、`*.json`(7 个现有文件 + 三张 fp 表)
|
| 162 |
|
| 163 |
-
**要做什么**
|
| 164 |
-
|
| 165 |
-
1. 按 §4.3 把顶层产物镜像到 `runs/stage2/`,跳过 `middle/`
|
| 166 |
-
2. 复制放在所有任务之后做;之后任何任务重跑过,再执行一次覆盖复制
|
| 167 |
-
|
| 168 |
-
**输出什么**
|
| 169 |
-
|
| 170 |
-
- `src/runs/stage2/`:9 个及以上交付文件(四模型条目齐的 thresholds.json、各模型 calibrated 预测与 metrics、三张 fp 表)
|
| 171 |
|
| 172 |
---
|
| 173 |
|
|
@@ -179,3 +194,4 @@ pinned: false
|
|
| 179 |
4. 各模型参数独立(各自的 T/tau/t),跨模型比较按 id 对齐,Qwen 只在固定子集上比
|
| 180 |
|
| 181 |
|
|
|
|
|
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
| 8 |
---
|
| 9 |
+
# stage2 各任务说明
|
| 10 |
|
| 11 |
+
|
| 12 |
+
## 任务一:RoBERTa 校准(成员 2)
|
| 13 |
|
| 14 |
**输入什么**
|
| 15 |
|
|
|
|
| 28 |
|
| 29 |
---
|
| 30 |
|
| 31 |
+
## 任务二:TF-IDF 校准(成员 1,复用同一 notebook 流程)
|
| 32 |
+
|
| 33 |
+
**输入什么**
|
| 34 |
+
|
| 35 |
+
1. `pred_tfidf_{val,test_id,test_ood}.csv`(三列 `id,label,p_ai`)
|
| 36 |
+
2. 校准流程代码(`calibrate.ipynb`)+ `metrics.py`
|
| 37 |
+
|
| 38 |
+
**要做什么**
|
| 39 |
+
|
| 40 |
+
1. `RUN="fit"`:只用 val → 拟合 TF-IDF 自己的 T → 在校准 val 上选自己的 tau_fpr5/tau_f1 → 选自己的 t
|
| 41 |
+
2. `RUN="apply"`:把冻结参数应用到三个 split,绝不重选
|
| 42 |
+
3. AUROC 校准前后必须一致;ECE/Brier 记录变化
|
| 43 |
+
|
| 44 |
+
**输出什么**
|
| 45 |
+
|
| 46 |
+
- `pred_tfidf_{val,test_id,test_ood}_calibrated.csv`
|
| 47 |
+
- `metrics_tfidf_binary.csv`(9 行)、`metrics_tfidf_three_way.csv`(3 行)
|
| 48 |
+
- `thresholds.json` 新增 `tfidf` 条目(TF-IDF 自己的 T/tau/t,不共用 RoBERTa 的参数)
|
| 49 |
+
|
| 50 |
+
---
|
| 51 |
+
|
| 52 |
+
## 任务三:Qwen 零样本/少样本校准(成员 3,复用同一 notebook 流程)
|
| 53 |
+
|
| 54 |
+
**输入什么**
|
| 55 |
+
|
| 56 |
+
1. Qwen 在 val/test 上的预测(零样本、少样本**两个版本分开**,各一套 `id,label,p_ai`)
|
| 57 |
+
2. 校准流程代码 + `../metrics.py`
|
| 58 |
+
3. 固定 200 条平衡子集(成员 1 已产出)
|
| 59 |
+
|
| 60 |
+
**要做什么**
|
| 61 |
+
|
| 62 |
+
1. 两个版本各自走一遍与任务一相同的 fit → apply 流程,参数不能共用、结果不能混
|
| 63 |
+
2. 零样本/少样本分别记录到 thresholds.json 的 `qwen_zeroshot` / `qwen_fewshot` 条目
|
| 64 |
+
3. 所有指标结论注明"固定 200 条人工平衡子集,小样本限定"
|
| 65 |
+
|
| 66 |
+
**输出什么**
|
| 67 |
+
|
| 68 |
+
- `pred_qwen_zeroshot/` 和 `pred_qwen_fewshot/` 两个版本的 calibrated 预测与两张 metrics 表
|
| 69 |
+
- thresholds.json 新增 `qwen_zeroshot`、`qwen_fewshot` 两个条目
|
| 70 |
+
|
| 71 |
+
**已知卡点**:目前成员 1 的子集只从 test_id 抽,**Qwen 没有 val 预测,fit 没原料**——需先确认是否补跑一份 val 预测(可同为固定子集),并同步全组口径。
|
| 72 |
+
|
| 73 |
+
---
|
| 74 |
+
|
| 75 |
+
## 任务四:FP/FN 错误分析(成员 2)
|
| 76 |
|
| 77 |
**输入什么**
|
| 78 |
|
|
|
|
| 93 |
|
| 94 |
---
|
| 95 |
|
| 96 |
+
## 任务五:三分类 Demo(成员 2)
|
| 97 |
|
| 98 |
**输入什么**
|
| 99 |
|
|
|
|
| 115 |
|
| 116 |
---
|
| 117 |
|
| 118 |
+
## 任务六:跨模型汇总与 id 对齐(成员 1)
|
| 119 |
|
| 120 |
**输入什么**
|
| 121 |
|
| 122 |
+
1. 各模型的 `pred_*_calibrated.csv`(RoBERTa 由任务一、TF-IDF 由任务二、Qwen 由任务三产出)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
2. 各模型两张 metrics 表
|
| 124 |
3. thresholds.json(四模型条目齐后)
|
| 125 |
|
|
|
|
| 137 |
|
| 138 |
---
|
| 139 |
|
| 140 |
+
## 任务七:跨模型错误对照(成员 1)
|
| 141 |
|
| 142 |
**输入什么**
|
| 143 |
|
| 144 |
+
1. 任务六产出的按 id 对齐数据(RoBERTa / TF-IDF 在同一批样本上的预测)
|
| 145 |
+
2. 各模型自己的冻结 tau_fpr5(RoBERTa 0.994、TF-IDF 用它 fit 出的值,不得混用)
|
|
|
|
| 146 |
|
| 147 |
**要做什么**
|
| 148 |
|
| 149 |
+
1. 校准口径下各自标出 FP/FN,比较两模型在同一批 id 上的误判异同
|
| 150 |
+
2. 注意区分:成员 1 的预研 csv(raw 口径、经验阈值 0.8/0.2、只 test_id 10 FP + 9 FN)是早期素材,不作为对照口径
|
|
|
|
| 151 |
|
| 152 |
**输出什么**
|
| 153 |
|
| 154 |
+
- 错误对比补充表/段落(归属阶段三报告,入 `runs/stage2/` 时同交)
|
|
|
|
|
|
|
|
|
|
| 155 |
|
| 156 |
---
|
| 157 |
|
| 158 |
+
## 任务八:终版绘图(成员 3)
|
| 159 |
|
| 160 |
**输入什么**
|
| 161 |
|
| 162 |
+
1. 各模型 `pred_*_calibrated.csv`(raw 与 calibrated 两列概率都要用)
|
| 163 |
+
2. 各模型两张 metrics 表(混淆矩阵直接取 tn/fp/fn/tp,不重算)
|
| 164 |
+
3. thresholds.json(图上标注所用参数)
|
| 165 |
+
4. Qwen 固定 200 条子集 id
|
| 166 |
|
| 167 |
**要做什么**
|
| 168 |
|
| 169 |
+
1. 混淆矩阵:2×2 二分类 + 2×3 三分类,数据直接取 metrics 表
|
| 170 |
+
2. 校准图:按概率分桶画 raw 与 calibrated 对比曲线,每桶标注样本数 n
|
| 171 |
+
3. 风险—覆盖率曲线:用 three_way 表(或续算)画 coverage 与 decided_acc,标出参考点
|
| 172 |
+
4. Qwen 所有图基于 200 条人工平衡子集,图注写明小样本限定
|
| 173 |
|
| 174 |
**输出什么**
|
| 175 |
|
| 176 |
+
- `figures/confusion_*.png`(2×2 与 2×3)
|
| 177 |
+
- `figures/calibration_*.png`(对角线 + raw/calibrated 对比 + 每 bin n)
|
| 178 |
+
- `figures/risk_coverage.png`(模型对比与参考点)
|
| 179 |
+
- 绘图代码:`stage2/plots.py` 或 notebook
|
| 180 |
|
| 181 |
---
|
| 182 |
|
| 183 |
+
## 任务九:交付目录对齐
|
| 184 |
|
|
|
|
|
|
|
|
|
|
| 185 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 186 |
|
| 187 |
---
|
| 188 |
|
|
|
|
| 194 |
4. 各模型参数独立(各自的 T/tau/t),跨模型比较按 id 对齐,Qwen 只在固定子集上比
|
| 195 |
|
| 196 |
|
| 197 |
+
|