Skip to content

Commit db9ac89

Browse files
committed
docs(kaggle-eval): round-9 task book — dose the attr block, thicken waver/change shapes, pin the conformal re-adjudication
- B2 dose: pet_name 120 + pet_benign 40 + doctor_bg 40 (=+200) plus a +40 true-side counterpart (attribute contradiction) to keep the pet-HC true side intact at 2.5x dose - val_soft/polarity: +120 in-dist waver ("considering a change" => false) + 40 in-place "change happened" => true rows; holdout cats stay at zero training rows (asserted) - conformal: re-run semantics pinned as re-adjudication (any candidate passing half2 is adopted), half1 selection budget tightened to <=34% (1pp margin), gate unchanged - corpus 15420 -> 15820; dataset v14 / kernel v14 accounting; gates unchanged (add-only)
1 parent 3ef5601 commit db9ac89

1 file changed

Lines changed: 294 additions & 0 deletions

File tree

‎kaggle_eval/HANDOFF_NLI_V9.md‎

Lines changed: 294 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,294 @@
1+
# HANDOFF_NLI_V9.md — 第 9 轮任务书:剂量补足(B2)+ 形状补齐(waver/变更)+ conformal 语义钉死
2+
3+
> 对象:新一轮数据改造 + 训练 + 复验。开工前必读:`HANDOFF_NLI_V3.md`(温度扫描)、
4+
> `HANDOFF_NLI_V4.1.md`(判据与交付)、`HANDOFF_NLI_V5.md`、`HANDOFF_NLI_V6.md`、
5+
> `HANDOFF_NLI_V7.md`(§6 预注册协议)、**`HANDOFF_NLI_V8.md`(§8 执行结果 + §8.3 复核侧补记 +
6+
> §8.4 v9 议题——本轮范围全部由此提炼,不另立新方向)**。
7+
8+
## 0. 本轮定位(一句话)
9+
10+
v8 把 B2 从 0.8985 拉回 **0.7491**(方向已证、剂量不够),并把 val_soft/polarity 的两条线
11+
推到贴边(holdout 的「考虑改变=兼容」形状在 v8 权重下被误判为冲突);**本轮只做三件事**:
12+
**① attr 块加剂(+240,含反向对照)**、**② in-dist 形状补齐(waver +120 / 变更 +40)**、
13+
**③ conformal 语义钉死(复跑 = 重裁)+ 选点留 1pp 余量**。其余全部冻结,门槛只加不放宽。
14+
15+
---
16+
17+
## 1. 失败清单与根因(全部来自 v8,复核侧已独立复算)
18+
19+
### 1.1 四轴失败(v8:8 PASS / 4 FAIL)
20+
21+
| 轴 | v7 | v8 | 本轮要求 |
22+
|---|---|---|---|
23+
| 偏置诊断 | 12/14(含 B2 翻) | **12/14** | ≥13/14 且 **B2 必须过(p<0.5)** |
24+
| B2 名字一致 | 0.8985 ✗ | **0.7491** ✗(方向已证) | 回 false |
25+
| D2 其他坚果无关 | 0.8663 ✗ | 0.8777 ✗ | 允许照旧 miss(13/14 留 1 席) |
26+
| val_soft 错误数 | 1 | **7** | ≤3 |
27+
| 极性 val_soft 变化 | 1/1/1 | **7/9/10(+6)** | ≤1 |
28+
| conformal(采用规则) | s2 34/51@33.4% ✓ | **s2 42/54@35.4%** ✗(超 0.4pp) | ≥50% @ ≤35% |
29+
30+
### 1.2 val_soft 7 错的行级结构(**本轮第 ② 项的直接依据**)
31+
32+
| row_id | cat(holdout) | kind | known → new | v7 p | v8 p | 判定 |
33+
|---|---|---|---|---|---|---|
34+
| 18 | degree | true | 用户近视400度 → 新配眼镜500度,度数加深了 | 0.3074 | 0.2942 | 漏判(应 true) |
35+
| 86 | degree | consid | 验光度数300度 → 用户在想要不要重新验光 | 0.1948 | **0.8765** | 翻错 |
36+
| 255 | degree | consid | 验光度数500度 → 用户在想要不要重新验光 | 0.1951 | **0.8643** | 翻错 |
37+
| 215 | barber | true | 固定理发师Kevin → 现在都找阿杰剪 | 0.8901 | **0.2753** | 漏判(应 true) |
38+
| 231 | barber | consid | 剪发一直找Andy → 在想要不要换阿杰试试 | 0.2314 | **0.8733** | 翻错 |
39+
| 263 | barber | consid | 剪发一直找Tony → 在想要不要换阿杰试试 | 0.2206 | **0.8758** | 翻错 |
40+
| 291 | barber | consid | 剪发一直找阿杰 → 在想要不要换Andy试试 | 0.2238 | **0.8223** | 翻错 |
41+
42+
- **结构**:5/7 是 **「在想要不要{动作}」= 犹豫/考虑改变 ⇒ 兼容(false)** 形状;2/7 是
43+
**「变更已发生」⇒ 冲突(true)**。两类都落在 holdout 猫(degree/barber,**训练零行**)。
44+
- **机制**:in_dist 0/200 恒不错 ⇒ 不是分布外噪声,而是**该形状在训练语料里的 ZH 表达覆盖不足**
45+
(训练 consid 行的「考虑/听说/计划试」多为 EN 或别的句式);v8 的 +120 compat 行把 false 侧
46+
剂量上抬后,holdout 的「考虑改变」行被推向 true。
47+
- **处置**:不许改门控/口径;本轮用 **in-dist 形状补齐**(第 ② 项)把「犹豫 ≠ 变更」的双形状
48+
在训练域内做厚,靠语义泛化迁移到 holdout(与 §8.4 议题 2 一致)。
49+
50+
### 1.3 conformal 口径分流(复核侧补记,§8.3/§8.4 议题 5)
51+
52+
- 同一 `conformal_alt_v8.json` 半2 读数:s1 maxconf **38/54 = 70.4% @ 25.4% 达标**、
53+
s2 42/54 = 77.8% @ **35.4%**(超线 0.4pp)、s3 退化;文件 `verdict` = **ADOPT s1_maxconf**。
54+
- v8 §5/§6 冻结「采用 s2」⇒ 按 s2 计 FAIL。**本轮把语义钉死(见 §6)**,终结此歧义。
55+
56+
---
57+
58+
## 2. 预核算(2026-09-30,复验侧从 v8 落盘逐值复算;执行者按表复核,不替算)
59+
60+
### 2.1 必须保持的 8 项(v8 实测,复验侧已复现)
61+
62+
| 指标 | v8 实测 | 保持要求 |
63+
|---|---|---|
64+
| 主 val acc | **0.8960**(err 104;q10 0.8868 / q90 0.9430) | ≥0.896(**贴线,红线**) |
65+
| 老 20 | 20/20 | 20/20 |
66+
| 新 10 | 10/10(伤病史 0.8887) | 10/10 |
67+
| 否定 5 | 5/5 | 5/5 |
68+
| label-surface swap | 0 | 0 |
69+
| 极性 real/diag \|diff\| | 0/0 · 0/0 | ≤1 |
70+
| 分离度 val_soft band | 16.70pp(q10 0.7761 / q90 0.9431) | ≥8pp |
71+
| 数据卫生 | 0/35 + diag 18 对 0 命中 | 0/35(断言升级含 diag 对) |
72+
73+
### 2.2 本轮增量的风险读数
74+
75+
- **主 val 贴线**:v7 0.903(err 97)→ v8 0.8960(err 104),+120 行后 −0.7pp(含 CUDA 跨 run 方差)。
76+
本轮增量 **+380(≤2.5%)** 已是上限,且全部为「真内容」行(非纯 compat 粉尘);
77+
**止损线**:主 val < 0.885 ⇒ 判 FAIL 照报不叠改动;**若落在 0.885–0.896 ⇒ 该轴如实 FAIL**。
78+
- **τ 报告纪律(承 §4)**:τ 直接读回 `rl_agent_config.json` temperature[2](v8 = 1.1240078;
79+
v6 1.0905 / v7 1.1058;曾误写默认 1.200)。
80+
- **口径注(必写进报告,承 v8 §8.4)**:v6 起验收 35 案与训练语料零逐句交集;val/val_soft 与训练
81+
语料存在**家族级句式共享**(字段级 310 命中,v7/v8 同量,非回归);卫生口径以「35 案 + diag 对 +
82+
本轮新块」逐字段零交 与 **state 级** val/val_soft 零交为准;barber holdout 与训练域重叠自 v5 起。
83+
84+
---
85+
86+
## 3. 数据改造(`kaggle_eval/gen_soft_conflicts_v9.py`;「照着 v8 改」)
87+
88+
输出 `data_local/nli_conflict_train_v9.jsonl`。**val(1000)/val_soft(300) 不重生成**(逐字节不变)。
89+
**v8 的 15420 行逐字节保持**(carried 块照 v7→v8 惯例重放 rng 流,新块吃流尾)。
90+
91+
### 3.1 块 A — attr 加剂(+200;唯一既有形状的加量)
92+
93+
- 复用 v8 的 `PET_NAME_T` / `PET_BENIGN_ATTR` / `DOCTOR_BG` 与 `make_attr_rows` 骨架;
94+
**词池扩充**(不是复制行):名池 +3、色池 +2(均避开禁词 小白/白色/开心果)、
95+
pet 良性属性 +6、doctor 背景事实 +4(每个语种)。
96+
- **配额(写死,assert 精确)**:`pet_name` **120**(zh 72 / en 48)+ `pet_benign` **40**(zh 24 / en 16)
97+
+ `doctor_bg` **40**(zh 24 / en 16)= **+200**(zh 120 / en 80)。
98+
- `kind='compat'`(TARGETS['compat'] = 0.93±0.02);`meta.shape='attr_consistent'`;
99+
`meta.family ∈ {pet_name, pet_benign, doctor_bg}`;`cat' ∈ {pet_attr, doctor_attr}`。
100+
- **重点**:`pet_name` 的 known 侧**必须包含 B2 同构句式「用 户的猫叫{N}」**(v8 已有该模板,
101+
本轮占比 ≥1/3),new 侧「用户的猫是只{C}猫」;形状与 B2 同、字面全新。
102+
103+
### 3.2 块 B — attr 反向对照(+40;**新增形状,保护 true 侧**)
104+
105+
- **语义**:同主体、`new` 与 `known` 的属性**互相矛盾** ⇒ **true**(冲突)。
106+
- 两个形状各 20(zh 12 / en 8):
107+
1. **外观矛盾**:`known「用户的猫是只{色1}猫」/ new「用户的猫是只{色2}猫」`(色1≠色2);
108+
2. **名字矛盾**:`known「用户的猫叫{名1}」/ new「用户的猫叫{名2}」`(名1≠名2;名池 ≠ 小白)。
109+
- `kind='true'`(TARGETS['true'] = 0.95±0.02,与既有「变更已发生」行同档);
110+
`meta.shape='attr_contradiction'`、`cat='pet_attr'`。
111+
- **作用**:防止 200 行「宠物属性 ⇒ false」被学成「宠物属性一律 false」而伤 pet HC true 侧
112+
(v8 未观察到损伤,但 2.5× 剂量下需要对称护栏)。
113+
114+
### 3.3 块 C — waver 形状补齐(+120;consid 档,只进 in-dist 猫)
115+
116+
- **语义**:`known` = 现状,`new` = **犹豫/考虑改变(尚未发生)** ⇒ 兼容(**false**)。
117+
- **句式(新模板,zh/en 各 ≥6 条轮转)**:zh「用户在想要不要{动作}」·「用户有点想试试{动作}」·
118+
「用户最近在琢磨要不要{动作}」…;en "The user is considering {action}" · "The user might
119+
try {action} someday" · "The user is toying with the idea of {action}"…
120+
- **配额**:+120(zh 72 / en 48);**只在 in-dist consid 八猫轮转**:`city / car / job / coffee /
121+
lang / gym_brand / team / cloud`(每猫 12–15 行);**holdout 猫(email/desk_floor/degree/barber)
122+
零行保持**。
123+
- `kind='consid'`(TARGETS['consid'] 0.80±0.05,现档);`meta.shape='waver_consider'`;
124+
`meta.family='waver'`。
125+
- **词池**:复用既有 consid 族的 known 池(现状句),动作词池扩充(新增 ≥8 个/语种)。
126+
127+
### 3.4 块 D — 变更已发生(+40;true 档,只进 in-dist 猫)
128+
129+
- **语义**:`known` = 旧状态,`new` = **已经改变(已发生)** ⇒ 冲突(**true**)。
130+
- **句式**:zh「用户把{旧}换成了{新}」·「用户不再去{旧},改去{新}了」;en "The user switched
131+
from {old} to {new}" · "The user no longer goes to {old}, they go to {new} now"。
132+
- **配额**:+40(zh 24 / en 16);in-dist 猫轮转 ≥6 猫;`kind='true'`;`meta.shape='change_done'`。
133+
- **作用**:与块 C 成对(同一域内「犹豫 ⇒ false」/「已变更 ⇒ true」),给模型可迁移的语义对比。
134+
135+
### 3.5 规模表
136+
137+
| 块 | v7 | v8 | v9 |
138+
|---|---|---|---|
139+
| MNLI(逐字节不变) | 6000 | 6000 | 6000 |
140+
| 合成软冲突 | 5800 | 5920 | 5920 |
141+
| 硬约束 | 1000 | 1000 | 1000 |
142+
| 否定算子族 | 1600 | 1600 | 1600 |
143+
| known 一步扰动 | 900 | 900 | 900 |
144+
| **v9 新增**:attr +200 / 反向对照 +40 / waver +120 / 变更 +40 | — | (+120 attr) | **+400** |
145+
| **合计** | 15300 | 15420 | **15820** |
146+
147+
### 3.6 断言(承接 v8 + 新增;全过才许写输出)
148+
149+
1. 行数 = **15820**;`state` 全局唯一;state 级与 val/val_soft 零交。
150+
2. kind 计数:compat 1600 → **1800**;consid 1360 → **1480**;true 1840 → **1920**;其余不变。
151+
3. labelset 轮换:语义 4 套 ≥50%、LS5/LS6 各 ≈20%(按 15820 精确改算,assert 精确)。
152+
4. 每行 `meta` 完整;新块含 `shape ∈ {attr_consistent, attr_contradiction, waver_consider, change_done}`。
153+
5. `gold.label == argmax`;`|p(gold) − 0.5| ≥ 0.2`;档位封闭(`TARGETS` 现档,不新增档)。
154+
6. **泄漏断言(承 v8 升级版)**:35 案 + diag 14 对 + 4 交换对逐字段等值 = 0;
155+
**新块(四个)逐字段 vs val/val_soft = 0**(v8 只对 attr 块做过,本轮四块全做)。
156+
7. 禁词扫描(小白/白色/开心果)= 0;新块违逆标记词(不顾/偏要/硬要/执意/照样)= 0。
157+
8. holdout 猫零行复核:`{email, desk_floor, degree, barber}` 在训练语料中行数 = **0**(断言)。
158+
159+
---
160+
161+
## 4. 训练(承 v8,零改动)
162+
163+
- 主臂纯 CE(EPOCHS=4、MICRO 16、ACCUM 2、SIGMA 0.4→0.1、底座不变 `convaiinnovations/laya-multilingual`)。
164+
- CLI:`--expected-train 15820 --max-items 16200`。
165+
- 尾部承 v5–v8:400 calib(seed 20260927)→ τ 拟合 → 落盘;**τ 直接读回
166+
`rl_agent_config.json` temperature[2] 写进报告**。val 1000 逐行 `{gold,p_true}` → `val_probs_v9.json`。
167+
- **止损线**:主 val < 0.885 ⇒ FAIL 照报不叠改动;泄漏断言失败 ⇒ 立即停;
168+
新 10 <10/10、否定 <5/5 ⇒ 照实报;val_soft >3、极性变化 >1 ⇒ 对应轴 FAIL 照报(逐条列 p);
169+
**B2 仍未过 0.5 ⇒ 负结论照交 + 附剂量-响应外推表**(本底:v8 +120 attr(其中 pet 同形状仅 40)
170+
⇒ B2 −15pp 至 0.7491;本轮 +240 attr ⇒ 读数),**不叠第二轮修补**(留 v10)。
171+
172+
---
173+
174+
## 5. 门槛(承 v8 §5,**只准加,不许放宽**)
175+
176+
| 集合 / 指标 | v8 实测 | v9 门槛 |
177+
|---|---|---|
178+
| 主 val acc | 0.8960 | ≥ 0.896 |
179+
| realtest 老 20 | 20/20 | 20/20 |
180+
| realtest 新 10 | 10/10 | 10/10 |
181+
| realtest 否定 5 | 5/5 | 5/5 |
182+
| val_soft 错误数 | 7 | ≤ 3 |
183+
| 偏置诊断 | 12/14 | **≥13/14 且 B2 必须过** |
184+
| label-surface swap diff | 0 | 0 |
185+
| 极性 real/diag \|diff\| | 0/0 | ≤1 |
186+
| 极性 val_soft 错误变化 | +6 | ≤1 |
187+
| 分离度 val_soft band | 16.70pp | ≥ 8pp |
188+
| conformal(**§6 重裁后的采用规则**) | s2 35.4% | ≥50% @ ≤35% |
189+
| 训练数据卫生 | 0/35 | 0/35 |
190+
191+
**报告项(不设硬门槛)**:四个新块的逐形状计数 + 2–3 条新字面示例;分离度全套 + consid 中位置信;
192+
holdout 双读表(v4–v9 同表);极性 mean\|Δp\| 三集;τ 拟合值;逐族计数;训练曲线;
193+
**本轮新增**:waver/变更两块的 in-dist 命中率(val_soft 之外的对照读数)。
194+
195+
---
196+
197+
## 6. conformal 语义钉死(本轮的协议变更,预注册)
198+
199+
1. **复跑 = 重裁(明写)**:`conformal_alt_probe.py` 在每个候选上 half1 选点、half2 判定;
200+
**任一候选 half2 满足 ≥50% capture @ ≤35% abstain ⇒ 该规则为本轮采用规则**(与 v7 §6 原文一致);
201+
报告按**采用规则**记门槛读数,并给三候选全曲线 + 旧口径(maxconf LAC)存档对照。
202+
2. **选点留余量(防护性预注册)**:half1 选点预算从 `abstain ≤ 35%` 收紧为 **`≤ 34%`**
203+
(1pp 余量,防 half1→half2 漂移;v8 s2 即 33.2% → 35.4% 破线)。**门槛不动(仍 ≤35%)**;
204+
三候选同一预算,不得事后调。
205+
3. 候选仍**冻结为三个**(s1 maxconf / s2 表面一致性 / s3 act_probability),**不得新增**;
206+
half2 与 35 案不参与任何拟合;协议外探索必须标「探索,不得采用」。
207+
4. 执行:
208+
`python kaggle_eval/conformal_alt_probe.py <v9 ckpt> data_local/conformal_alt_v9.json`;
209+
`python kaggle_eval/conformal_abstain.py --rule s2 --split-half --alt-scores
210+
data_local/conformal_alt_v9.json --main … --soft … --real … --diag … --out
211+
data_local/conformal_v9_s2.json`(**`--alt-scores` 显式指 v9 文件**;s2 存档与 maxconf 存档同 v8 流程)。
212+
若重裁结论为 s1,另跑 `--rule maxconf --split-half --alt-scores …
213+
--out data_local/conformal_v9_s1.json` 出「采用规则」档并同时在报告列出两档读数。
214+
5. **`score_definition` 标签已修**(v8 收尾:现在记录实际 `--alt-scores` 文件名)——报告引用时以此为准。
215+
216+
---
217+
218+
## 7. 交付物与归档
219+
220+
- **脚本**:`gen_soft_conflicts_v9.py`(新);其余沿用不改判据;`nli_kernel.py` / `nli_kernel_ce.py`
221+
同步嵌 v9 脚本(不执行)。
222+
- **数据产物**:`nli_conflict_train_v9.jsonl`(15820);`val_probs_v9.json`、`val_soft_probs_v9.json`、
223+
`polarity_nli_v9.json`、`memory_conflict_realtest_v9.json`、`noul_bias_diag_v9.json`、
224+
`label_swap_v9.json`、`conformal_v9.json`、`conformal_v9_s2.json`、`conformal_v9_s1.json`(如重裁为 s1)、
225+
`conformal_alt_v9.json`、`conf_band_v9.txt`、`leak_audit_v9.txt`、`eval_v9.log`。
226+
- **Kaggle**:数据集 **v14**(train 换 v9;val/val_soft 冻结;README 加 v14 行);
227+
kernel `laya-nli-conflict-ce` 再推一版(**计账 kernel v14**,纯 CE 主臂)。
228+
- **模型**:`D:\laya-kaggle-output\laya-nli-conflict-v9\`;SHA256 + 大小写进报告。
229+
- **HF(达标才推)**:卡(**同基准对比节 v4–v9** + 「验收 35 案与训练语料零逐句交集」句 +
230+
新头 SHA)+ 新头权重全文件,一次推齐;未达标不动、不补推。
231+
232+
---
233+
234+
## 8. 执行环境与命令(承 v8 §8 + 实测新坑)
235+
236+
- ⚠️ **本机 torch 受 Smart App Control 间歇性拦截**(2026-09-29 实测:上午正常、午后拦
237+
`WinError 4551`、随后又三连通过;SAC 全程 = On)。开工先探测
238+
`"D:/Miniconda/envs/laya-ft/python.exe" -c "import torch; print('ok')"`;
239+
**被拦先隔几分钟重试若干轮**;仍拦再停(训练在 Kaggle、生成器/离线复算不受影响)。
240+
- **电池内存坑(本轮复验侧实测)**:`conformal_alt_probe.py` 全量(1000 行 ×3 渲染)约 20 分钟,
241+
期间 CPU 吃满、**内存剩 ~1 MB**;此窗口内**不要再起重 python**(其它脚本会被拖到分钟级甚至超时),
242+
等 probe 结束再跑离线脚本。
243+
- Kaggle CLI tmp 指 ASCII(`C:/kaggle_cfg/tmp`);数据集总挂最新;**每次 push kernel 从头重训**
244+
(CUDA 非确定 ⇒ 权重不可位复现,本机留档副本为准);文档版 QUICK_SAVE 无输出属正常占位。
245+
- 泄漏审计:`python kaggle_eval/leak_audit.py data_local/nli_conflict_train_v9.jsonl`;
246+
另跑复验侧独立扫描(35 案 + diag 18 对 + 四新块 vs val/val_soft)。
247+
- 本机 CPU 复现:`D:/Miniconda/envs/laya-ft/python.exe`;`pandas` 被系统策略挡,一律 `pyarrow`。
248+
249+
---
250+
251+
## 9. 不做清单(硬)
252+
253+
- 承 v8 §9 全部:不动 τ 与 0.92 红线;不改 val/val_soft 任何字节;不在报告集上做任何拟合
254+
(§6 half1/half2 互斥为唯一例外);不引入外部数据;不把 35 案原文写进训练数据;
255+
不放宽任何判据;不删既有负结论;**不得事后新增 §6 候选**;不修 alt_praise 双语分支(死代码照旧)。
256+
- 新增:**不给 holdout 猫(email/desk_floor/degree/barber)加任何训练行**(断言 0);
257+
不动 v7/v8 已交付行的内容(只允许追加);不新增目标档位(TARGETS 保持现档);
258+
不为了压 B2 而删 D2 的对照行;**B2 仍未过 0.5 也不叠第二轮修补**。
259+
260+
---
261+
262+
## 10. 开放决策(不拍板按默认走)
263+
264+
1. **词池细节**:名池/色池/动作池执行侧自定(守禁词与既有护栏),报告给抽样示例。
265+
2. **块 C/D 的猫分配**:默认 in-dist 八猫轮转、每猫 12–15 行;猫数不足时按既有 consid 猫补。
266+
3. **块 B 的 sheen**:若外观矛盾行与既有 pet HC 行字面冲突,换色池;冲突无法避免时按 D 侧配额减半,
267+
缺口逐族写报告。
268+
4. **conformal 重裁结论**:若本轮重裁仍为 s2/s3 之外的情形,照 s1/s2 两档都跑、按 §6.1 记采用规则;
269+
若三候选全 FAIL ⇒ 负结论照交,v10 立保守选点或换族的预注册。
270+
5. **val_soft 再失败**(>3 且 in_dist 0、错全在 holdout)⇒ 判定跨 run 方差,**不改门槛**,
271+
v10 立「多 seed 复验协议」后再谈口径(先立协议,不事后放宽)。
272+
6. **归因需要时**(仅当主臂三轴以上失败、需要分离 B2 剂量与 waver/变更块贡献)可另跑消融臂
273+
(v8 语料 + waver/变更块,不含 attr 加剂),单列表报、**不并入本轮判定**。
274+
275+
---
276+
277+
## 附录 A. 版本与文件对照(本轮)
278+
279+
| 对象 | v7 | v8 | v9 |
280+
|---|---|---|---|
281+
| 训练数据 | `…_v7.jsonl`(15300) | `…_v8.jsonl`(15420) | `…_v9.jsonl`(**15820**) |
282+
| 数据生成 | `gen_soft_conflicts_v7.py` | `gen_soft_conflicts_v8.py` | `gen_soft_conflicts_v9.py` |
283+
| conformal 工具 | + `conformal_alt_probe.py`、`--rule s2` | v8 分档复跑 | **重裁语义 + 选点 ≤34%** |
284+
| Kaggle 数据集 | v12 | v13 | **v14** |
285+
| Kaggle kernel | v12 | v13(ce v4) | **v14**(ce 再推一版) |
286+
| 交付头 | 无(1 FAIL) | 无(4 FAIL) | **达标才出**(HF 一次推齐) |
287+
| val / val_soft | 逐字节不变 | 逐字节不变 | 逐字节不变 |
288+
| 数据卫生 | 0/35 | 0/35(含 diag 对) | 0/35(四新块 vs val 零交) |
289+
290+
---
291+
292+
## 第 9 轮执行结果
293+
294+
(执行者填写:执行与资产 / 硬门槛对照 / 关键读数 / 判定;复核侧补记按 v8 惯例另起一行标日期)

0 commit comments

Comments
 (0)