# 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 边界如何改变生成行为”从单题现象,前进到一个仍有限、但可审计的任务级机制 实验。