# 人味 LoRA · 10-03 训练日汇总（修订版 v2）

保存：2026-10-04 ｜ 对象：10-03 全天训练结果
替代关系：**本文件取代 2026-10-04 白天给出的口头汇总**。
更早的 `TRAINING_LOG_20261003.md`（20:34 版）**不做覆盖**，但其中「勘误 2 / DPO 判定」一节已被当晚 21:10 的 `dpo/DPO_VERDICT.md` 推翻，读旧文件时以 DPO_VERDICT 为准。

---

## 〇、状态

### 已确认
- **数据是变量**：同一份 600 条换 seed 差 0–1 题，换数据差 7 题。
- **会话审计**：36 条新数据占条数 5.7%、占监督字数 11.9%；训练集里 41.8% 的加粗样本来自这 5.7%。这批数据来源是元对话/报告体，不是闲聊。
- **DPO v1 无效**，原因是参考模型配错（见 §4），其所有数字按噪声处理。

### 待验证（下次开机先做）
- 训练链路与评测链路是否一致。
- 同题对照里有多少是「默写」（jaccard ≥0.6 的题一律先出池）。
- 9 条英文推理腔窗口的来源与影响（「是 Sonnet 5」目前只是推断）。
- 闲聊 21–25 字 vs 靶 91–114 的缺口，究竟来自**分布不同**还是**生成链路不一致**。

---

## 一、四个臂（专业组 24 题，贪心 n=1）

| 臂 | 数据 | 配置 | 加粗 | 分点 | 中位字数 |
|---|---|---|---|---|---|
| D2（10-02） | 600 | r64/3ep | 8/24 | 4/24 | 138 |
| **D2s43** | 600 | 同 D2，seed 43 | **8/24** | 2/24 | 159 |
| **D632** | 632 | r64/3ep | **10/24** | 9/24 | 181 |
| D632B | 632（剥 `**`） | r64/3ep | 掐停（167/237 步） | — | — |
| **DPO v1** | 45 对 | 从 D2s43 续训 | 8/24 | 4/24 | 169 |
| D3（10-02） | 636 | r64/3ep | 15/24 | 11/24 | 307 |
| D4（10-02） | 636 | r32/2ep | 16/24 | 12/24 | 258 |

---

## 二、D2s43（12:21–13:58）——排除「运气」

配置与 D2 仅差 seed：600 条、r64/α128、dropout 0.05、cutoff 3072、lr 1.5e-4 cosine、batch 1×accum 8、3 epoch、225 步。

结果：加粗 8/24、分点 2/24、中位 159（D2：8/24、4/24、138）→ 换 seed 差 0–1 题。

**n=4 副产**：24 题里 22 题「要么 4 次全加粗、要么全不加」（0/4 有 12 题、4/4 有 10 题）。
→ 这说的是**解码一致性**，**不能**用来推断训练种子的方差（种子目前只有两个样本：8、8）。
→ 另一副产品：采样口径加粗率 45.8%、贪心 33.3%，跨臂比较必须统一解码方式。

## 三、会话审计（免费，与训练并行）

按会话拆 14 个来源：chat anyway 560 条 / 中位 90 / 加粗 5.2%（唯一干净目标源）；「AI的全局记忆能力」36 条 / 230 / 55.6%（新加的 33 条来自这里）；「下一步的建议」2 条 / 1170 / 100%；空名会话 2 条 / 4152 字。

- 36 条占条数 5.7%，占监督字数 11.9%；训练集里**全部加粗样本的 41.8% 来自这 5.7%**。
- 两条极端样本（1285 / 1015 字）位于老 600 的 99.8 / 99.7 分位，其中一条的「用户话」是 868 字的粘贴表格。
- chat anyway 已被榨到 95.9%（560 条消息用了 537 条）。

## 四、D632 与 D632B

**D632**（13:57–15:49）：剔掉元对话 2 条 + 空名 1 条，只留 32 条正常闲聊 → 632 条 / 237 步。
结果：加粗 10/24、分点 9/24、中位 181 → 加粗回到预测区间（会话假设成立），**分点没回**（D2 是 4，现在 9；n=4 分点 34.4% vs D2s43 的 25.0%）。

**D632B**：同 632 条，但剥掉新增 32 条回复里的 `**`（训练集加粗率回到 5.1%，字数占比仍 8.7%，只动格式一个旋钮）。跑到 167/237 步按指示掐停，未出评测。

## 五、缺口诊断（免费，88 题对齐真靶）

| 指标 | 真靶 | D2s43 贪心 | D2s43 采样 |
|---|---|---|---|
| 末句问号 | 27.9% | 44.3% | 47.9% |
| 单字接话起手 | 53.5% | 18.2% | 23.9% |
| 破折号 | 63.5% | 46.6% | 68.8% |
| 中位字数 | 97 | 89 | — |

