research: audit task bootstrap CRN experiment
This commit is contained in:
@@ -0,0 +1,786 @@
|
||||
# DeepSeek-V2-Lite-Chat:32 题任务 bootstrap 与显式共同随机数审计
|
||||
|
||||
> 协议:`llm-atlas-deepseek-chat-task-bootstrap-crn-v1`
|
||||
>
|
||||
> 模型:`deepseek-ai/DeepSeek-V2-Lite-Chat`
|
||||
>
|
||||
> revision:`85864749cd611b4353ce1decdb286193298f64c7`
|
||||
>
|
||||
> 预注册协议:
|
||||
> `research/DEEPSEEK_V2_LITE_CHAT_TASK_BOOTSTRAP_PROTOCOL.md`
|
||||
>
|
||||
> 冻结清单:
|
||||
> `research/DEEPSEEK_V2_LITE_CHAT_TASK_BOOTSTRAP_MANIFEST.json`
|
||||
>
|
||||
> 执行日期:2026-07-30
|
||||
|
||||
## 0. 先说结论
|
||||
|
||||
Round 08 把 Round 07 的“每域 4 道题 × 4 seeds”扩成:
|
||||
|
||||
```text
|
||||
主分析:
|
||||
HumanEval 32 题 × T0 × 4 conditions = 128 outputs
|
||||
GSM8K 32 题 × T0 × 4 conditions = 128 outputs
|
||||
|
||||
随机带敏感性:
|
||||
每域 4 道固定题 × T0–T3 × 4 conditions
|
||||
其中 T1–T3 新增 96 outputs
|
||||
|
||||
正式总计:
|
||||
64 tasks × 4 conditions on T0
|
||||
+ 8 diagnostic tasks × 3 extra tapes × 4 conditions
|
||||
= 352 outputs
|
||||
```
|
||||
|
||||
四个条件不再只是“同 seed 对齐”,而是在同一道题、同一随机带、同一个生成步显式读取
|
||||
完全相同的均匀数 `u_t`。`.3/.95` 的温度和 nucleus 分布来自固定 checkpoint 与
|
||||
Transformers warper,离散取样则由本协议定义的 token-ID 顺序逆 CDF 完成。
|
||||
|
||||
最稳的观察不是 correctness,而是**输出长度具有明显的 domain × prompt 条件交互**:
|
||||
|
||||
- Code:在 period 边界下,打开 system 后平均缩短 `130.875` tokens;当前 32 题、T0
|
||||
selected-task resampling band 为 `[-178.688, -83.218]`;
|
||||
- Math:同一对比反而平均延长 `25.125` tokens;对应 band 为
|
||||
`[7.874, 44.531]`;
|
||||
- EOS 边界下的 system 长度差在两个 domain 都没有得到同样清楚的非零带;
|
||||
- 所有四个预注册 correctness contrast 的 selected-task band 在 Code 和 Math 中都跨
|
||||
0,不能写成稳定能力提升或下降;
|
||||
- 64 条独立跨进程 replay 在 12 个冻结字段上全部 `64 / 64 exact`。
|
||||
|
||||
因此,本轮最合理的结论是:
|
||||
|
||||
> 同一个 system 文本的生成长度效应并不是孤立、固定方向的“system 开关效应”;它依赖
|
||||
> 历史边界 token,并且在 Code 与 Math 两类任务上方向相反。correctness 的方向则仍有
|
||||
> 明显任务与随机带不确定性。
|
||||
|
||||
---
|
||||
|
||||
## 1. 为什么 Round 07 还不够
|
||||
|
||||
Round 07 已经避免了最明显的伪样本量错误:它没有把同一道题的四个 seed 当成四道独立
|
||||
题。但每域只有 4 道题:
|
||||
|
||||
```text
|
||||
4 tasks × 4 seeds × 4 conditions
|
||||
```
|
||||
|
||||
这仍有三个缺口:
|
||||
|
||||
1. 4 道题上的方向很容易被单题主导;
|
||||
2. 同一个 batch seed 不等于四行使用同一个随机数;
|
||||
3. 任务差异与 sampling 随机带差异没有被正交地拆开。
|
||||
|
||||
Round 08 因此把预算优先给更多任务,并额外留下一个小型交叉设计:
|
||||
|
||||
```text
|
||||
32 tasks × T0 → 主 selected-task 分析
|
||||
4 tasks × T0–T3 → tape sensitivity
|
||||
```
|
||||
|
||||
`4 tasks × 4 tapes` 是 crossed repeated measures,不是 16 道独立题。
|
||||
|
||||
---
|
||||
|
||||
## 2. 预注册与预运行修订
|
||||
|
||||
### 2.1 先冻结、后生成
|
||||
|
||||
首版协议与 64 题选择清单在任何本轮模型输出产生前提交:
|
||||
|
||||
```text
|
||||
6181af9 research: preregister task bootstrap CRN protocol
|
||||
```
|
||||
|
||||
实现与 256 个 Chat prompt hash 在 smoke 前提交:
|
||||
|
||||
```text
|
||||
a09e6b1 research: freeze Chat prompts and CRN runner
|
||||
```
|
||||
|
||||
评估、重放与 bootstrap 的指标口径已经写入首版协议;对应计算脚本在 formal 运行期间实现
|
||||
并提交:
|
||||
|
||||
```text
|
||||
65a91ae research: add task bootstrap evaluation pipeline
|
||||
```
|
||||
|
||||
脚本实现没有根据 correctness 结果替换题、随机带、contrast、bootstrap seed 或主指标。
|
||||
|
||||
### 2.2 修订 1:固定四行 batch
|
||||
|
||||
最初草案写成四条 trajectory 逐条 forward。实现审查发现这会把同一模型 forward 重复四
|
||||
次,预计增加约四倍 GPU/CPU-offload 时间。任何 smoke 输出之前,合同修订为:
|
||||
|
||||
- 固定四行 batch;
|
||||
- 行序 `s0_eos, s1_eos, s0_period, s1_period`;
|
||||
- 四行第 `t` 步读取同一个 `u_t`;
|
||||
- 某行 EOS 后,后续追加 PAD=EOS、attention mask 为 0;
|
||||
- batch 内不存在跨行 attention;
|
||||
- sampling 不调用 PyTorch RNG。
|
||||
|
||||
这项修订只改变执行效率与完成行的 padding 合同,没有看结果。
|
||||
|
||||
### 2.3 修订 2:纠正 Chat prompt hash
|
||||
|
||||
tokenizer-only 闸门在模型加载前发现,首版 manifest 把路由探针的短输入 hash 错标成了
|
||||
Chat 生成 prompt hash。例如 `HumanEval/31`:
|
||||
|
||||
```text
|
||||
路由探针 s0_eos:48 tokens
|
||||
Chat 生成 s0_eos:145 tokens
|
||||
```
|
||||
|
||||
当时:
|
||||
|
||||
- 本轮模型输出为 0;
|
||||
- checkpoint 尚未加载;
|
||||
- correctness 未计算。
|
||||
|
||||
清单随后:
|
||||
|
||||
1. 保留原字段,并改名为 `routing_probe_prompt_token_ids_sha256`;
|
||||
2. 用正式 Chat renderer 重新产生 64 × 4 = 256 个 hash;
|
||||
3. 写入 `chat_generation_prompt_token_ids_sha256`;
|
||||
4. runner 只核验后者。
|
||||
|
||||
最终:
|
||||
|
||||
| 项目 | SHA-256 |
|
||||
|---|---|
|
||||
| manifest 文件 | `6313e70536c464fe598a93035576752418f08016dfd60ac246437c3b43bf2ae1` |
|
||||
| manifest 规范内容 | `d15303e18345f6dec2aaf891ba812c0a0232b86f416f8f685eabbe818249e838` |
|
||||
| 256 Chat prompt 合同 | `7f766be54463c7f513948dd6d63a55e12b85b9220ee177361c743cd9997f6c3b` |
|
||||
|
||||
---
|
||||
|
||||
## 3. source 与执行网格
|
||||
|
||||
### 3.1 source 选择
|
||||
|
||||
两个 domain 都使用前序 routing control 中已冻结的全部 32 条:
|
||||
|
||||
```text
|
||||
sample salt = llm-atlas-deepseek-routing-template-control-v1
|
||||
within_domain_index = 0..31
|
||||
```
|
||||
|
||||
没有按 Round 07 pass、EOS、长度、文本质量或 selection rank 的“好看程度”二次筛选。
|
||||
完整 source ID、source hash、selection rank、四格 prompt hash 与 tape 分配见 manifest。
|
||||
|
||||
### 3.2 主随机带与诊断随机带
|
||||
|
||||
| tape | display seed |
|
||||
|---|---:|
|
||||
| T0 | 2,572,353,518 |
|
||||
| T1 | 399,507,326 |
|
||||
| T2 | 405,284,229 |
|
||||
| T3 | 568,701,915 |
|
||||
|
||||
全部 64 题运行 T0。每域 index `0, 8, 16, 24` 再运行 T1–T3。
|
||||
|
||||
### 3.3 独立 replay 子集
|
||||
|
||||
每域固定:
|
||||
|
||||
```text
|
||||
0, 4, 8, 12, 16, 20, 24, 28
|
||||
```
|
||||
|
||||
只 replay T0 × 四条件,共:
|
||||
|
||||
```text
|
||||
16 tasks × 4 conditions = 64 cells
|
||||
```
|
||||
|
||||
这不是看完 formal 后挑的“容易复现样本”。
|
||||
|
||||
---
|
||||
|
||||
## 4. 显式共同随机数取样器
|
||||
|
||||
### 4.1 `u_t` 的定义
|
||||
|
||||
对同一 `source_id + tape + step`:
|
||||
|
||||
```text
|
||||
H = SHA256(
|
||||
protocol_id + "\0uniform\0"
|
||||
+ tape_label + "\0"
|
||||
+ source_id + "\0"
|
||||
+ decimal(step)
|
||||
)
|
||||
|
||||
z_t = H[0:8] as big-endian uint64
|
||||
u_t = (z_t + 0.5) / 2^64
|
||||
```
|
||||
|
||||
四个 condition 使用完全相同的 `z_t / u_t`。每条 output 都记录:
|
||||
|
||||
-实际消费步数;
|
||||
-消费前缀的规范 SHA-256;
|
||||
-前 8 个 uint64 hex;
|
||||
- prompt、trajectory 与文本 hash。
|
||||
|
||||
离线审计从协议重新派生全部 352 条 output 的 uniform 前缀:
|
||||
|
||||
```text
|
||||
352 / 352 exact
|
||||
```
|
||||
|
||||
### 4.2 概率分布
|
||||
|
||||
每步:
|
||||
|
||||
1. fixed checkpoint 产生 BF16 logits;
|
||||
2. `TemperatureLogitsWarper(0.3)`;
|
||||
3. `TopPLogitsWarper(0.95, min_tokens_to_keep=1)`;
|
||||
4. float32 softmax;
|
||||
5. token ID 顺序 float32 CDF;
|
||||
6. CDF 最后一个值强制为 1;
|
||||
7. `u_t` 转 float32并 clamp 到相邻可表示开区间端点;
|
||||
8. `torch.searchsorted(..., right=False)` 选 token。
|
||||
|
||||
必须区分:
|
||||
|
||||
```text
|
||||
模型与 .3/.95 概率分布:官方固定对象
|
||||
离散 sampler:本协议的显式 inverse CDF
|
||||
```
|
||||
|
||||
本轮没有调用:
|
||||
|
||||
```text
|
||||
transformers.generate
|
||||
torch.multinomial
|
||||
```
|
||||
|
||||
所以不能把 trajectory 写成“官方 Transformers sampler 的 exact 输出”。
|
||||
|
||||
### 4.3 共同随机数不等于共同 token
|
||||
|
||||
共享的是概率积分尺度上的 `u_t`。prompt 条件改变 logits 后,同一个 `u_t` 会落入不同
|
||||
token 的 CDF 区间。
|
||||
|
||||
这正是想要的配对:
|
||||
|
||||
```text
|
||||
随机冲击相同
|
||||
条件分布不同
|
||||
→ token 可以不同
|
||||
```
|
||||
|
||||
八个 domain × contrast 的主分析中:
|
||||
|
||||
```text
|
||||
32 sources × 8 domain-contrasts
|
||||
= 256 / 256 shared-uniform-prefix audits exact
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. smoke 闸门
|
||||
|
||||
smoke:
|
||||
|
||||
```text
|
||||
每域 index 0,8,16,24
|
||||
× T0/T1
|
||||
× 4 conditions
|
||||
× 16-token cap
|
||||
= 64 short outputs
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
| 闸门 | 结果 |
|
||||
|---|---:|
|
||||
| Chat prompt hash | 256 / 256 exact |
|
||||
| short outputs | 64 / 64 |
|
||||
| 同进程 T0 replay | 32 / 32 exact |
|
||||
| T0/T1 可比格 | 32 |
|
||||
| T0/T1 trajectory 分叉 | 17 / 32 |
|
||||
| RNG state 前后不变 | 16 / 16 runs |
|
||||
| synthetic inverse-CDF test | passed |
|
||||
| OOM / NaN / exception | 0 |
|
||||
|
||||
smoke 文件:
|
||||
|
||||
```text
|
||||
/tmp/deepseek-v2-lite-chat-task-bootstrap-smoke.json
|
||||
SHA-256 c868e74f88e39343f95524b4b38d0c1503f727a22d4dfa3937532514205110b5
|
||||
```
|
||||
|
||||
smoke 不进入正式统计。
|
||||
|
||||
---
|
||||
|
||||
## 6. 正式执行账
|
||||
|
||||
### 6.1 总数
|
||||
|
||||
| 项目 | 数值 |
|
||||
|---|---:|
|
||||
| tasks | 64 |
|
||||
| source × tape runs | 88 |
|
||||
| outputs | 352 |
|
||||
| T0 主 outputs | 256 |
|
||||
| T1–T3 新增诊断 outputs | 96 |
|
||||
| natural EOS | 343 |
|
||||
| budget truncated | 9 |
|
||||
| unique trajectory hashes | 320 |
|
||||
| RNG state 前后不变 | 88 / 88 runs |
|
||||
|
||||
### 6.2 分 domain 的全部 formal outputs
|
||||
|
||||
这里含诊断题 T1–T3,只用于执行账,不是主通过率。
|
||||
|
||||
| domain | outputs | natural EOS | truncated | mean tokens |
|
||||
|---|---:|---:|---:|---:|
|
||||
| Code | 176 | 168 | 8 | 277.278 |
|
||||
| Math | 176 | 175 | 1 | 183.188 |
|
||||
|
||||
### 6.3 资源
|
||||
|
||||
| 项目 | 数值 |
|
||||
|---|---:|
|
||||
| checkpoint load | 8.344 s |
|
||||
| formal generation sum | 4,336.699 s |
|
||||
| peak CUDA allocated | 29,919,644,672 bytes |
|
||||
| peak CUDA allocated | 27.864 GiB |
|
||||
| GPU | NVIDIA GeForce RTX 5090 |
|
||||
| dtype | BF16 |
|
||||
| CUDA resident | embedding + layers 0–23 |
|
||||
| CPU offload | layers 24–26 + norm + lm_head |
|
||||
|
||||
这不是 serving benchmark。CPU-offloaded eager latency 不能外推成吞吐。
|
||||
|
||||
---
|
||||
|
||||
## 7. 独立 evaluator
|
||||
|
||||
### 7.1 HumanEval sandbox
|
||||
|
||||
固定:
|
||||
|
||||
```text
|
||||
python:3.11-alpine
|
||||
@sha256:25976e9d34a0fab1f278cae931f34c8303d97bf0c0d7f85b6b4dcf641d7702a4
|
||||
```
|
||||
|
||||
约束:
|
||||
|
||||
- network none;
|
||||
- read-only root filesystem;
|
||||
- user `65534:65534`;
|
||||
- drop ALL capabilities;
|
||||
- no-new-privileges;
|
||||
- 256 MiB memory / swap;
|
||||
- 64 PIDs;
|
||||
- 0.5 CPU;
|
||||
- 5 秒 timeout;
|
||||
- host mounts 0。
|
||||
|
||||
### 7.2 T0 主评估总账
|
||||
|
||||
| domain | outputs | fixed-budget pass | strict pass | natural EOS | truncated | mean tokens |
|
||||
|---|---:|---:|---:|---:|---:|---:|
|
||||
| Code | 128 | 59 | 59 | 122 | 6 | 284.227 |
|
||||
| Math | 128 | 71 | 71 | 127 | 1 | 185.969 |
|
||||
|
||||
不要把 `59 / 128` 或 `71 / 128` 当成标准 benchmark 分数。分母是:
|
||||
|
||||
```text
|
||||
32 frozen tasks × 4 prompt conditions
|
||||
```
|
||||
|
||||
同一道题在四条件中重复出现。
|
||||
|
||||
### 7.3 失败分类
|
||||
|
||||
HumanEval T0:
|
||||
|
||||
| outcome | count |
|
||||
|---|---:|
|
||||
| passed | 59 |
|
||||
| assertion failed | 47 |
|
||||
| runtime error | 16 |
|
||||
| timeout | 3 |
|
||||
| extract failed | 2 |
|
||||
| syntax error | 1 |
|
||||
|
||||
GSM8K T0:
|
||||
|
||||
| outcome | count |
|
||||
|---|---:|
|
||||
| numeric exact | 71 |
|
||||
| wrong numeric answer | 57 |
|
||||
| no numeric answer | 0 |
|
||||
|
||||
通过 HumanEval tests 只是功能证据,不是安全证据。
|
||||
|
||||
---
|
||||
|
||||
## 8. T0 四条件:先看原始格
|
||||
|
||||
### 8.1 Code
|
||||
|
||||
| condition | pass / 32 | natural EOS / 32 | mean tokens |
|
||||
|---|---:|---:|---:|
|
||||
| `s0_eos` | 16 | 30 | 330.094 |
|
||||
| `s1_eos` | 16 | 30 | 308.938 |
|
||||
| `s0_period` | 15 | 31 | 314.375 |
|
||||
| `s1_period` | 12 | 31 | 183.500 |
|
||||
|
||||
### 8.2 Math
|
||||
|
||||
| condition | pass / 32 | natural EOS / 32 | mean tokens |
|
||||
|---|---:|---:|---:|
|
||||
| `s0_eos` | 19 | 31 | 181.406 |
|
||||
| `s1_eos` | 19 | 32 | 190.969 |
|
||||
| `s0_period` | 17 | 32 | 173.188 |
|
||||
| `s1_period` | 16 | 32 | 198.313 |
|
||||
|
||||
同样的 `s1_period`,在 Code 中最短,在 Math 中却最长。这比一个全域平均值更重要。
|
||||
|
||||
---
|
||||
|
||||
## 9. selected-task bootstrap
|
||||
|
||||
### 9.1 它是什么
|
||||
|
||||
每个 domain:
|
||||
|
||||
-固定 T0;
|
||||
- 32 题有放回重采样 32 题;
|
||||
-四条件保持题级配对;
|
||||
- 10,000 次;
|
||||
- `numpy.random.default_rng`;
|
||||
- seed `1,364,512,825`;
|
||||
-报告 mean contrast 的 percentile 2.5 / 50 / 97.5%。
|
||||
|
||||
准确标签:
|
||||
|
||||
> 当前冻结 32 题、固定 T0 的 selected-task resampling band。
|
||||
|
||||
它不是:
|
||||
|
||||
-完整 benchmark population CI;
|
||||
-模型能力 CI;
|
||||
- generation-seed uncertainty CI;
|
||||
-因果效应 CI。
|
||||
|
||||
### 9.2 correctness:所有带都跨 0
|
||||
|
||||
右减左,单位为每题成功率:
|
||||
|
||||
| domain | contrast | point | selected-task band |
|
||||
|---|---|---:|---:|
|
||||
| Code | period at s0 | -0.0313 | [-0.1563, 0.0938] |
|
||||
| Code | period at s1 | -0.1250 | [-0.3438, 0.0938] |
|
||||
| Code | system at EOS | 0.0000 | [-0.1250, 0.1250] |
|
||||
| Code | system at period | -0.0938 | [-0.2500, 0.0625] |
|
||||
| Math | period at s0 | -0.0625 | [-0.2188, 0.0938] |
|
||||
| Math | period at s1 | -0.0938 | [-0.2500, 0.0625] |
|
||||
| Math | system at EOS | 0.0000 | [-0.1563, 0.1563] |
|
||||
| Math | system at period | -0.0313 | [-0.1563, 0.0938] |
|
||||
|
||||
点估计里 period 条件经常更低,但任务重采样带都覆盖 0。不能把点估计写成稳定能力损失。
|
||||
|
||||
### 9.3 correctness 转移表
|
||||
|
||||
`right` 相对 `left`:
|
||||
|
||||
| domain | contrast | fail→pass | pass→fail | both pass | both fail |
|
||||
|---|---|---:|---:|---:|---:|
|
||||
| Code | period at s0 | 2 | 3 | 13 | 14 |
|
||||
| Code | period at s1 | 4 | 8 | 8 | 12 |
|
||||
| Code | system at EOS | 2 | 2 | 14 | 14 |
|
||||
| Code | system at period | 2 | 5 | 10 | 15 |
|
||||
| Math | period at s0 | 3 | 5 | 14 | 10 |
|
||||
| Math | period at s1 | 2 | 5 | 14 | 11 |
|
||||
| Math | system at EOS | 3 | 3 | 16 | 10 |
|
||||
| Math | system at period | 2 | 3 | 14 | 13 |
|
||||
|
||||
即使平均差是 0,也可能同时有 fail→pass 与 pass→fail。例如 system at EOS 在两个 domain
|
||||
都恰好净 0,但不是每题完全不变。
|
||||
|
||||
### 9.4 输出长度
|
||||
|
||||
右减左,单位 tokens:
|
||||
|
||||
| domain | contrast | point | selected-task band |
|
||||
|---|---|---:|---:|
|
||||
| Code | period at s0 | -15.719 | [-57.627, 24.938] |
|
||||
| Code | period at s1 | -125.438 | [-165.031, -85.125] |
|
||||
| Code | system at EOS | -21.156 | [-47.846, 2.438] |
|
||||
| Code | system at period | -130.875 | [-178.688, -83.218] |
|
||||
| Math | period at s0 | -8.219 | [-27.563, 8.688] |
|
||||
| Math | period at s1 | 7.344 | [-9.407, 26.094] |
|
||||
| Math | system at EOS | 9.563 | [-4.938, 25.188] |
|
||||
| Math | system at period | 25.125 | [7.874, 44.531] |
|
||||
|
||||
两个清楚不跨 0 的 system-at-period 长度带方向相反:
|
||||
|
||||
```text
|
||||
Code → system on 更短
|
||||
Math → system on 更长
|
||||
```
|
||||
|
||||
这是一条比“system prompt 会让输出变短/变长”更精确的结论:
|
||||
|
||||
> system 的长度关联依赖 boundary 与 domain。
|
||||
|
||||
### 9.5 EOS
|
||||
|
||||
EOS contrast 很小:
|
||||
|
||||
- Code:四个 contrast 的 point 在 `0` 或 `+1/32`;
|
||||
- Math:同样只在 `0` 或 `+1/32`;
|
||||
-大部分 source 的 EOS 状态不变。
|
||||
|
||||
因此,Code 中 `-130.875` token 的 system-at-period 差异主要不是简单的“更多题命中 EOS”
|
||||
造成,而是在都自然结束的 trajectory 内结束得更早。
|
||||
|
||||
---
|
||||
|
||||
## 10. trajectory 与 first divergence
|
||||
|
||||
### 10.1 共同随机数审计
|
||||
|
||||
| domain | contrast | uniform exact | exact full trajectory | mean common-prefix tokens |
|
||||
|---|---|---:|---:|---:|
|
||||
| Code | period at s0 | 32 / 32 | 0 | 13.25 |
|
||||
| Code | period at s1 | 32 / 32 | 0 | 3.69 |
|
||||
| Code | system at EOS | 32 / 32 | 0 | 23.91 |
|
||||
| Code | system at period | 32 / 32 | 1 | 11.88 |
|
||||
| Math | period at s0 | 32 / 32 | 6 | 52.53 |
|
||||
| Math | period at s1 | 32 / 32 | 1 | 22.91 |
|
||||
| Math | system at EOS | 32 / 32 | 6 | 59.44 |
|
||||
| Math | system at period | 32 / 32 | 1 | 27.75 |
|
||||
|
||||
同一个 `u_t` 没有让四格“黏”成相同 token。特别是 Code 的 `s1` period contrast 平均只
|
||||
共享约 3.7 个前缀 token 就分叉。
|
||||
|
||||
Math 的共同前缀更长、exact trajectory 更多,说明 prompt 条件的作用方式也有 domain
|
||||
差异。
|
||||
|
||||
---
|
||||
|
||||
## 11. 四随机带诊断
|
||||
|
||||
每域固定四题,不外推为 32 题总体。
|
||||
|
||||
### 11.1 correctness contrast 的 tape means
|
||||
|
||||
右减左;每个值是 4 道诊断题的均值:
|
||||
|
||||
#### Code
|
||||
|
||||
| contrast | T0 | T1 | T2 | T3 |
|
||||
|---|---:|---:|---:|---:|
|
||||
| period at s0 | 0.00 | 0.00 | 0.00 | 0.00 |
|
||||
| period at s1 | -0.25 | 0.00 | 0.00 | 0.00 |
|
||||
| system at EOS | 0.00 | 0.00 | 0.00 | 0.00 |
|
||||
| system at period | -0.25 | 0.00 | 0.00 | 0.00 |
|
||||
|
||||
Code 的四题诊断子集中,T0 上的两个 `-0.25` 没有在 T1–T3 重现。它支持谨慎解释主
|
||||
correctness 点估计。
|
||||
|
||||
#### Math
|
||||
|
||||
| contrast | T0 | T1 | T2 | T3 |
|
||||
|---|---:|---:|---:|---:|
|
||||
| period at s0 | 0.00 | 0.00 | -0.25 | +0.25 |
|
||||
| period at s1 | -0.50 | -0.75 | -0.25 | -0.50 |
|
||||
| system at EOS | 0.00 | +0.50 | -0.25 | +0.25 |
|
||||
| system at period | -0.50 | -0.25 | -0.25 | -0.50 |
|
||||
|
||||
Math 四题上,方向与幅度都明显依赖 tape;四题太少,不能把这些数当成稳定概率。
|
||||
|
||||
### 11.2 长度 contrast 的 tape means
|
||||
|
||||
#### Code
|
||||
|
||||
| contrast | T0 | T1 | T2 | T3 |
|
||||
|---|---:|---:|---:|---:|
|
||||
| period at s0 | -14.50 | +44.50 | +13.50 | -16.75 |
|
||||
| period at s1 | -108.50 | -155.00 | -21.00 | -163.25 |
|
||||
| system at EOS | -59.00 | +6.00 | -90.00 | -39.50 |
|
||||
| system at period | -153.00 | -193.50 | -124.50 | -186.00 |
|
||||
|
||||
Code 的 system-at-period 在四条 tape 上都明显为负;period-at-s1 也都为负,但 T2 幅度
|
||||
较小。
|
||||
|
||||
#### Math
|
||||
|
||||
| contrast | T0 | T1 | T2 | T3 |
|
||||
|---|---:|---:|---:|---:|
|
||||
| period at s0 | -5.25 | +31.25 | -10.00 | +4.00 |
|
||||
| period at s1 | +0.50 | +0.25 | +3.25 | -2.50 |
|
||||
| system at EOS | -3.00 | +54.75 | -7.50 | +32.75 |
|
||||
| system at period | +2.75 | +23.75 | +5.75 | +26.25 |
|
||||
|
||||
Math 四题上的 system-at-period 四条 tape 都为正,但幅度从 `+2.75` 到 `+26.25`。
|
||||
|
||||
诊断支持长度交互的方向,但仍只覆盖 4 道题 × 4 条 tape。
|
||||
|
||||
---
|
||||
|
||||
## 12. 独立跨进程 replay
|
||||
|
||||
重放结果:
|
||||
|
||||
```text
|
||||
16 sources × T0 × 4 conditions = 64 cells
|
||||
```
|
||||
|
||||
| 字段 | exact |
|
||||
|---|---:|
|
||||
| run seed | 64 / 64 |
|
||||
| prompt hash | 64 / 64 |
|
||||
| full run uniform hash | 64 / 64 |
|
||||
| output uniform-prefix hash | 64 / 64 |
|
||||
| uniform steps | 64 / 64 |
|
||||
| generated token IDs | 64 / 64 |
|
||||
| decoded text | 64 / 64 |
|
||||
| EOS state | 64 / 64 |
|
||||
| truncation state | 64 / 64 |
|
||||
| CPU RNG pre-state | 64 / 64 |
|
||||
| CUDA RNG pre-state | 64 / 64 |
|
||||
| RNG unchanged flag | 64 / 64 |
|
||||
|
||||
总闸门:
|
||||
|
||||
```text
|
||||
64 / 64 all preregistered fields exact
|
||||
```
|
||||
|
||||
这证明固定硬件/软件/精度/执行合同下的逐 token 可重放,不证明换 GPU、PyTorch、
|
||||
Transformers、kernel 或 dtype 后仍 exact。
|
||||
|
||||
---
|
||||
|
||||
## 13. 已知偏离与限制
|
||||
|
||||
### 13.1 gold 文件打开时机偏离
|
||||
|
||||
runner 复用了前序 `behavior.task_score` 路径:
|
||||
|
||||
1. 在模型加载前读取 HumanEval / GSM8K gold;
|
||||
2. 每条文本生成结束后附加一个 narrow `task_score`;
|
||||
3. authoritative evaluator 在全部 formal 输出冻结后另行运行。
|
||||
|
||||
这不满足协议中最严格的“gold 只在生成进程结束后打开”表述。
|
||||
|
||||
为什么它不改变 trajectory:
|
||||
|
||||
- gold 不进入 message / prompt;
|
||||
- gold 不进入 tokenizer 输入;
|
||||
- gold 不进入 logits、warper、CDF 或 `u_t`;
|
||||
- gold 不改变 source、tape、max tokens 或 stop;
|
||||
- `task_score` 在 token 序列生成结束后才调用;
|
||||
-独立 evaluator 的 352 行结果不读取 runner 的 `task_score`;
|
||||
- 64-cell replay exact。
|
||||
|
||||
因此它是**真实的流程隔离偏离**,但没有已知的生成因果路径。后续 runner 应删除
|
||||
`task_score`,让生成进程完全不打开 gold。
|
||||
|
||||
### 13.2 不是完整 benchmark
|
||||
|
||||
HumanEval 只使用冻结 32 / 164 tasks;GSM8K 只使用冻结 32 / 1,319 test tasks。source
|
||||
selection 是前序 SHA 排序合同,不是完整 benchmark。
|
||||
|
||||
### 13.3 一条主随机带
|
||||
|
||||
32 题主分析只用 T0。selected-task band 不包含 generation-tape uncertainty。
|
||||
|
||||
### 13.4 多随机带只有四题
|
||||
|
||||
T0–T3 诊断只覆盖每域四题。它揭示 sensitivity,但不能稳定估计 tape 方差。
|
||||
|
||||
### 13.5 counterfactual 不可部署
|
||||
|
||||
period cell 是把一个官方 EOS boundary ID 改为普通句点 ID。它不是官方有效聊天格式。
|
||||
|
||||
### 13.6 成功不是安全
|
||||
|
||||
HumanEval pass 只说明固定 tests 通过。它不说明:
|
||||
|
||||
-安全;
|
||||
-鲁棒;
|
||||
-无未测 bug;
|
||||
-可部署。
|
||||
|
||||
---
|
||||
|
||||
## 14. 证据文件与 SHA-256
|
||||
|
||||
| 文件 | SHA-256 |
|
||||
|---|---|
|
||||
| formal sampling | `ea0607f2b197fac3f794655c1538ce1f9a1cb072d637eb31d35573682e311809` |
|
||||
| independent evaluation | `82b2fc5d1f854a7e0cd7aba7c70ff74d733d24221522a4f92b962478c76177ab` |
|
||||
| replay generation | `6519947e2fa4327c1ba2cc506b0861f172a6bdbd4f2d6787447edaf8fbcac508` |
|
||||
| reproduction comparison | `63ed39e5dcdbc2a30e516172f3657dfa453ff3b23d5bd5c49c734939242a70f5` |
|
||||
| bootstrap analysis | `9ab17561ced930a668c082141f7c6e013cbda70e42b09de63d41f1b82c01a6ae` |
|
||||
| compact website data | `082e3c56373e5f91d51d88b1430d14ad3b68b0f200e80901171c2fb62a1e57bf` |
|
||||
| frozen manifest | `6313e70536c464fe598a93035576752418f08016dfd60ac246437c3b43bf2ae1` |
|
||||
|
||||
离线一致性检查:
|
||||
|
||||
```bash
|
||||
node scripts/check-deepseek-chat-task-bootstrap-crn-data.mjs
|
||||
```
|
||||
|
||||
通过:
|
||||
|
||||
```text
|
||||
formal sources 64
|
||||
formal runs 88
|
||||
formal outputs 352
|
||||
prompt hashes exact 256
|
||||
uniform output hashes exact 352
|
||||
RNG unchanged runs 88
|
||||
evaluation rows 352
|
||||
reproduction exact cells 64 / 64
|
||||
CRN contrast checks 256
|
||||
bootstrap resamples 10,000
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 15. 最终结论该怎么写
|
||||
|
||||
### 可以写
|
||||
|
||||
1. 在当前固定 32 道 HumanEval、T0 下,system-at-period 的平均输出长度比 system-off
|
||||
短约 131 tokens,selected-task band 不跨 0;
|
||||
2. 在当前固定 32 道 GSM8K、T0 下,同一 contrast 平均长约 25 tokens,band 方向相反;
|
||||
3. 两个 domain 的 correctness contrast bands 都跨 0;
|
||||
4. 每域四题的 T0–T3 诊断显示 correctness 对 tape 敏感,长度交互的方向相对更一致;
|
||||
5. 显式 CRN 与 64-cell 跨进程 replay 都通过 exact audit。
|
||||
|
||||
### 不可以写
|
||||
|
||||
1. “system prompt 普遍让代码更短、数学更长”;
|
||||
2. “period 会降低 DeepSeek 的总体能力”;
|
||||
3. “这些是完整 HumanEval / GSM8K 分数”;
|
||||
4. “selected-task band 是模型总体 95% CI”;
|
||||
5. “period 是官方聊天格式”;
|
||||
6. “通过 HumanEval tests 就安全”;
|
||||
7. “本协议 trajectory 等于官方 `torch.multinomial` trajectory”。
|
||||
|
||||
本轮真正增加的不是一个更大的数字,而是一条更干净的推理链:
|
||||
|
||||
```text
|
||||
固定任务
|
||||
→ 固定概率分布
|
||||
→ 显式共享随机冲击
|
||||
→ 条件内逐题配对
|
||||
→ 任务重采样
|
||||
→ 独立随机带诊断
|
||||
→ 跨进程逐 token 重放
|
||||
```
|
||||
|
||||
它让“prompt 边界如何改变生成行为”从单题现象,前进到一个仍有限、但可审计的任务级机制
|
||||
实验。
|
||||
Reference in New Issue
Block a user