采样救不动 → 现象上不是解码温度问题。
**但原因待验证**：同题对照显示，模型在**训练题**上已经看不到缺口（口语开头 66% vs 靶 64%、追问 26% vs 靶 28%）；21–25 字 vs 靶 91–114 的差距出现在**评测题**上。是分布不同（OOD）还是生成链路不一致，目前无法区分，列为待验证。

分层靶值：全体 600 中位 93；chat anyway 427 条 → 114；短用户话层 91 / 中 129 / 长 211。
→ **闲聊中位靶取 91–114**（不是 76）；单字接话靶 62–90%。
→ **专业题没有对应靶**，只能做臂间相对比较。

## 六、DPO v1 = 无效实验

**配置**：起点 D2s43；60 题（训练窗口用户话，与评测 88 题零重叠）× n=6 = 360 样本 → 按靶画像打分 → 取最高/最低分配成 45 对；LoRA 续训、cutoff 1024、lr 5e-6、1 epoch、45 步。

**结论**：`yaml` 里只写了 `adapter_name_or_path`，**没有任何参考模型设置**，参考被配成「关掉 adapter 的底模」→ 第 1 步 loss = 0.0089、accuracy = 1.0（正确值应为 ln2 ≈ 0.693 / acc ≈ 0.5），多数步 accuracy 都是 1.0。
→ **这一轮是无效实验，「零效应」的说法也不成立**；44%→38%、45.8%→39.6% 等全部按噪声处理。
→ 修法：显式指定 ref = 底模 + d2s43，或用 `create_new_adapter: true` 合并后另训新 LoRA；开跑加 2 步冒烟闸（第 1 步 loss 不在 0.6–0.8 立即停）。

（连带作废：当晚「偏好对太容易分辨、根子在极端对」的归因。极端对的问题仍然存在，但它不是 v1 无效的原因。）

## 七、已撤销的旧结论

1. **「老 600 全部来自 chat anyway，专业题 33% 的加粗 = 语料 6.1% 放大 5.5 倍，没有外来污染」——整段撤销。**
   - 33% 是专业题层，6.1% 是闲聊语料层，两层不可比；专业题本身没有对应靶。
   - 老 600 里至少 **9 条**英文推理腔窗口（实测命中索引 2/3/4/10/36/39/41/312/445，开头形如 `The user is asking…`），「没有外来污染」不成立；这 9 条的来源与影响待查。
2. **「换采样救不动 = 卡在拟合偏差」** → 改为：现象是采样救不动；原因待验证（见 §5）。
3. **「单次跑的噪声其实很小」** → 收窄为：22/24 全有或全无说明的是**解码一致性**；训练种子方差还没有足够样本。

## 八、账

| 项 | 内容 | 花费 |
|---|---|---|
| D2s43 | 600 条换 seed 复现 + 三段评测 | ¥3.5 |
| D632 | 632 条 + 评测 | ¥4.1 |
| D632B | 剥 `**` 对照组（掐停） | ¥1.4 |
| DPO v1 | 采样 52min + 排障 110min + 训练 2min + 评测 36min | ¥7.3 |
| **分段合计** | | **¥16.3** |

**全天口径**：开机 7h42m × ¥2.18/h = **¥16.8**，与分段合计差 ≈¥0.5，落在段与段之间的空转。

- D632 在旧标题里写 ¥4.2（取整），求和用 ¥4.1，此处统一取 ¥4.1。
- **白烧 ≈¥5.7 是估计**：排障 110min（≈¥4.0）+ 链未检测报错空转 46min（≈¥1.7），两项有重叠部分。更早一版写的 ≈¥2.1 无构成说明，不再使用。

## 九、下一步（DPO v2，一次开机，目标 ≤¥6）

1. 配对改**相邻对** + 同义编辑对；放宽 gap 到 ≥1（不要 0.5）。
2. 题 60 → ~200，对子 ≥150，与评测零重叠；prompt 池筛掉 jaccard ≥0.6 的默写题。
3. 单字接话正例：**前缀强制采样**（种子用「哈，」「哦，」「对，」「好，」这类 2 字符前缀，不是孤立一个字）；备选金标当 chosen。
4. 奖励补闲聊长度下限（现行 20–250 区间放任闲聊继续变短）。
5. 剂量：lr 2e-5–5e-5、accum 4–8、2 epoch、每 epoch 存 adapter。
6. 采样改批量 `num_return_sequences`，52 分钟 → 十几分钟。
7. 判读开机前写死：采样口径末句问号 ≤38%、闲聊中位 ≥50、加粗分点不回升、哨兵 8/8。
8. SFT 端冻结，**D2s43 就是基线**，不再加新会话数据。
