feat: add task bootstrap CRN lab

This commit is contained in:
wuyang
2026-07-30 06:15:45 +08:00
parent f041c15e81
commit 975ed3dce2
11 changed files with 1199 additions and 29 deletions
+13 -3
View File
@@ -14,7 +14,7 @@
| 表示、位置与残差高速公路 | 完成首版 | 81% | 真实 hidden-state / norm traces、长上下文位置外推与深层稳定性消融 | | 表示、位置与残差高速公路 | 完成首版 | 81% | 真实 hidden-state / norm traces、长上下文位置外推与深层稳定性消融 |
| Scaling Laws | 完成首版 | 74% | 真实拟合复现、置信区间与更多模型族对照 | | Scaling Laws | 完成首版 | 74% | 真实拟合复现、置信区间与更多模型族对照 |
| 数据工程与预训练配方 | 完成首版 | 73% | FineWeb / DCLM 逐图精读、真实去重误伤与 mixture traces | | 数据工程与预训练配方 | 完成首版 | 73% | FineWeb / DCLM 逐图精读、真实去重误伤与 mixture traces |
| DeepSeek 专题 | 七轮实证进行中 | 99% | 扩大到可做 task-level bootstrap,加入 per-row RNG,再推进干预式 mediation、SM90 FlashMLA、FP8/pipeline 与 R1-like RL | | DeepSeek 专题 | 八轮实证进行中 | 99% | 推进干预式 mediation、SM90 FlashMLA、FP8/pipeline 与 R1-like RL |
| 指令微调与人类偏好 | 完成首版 | 75% | 真实偏好分歧、RM 长度偏置与 PPO/DPO 小模型复现 | | 指令微调与人类偏好 | 完成首版 | 75% | 真实偏好分歧、RM 长度偏置与 PPO/DPO 小模型复现 |
| 推理与测试时扩展 | 完成首版 | 76% | 真实模型采样曲线、PRM 案例与逐篇图表精读 | | 推理与测试时扩展 | 完成首版 | 76% | 真实模型采样曲线、PRM 案例与逐篇图表精读 |
| 工具使用与长程 Agent | 完成首版 | 74% | 真实环境 traces、cross-harness 对照、Agent RL 曲线与安全案例 | | 工具使用与长程 Agent | 完成首版 | 74% | 真实环境 traces、cross-harness 对照、Agent RL 曲线与安全案例 |
@@ -41,7 +41,7 @@
- [x] 完成 486 篇关键论文索引,覆盖 16 个标签专题与 Kimi/DeepSeek 聚光主线。 - [x] 完成 486 篇关键论文索引,覆盖 16 个标签专题与 Kimi/DeepSeek 聚光主线。
- [x] 完成可检索、可按专题筛选的论文库页面。 - [x] 完成可检索、可按专题筛选的论文库页面。
- [x] 完成 K3、语言模型前史、Transformer 基础、表示/位置/残差、DeepSeek 谱系、Scaling Laws、数据工程、长上下文、MoE、指令微调与人类偏好、推理、Agent、原生多模态、训练系统、推理服务、数值优化与评测安全十七篇首版长文。 - [x] 完成 K3、语言模型前史、Transformer 基础、表示/位置/残差、DeepSeek 谱系、Scaling Laws、数据工程、长上下文、MoE、指令微调与人类偏好、推理、Agent、原生多模态、训练系统、推理服务、数值优化与评测安全十七篇首版长文。
- [x] 完成 K3 三轴架构、八联报告实验与四联开放工件实验、语言模型前史四联实验、Transformer 四联实验、表示深度四联实验、DeepSeek 二十一联实验、长上下文、MoE 路由、推理三页签,以及训练系统、推理服务、Scaling、数据工程、数值、Alignment、Agent、原生多模态与评测安全专题各四页签等八十八个原创交互视图。 - [x] 完成 K3 三轴架构、八联报告实验与四联开放工件实验、语言模型前史四联实验、Transformer 四联实验、表示深度四联实验、DeepSeek 二十二联实验、长上下文、MoE 路由、推理三页签,以及训练系统、推理服务、Scaling、数据工程、数值、Alignment、Agent、原生多模态与评测安全专题各四页签等八十九个原创交互视图。
- [x] 完成长上下文首版:五张成本账、26 篇一手论文、10+ 机制图与 8 策略交互实验室。 - [x] 完成长上下文首版:五张成本账、26 篇一手论文、10+ 机制图与 8 策略交互实验室。
- [x] 核验 FlashAttention、DeepSeek-V2/V3.2/V4、Kimi Linear/K3 等六份论文原文,并建立长上下文研究账本。 - [x] 核验 FlashAttention、DeepSeek-V2/V3.2/V4、Kimi Linear/K3 等六份论文原文,并建立长上下文研究账本。
- [x] 核验 Switch、ST-MoE、DeepSeekMoE、Loss-Free、V3、LatentMoE 与 K3 原文,并建立 MoE 研究账本。 - [x] 核验 Switch、ST-MoE、DeepSeekMoE、Loss-Free、V3、LatentMoE 与 K3 原文,并建立 MoE 研究账本。
@@ -264,11 +264,17 @@
- [x] 第二十一个 DeepSeek 交互实验以四页签讲解 source→seed 层级、Math/Code 4×4 task matrix、source-level 方向与均值反例、64 格八字段复现及五段 hash chain;协议、完整审计、探针、独立 evaluator、analysis 与 compact builder 全部落盘。 - [x] 第二十一个 DeepSeek 交互实验以四页签讲解 source→seed 层级、Math/Code 4×4 task matrix、source-level 方向与均值反例、64 格八字段复现及五段 hash chain;协议、完整审计、探针、独立 evaluator、analysis 与 compact builder 全部落盘。
- [x] Round 07 本地闸门通过:83 个 Astro 文件零诊断,21 个页面、1,151 个站内引用、12 个跨页锚点零失败;Python 探针/评测/分析编译通过,compact builder 重建 SHA-256 不变。跨来源专项与 DeepSeek 全量真实 Chrome 回归通过,4×4 矩阵、English 反例、键盘页签、桌面/390px 移动端无溢出及零运行时异常均有自动断言。 - [x] Round 07 本地闸门通过:83 个 Astro 文件零诊断,21 个页面、1,151 个站内引用、12 个跨页锚点零失败;Python 探针/评测/分析编译通过,compact builder 重建 SHA-256 不变。跨来源专项与 DeepSeek 全量真实 Chrome 回归通过,4×4 矩阵、English 反例、键盘页签、桌面/390px 移动端无溢出及零运行时异常均有自动断言。
- [x] DeepSeek Round 07 以源提交 `9211333`、不可变镜像 `20260729T195952Z-9211333` 发布;OCI index digest `sha256:6c92883b…5584e2`,复用 NAS `12010→8080`、NPM host 31 / cert 41 与门户 `LLM ATLAS / projects / 180`。容器 healthy、0 次重启,NAS / VPS Tailscale / HTTPS / gzip / immutable assets、跨来源专项与 DeepSeek 全量生产 Chrome 回归通过;保留 `20260729T180228Z-580f696` 回滚。 - [x] DeepSeek Round 07 以源提交 `9211333`、不可变镜像 `20260729T195952Z-9211333` 发布;OCI index digest `sha256:6c92883b…5584e2`,复用 NAS `12010→8080`、NPM host 31 / cert 41 与门户 `LLM ATLAS / projects / 180`。容器 healthy、0 次重启,NAS / VPS Tailscale / HTTPS / gzip / immutable assets、跨来源专项与 DeepSeek 全量生产 Chrome 回归通过;保留 `20260729T180228Z-580f696` 回滚。
- [x] DeepSeek Round 08 在任何正式输出前冻结 HumanEval / GSM8K 各 32 条任务、四条件、T0 主分析与 T1–T3 诊断,并把共同随机数实现为 SHA-256 派生的显式 uniform tape;四个条件对同一 `u_t` 各自计算 float32 CDF,不再把 generator seed 重置冒充 CRN。
- [x] 64 条短 smoke 的 prompt 64/64 exact、同进程重放 32/32 exact、CPU/CUDA RNG 16/16 不变;正式执行 64 tasks × T0 × 4 conditions 与 8 tasks × T1–T3 × 4 conditions,共 352 条输出,343 条 natural EOS、9 条截断、320 个完整 trajectory hashes。
- [x] 独立 evaluator 对 256 条 T0 输出逐题评分:Code 四格 pass 为 `16/32 · 16/32 · 15/32 · 12/32`,Math 为 `19/32 · 19/32 · 17/32 · 16/32`;不把 59/128 与 71/128 写成 benchmark accuracy。
- [x] 两域分别做 10,000 次选定任务 paired bootstrap,八个正确性 contrast 区间都跨零;长度 system-at-period 在 Code 为 `−130.875 [−178.688,−83.218]`,Math 为 `+25.125 [7.874,44.531]`,揭示任务域方向相反。
- [x] 共同随机数对照的 256 / 256 个 contrast 全部共享相同 uniform tape;新进程重放 64 条结果,uniform hashes、token IDs、文本、停止状态与 RNG 等十二字段全部 64 / 64 exact。审计同时公开运行器在生成进程结束前已加载 gold、但 gold 没有进入 prompt/tokenizer/logits/warpers/CDF/tape/selection 的流程偏差。
- [x] 第二十二个 DeepSeek 交互实验用五页签讲解显式 CRN sampler、选定任务 bootstrap、32 题浏览器、4×4 tape 诊断与十二字段复现/失败/偏差账;正式协议、manifest、runner、独立 evaluator、分析、复现与完整/compact 数据均已进入开源树。
## 正在进行 ## 正在进行
- [ ] K3 三轮下一闸门:获得真实 token hidden states、expert load 与 cache traces,解释或修订 `A_log [128]` 工件冲突,再做 Figure 3/4/5 数值重绘和独立小模型复现。 - [ ] K3 三轮下一闸门:获得真实 token hidden states、expert load 与 cache traces,解释或修订 `A_log [128]` 工件冲突,再做 Figure 3/4/5 数值重绘和独立小模型复现。
- [ ] DeepSeek 七轮下一闸门:扩大到可做 task-level bootstrap 的预注册 source 抽样框,加入 per-row RNG/common-random-number 对照与 failure taxonomy;再推进干预式 mediation、SM90 FlashMLA、FP8 / pipeline traces 与 R1-like RL 小模型复现。 - [ ] DeepSeek 八轮下一闸门:推进干预式 mediation、SM90 FlashMLA、FP8 / pipeline traces 与 R1-like RL 小模型复现。
- [ ] 表示、位置与残差二轮:真实 hidden-state / norm traces、长上下文位置外推复现与 mHC / AttnRes 深层稳定性消融。 - [ ] 表示、位置与残差二轮:真实 hidden-state / norm traces、长上下文位置外推复现与 mHC / AttnRes 深层稳定性消融。
- [ ] 评测安全二轮:真实 cross-harness / pass@k 复跑、Judge 元评测、动态污染与过拒案例。 - [ ] 评测安全二轮:真实 cross-harness / pass@k 复跑、Judge 元评测、动态污染与过拒案例。
- [ ] 推理服务二轮:真实 GPU kernel / workload traces、功耗与成本、跨 vLLM / SGLang / TensorRT-LLM 复现。 - [ ] 推理服务二轮:真实 GPU kernel / workload traces、功耗与成本、跨 vLLM / SGLang / TensorRT-LLM 复现。
@@ -451,6 +457,10 @@
| 2026-07-30 | 域均值必须与 source 方向同时展示 | English 句点 contrast 的均值 −8.5,但 3/4 source 为正;Code task interaction 的 +1 与 −1 在域均值 0 中抵消 | | 2026-07-30 | 域均值必须与 source 方向同时展示 | English 句点 contrast 的均值 −8.5,但 3/4 source 为正;Code task interaction 的 +1 与 −1 在域均值 0 中抵消 |
| 2026-07-30 | Round 07 随机分叉与复现同时过闸 | R0/R1 63/64 同格 trajectory 分叉;新进程 R0 的八项预注册字段 64/64 exact,五段 artifact hash chain 闭合 | | 2026-07-30 | Round 07 随机分叉与复现同时过闸 | R0/R1 63/64 同格 trajectory 分叉;新进程 R0 的八项预注册字段 64/64 exact,五段 artifact hash chain 闭合 |
| 2026-07-30 | DeepSeek Round 07 跨来源采样里程碑发布 | 源提交 `9211333`、镜像 `20260729T195952Z-9211333`、OCI `sha256:6c92883b…5584e2`;生产专项/全量 Chrome、HTTPS 与门户通过,保留 Round 06 回滚点 | | 2026-07-30 | DeepSeek Round 07 跨来源采样里程碑发布 | 源提交 `9211333`、镜像 `20260729T195952Z-9211333`、OCI `sha256:6c92883b…5584e2`;生产专项/全量 Chrome、HTTPS 与门户通过,保留 Round 06 回滚点 |
| 2026-07-30 | Round 08 用显式 uniform tape 实现真正的共同随机数 | 64 tasks × T0 × 4 conditions,加 8 tasks × 3 诊断 tapes × 4 conditions;352 条正式输出的四条件 CDF 共享逐步 `u_t` |
| 2026-07-30 | bootstrap 只描述冻结任务集的敏感性 | HumanEval / GSM8K 分开做 10,000 次 task-paired resamples;正确性带全跨零,不报告总体/seed CI 或 p-value |
| 2026-07-30 | 输出长度揭示强任务域交互 | system-at-period 在 Code 为负、Math 为正,两个选定任务带都不跨零;不从长度外推能力 |
| 2026-07-30 | Round 08 十二字段重放过闸 | 64/64 exact;uniform hash、完整 token IDs、文本、stop 与 RNG 一并进入复现合同,评分 gold 提前加载的流程偏差公开保留 |
## 未决问题 ## 未决问题
+14 -4
View File
@@ -19,7 +19,7 @@
当前里程碑包含 17 专题学习地图、486 篇关键论文索引、Kimi K3 完整导读, 当前里程碑包含 17 专题学习地图、486 篇关键论文索引、Kimi K3 完整导读,
语言模型前史、Transformer 基础、表示/位置/残差、DeepSeek 技术谱系、Scaling Laws、数据工程、长上下文、MoE、指令微调与人类偏好、推理、工具使用与长程 Agent、原生多模态、训练系统、推理服务、数值优化,以及评测与安全深度专题, 语言模型前史、Transformer 基础、表示/位置/残差、DeepSeek 技术谱系、Scaling Laws、数据工程、长上下文、MoE、指令微调与人类偏好、推理、工具使用与长程 Agent、原生多模态、训练系统、推理服务、数值优化,以及评测与安全深度专题,
以及 88 个覆盖核心机制的原创交互视图。K3 二轮导读以 32 张问题账、16 图 / 5 表审计、 以及 89 个覆盖核心机制的原创交互视图。K3 二轮导读以 32 张问题账、16 图 / 5 表审计、
8 个交互实验和 100 个一手/官方节点,完整覆盖架构、预训练、后训练、系统、评测、案例与附录。 8 个交互实验和 100 个一手/官方节点,完整覆盖架构、预训练、后训练、系统、评测、案例与附录。
第三轮已完成开放工件与首个真实 kernel 里程碑:固定官方模型与 FlashKDA revisions,审计 96 个 checkpoint shards、 第三轮已完成开放工件与首个真实 kernel 里程碑:固定官方模型与 FlashKDA revisions,审计 96 个 checkpoint shards、
497,220 个 tensor entries、真实 KDA / MLA / MoE / MoonViT shapes 与小范围参数统计,并用 4 个新视图 497,220 个 tensor entries、真实 KDA / MLA / MoE / MoonViT shapes 与小范围参数统计,并用 4 个新视图
@@ -27,8 +27,8 @@
`sm_120a` wheel,在 RTX 5090 上完成 6/6 官方参考 exact-match 和 K3 fixed / varlen 形状计时。详见 `sm_120a` wheel,在 RTX 5090 上完成 6/6 官方参考 exact-match 和 K3 fixed / varlen 形状计时。详见
[K3_ARTIFACT_AUDIT.md](./research/K3_ARTIFACT_AUDIT.md) 与 [K3_ARTIFACT_AUDIT.md](./research/K3_ARTIFACT_AUDIT.md) 与
[checkpoint_probe.py](./experiments/k3/checkpoint_probe.py)、[FlashKDA probe](./experiments/k3/flashkda/)。 [checkpoint_probe.py](./experiments/k3/checkpoint_probe.py)、[FlashKDA probe](./experiments/k3/flashkda/)。
DeepSeek 七轮专题以 24 张问题账、10 次技术转向、 DeepSeek 八轮专题以 24 张问题账、10 次技术转向、
21 个交互实验和 60 个一手/官方节点,串起 Dense、MoE、MLA、V3 协同、R1 与 V4; 22 个交互实验和 60 个一手/官方节点,串起 Dense、MoE、MLA、V3 协同、R1 与 V4;
并固定官方 V2-Lite revision,在 RTX 5090 上连续执行 7/27 层,记录 3,240 次真实专家选择、 并固定官方 V2-Lite revision,在 RTX 5090 上连续执行 7/27 层,记录 3,240 次真实专家选择、
MLA/HF eager cache shapes 与 `31/31` exact 独立复跑;进一步用真实 layer-1 权重执行官方 V3 MLA/HF eager cache shapes 与 `31/31` exact 独立复跑;进一步用真实 layer-1 权重执行官方 V3
naive/absorb 路径,实际写入 576 元素 latent cache,并以 FP32 将两种结合顺序的最大误差压到 naive/absorb 路径,实际写入 576 元素 latent cache,并以 FP32 将两种结合顺序的最大误差压到
@@ -85,6 +85,14 @@ Round 07 保持 256 条输出预算不变,改为 16 条预先冻结的 source
`16/16 · 8/16 · 12/16 · 16/16`。句点在 11 / 16 条 source 上缩短平均长度,但 `16/16 · 8/16 · 12/16 · 16/16`。句点在 11 / 16 条 source 上缩短平均长度,但
English 的首条 source 为 `−121`、其余三条为正,证明单题均值会与多数 source English 的首条 source 为 `−121`、其余三条为正,证明单题均值会与多数 source
方向相反;新进程 R0 的八项合同字段仍为 `64 / 64` exact。 方向相反;新进程 R0 的八项合同字段仍为 `64 / 64` exact。
Round 08 再把覆盖扩大到 HumanEval / GSM8K 各 32 条冻结任务,并以 SHA-256 显式
uniform tape 代替“重置同一 seed”的伪共同随机数:T0 全任务四条件 256 条、额外三条
随机带诊断 96 条,共 352 条正式输出,343 条 natural EOS、320 个完整 trajectory hashes。
两个域分别做 10,000 次选定任务 paired bootstrap;八个正确性区间全部跨零,但
system-at-period 的输出长度在 Code 为 `−130.9 [−178.7,−83.2]`、在 Math 为
`+25.1 [7.9,44.5]`,说明干预方向依赖任务域。全新进程对 64 条输出的 uniform hash、
token IDs、文本与停止等十二字段逐一重放,`64 / 64` exact;同时公开评分金标准被运行器
提前加载、但没有进入 prompt / logits / CDF / tape / selection 的流程偏差。
详见 详见
[DEEPSEEK_V2_LITE_TRACE.md](./research/DEEPSEEK_V2_LITE_TRACE.md) 与 [DEEPSEEK_V2_LITE_TRACE.md](./research/DEEPSEEK_V2_LITE_TRACE.md) 与
[DEEPSEEK_MLA_ABSORB_AUDIT.md](./research/DEEPSEEK_MLA_ABSORB_AUDIT.md)、 [DEEPSEEK_MLA_ABSORB_AUDIT.md](./research/DEEPSEEK_MLA_ABSORB_AUDIT.md)、
@@ -102,7 +110,9 @@ English 的首条 source 为 `−121`、其余三条为正,证明单题均值
[DEEPSEEK_V2_LITE_CHAT_SAMPLING_PROTOCOL.md](./research/DEEPSEEK_V2_LITE_CHAT_SAMPLING_PROTOCOL.md) 与 [DEEPSEEK_V2_LITE_CHAT_SAMPLING_PROTOCOL.md](./research/DEEPSEEK_V2_LITE_CHAT_SAMPLING_PROTOCOL.md) 与
[DEEPSEEK_V2_LITE_CHAT_SAMPLING_AUDIT.md](./research/DEEPSEEK_V2_LITE_CHAT_SAMPLING_AUDIT.md),以及 [DEEPSEEK_V2_LITE_CHAT_SAMPLING_AUDIT.md](./research/DEEPSEEK_V2_LITE_CHAT_SAMPLING_AUDIT.md),以及
[DEEPSEEK_V2_LITE_CHAT_CROSS_SOURCE_SAMPLING_PROTOCOL.md](./research/DEEPSEEK_V2_LITE_CHAT_CROSS_SOURCE_SAMPLING_PROTOCOL.md) 与 [DEEPSEEK_V2_LITE_CHAT_CROSS_SOURCE_SAMPLING_PROTOCOL.md](./research/DEEPSEEK_V2_LITE_CHAT_CROSS_SOURCE_SAMPLING_PROTOCOL.md) 与
[DEEPSEEK_V2_LITE_CHAT_CROSS_SOURCE_SAMPLING_AUDIT.md](./research/DEEPSEEK_V2_LITE_CHAT_CROSS_SOURCE_SAMPLING_AUDIT.md)。 [DEEPSEEK_V2_LITE_CHAT_CROSS_SOURCE_SAMPLING_AUDIT.md](./research/DEEPSEEK_V2_LITE_CHAT_CROSS_SOURCE_SAMPLING_AUDIT.md),以及
[DEEPSEEK_V2_LITE_CHAT_TASK_BOOTSTRAP_PROTOCOL.md](./research/DEEPSEEK_V2_LITE_CHAT_TASK_BOOTSTRAP_PROTOCOL.md) 与
[DEEPSEEK_V2_LITE_CHAT_TASK_BOOTSTRAP_CRN_AUDIT.md](./research/DEEPSEEK_V2_LITE_CHAT_TASK_BOOTSTRAP_CRN_AUDIT.md)。
其余专题按进度账本持续扩建。 其余专题按进度账本持续扩建。
## 本地开发 ## 本地开发
+1
View File
@@ -37,6 +37,7 @@
"check:deepseek-browser": "node scripts/check-deepseek-browser.mjs", "check:deepseek-browser": "node scripts/check-deepseek-browser.mjs",
"check:deepseek-sampling-browser": "node scripts/check-deepseek-sampling-browser.mjs", "check:deepseek-sampling-browser": "node scripts/check-deepseek-sampling-browser.mjs",
"check:deepseek-cross-source-sampling-browser": "node scripts/check-deepseek-cross-source-sampling-browser.mjs", "check:deepseek-cross-source-sampling-browser": "node scripts/check-deepseek-cross-source-sampling-browser.mjs",
"check:deepseek-task-bootstrap-browser": "node scripts/check-deepseek-task-bootstrap-browser.mjs",
"check:k3-browser": "node scripts/check-k3-browser.mjs" "check:k3-browser": "node scripts/check-k3-browser.mjs"
}, },
"dependencies": { "dependencies": {
+2 -2
View File
@@ -1212,7 +1212,7 @@ console.log(JSON.stringify(report, null, 2));
const numeric = (text) => Number.parseFloat(text.replaceAll(",", "")); const numeric = (text) => Number.parseFloat(text.replaceAll(",", ""));
const failures = []; const failures = [];
if (!overview.title.includes("为什么转向")) failures.push("专题标题异常"); if (!overview.title.includes("为什么转向")) failures.push("专题标题异常");
if (overview.sections !== 30 || overview.tocLinks !== 30) failures.push("二十九个编号专题加阅读链的目录结构异常"); if (overview.sections !== 31 || overview.tocLinks !== 31) failures.push("三十个编号专题加阅读链的目录结构异常");
if (overview.ledgers !== 24 || overview.waves !== 10) failures.push("二十四张问题账或十次转向结构异常"); if (overview.ledgers !== 24 || overview.waves !== 10) failures.push("二十四张问题账或十次转向结构异常");
if (overview.paperLinks !== 60 || overview.branches !== 5 || overview.followups !== 1) failures.push("论文链、旁支或公开后续标记异常"); if (overview.paperLinks !== 60 || overview.branches !== 5 || overview.followups !== 1) failures.push("论文链、旁支或公开后续标记异常");
if (overview.labTabs !== 4 || overview.labPanels !== 4) failures.push("四联实验结构异常"); if (overview.labTabs !== 4 || overview.labPanels !== 4) failures.push("四联实验结构异常");
@@ -1220,7 +1220,7 @@ if (overview.artifactTabs !== 13 || overview.artifactPanels !== 13 || overview.a
if (overview.behaviorTabs !== 4 || overview.behaviorPanels !== 4 || overview.behaviorSources !== 16 || overview.behaviorEdges !== 10) failures.push("Chat 行为实验结构异常"); if (overview.behaviorTabs !== 4 || overview.behaviorPanels !== 4 || overview.behaviorSources !== 16 || overview.behaviorEdges !== 10) failures.push("Chat 行为实验结构异常");
if (overview.completionDepthTabs !== 4 || overview.completionDepthPanels !== 4 || overview.hiddenStages !== 29 || overview.routerLayers !== 26) failures.push("Chat 完成度与全深度实验结构异常"); if (overview.completionDepthTabs !== 4 || overview.completionDepthPanels !== 4 || overview.hiddenStages !== 29 || overview.routerLayers !== 26) failures.push("Chat 完成度与全深度实验结构异常");
if (overview.crossSourceTabs !== 4 || overview.crossSourcePanels !== 4) failures.push("跨来源采样实验结构异常"); if (overview.crossSourceTabs !== 4 || overview.crossSourcePanels !== 4) failures.push("跨来源采样实验结构异常");
if (overview.heroLabs !== "21 个可操作实验") failures.push("DeepSeek 实验总数账异常"); if (overview.heroLabs !== "22 个可操作实验") failures.push("DeepSeek 实验总数账异常");
if (overview.navLinks !== 20 || home.navLinks !== 20 || mobile.mobileLinks !== 20 || overview.activeNav !== "DeepSeek") failures.push("全站导航未同步 DeepSeek"); if (overview.navLinks !== 20 || home.navLinks !== 20 || mobile.mobileLinks !== 20 || overview.activeNav !== "DeepSeek") failures.push("全站导航未同步 DeepSeek");
if (overview.documentOverflow > 1 || mobile.documentOverflow > 1) failures.push("桌面或移动端存在文档级横向溢出"); if (overview.documentOverflow > 1 || mobile.documentOverflow > 1) failures.push("桌面或移动端存在文档级横向溢出");
if (capacity.initial.panel !== "capacity" || capacity.initial.total !== "32.1× FFN" || capacity.initial.active !== "1.13× FFN") failures.push("V3 稀疏容量初始账异常"); if (capacity.initial.panel !== "capacity" || capacity.initial.total !== "32.1× FFN" || capacity.initial.active !== "1.13× FFN") failures.push("V3 稀疏容量初始账异常");
@@ -240,8 +240,8 @@ assert(overview.facts["SAMPLED OUTPUTS"] === "256", "output headline 异常");
assert(overview.facts["NATURAL EOS"] === "250 / 256", "EOS headline 异常"); assert(overview.facts["NATURAL EOS"] === "250 / 256", "EOS headline 异常");
assert(overview.facts["MATH · STRICT"] === "47 / 64", "Math headline 异常"); assert(overview.facts["MATH · STRICT"] === "47 / 64", "Math headline 异常");
assert(overview.facts["CODE · TESTS"] === "52 / 64", "Code headline 异常"); assert(overview.facts["CODE · TESTS"] === "52 / 64", "Code headline 异常");
assert(overview.labs === "21 个可操作实验", "DeepSeek LABS 总账异常"); assert(overview.labs === "22 个可操作实验", "DeepSeek LABS 总账异常");
assert(overview.status === "七轮 · 512 条采样", "DeepSeek STATUS 总账异常"); assert(overview.status === "八轮 · 864 条采样", "DeepSeek STATUS 总账异常");
assert(overview.overflow <= 1, `桌面横向溢出 ${overview.overflow}px`); assert(overview.overflow <= 1, `桌面横向溢出 ${overview.overflow}px`);
assert(hierarchySwitch.cards.length === 4, "Code source cards 数量异常"); assert(hierarchySwitch.cards.length === 4, "Code source cards 数量异常");
+1 -1
View File
@@ -223,7 +223,7 @@ assert(overview.panels === 4, `sampling panels=${overview.panels}`);
assert(overview.seedBars === 8, `initial seed bars=${overview.seedBars}`); assert(overview.seedBars === 8, `initial seed bars=${overview.seedBars}`);
assert(overview.conditions === 8, `condition rows=${overview.conditions}`); assert(overview.conditions === 8, `condition rows=${overview.conditions}`);
assert(overview.edges === 10, `edge rows=${overview.edges}`); assert(overview.edges === 10, `edge rows=${overview.edges}`);
assert(overview.heroLabs?.startsWith("20"), `hero labs=${overview.heroLabs}`); assert(overview.heroLabs === "22 个可操作实验", `hero labs=${overview.heroLabs}`);
assert(overview.activePanel === "trajectories", `active=${overview.activePanel}`); assert(overview.activePanel === "trajectories", `active=${overview.activePanel}`);
assert(overview.unique === "8 / 8", `initial unique=${overview.unique}`); assert(overview.unique === "8 / 8", `initial unique=${overview.unique}`);
assert(overview.eos === "5 / 8", `initial eos=${overview.eos}`); assert(overview.eos === "5 / 8", `initial eos=${overview.eos}`);
@@ -0,0 +1,302 @@
import { writeFileSync } from "node:fs";
const cdpPort = process.env.CDP_PORT ?? "9231";
const baseUrl = process.env.SITE_URL ?? "http://127.0.0.1:4327";
const pages = await fetch(`http://127.0.0.1:${cdpPort}/json/list`)
.then((response) => response.json());
const page = pages.find((entry) => entry.type === "page");
if (!page) throw new Error(`CDP ${cdpPort} 没有可用页面`);
const socket = new WebSocket(page.webSocketDebuggerUrl);
await new Promise((resolve, reject) => {
socket.addEventListener("open", resolve, { once: true });
socket.addEventListener("error", reject, { once: true });
});
let nextId = 0;
const pending = new Map();
const exceptions = [];
socket.addEventListener("message", (event) => {
const message = JSON.parse(event.data);
if (message.id && pending.has(message.id)) {
const { resolve, reject } = pending.get(message.id);
pending.delete(message.id);
if (message.error) reject(new Error(message.error.message));
else resolve(message.result);
}
if (message.method === "Runtime.exceptionThrown") {
exceptions.push(
message.params.exceptionDetails.exception?.description
?? message.params.exceptionDetails.text,
);
}
});
const command = (method, params = {}) => new Promise((resolve, reject) => {
const id = ++nextId;
pending.set(id, { resolve, reject });
socket.send(JSON.stringify({ id, method, params }));
});
const pause = (milliseconds) => new Promise(
(resolve) => setTimeout(resolve, milliseconds),
);
const evaluate = async (expression) => {
const result = await command("Runtime.evaluate", {
expression,
returnByValue: true,
awaitPromise: true,
});
if (result.exceptionDetails) {
throw new Error(
result.exceptionDetails.exception?.description
?? result.exceptionDetails.text,
);
}
return result.result.value;
};
const screenshot = async (path) => {
const result = await command("Page.captureScreenshot", {
format: "png",
captureBeyondViewport: false,
});
writeFileSync(path, Buffer.from(result.data, "base64"));
};
const assert = (condition, message) => {
if (!condition) throw new Error(message);
};
await command("Page.enable");
await command("Runtime.enable");
await command("Emulation.setDeviceMetricsOverride", {
width: 1440,
height: 1100,
deviceScaleFactor: 1,
mobile: false,
});
await command("Page.navigate", {
url: `${baseUrl}/deepseek/#task-bootstrap-crn`,
});
for (let attempt = 0; attempt < 100; attempt += 1) {
await pause(100);
if (await evaluate("document.readyState === 'complete'")) break;
}
const overview = await evaluate(`(() => {
const root = document.querySelector("[data-task-bootstrap-lab]");
if (!root) return null;
document.documentElement.style.scrollBehavior = "auto";
window.scrollTo(0, root.getBoundingClientRect().top + window.scrollY);
const facts = Object.fromEntries(
[...root.querySelectorAll(".tb-ledger article")].map((node) => [
node.querySelector("span").textContent.trim(),
node.querySelector("b").textContent.trim(),
]),
);
return {
tabs: root.querySelectorAll("[data-tb-tab]").length,
panels: root.querySelectorAll("[data-tb-panel]").length,
active: root.querySelector("[data-tb-panel]:not([hidden])")?.dataset.tbPanel,
bars: root.querySelectorAll(".uniform-bars article").length,
lanes: root.querySelectorAll(".token-lanes article").length,
laneTokens: root.querySelectorAll(".token-lanes article i").length,
facts,
labs: [...document.querySelectorAll(".page-facts > div")]
.find((node) => node.querySelector("dt")?.textContent.trim() === "LABS")
?.querySelector("dd")?.textContent.trim(),
status: [...document.querySelectorAll(".page-facts > div")]
.find((node) => node.querySelector("dt")?.textContent.trim() === "STATUS")
?.querySelector("dd")?.textContent.trim(),
documentOverflow: document.documentElement.scrollWidth
- document.documentElement.clientWidth,
};
})()`);
await pause(250);
await screenshot("/tmp/llm-atlas-task-bootstrap-sampler-desktop.png");
const bootstrap = await evaluate(`(() => {
const root = document.querySelector("[data-task-bootstrap-lab]");
root.querySelector('[data-tb-tab="bootstrap"]').click();
const read = () => ({
active: root.querySelector("[data-tb-panel]:not([hidden])").dataset.tbPanel,
conditionCards: [...root.querySelectorAll("[data-tb-condition-cards] article")]
.map((node) => node.querySelector("b").textContent.trim()),
forest: [...root.querySelectorAll("[data-tb-forest] > article")].map((node) => ({
label: node.querySelector("span").textContent.trim(),
point: node.querySelector(":scope > b").textContent.trim(),
band: node.querySelector("small").textContent.trim(),
clear: node.querySelector("u").classList.contains("clear"),
})),
robust: root.querySelector("[data-tb-robust-count]").textContent.trim(),
});
const codeCorrectness = read();
root.querySelector('[data-tb-metric="generated_tokens"]').click();
const codeLength = read();
root.querySelector('[data-tb-domain="math"]').click();
const mathLength = read();
return { codeCorrectness, codeLength, mathLength };
})()`);
await pause(150);
await screenshot("/tmp/llm-atlas-task-bootstrap-forest-desktop.png");
const taskExplorer = await evaluate(`(() => {
const root = document.querySelector("[data-task-bootstrap-lab]");
root.querySelector('[data-tb-tab="tasks"]').click();
const domain = root.querySelector("[data-tb-task-domain]");
const contrast = root.querySelector("[data-tb-task-contrast]");
domain.value = "math";
domain.dispatchEvent(new Event("change", { bubbles: true }));
contrast.value = "system_at_eos";
contrast.dispatchEvent(new Event("change", { bubbles: true }));
root.querySelector('[data-tb-task-page="2"]').click();
return {
active: root.querySelector("[data-tb-panel]:not([hidden])").dataset.tbPanel,
rows: root.querySelectorAll("[data-tb-task-rows] > article").length,
page: root.querySelector("[data-tb-task-page-label]").textContent.trim(),
selectedPage: root.querySelector('[data-tb-task-page][aria-pressed="true"]')
.dataset.tbTaskPage,
firstTask: root.querySelector("[data-tb-task-rows] > article span b")
.textContent.trim(),
transition: [...root.querySelectorAll("[data-tb-transition-cards] article")]
.map((node) => node.querySelector("b").textContent.trim()),
};
})()`);
const tape = await evaluate(`(() => {
const root = document.querySelector("[data-task-bootstrap-lab]");
root.querySelector('[data-tb-tab="tapes"]').click();
const domain = root.querySelector("[data-tb-tape-domain]");
const contrast = root.querySelector("[data-tb-tape-contrast]");
domain.value = "math";
domain.dispatchEvent(new Event("change", { bubbles: true }));
contrast.value = "system_at_eos";
contrast.dispatchEvent(new Event("change", { bubbles: true }));
return {
active: root.querySelector("[data-tb-panel]:not([hidden])").dataset.tbPanel,
rows: root.querySelectorAll("[data-tb-tape-rows] > article").length,
cells: root.querySelectorAll("[data-tb-tape-rows] > article > b").length,
means: [...root.querySelectorAll("[data-tb-tape-means] > b")]
.map((node) => node.textContent.trim()),
taskRange: root.querySelector("[data-tb-task-range]").textContent.trim(),
tapeRange: root.querySelector("[data-tb-tape-range]").textContent.trim(),
};
})()`);
const audit = await evaluate(`(() => {
const root = document.querySelector("[data-task-bootstrap-lab]");
root.querySelector('[data-tb-tab="audit"]').click();
return {
active: root.querySelector("[data-tb-panel]:not([hidden])").dataset.tbPanel,
fields: [...root.querySelectorAll(".replay-fields article")]
.map((node) => node.querySelector("b").textContent.trim()),
codeOutcomes: root.querySelectorAll(".failure-ledger > article:first-child > div").length,
mathOutcomes: root.querySelectorAll(".failure-ledger > article:last-child > div").length,
deviations: root.querySelectorAll(".deviation-ledger article").length,
artifacts: root.querySelectorAll(".artifact-chain article").length,
};
})()`);
const keyboard = await evaluate(`(() => {
const root = document.querySelector("[data-task-bootstrap-lab]");
const first = root.querySelector('[data-tb-tab="sampler"]');
first.click();
first.focus();
first.dispatchEvent(new KeyboardEvent("keydown", {
key: "ArrowRight",
bubbles: true,
}));
return {
selected: root.querySelector('[data-tb-tab][aria-selected="true"]').dataset.tbTab,
active: root.querySelector("[data-tb-panel]:not([hidden])").dataset.tbPanel,
focused: document.activeElement.dataset.tbTab,
};
})()`);
await command("Emulation.setDeviceMetricsOverride", {
width: 390,
height: 844,
deviceScaleFactor: 1,
mobile: true,
});
await pause(300);
const mobile = await evaluate(`(() => {
const root = document.querySelector("[data-task-bootstrap-lab]");
root.querySelector('[data-tb-tab="tasks"]').click();
root.scrollIntoView();
return {
documentOverflow: document.documentElement.scrollWidth
- document.documentElement.clientWidth,
rootOverflow: root.scrollWidth - root.clientWidth,
tableWidth: root.querySelector(".task-table").getBoundingClientRect().width,
tableScrollWidth: root.querySelector(".task-table").scrollWidth,
viewport: window.innerWidth,
};
})()`);
await screenshot("/tmp/llm-atlas-task-bootstrap-mobile.png");
assert(overview, "找不到任务 bootstrap 实验");
assert(overview.tabs === 5 && overview.panels === 5, "五页签/面板合同异常");
assert(overview.active === "sampler", "初始面板不是 sampler");
assert(overview.bars === 8, "uniform tape 前八步渲染异常");
assert(overview.lanes === 4 && overview.laneTokens === 32, "四条件 token lane 异常");
assert(overview.facts.TASKS === "32 + 32", "任务 headline 异常");
assert(overview.facts["FORMAL GRID"] === "352", "formal headline 异常");
assert(overview.facts["UNIFORM AUDIT"] === "352 / 352", "uniform headline 异常");
assert(overview.facts["FRESH PROCESS"] === "64 / 64", "replay headline 异常");
assert(overview.labs === "22 个可操作实验", "DeepSeek LABS 总账异常");
assert(overview.status === "八轮 · 864 条采样", "DeepSeek STATUS 总账异常");
assert(overview.documentOverflow <= 1, `桌面横向溢出 ${overview.documentOverflow}px`);
assert(bootstrap.codeCorrectness.active === "bootstrap", "bootstrap 面板切换异常");
assert(bootstrap.codeCorrectness.conditionCards.join("|") === "16 / 32 pass|16 / 32 pass|15 / 32 pass|12 / 32 pass", "Code 条件 pass 表异常");
assert(bootstrap.codeCorrectness.forest.length === 4, "forest contrast 数异常");
assert(bootstrap.codeCorrectness.robust === "0 / 4 bands 不跨 0", "Code correctness 带数异常");
assert(bootstrap.codeLength.robust === "2 / 4 bands 不跨 0", "Code length 带数异常");
assert(bootstrap.codeLength.forest.at(-1).point === "-130.9 tok", "Code system-period 长度异常");
assert(bootstrap.mathLength.robust === "1 / 4 bands 不跨 0", "Math length 带数异常");
assert(bootstrap.mathLength.forest.at(-1).point === "+25.1 tok", "Math system-period 长度异常");
assert(taskExplorer.active === "tasks", "逐题面板切换异常");
assert(taskExplorer.rows === 8 && taskExplorer.page === "17–24 / 32", "逐题分页异常");
assert(taskExplorer.selectedPage === "2", "逐题页按钮状态异常");
assert(taskExplorer.firstTask === "gsm8k/test/1050", "逐题页首任务异常");
assert(taskExplorer.transition.join("|") === "3 / 32|3 / 32|16 / 32|10 / 32", "Math system-EOS 转移异常");
assert(tape.active === "tapes", "tape 面板切换异常");
assert(tape.rows === 4 && tape.cells === 16, "4×4 tape matrix 异常");
assert(tape.means.join("|") === "0.00|+0.50|-0.25|+0.25", "Math system-EOS tape means 异常");
assert(tape.taskRange === "1.25" && tape.tapeRange === "1.00", "tape/task range 异常");
assert(audit.active === "audit", "审计面板切换异常");
assert(audit.fields.length === 12, "重放字段数不为 12");
assert(audit.fields.every((value) => value === "64 / 64"), "重放字段未全部 exact");
assert(audit.codeOutcomes === 6 && audit.mathOutcomes === 2, "失败分类数量异常");
assert(audit.deviations === 2, "偏离账数量异常");
assert(audit.artifacts === 4, "工件 hash 数量异常");
assert(
keyboard.selected === "bootstrap"
&& keyboard.active === "bootstrap"
&& keyboard.focused === "bootstrap",
"页签键盘导航异常",
);
assert(mobile.documentOverflow <= 1, `移动端 document 横向溢出 ${mobile.documentOverflow}px`);
assert(mobile.rootOverflow <= 1, `移动端实验横向溢出 ${mobile.rootOverflow}px`);
assert(mobile.tableWidth <= mobile.viewport, "移动端任务表容器超出 viewport");
assert(mobile.tableScrollWidth > mobile.tableWidth, "移动端任务表没有内部横向滚动");
assert(exceptions.length === 0, `浏览器异常:${exceptions.join(" | ")}`);
console.log(JSON.stringify({
overview,
bootstrap,
taskExplorer,
tape,
audit,
keyboard,
mobile,
screenshots: [
"/tmp/llm-atlas-task-bootstrap-sampler-desktop.png",
"/tmp/llm-atlas-task-bootstrap-forest-desktop.png",
"/tmp/llm-atlas-task-bootstrap-mobile.png",
],
}, null, 2));
socket.close();
@@ -0,0 +1,827 @@
---
import rawLab from "@/data/deepseek-v2-lite-chat-task-bootstrap-crn-compact.json";
const lab = rawLab as any;
const json = JSON.stringify(lab).replaceAll("<", "\\u003c");
const example = lab.uniformExample;
const conditions = ["s0_eos", "s1_eos", "s0_period", "s1_period"];
const conditionLabels: Record<string, string> = {
s0_eos: "无 system · EOS",
s1_eos: "有 system · EOS",
s0_period: "无 system · 句点",
s1_period: "有 system · 句点",
};
---
<figure class="task-bootstrap-lab" data-task-bootstrap-lab>
<header class="tb-head">
<div>
<p>ROUND 08 / TASK BOOTSTRAP × EXPLICIT CRN</p>
<h3>把“换题”和“换随机数”拆开,再问 prompt 到底改变了什么</h3>
</div>
<p>
主分析固定 T0,在 HumanEval 与 GSM8K 各 32 道预选题上逐题配对;
另取每域 4 题跑 T0–T3。四格在第 <code>t</code> 步读取同一个显式
<code>uₜ</code>,再各自穿过不同的 token CDF。
</p>
</header>
<div class="tb-ledger">
<article><span>TASKS</span><b>32 + 32</b><p>Code / Math 始终分开</p></article>
<article><span>FORMAL GRID</span><b>352</b><p>256 主分析 + 96 额外 tape</p></article>
<article class="pass"><span>PROMPT HASH</span><b>256 / 256</b><p>输出前冻结并逐格 exact</p></article>
<article><span>UNIFORM AUDIT</span><b>352 / 352</b><p>每条消费前缀重新派生</p></article>
<article><span>TASK BOOTSTRAP</span><b>10,000×</b><p>固定 32 题框,不外推总体</p></article>
<article class="pass"><span>FRESH PROCESS</span><b>64 / 64</b><p>十二项字段全部 exact</p></article>
</div>
<div class="tb-tabs" role="tablist" aria-label="选择任务 bootstrap 实验视图">
<button type="button" role="tab" data-tb-tab="sampler" aria-selected="true">
<span>01</span><b>真正的共同随机数</b><small>uniform tape → four CDFs</small>
</button>
<button type="button" role="tab" data-tb-tab="bootstrap" aria-selected="false" tabindex="-1">
<span>02</span><b>32 题重采样带</b><small>paired task bootstrap</small>
</button>
<button type="button" role="tab" data-tb-tab="tasks" aria-selected="false" tabindex="-1">
<span>03</span><b>逐题看正负抵消</b><small>task × condition explorer</small>
</button>
<button type="button" role="tab" data-tb-tab="tapes" aria-selected="false" tabindex="-1">
<span>04</span><b>换题还是换 tape</b><small>4 tasks × 4 tapes</small>
</button>
<button type="button" role="tab" data-tb-tab="audit" aria-selected="false" tabindex="-1">
<span>05</span><b>重放、失败与偏离</b><small>evidence boundary</small>
</button>
</div>
<section class="tb-panel" data-tb-panel="sampler">
<div class="tb-panel-lead">
<div><span>I / COMMON RANDOM NUMBERS</span><h4>同一个 seed,不一定是同一个随机冲击</h4></div>
<p>
旧实验把四行放在同一个 seeded batch,<code>torch.multinomial</code> 为不同
行消费不同 RNG 子流。本轮直接定义每一步的均匀数,所以配对对象终于可见、可重建。
</p>
</div>
<div class="pairing-compare">
<article>
<span>ROUND 06–07 · BATCH SEED</span>
<div class="stream-row"><i>seed</i><b>→</b><u>r₀</u><u>r₁</u><u>r₂</u><u>r₃</u></div>
<p>同一 seed 与调用时序,但四行不是同一概率分位。</p>
</article>
<article class="active">
<span>ROUND 08 · EXPLICIT TAPE</span>
<div class="stream-row"><i>uₜ</i><b>→</b><u>uₜ</u><u>uₜ</u><u>uₜ</u><u>uₜ</u></div>
<p>同题、同 tape、同 step 的四格读取完全相同的 <code>uₜ</code>。</p>
</article>
</div>
<div class="sampler-pipeline" aria-label="显式共同随机数采样流程">
<article><span>01 / HASH</span><b>SHA-256</b><p>protocol · tape · source · step</p></article>
<i>→</i>
<article class="uniform"><span>02 / SHARED</span><b>uₜ ∈ (0,1)</b><p>四格同一个概率分位</p></article>
<i>→</i>
<article><span>03 / FOUR DISTRIBUTIONS</span><b>T .3 · P .95</b><p>prompt 改变各自 logits / CDF</p></article>
<i>→</i>
<article><span>04 / TOKEN</span><b>searchsorted</b><p>同 uₜ 可以落入不同 token</p></article>
</div>
<div class="uniform-demo">
<header>
<div><span>REAL T0 TAPE / {example.sourceId}</span><b>前 8 个生成步</b></div>
<p>柱高是 float32 <code>uₜ</code>;hex 是冻结的 uint64 前缀。</p>
</header>
<div class="uniform-bars">
{example.uniformFloat32FirstEight.map((value: number, index: number) => (
<article style={`--u:${Math.max(0.025, value)}`}>
<i></i>
<span>t{index}</span>
<b>{value.toFixed(3)}</b>
<code>{example.uniformUint64FirstEightHex[index].slice(0, 6)}</code>
</article>
))}
</div>
<div class="token-lanes">
{conditions.map((condition) => (
<article>
<header><span>{condition}</span><b>{conditionLabels[condition]}</b></header>
<div>
{example.conditions[condition].generatedTokenIds.map((token: number, index: number) => (
<i><small>t{index}</small>{token}</i>
))}
</div>
</article>
))}
</div>
</div>
<aside class="tb-note">
<b>读图关键:四条 lane 上方的随机柱完全相同,token ID 却会分叉</b>
<p>
共同随机数控制的是 sampling noise,不是把四个条件钉成同一输出。prompt 一旦改变
概率分布,同一分位自然可以映射到不同 token。
</p>
</aside>
</section>
<section class="tb-panel" data-tb-panel="bootstrap" hidden>
<div class="tb-panel-lead">
<div><span>II / SELECTED-TASK BOOTSTRAP</span><h4>带宽回答“换这 32 道题的权重会怎样”</h4></div>
<p>
每次在固定 32 题中有放回抽 32 题,四条件保持题级配对。它不包含换随机带的不确定性,
也不是完整 benchmark population confidence interval。
</p>
</div>
<div class="tb-switch-row">
<div role="group" aria-label="选择 bootstrap 任务域">
<button type="button" data-tb-domain="code" aria-pressed="true">CODE · HUMANEVAL</button>
<button type="button" data-tb-domain="math" aria-pressed="false">MATH · GSM8K</button>
</div>
<div role="group" aria-label="选择 bootstrap 指标">
<button type="button" data-tb-metric="fixed_budget_success" aria-pressed="true">CORRECTNESS</button>
<button type="button" data-tb-metric="generated_tokens" aria-pressed="false">LENGTH</button>
</div>
</div>
<div class="condition-cards" data-tb-condition-cards></div>
<div class="forest">
<header><span>RIGHT LOWER / SHORTER</span><b>0 · NO MEAN DIFFERENCE</b><span>RIGHT HIGHER / LONGER</span></header>
<div data-tb-forest></div>
</div>
<div class="bootstrap-reading">
<article>
<span>WHAT IS RESAMPLED</span>
<b>32 selected tasks</b>
<p>同一次抽样中,四个 prompt condition 保持配对。</p>
</article>
<article>
<span>WHAT IS FIXED</span>
<b>T0 · checkpoint · prompt</b>
<p>这条带不覆盖 generation-tape uncertainty。</p>
</article>
<article class="result">
<span data-tb-robust-label>LENGTH / CODE</span>
<b data-tb-robust-count>—</b>
<p data-tb-robust-copy>—</p>
</article>
</div>
<aside class="tb-note dark">
<b>正确率的八条带都跨 0;长度出现 domain 反向交互</b>
<p>
Code 的 system-at-period 为 −130.9 tokens,Math 为 +25.1 tokens,两个
selected-task bands 都不跨 0、方向却相反。“system 会让输出更短”不是可跨域外推的结论。
</p>
</aside>
</section>
<section class="tb-panel" data-tb-panel="tasks" hidden>
<div class="tb-panel-lead">
<div><span>III / TASK EXPLORER</span><h4>平均差为 0,也可能是 fail→pass 与 pass→fail 抵消</h4></div>
<p>
每页 8 道题。P/F 是 T0 上的独立 evaluator 结果;末列显示所选 contrast 的
success 差、长度差与共同 token 前缀。
</p>
</div>
<div class="task-controls">
<label><span>DOMAIN</span>
<select data-tb-task-domain aria-label="选择逐题任务域">
<option value="code">Code · HumanEval</option>
<option value="math">Math · GSM8K</option>
</select>
</label>
<label><span>CONTRAST</span>
<select data-tb-task-contrast aria-label="选择逐题 contrast">
<option value="period_at_s0">句点 − EOS · 无 system</option>
<option value="period_at_s1">句点 − EOS · 有 system</option>
<option value="system_at_eos">system on − off · EOS</option>
<option value="system_at_period">system on − off · 句点</option>
</select>
</label>
<article><span>VISIBLE TASKS</span><b data-tb-task-page-label>01–08 / 32</b></article>
</div>
<div class="task-pages" role="group" aria-label="选择逐题页">
{[0, 1, 2, 3].map((page) => (
<button type="button" data-tb-task-page={page} aria-pressed={page === 0 ? "true" : "false"}>
{String(page * 8 + 1).padStart(2, "0")}–{String(page * 8 + 8).padStart(2, "0")}
</button>
))}
</div>
<div class="task-table">
<header><b>TASK</b>{conditions.map((condition) => <b>{condition}</b>)}<b>SELECTED CONTRAST</b></header>
<div data-tb-task-rows></div>
</div>
<div class="transition-cards" data-tb-transition-cards></div>
<aside class="tb-note">
<b>四格合计 pass 不是模型标准分数</b>
<p>
Code 的 59/128 与 Math 的 71/128 都来自 <code>32 tasks × 4 conditions</code>;
同一道题出现四次。逐题转移表才保留条件改变的方向。
</p>
</aside>
</section>
<section class="tb-panel" data-tb-panel="tapes" hidden>
<div class="tb-panel-lead">
<div><span>IV / CROSSED TAPE DIAGNOSTIC</span><h4>4 道题 × 4 条 tape,不是 16 道独立题</h4></div>
<p>
行是预先固定的题,列是 T0–T3。先在题内横向看 tape range,再在 tape 内纵向看
task range;两种变化不能揉成一个普通样本方差。
</p>
</div>
<div class="tape-controls">
<label><span>DOMAIN</span>
<select data-tb-tape-domain aria-label="选择随机带诊断域">
<option value="code">Code · HumanEval</option>
<option value="math">Math · GSM8K</option>
</select>
</label>
<label><span>CONTRAST</span>
<select data-tb-tape-contrast aria-label="选择随机带诊断 contrast">
<option value="period_at_s0">句点 − EOS · 无 system</option>
<option value="period_at_s1">句点 − EOS · 有 system</option>
<option value="system_at_eos">system on − off · EOS</option>
<option value="system_at_period">system on − off · 句点</option>
</select>
</label>
<label><span>METRIC</span>
<select data-tb-tape-metric aria-label="选择随机带诊断指标">
<option value="success">Correctness Δ</option>
<option value="tokens">Length Δ</option>
</select>
</label>
</div>
<div class="tape-matrix">
<header><b>TASK ↓ / TAPE →</b><b>T0</b><b>T1</b><b>T2</b><b>T3</b><b>TAPE RANGE</b></header>
<div data-tb-tape-rows></div>
<footer data-tb-tape-means></footer>
</div>
<div class="tape-reading">
<article><span>MEAN TASK RANGE WITHIN TAPE</span><b data-tb-task-range>—</b><p>固定一条 tape,四题之间的 contrast 跨度</p></article>
<article><span>MEAN TAPE RANGE WITHIN TASK</span><b data-tb-tape-range>—</b><p>固定一道题,四条 tape 之间的 contrast 跨度</p></article>
<article class="result"><span>INDEPENDENCE</span><b>4 crossed tasks</b><p>不是 16 个独立观测;只做敏感性诊断</p></article>
</div>
<aside class="tb-note dark">
<b>Code 长度方向更稳,Math correctness 对 tape 更敏感</b>
<p>
在四题诊断子集上,Code 的 system-at-period 四条 tape 都为负;Math 同一长度
contrast 四条都为正。但 Math correctness 的 system-at-EOS 在 T0–T3 间从 −0.25 到 +0.50。
</p>
</aside>
</section>
<section class="tb-panel" data-tb-panel="audit" hidden>
<div class="tb-panel-lead">
<div><span>V / EVIDENCE AUDIT</span><h4>先锁 trajectory,再打开 gold;偏离也写进证据链</h4></div>
<p>
formal、独立 evaluator、replay 与 analysis 各自有文件 hash。重放检查的不只是
headline,而是每格 12 个冻结字段。
</p>
</div>
<div class="evidence-pipeline">
<article><span>01 / FREEZE</span><b>64 tasks · 256 prompts</b><p>source、tape、contrast、bootstrap seed</p></article>
<i>→</i>
<article><span>02 / GENERATE</span><b>352 trajectories</b><p>88/88 runs 不消费 PyTorch RNG</p></article>
<i>→</i>
<article><span>03 / EVALUATE</span><b>networkless sandbox</b><p>停止、覆盖、正确、失败分账</p></article>
<i>→</i>
<article class="result"><span>04 / REPLAY</span><b>64 / 64 exact</b><p>全新进程 · 十二字段</p></article>
</div>
<div class="replay-fields">
{Object.entries(lab.reproduction.by_field).map(([field, count]) => (
<article>
<span>{String(field).replaceAll("_", " ").toUpperCase()}</span>
<b>{String(count)} / 64</b><i>EXACT</i>
</article>
))}
</div>
<div class="failure-ledger">
<article>
<header><span>CODE / 128 T0 OUTPUTS</span><b>59 pass</b></header>
{Object.entries(lab.outcomes.code).map(([name, count]) => (
<div><span>{name.replaceAll("_", " ")}</span><i><u style={`--share:${Number(count) / 128}`}></u></i><b>{String(count)}</b></div>
))}
</article>
<article>
<header><span>MATH / 128 T0 OUTPUTS</span><b>71 exact</b></header>
{Object.entries(lab.outcomes.math).map(([name, count]) => (
<div><span>{name.replaceAll("_", " ")}</span><i><u style={`--share:${Number(count) / 128}`}></u></i><b>{String(count)}</b></div>
))}
</article>
</div>
<div class="deviation-ledger">
{lab.deviations.map((deviation: any, index: number) => (
<article class={deviation.severity}>
<span>{String(index + 1).padStart(2, "0")} / {deviation.severity.replaceAll("-", " ").toUpperCase()}</span>
<b>{deviation.id.replaceAll("-", " ")}</b>
<p>{deviation.summary}</p>
</article>
))}
</div>
<div class="artifact-chain">
{Object.entries(lab.artifactHashes).map(([name, hash], index) => (
<article>
<span>{String(index + 1).padStart(2, "0")} / {name.toUpperCase()}</span>
<b>{String(hash).slice(0, 12)}…{String(hash).slice(-8)}</b>
</article>
))}
</div>
<aside class="tb-note">
<b>gold 加载时机是本轮明确报告的流程偏离</b>
<p>
复用 runner 在生成进程开始前加载 gold,只用于文本生成结束后的窄
<code>task_score</code>;gold 不进入 prompt、logits、CDF、tape 或任务选择,权威
evaluator 仍独立运行。它没有已知 trajectory 因果路径,但后续 runner 应彻底删除这条依赖。
</p>
</aside>
</section>
<figcaption>
<b>证据边界</b>
<span>
两个 domain 各 32 道预选题,不是完整 benchmark;selected-task band 固定 T0,
不覆盖 generation-tape uncertainty;句点是 counterfactual,不是官方聊天格式。
</span>
<code>FORMAL ea0607…1809 · EVAL 82b2fc…77ab · REPLAY 64/64</code>
</figcaption>
<script is:inline type="application/json" data-tb-data set:html={json}></script>
</figure>
<script>
document.querySelectorAll<HTMLElement>("[data-task-bootstrap-lab]").forEach((root) => {
const payload = root.querySelector<HTMLScriptElement>("[data-tb-data]");
if (!payload) return;
const data = JSON.parse(payload.textContent ?? "{}");
const conditionLabels: Record<string, string> = {
s0_eos: "无 system · EOS",
s1_eos: "有 system · EOS",
s0_period: "无 system · 句点",
s1_period: "有 system · 句点",
};
const contrastLabels: Record<string, string> = {
period_at_s0: "句点 − EOS · 无 system",
period_at_s1: "句点 − EOS · 有 system",
system_at_eos: "system on − off · EOS",
system_at_period: "system on − off · 句点",
};
const one = <T extends Element>(selector: string) => root.querySelector<T>(selector);
const all = <T extends Element>(selector: string) => [...root.querySelectorAll<T>(selector)];
const set = (selector: string, value: string) => {
const node = one<HTMLElement>(selector);
if (node) node.textContent = value;
};
const signed = (value: number, digits = 2) => (
`${value > 0 ? "+" : ""}${value.toFixed(digits)}`
);
const tabButtons = all<HTMLButtonElement>("[data-tb-tab]");
const panels = all<HTMLElement>("[data-tb-panel]");
tabButtons.forEach((button, index) => {
button.addEventListener("click", () => {
const target = button.dataset.tbTab;
tabButtons.forEach((candidate) => {
const active = candidate === button;
candidate.setAttribute("aria-selected", String(active));
candidate.tabIndex = active ? 0 : -1;
});
panels.forEach((panel) => {
panel.hidden = panel.dataset.tbPanel !== target;
});
});
button.addEventListener("keydown", (event) => {
if (!["ArrowLeft", "ArrowRight"].includes(event.key)) return;
event.preventDefault();
const delta = event.key === "ArrowRight" ? 1 : -1;
const target = tabButtons[(index + delta + tabButtons.length) % tabButtons.length];
target.click();
target.focus();
});
});
let bootstrapDomain: "code" | "math" = "code";
let bootstrapMetric = "fixed_budget_success";
const domainButtons = all<HTMLButtonElement>("[data-tb-domain]");
const metricButtons = all<HTMLButtonElement>("[data-tb-metric]");
const renderBootstrap = () => {
const cards = one<HTMLElement>("[data-tb-condition-cards]");
if (cards) {
cards.replaceChildren();
data.conditionTable[bootstrapDomain].forEach((row: any) => {
const article = document.createElement("article");
const label = document.createElement("span");
label.textContent = conditionLabels[row.condition];
const value = document.createElement("b");
value.textContent = `${row.success} / 32 pass`;
const length = document.createElement("p");
length.textContent = `${row.meanTokens.toFixed(1)} tokens · ${row.naturalEos}/32 EOS`;
article.append(label, value, length);
cards.append(article);
});
}
const forest = one<HTMLElement>("[data-tb-forest]");
if (forest) {
forest.replaceChildren();
Object.entries(data.contrasts[bootstrapDomain]).forEach(([name, contrast]: [string, any]) => {
const metric = contrast.metrics[bootstrapMetric];
const scale = bootstrapMetric === "generated_tokens" ? 210 : 0.42;
const position = (value: number) => Math.max(1, Math.min(99, 50 + value / scale * 50));
const row = document.createElement("article");
const label = document.createElement("span");
label.textContent = contrastLabels[name];
const track = document.createElement("i");
const band = document.createElement("u");
band.style.setProperty("--band-left", `${position(metric.band.p2_5)}%`);
band.style.setProperty("--band-right", `${position(metric.band.p97_5)}%`);
band.className = metric.band.p2_5 > 0 || metric.band.p97_5 < 0 ? "clear" : "crosses";
const point = document.createElement("em");
point.style.setProperty("--point", `${position(metric.point)}%`);
track.append(band, point);
const value = document.createElement("b");
value.textContent = bootstrapMetric === "generated_tokens"
? `${signed(metric.point, 1)} tok`
: signed(metric.point, 3);
const interval = document.createElement("small");
interval.textContent = `[${signed(metric.band.p2_5, bootstrapMetric === "generated_tokens" ? 1 : 3)}, ${signed(metric.band.p97_5, bootstrapMetric === "generated_tokens" ? 1 : 3)}]`;
row.append(label, track, value, interval);
forest.append(row);
});
}
const clear = Object.values(data.contrasts[bootstrapDomain]).filter((contrast: any) => {
const band = contrast.metrics[bootstrapMetric].band;
return band.p2_5 > 0 || band.p97_5 < 0;
}).length;
set(
"[data-tb-robust-label]",
`${bootstrapMetric === "generated_tokens" ? "LENGTH" : "CORRECTNESS"} / ${bootstrapDomain.toUpperCase()}`,
);
set("[data-tb-robust-count]", `${clear} / 4 bands 不跨 0`);
set(
"[data-tb-robust-copy]",
bootstrapMetric === "fixed_budget_success"
? "所有 correctness 带都跨 0,点估计不能升级成稳定能力结论。"
: bootstrapDomain === "code"
? "period-at-s1 与 system-at-period 明确偏负;Code 输出显著缩短。"
: "只有 system-at-period 明确偏正;Math 输出反而延长。",
);
};
domainButtons.forEach((button) => button.addEventListener("click", () => {
bootstrapDomain = (button.dataset.tbDomain ?? "code") as "code" | "math";
domainButtons.forEach((candidate) => candidate.setAttribute(
"aria-pressed",
String(candidate === button),
));
renderBootstrap();
}));
metricButtons.forEach((button) => button.addEventListener("click", () => {
bootstrapMetric = button.dataset.tbMetric ?? "fixed_budget_success";
metricButtons.forEach((candidate) => candidate.setAttribute(
"aria-pressed",
String(candidate === button),
));
renderBootstrap();
}));
renderBootstrap();
const taskDomainSelect = one<HTMLSelectElement>("[data-tb-task-domain]");
const taskContrastSelect = one<HTMLSelectElement>("[data-tb-task-contrast]");
const taskPageButtons = all<HTMLButtonElement>("[data-tb-task-page]");
let taskPage = 0;
const renderTasks = () => {
const domain = taskDomainSelect?.value ?? "code";
const contrast = taskContrastSelect?.value ?? "period_at_s0";
const rows = data.tasks[domain].slice(taskPage * 8, taskPage * 8 + 8);
set(
"[data-tb-task-page-label]",
`${String(taskPage * 8 + 1).padStart(2, "0")}–${String(taskPage * 8 + 8).padStart(2, "0")} / 32`,
);
const container = one<HTMLElement>("[data-tb-task-rows]");
if (container) {
container.replaceChildren();
rows.forEach((task: any) => {
const row = document.createElement("article");
const label = document.createElement("span");
label.innerHTML = `<small>${String(task.index + 1).padStart(2, "0")}</small><b>${task.id}</b>`;
row.append(label);
Object.values(task.conditions).forEach((condition: any) => {
const cell = document.createElement("i");
cell.className = condition.success ? "pass" : "fail";
cell.innerHTML = `<b>${condition.success ? "P" : "F"}</b><small>${condition.tokens}t</small>`;
cell.title = `${condition.outcome} · ${condition.tokens} tokens`;
row.append(cell);
});
const delta = task.contrasts[contrast];
const summary = document.createElement("strong");
summary.className = delta.successDelta > 0 ? "positive" : delta.successDelta < 0 ? "negative" : "zero";
summary.innerHTML = `<b>${signed(delta.successDelta, 0)} pass · ${signed(delta.tokenDelta, 0)} tok</b><small>${delta.commonPrefixTokens} token 共同前缀</small>`;
row.append(summary);
container.append(row);
});
}
const transition = data.contrasts[domain][contrast]
.metrics.fixed_budget_success.transition;
const cards = one<HTMLElement>("[data-tb-transition-cards]");
if (cards && transition) {
cards.replaceChildren();
[
["FAIL → PASS", transition.fail_to_pass, "positive"],
["PASS → FAIL", transition.pass_to_fail, "negative"],
["PASS → PASS", transition.pass_to_pass, "stable"],
["FAIL → FAIL", transition.fail_to_fail, "stable"],
].forEach(([label, count, className]) => {
const article = document.createElement("article");
article.className = String(className);
article.innerHTML = `<span>${label}</span><b>${count} / 32</b>`;
cards.append(article);
});
}
};
taskDomainSelect?.addEventListener("change", () => {
taskPage = 0;
taskPageButtons.forEach((button, index) => button.setAttribute("aria-pressed", String(index === 0)));
renderTasks();
});
taskContrastSelect?.addEventListener("change", renderTasks);
taskPageButtons.forEach((button) => button.addEventListener("click", () => {
taskPage = Number(button.dataset.tbTaskPage ?? 0);
taskPageButtons.forEach((candidate) => candidate.setAttribute(
"aria-pressed",
String(candidate === button),
));
renderTasks();
}));
renderTasks();
const tapeDomain = one<HTMLSelectElement>("[data-tb-tape-domain]");
const tapeContrast = one<HTMLSelectElement>("[data-tb-tape-contrast]");
const tapeMetric = one<HTMLSelectElement>("[data-tb-tape-metric]");
const renderTapes = () => {
const domain = tapeDomain?.value ?? "code";
const contrast = tapeContrast?.value ?? "period_at_s0";
const metricName = tapeMetric?.value ?? "success";
const domainData = data.diagnostic[domain];
const metric = domainData.contrasts[contrast][metricName];
const rows = one<HTMLElement>("[data-tb-tape-rows]");
if (rows) {
rows.replaceChildren();
metric.matrix.forEach((values: number[], index: number) => {
const row = document.createElement("article");
const label = document.createElement("span");
label.textContent = domainData.sourceIds[index];
row.append(label);
values.forEach((value: number) => {
const cell = document.createElement("b");
cell.className = value > 0 ? "positive" : value < 0 ? "negative" : "zero";
cell.style.setProperty("--strength", String(Math.min(1, Math.abs(value) / (metricName === "success" ? 1 : 200))));
cell.textContent = metricName === "success" ? signed(value, 2) : signed(value, 0);
row.append(cell);
});
const range = Math.max(...values) - Math.min(...values);
const output = document.createElement("strong");
output.textContent = metricName === "success" ? range.toFixed(2) : `${range.toFixed(0)} tok`;
row.append(output);
rows.append(row);
});
}
const means = one<HTMLElement>("[data-tb-tape-means]");
if (means) {
means.replaceChildren();
const label = document.createElement("span");
label.textContent = "TAPE MEAN";
means.append(label);
domainData.tapes.forEach((tape: string) => {
const value = metric.tapeMeans[tape];
const cell = document.createElement("b");
cell.textContent = metricName === "success" ? signed(value, 2) : signed(value, 1);
means.append(cell);
});
const note = document.createElement("strong");
note.textContent = "descriptive";
means.append(note);
}
set(
"[data-tb-task-range]",
`${metric.taskRangeWithinTape.mean.toFixed(metricName === "success" ? 2 : 1)}${metricName === "tokens" ? " tok" : ""}`,
);
set(
"[data-tb-tape-range]",
`${metric.tapeRangeWithinTask.mean.toFixed(metricName === "success" ? 2 : 1)}${metricName === "tokens" ? " tok" : ""}`,
);
};
[tapeDomain, tapeContrast, tapeMetric].forEach((control) => (
control?.addEventListener("change", renderTapes)
));
renderTapes();
});
</script>
<style is:global>
[data-task-bootstrap-lab] { margin: 1.6rem 0 0; overflow: hidden; border: 1px solid var(--line); background: #f7f3ea; }
[data-task-bootstrap-lab] .tb-head { display: grid; grid-template-columns: 1.08fr .92fr; gap: 1.5rem; padding: 1.55rem; color: #edf3f1; background: #263f47; }
[data-task-bootstrap-lab] .tb-head p { margin: 0; font-size: .62rem; line-height: 1.65; }
[data-task-bootstrap-lab] .tb-head > div > p { color: #8fcbbf; font: 690 .48rem/1.2 var(--font-mono); letter-spacing: .08em; }
[data-task-bootstrap-lab] .tb-head h3 { margin: .6rem 0 0; max-width: 28ch; color: #edf3f1; font: 760 1.22rem/1.14 var(--font-display); }
[data-task-bootstrap-lab] .tb-head code { color: #f0c7aa; font-size: .53rem; }
[data-task-bootstrap-lab] .tb-ledger { display: grid; grid-template-columns: repeat(6,1fr); gap: 1px; border-bottom: 1px solid var(--line); background: var(--line); }
[data-task-bootstrap-lab] .tb-ledger article { min-width: 0; padding: .82rem; background: #eee9df; }
[data-task-bootstrap-lab] .tb-ledger article.pass { background: #dcebe5; }
[data-task-bootstrap-lab] .tb-ledger span { display: block; color: #687772; font: .42rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .tb-ledger b { display: block; margin-top: .38rem; font: 760 .72rem/1.1 var(--font-mono); }
[data-task-bootstrap-lab] .tb-ledger p { margin: .32rem 0 0; color: #717975; font-size: .45rem; line-height: 1.4; }
[data-task-bootstrap-lab] .tb-tabs { display: grid; grid-template-columns: repeat(5,1fr); gap: 1px; border-bottom: 1px solid var(--line); background: var(--line); }
[data-task-bootstrap-lab] .tb-tabs button { min-width: 0; padding: .86rem; text-align: left; color: #52615e; border: 0; background: #e5e0d5; cursor: pointer; }
[data-task-bootstrap-lab] .tb-tabs button[aria-selected="true"] { color: #f0f5f3; background: #2e776c; }
[data-task-bootstrap-lab] .tb-tabs span, [data-task-bootstrap-lab] .tb-tabs b, [data-task-bootstrap-lab] .tb-tabs small { display: block; }
[data-task-bootstrap-lab] .tb-tabs span { color: var(--orange); font: 730 .42rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .tb-tabs button[aria-selected="true"] span { color: #f2c6a8; }
[data-task-bootstrap-lab] .tb-tabs b { margin-top: .38rem; font-size: .57rem; }
[data-task-bootstrap-lab] .tb-tabs small { margin-top: .25rem; opacity: .65; font: .39rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .tb-panel { padding: 1.25rem; }
[data-task-bootstrap-lab] .tb-panel-lead { display: grid; grid-template-columns: 1.08fr .92fr; gap: 1.4rem; margin-bottom: 1rem; }
[data-task-bootstrap-lab] .tb-panel-lead span { color: var(--orange); font: 700 .46rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .tb-panel-lead h4 { margin: .42rem 0 0; font: 750 .96rem/1.15 var(--font-display); }
[data-task-bootstrap-lab] .tb-panel-lead p { margin: 0; color: #63706c; font-size: .57rem; line-height: 1.65; }
[data-task-bootstrap-lab] .pairing-compare { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
[data-task-bootstrap-lab] .pairing-compare article { padding: .9rem; border: 1px solid var(--line); background: #eee9df; }
[data-task-bootstrap-lab] .pairing-compare article.active { color: #edf3f1; border: 0; background: #2f776c; }
[data-task-bootstrap-lab] .pairing-compare > article > span { font: 690 .43rem/1.2 var(--font-mono); opacity: .72; }
[data-task-bootstrap-lab] .pairing-compare p { margin: .55rem 0 0; opacity: .72; font-size: .49rem; }
[data-task-bootstrap-lab] .stream-row { display: grid; grid-template-columns: .9fr auto repeat(4,1fr); gap: .35rem; align-items: center; margin-top: .65rem; }
[data-task-bootstrap-lab] .stream-row i, [data-task-bootstrap-lab] .stream-row u { display: grid; place-items: center; height: 2.2rem; text-decoration: none; font: 730 .52rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .stream-row i { color: #f4f0e8; background: #b96b45; font-style: normal; }
[data-task-bootstrap-lab] .pairing-compare article:not(.active) .stream-row i { color: #fff; }
[data-task-bootstrap-lab] .stream-row u { color: #29434a; background: #dce8e4; }
[data-task-bootstrap-lab] .stream-row b { color: #d89a76; text-align: center; }
[data-task-bootstrap-lab] .sampler-pipeline, [data-task-bootstrap-lab] .evidence-pipeline { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: .55rem; align-items: center; margin-top: 1rem; }
[data-task-bootstrap-lab] .sampler-pipeline article, [data-task-bootstrap-lab] .evidence-pipeline article { min-width: 0; padding: .8rem; border: 1px solid var(--line); background: #eee9df; }
[data-task-bootstrap-lab] .sampler-pipeline article.uniform, [data-task-bootstrap-lab] .evidence-pipeline article.result { color: #edf4f1; border: 0; background: #2f776c; }
[data-task-bootstrap-lab] .sampler-pipeline span, [data-task-bootstrap-lab] .evidence-pipeline span { font: .4rem/1.2 var(--font-mono); opacity: .7; }
[data-task-bootstrap-lab] .sampler-pipeline b, [data-task-bootstrap-lab] .evidence-pipeline b { display: block; margin-top: .35rem; font: 720 .61rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .sampler-pipeline p, [data-task-bootstrap-lab] .evidence-pipeline p { margin: .32rem 0 0; opacity: .7; font-size: .43rem; }
[data-task-bootstrap-lab] .sampler-pipeline > i, [data-task-bootstrap-lab] .evidence-pipeline > i { color: var(--orange); font: 760 .72rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .uniform-demo { margin-top: 1rem; overflow: hidden; border: 1px solid var(--line); background: #eee9df; }
[data-task-bootstrap-lab] .uniform-demo > header { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem .85rem; color: #e8efed; background: #29434a; }
[data-task-bootstrap-lab] .uniform-demo > header span { display: block; color: #91c9be; font: .4rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .uniform-demo > header b { display: block; margin-top: .3rem; font: 710 .58rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .uniform-demo > header p { margin: 0; font-size: .45rem; }
[data-task-bootstrap-lab] .uniform-bars { display: grid; grid-template-columns: repeat(8,1fr); gap: 1px; height: 9rem; padding: .75rem; background: #d9d4ca; }
[data-task-bootstrap-lab] .uniform-bars article { display: grid; grid-template-rows: 1fr auto auto auto; min-width: 0; padding: .3rem; background: #f7f3ea; text-align: center; }
[data-task-bootstrap-lab] .uniform-bars i { align-self: end; width: 58%; height: calc(var(--u) * 100%); min-height: .25rem; margin: 0 auto; background: linear-gradient(#8fc9bd,#2f776c); }
[data-task-bootstrap-lab] .uniform-bars span, [data-task-bootstrap-lab] .uniform-bars code { margin-top: .18rem; color: #6a7773; font: .35rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .uniform-bars b { margin-top: .18rem; font: 700 .43rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .token-lanes { display: grid; gap: 1px; padding: 0 .75rem .75rem; background: #d9d4ca; }
[data-task-bootstrap-lab] .token-lanes article { display: grid; grid-template-columns: 1.2fr 4fr; gap: 1px; background: #d9d4ca; }
[data-task-bootstrap-lab] .token-lanes header { padding: .55rem; background: #eee9df; }
[data-task-bootstrap-lab] .token-lanes header span, [data-task-bootstrap-lab] .token-lanes header b { display: block; }
[data-task-bootstrap-lab] .token-lanes header span { color: var(--orange); font: .38rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .token-lanes header b { margin-top: .3rem; font-size: .48rem; }
[data-task-bootstrap-lab] .token-lanes article > div { display: grid; grid-template-columns: repeat(8,1fr); gap: 1px; background: #d9d4ca; }
[data-task-bootstrap-lab] .token-lanes i { display: grid; place-items: center; min-width: 0; padding: .45rem .15rem; background: #fffaf2; font: 680 .39rem/1 var(--font-mono); font-style: normal; }
[data-task-bootstrap-lab] .token-lanes small { display: block; margin-bottom: .23rem; color: #77817d; font-size: .31rem; }
[data-task-bootstrap-lab] .tb-note { margin-top: 1rem; padding: .85rem 1rem; border-left: .24rem solid var(--orange); background: #eee9df; }
[data-task-bootstrap-lab] .tb-note.dark { color: #e8efed; border-left-color: #e0a17c; background: #29434a; }
[data-task-bootstrap-lab] .tb-note b { font: 710 .58rem/1.3 var(--font-mono); }
[data-task-bootstrap-lab] .tb-note p { margin: .42rem 0 0; opacity: .76; font-size: .51rem; line-height: 1.6; }
[data-task-bootstrap-lab] .tb-switch-row { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem; border: 1px solid var(--line); background: #eee9df; }
[data-task-bootstrap-lab] .tb-switch-row > div { display: flex; gap: .35rem; }
[data-task-bootstrap-lab] .tb-switch-row button, [data-task-bootstrap-lab] .task-pages button { padding: .55rem .75rem; color: #53625f; border: 1px solid var(--line); background: #fffaf2; font: 690 .45rem/1 var(--font-mono); cursor: pointer; }
[data-task-bootstrap-lab] .tb-switch-row button[aria-pressed="true"], [data-task-bootstrap-lab] .task-pages button[aria-pressed="true"] { color: #edf3f1; border-color: #2f776c; background: #2f776c; }
[data-task-bootstrap-lab] .condition-cards { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 1rem; border: 1px solid var(--line); background: var(--line); }
[data-task-bootstrap-lab] .condition-cards article { padding: .75rem; background: #eee9df; }
[data-task-bootstrap-lab] .condition-cards span { color: #66736f; font: .41rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .condition-cards b { display: block; margin-top: .38rem; color: #2d6d63; font: 740 .63rem/1.1 var(--font-mono); }
[data-task-bootstrap-lab] .condition-cards p { margin: .3rem 0 0; color: #717b77; font-size: .44rem; }
[data-task-bootstrap-lab] .forest { margin-top: 1rem; overflow: hidden; border: 1px solid var(--line); }
[data-task-bootstrap-lab] .forest > header { display: grid; grid-template-columns: 1fr auto 1fr; padding: .6rem .8rem; color: #e9f0ee; background: #29434a; font: .4rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .forest > header span:last-child { text-align: right; }
[data-task-bootstrap-lab] .forest > header b { color: #a8d2c9; }
[data-task-bootstrap-lab] .forest [data-tb-forest] > article { display: grid; grid-template-columns: 1.25fr 2.8fr .65fr 1.2fr; gap: .65rem; align-items: center; padding: .72rem .8rem; border-bottom: 1px solid var(--line); background: #eee9df; }
[data-task-bootstrap-lab] .forest [data-tb-forest] > article:last-child { border-bottom: 0; }
[data-task-bootstrap-lab] .forest article > span { font: 650 .46rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .forest article > i { position: relative; height: .38rem; background: linear-gradient(to right,#deb194 0 49.7%,#29434a 49.7% 50.3%,#a9d3ca 50.3% 100%); }
[data-task-bootstrap-lab] .forest article u { position: absolute; top: 50%; left: var(--band-left); width: calc(var(--band-right) - var(--band-left)); height: .44rem; background: #596d68; transform: translateY(-50%); text-decoration: none; }
[data-task-bootstrap-lab] .forest article u.clear { background: #2f776c; }
[data-task-bootstrap-lab] .forest article em { position: absolute; top: 50%; left: var(--point); width: .75rem; height: .75rem; border: .13rem solid #eee9df; border-radius: 50%; background: #bd6c46; box-shadow: 0 0 0 1px #29434a; transform: translate(-50%,-50%); }
[data-task-bootstrap-lab] .forest article > b { font: 730 .48rem/1.2 var(--font-mono); text-align: right; }
[data-task-bootstrap-lab] .forest article > small { color: #687570; font: .37rem/1.3 var(--font-mono); }
[data-task-bootstrap-lab] .bootstrap-reading, [data-task-bootstrap-lab] .tape-reading { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: 1rem; border: 1px solid var(--line); background: var(--line); }
[data-task-bootstrap-lab] .bootstrap-reading article, [data-task-bootstrap-lab] .tape-reading article { padding: .8rem; background: #eee9df; }
[data-task-bootstrap-lab] .bootstrap-reading article.result, [data-task-bootstrap-lab] .tape-reading article.result { color: #edf4f1; background: #2f776c; }
[data-task-bootstrap-lab] .bootstrap-reading span, [data-task-bootstrap-lab] .tape-reading span { font: .4rem/1.2 var(--font-mono); opacity: .7; }
[data-task-bootstrap-lab] .bootstrap-reading b, [data-task-bootstrap-lab] .tape-reading b { display: block; margin-top: .4rem; font: 730 .62rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .bootstrap-reading p, [data-task-bootstrap-lab] .tape-reading p { margin: .35rem 0 0; opacity: .7; font-size: .46rem; line-height: 1.45; }
[data-task-bootstrap-lab] .task-controls, [data-task-bootstrap-lab] .tape-controls { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
[data-task-bootstrap-lab] .task-controls label, [data-task-bootstrap-lab] .task-controls article, [data-task-bootstrap-lab] .tape-controls label { padding: .72rem; background: #eee9df; }
[data-task-bootstrap-lab] .task-controls span, [data-task-bootstrap-lab] .tape-controls span { display: block; color: #6e7975; font: .4rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .task-controls select, [data-task-bootstrap-lab] .tape-controls select { width: 100%; margin-top: .38rem; padding: .42rem; border: 1px solid var(--line); background: #fffaf2; font: 650 .5rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .task-controls b { display: block; margin-top: .45rem; font: 730 .61rem/1.1 var(--font-mono); }
[data-task-bootstrap-lab] .task-pages { display: grid; grid-template-columns: repeat(4,1fr); gap: .35rem; margin-top: .7rem; }
[data-task-bootstrap-lab] .task-table, [data-task-bootstrap-lab] .tape-matrix { margin-top: .75rem; overflow: hidden; border: 1px solid var(--line); }
[data-task-bootstrap-lab] .task-table > header, [data-task-bootstrap-lab] .task-table [data-tb-task-rows] > article { display: grid; grid-template-columns: 1.4fr repeat(4,.55fr) 1.75fr; gap: 1px; background: var(--line); }
[data-task-bootstrap-lab] .task-table > header > * { padding: .55rem .35rem; color: #e9f0ee; background: #29434a; font: 620 .36rem/1.2 var(--font-mono); text-align: center; }
[data-task-bootstrap-lab] .task-table > header > *:first-child, [data-task-bootstrap-lab] .task-table > header > *:last-child { text-align: left; }
[data-task-bootstrap-lab] .task-table [data-tb-task-rows] article > span { display: flex; gap: .5rem; align-items: center; min-width: 0; padding: .55rem; background: #eee9df; }
[data-task-bootstrap-lab] .task-table article > span small { color: var(--orange); font: .36rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .task-table article > span b { overflow: hidden; font: 650 .43rem/1.2 var(--font-mono); text-overflow: ellipsis; white-space: nowrap; }
[data-task-bootstrap-lab] .task-table article > i { display: grid; place-items: center; padding: .4rem; background: #f0dfd5; font-style: normal; }
[data-task-bootstrap-lab] .task-table article > i.pass { background: #dcebe5; }
[data-task-bootstrap-lab] .task-table article > i b { font: 760 .52rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .task-table article > i small { margin-top: .22rem; color: #6b7773; font: .32rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .task-table article > strong { display: grid; align-content: center; padding: .45rem .55rem; background: #eee9df; }
[data-task-bootstrap-lab] .task-table article > strong.positive { background: #dcebe5; }
[data-task-bootstrap-lab] .task-table article > strong.negative { background: #f0dfd5; }
[data-task-bootstrap-lab] .task-table article > strong b { font: 700 .43rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .task-table article > strong small { margin-top: .25rem; color: #67736f; font: .33rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .transition-cards { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: .75rem; border: 1px solid var(--line); background: var(--line); }
[data-task-bootstrap-lab] .transition-cards article { padding: .7rem; background: #eee9df; }
[data-task-bootstrap-lab] .transition-cards article.positive { background: #dcebe5; }
[data-task-bootstrap-lab] .transition-cards article.negative { background: #f0dfd5; }
[data-task-bootstrap-lab] .transition-cards span { color: #65736e; font: .4rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .transition-cards b { display: block; margin-top: .35rem; font: 730 .6rem/1.1 var(--font-mono); }
[data-task-bootstrap-lab] .tape-matrix > header, [data-task-bootstrap-lab] .tape-matrix [data-tb-tape-rows] > article, [data-task-bootstrap-lab] .tape-matrix > footer { display: grid; grid-template-columns: 1.45fr repeat(4,.75fr) 1fr; gap: 1px; background: var(--line); }
[data-task-bootstrap-lab] .tape-matrix > header > *, [data-task-bootstrap-lab] .tape-matrix > footer > * { padding: .58rem .4rem; color: #e8efed; background: #29434a; font: 650 .4rem/1.2 var(--font-mono); text-align: center; }
[data-task-bootstrap-lab] .tape-matrix > header > *:first-child, [data-task-bootstrap-lab] .tape-matrix > footer > *:first-child { text-align: left; }
[data-task-bootstrap-lab] .tape-matrix [data-tb-tape-rows] article > span, [data-task-bootstrap-lab] .tape-matrix [data-tb-tape-rows] article > strong { padding: .7rem .55rem; background: #eee9df; font: 650 .43rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .tape-matrix [data-tb-tape-rows] article > b { display: grid; place-items: center; color: #29433e; background: color-mix(in srgb,#8fc8bd calc(var(--strength) * 72%),#f7f3ea); font: 730 .5rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .tape-matrix [data-tb-tape-rows] article > b.negative { color: #5e3427; background: color-mix(in srgb,#dc9d78 calc(var(--strength) * 72%),#f7f3ea); }
[data-task-bootstrap-lab] .tape-matrix [data-tb-tape-rows] article > b.zero { background: #f7f3ea; }
[data-task-bootstrap-lab] .tape-matrix [data-tb-tape-rows] article > strong { text-align: center; }
[data-task-bootstrap-lab] .replay-fields { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 1rem; border: 1px solid var(--line); background: var(--line); }
[data-task-bootstrap-lab] .replay-fields article { padding: .7rem; background: #dfece7; }
[data-task-bootstrap-lab] .replay-fields span { display: block; color: #58716b; font: .36rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .replay-fields b { display: block; margin-top: .32rem; color: #28675c; font: 740 .58rem/1.1 var(--font-mono); }
[data-task-bootstrap-lab] .replay-fields i { display: block; margin-top: .23rem; color: #568178; font: .34rem/1 var(--font-mono); }
[data-task-bootstrap-lab] .failure-ledger { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: 1rem; }
[data-task-bootstrap-lab] .failure-ledger > article { overflow: hidden; border: 1px solid var(--line); background: #eee9df; }
[data-task-bootstrap-lab] .failure-ledger header { display: flex; justify-content: space-between; padding: .7rem; color: #e8efed; background: #29434a; }
[data-task-bootstrap-lab] .failure-ledger header span { font: .4rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .failure-ledger header b { font: 720 .5rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .failure-ledger article > div { display: grid; grid-template-columns: 1.2fr 2fr .35fr; gap: .55rem; align-items: center; padding: .55rem .7rem; border-bottom: 1px solid var(--line); }
[data-task-bootstrap-lab] .failure-ledger article > div:last-child { border-bottom: 0; }
[data-task-bootstrap-lab] .failure-ledger div > span { font: .4rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .failure-ledger div > i { height: .36rem; background: #d8d2c8; }
[data-task-bootstrap-lab] .failure-ledger div > i u { display: block; width: calc(var(--share) * 100%); height: 100%; background: #2f776c; text-decoration: none; }
[data-task-bootstrap-lab] .failure-ledger div > b { font: 700 .44rem/1 var(--font-mono); text-align: right; }
[data-task-bootstrap-lab] .deviation-ledger { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: 1rem; }
[data-task-bootstrap-lab] .deviation-ledger article { padding: .85rem; border: 1px solid var(--line); background: #eee9df; }
[data-task-bootstrap-lab] .deviation-ledger article.reported-process-deviation { border-left: .25rem solid #bd6c46; }
[data-task-bootstrap-lab] .deviation-ledger article.corrected-before-output { border-left: .25rem solid #2f776c; }
[data-task-bootstrap-lab] .deviation-ledger span { color: var(--orange); font: .39rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .deviation-ledger b { display: block; margin-top: .38rem; font: 710 .58rem/1.2 var(--font-mono); text-transform: uppercase; }
[data-task-bootstrap-lab] .deviation-ledger p { margin: .38rem 0 0; color: #69746f; font-size: .48rem; line-height: 1.55; }
[data-task-bootstrap-lab] .artifact-chain { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 1rem; border: 1px solid var(--line); background: var(--line); }
[data-task-bootstrap-lab] .artifact-chain article { min-width: 0; padding: .65rem; background: #eee9df; }
[data-task-bootstrap-lab] .artifact-chain span { color: var(--orange); font: .36rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] .artifact-chain b { display: block; margin-top: .32rem; overflow: hidden; font: 650 .4rem/1.2 var(--font-mono); text-overflow: ellipsis; }
[data-task-bootstrap-lab] > figcaption { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: .9rem 1.1rem; color: #e2eae8; background: #203a42; }
[data-task-bootstrap-lab] > figcaption b { color: #8dc8bd; font: 720 .48rem/1.2 var(--font-mono); }
[data-task-bootstrap-lab] > figcaption span { font-size: .5rem; line-height: 1.5; }
[data-task-bootstrap-lab] > figcaption code { color: #dda988; font: .38rem/1.3 var(--font-mono); }
@media (max-width: 900px) {
[data-task-bootstrap-lab] .tb-head, [data-task-bootstrap-lab] .tb-panel-lead { grid-template-columns: 1fr; }
[data-task-bootstrap-lab] .tb-ledger { grid-template-columns: repeat(3,1fr); }
[data-task-bootstrap-lab] .tb-tabs { grid-template-columns: repeat(3,1fr); }
[data-task-bootstrap-lab] .sampler-pipeline, [data-task-bootstrap-lab] .evidence-pipeline { grid-template-columns: 1fr; }
[data-task-bootstrap-lab] .sampler-pipeline > i, [data-task-bootstrap-lab] .evidence-pipeline > i { transform: rotate(90deg); text-align: center; }
[data-task-bootstrap-lab] .replay-fields, [data-task-bootstrap-lab] .artifact-chain { grid-template-columns: 1fr 1fr; }
[data-task-bootstrap-lab] > figcaption { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
[data-task-bootstrap-lab] .tb-panel { padding: .9rem; }
[data-task-bootstrap-lab] .tb-head { padding: 1.2rem; }
[data-task-bootstrap-lab] .tb-tabs, [data-task-bootstrap-lab] .pairing-compare,
[data-task-bootstrap-lab] .tb-switch-row, [data-task-bootstrap-lab] .task-controls,
[data-task-bootstrap-lab] .tape-controls, [data-task-bootstrap-lab] .bootstrap-reading,
[data-task-bootstrap-lab] .tape-reading, [data-task-bootstrap-lab] .failure-ledger,
[data-task-bootstrap-lab] .deviation-ledger { display: grid; grid-template-columns: 1fr; }
[data-task-bootstrap-lab] .tb-switch-row > div { display: grid; grid-template-columns: 1fr 1fr; }
[data-task-bootstrap-lab] .condition-cards, [data-task-bootstrap-lab] .transition-cards { grid-template-columns: 1fr 1fr; }
[data-task-bootstrap-lab] .uniform-demo > header { display: grid; }
[data-task-bootstrap-lab] .uniform-bars { grid-template-columns: repeat(4,1fr); height: auto; }
[data-task-bootstrap-lab] .uniform-bars article { min-height: 6.5rem; }
[data-task-bootstrap-lab] .token-lanes article { grid-template-columns: 1fr; }
[data-task-bootstrap-lab] .token-lanes article > div { overflow-x: auto; }
[data-task-bootstrap-lab] .forest [data-tb-forest] > article { grid-template-columns: 1fr; }
[data-task-bootstrap-lab] .forest article > i { margin: .45rem 0; }
[data-task-bootstrap-lab] .task-table, [data-task-bootstrap-lab] .tape-matrix { overflow-x: auto; }
[data-task-bootstrap-lab] .task-table > header, [data-task-bootstrap-lab] .task-table [data-tb-task-rows] > article { min-width: 44rem; }
[data-task-bootstrap-lab] .tape-matrix > header, [data-task-bootstrap-lab] .tape-matrix [data-tb-tape-rows] > article, [data-task-bootstrap-lab] .tape-matrix > footer { min-width: 36rem; }
}
</style>
+24 -8
View File
@@ -7,6 +7,7 @@ import DeepSeekBehaviorLab from "@/components/DeepSeekBehaviorLab.astro";
import DeepSeekCompletionDepthLab from "@/components/DeepSeekCompletionDepthLab.astro"; import DeepSeekCompletionDepthLab from "@/components/DeepSeekCompletionDepthLab.astro";
import DeepSeekSamplingLab from "@/components/DeepSeekSamplingLab.astro"; import DeepSeekSamplingLab from "@/components/DeepSeekSamplingLab.astro";
import DeepSeekCrossSourceSamplingLab from "@/components/DeepSeekCrossSourceSamplingLab.astro"; import DeepSeekCrossSourceSamplingLab from "@/components/DeepSeekCrossSourceSamplingLab.astro";
import DeepSeekTaskBootstrapLab from "@/components/DeepSeekTaskBootstrapLab.astro";
import { deepseekBranches, deepseekLedgers, deepseekPaperChain, deepseekWaves } from "@/data/deepseek"; import { deepseekBranches, deepseekLedgers, deepseekPaperChain, deepseekWaves } from "@/data/deepseek";
const toc = [ const toc = [
@@ -37,21 +38,22 @@ const toc = [
["24", "completion-depth", "Chat:完成度与全深度"], ["24", "completion-depth", "Chat:完成度与全深度"],
["25", "sampling", "Chat:多种子采样稳健性"], ["25", "sampling", "Chat:多种子采样稳健性"],
["26", "cross-source-sampling", "Chat:跨题采样与统计单位"], ["26", "cross-source-sampling", "Chat:跨题采样与统计单位"],
["27", "branches", "别漏掉旁支"], ["27", "task-bootstrap-crn", "Chat:任务 bootstrap 与共同随机数"],
["28", "audit", "事实、推导与教学模型"], ["28", "branches", "别漏掉旁支"],
["29", "audit", "事实、推导与教学模型"],
["↳", "papers", "六十节点阅读链"], ["↳", "papers", "六十节点阅读链"],
]; ];
--- ---
<BaseLayout <BaseLayout
title="DeepSeek 技术谱系与真实权重深读:从 Dense、MoE、MLA 到 R1 与 V4" title="DeepSeek 技术谱系与真实权重深读:从 Dense、MoE、MLA 到 R1 与 V4"
description="用二十四张问题账、十次技术转向、二十一个交互实验、真实 V2-Lite Base / Chat 权重、512-token 完成度评测、29 阶段隐藏状态、26 层 MoE 路由追踪,以及单题与跨题两轮各 256 条采样,完整理解 DeepSeek 的 MoE、MLA、FP8、DualPipe、GRPO、R1、V3.2 与 V4。" description="用二十四张问题账、十次技术转向、二十二个交互实验、真实 V2-Lite Base / Chat 权重、512-token 完成度评测、29 阶段隐藏状态、26 层 MoE 路由追踪,以及 864 条分层采样与显式共同随机数审计,完整理解 DeepSeek 的 MoE、MLA、FP8、DualPipe、GRPO、R1、V3.2 与 V4。"
section="deepseek" section="deepseek"
> >
<header class="page-hero deepseek-hero"> <header class="page-hero deepseek-hero">
<div class="page-hero-inner"> <div class="page-hero-inner">
<div> <div>
<p class="eyebrow"><span>SPOTLIGHT / DEEPSEEK · ROUND 07</span> SOURCE COVERAGE × SAMPLING × FULL DEPTH</p> <p class="eyebrow"><span>SPOTLIGHT / DEEPSEEK · ROUND 08</span> TASK BOOTSTRAP × COMMON RANDOM NUMBERS × FULL DEPTH</p>
<h1>不要背模型名<br />要看懂每次为什么转向</h1> <h1>不要背模型名<br />要看懂每次为什么转向</h1>
<p class="lead"> <p class="lead">
这不是七篇报告的摘要,而是一套可追问、可计算、可反驳的技术谱系: 这不是七篇报告的摘要,而是一套可追问、可计算、可反驳的技术谱系:
@@ -63,9 +65,9 @@ const toc = [
<div><dt>SPAN</dt><dd>2024.01 → 2026.06</dd></div> <div><dt>SPAN</dt><dd>2024.01 → 2026.06</dd></div>
<div><dt>LEDGERS</dt><dd>24 张问题账</dd></div> <div><dt>LEDGERS</dt><dd>24 张问题账</dd></div>
<div><dt>LINEAGE</dt><dd>10 次技术转向</dd></div> <div><dt>LINEAGE</dt><dd>10 次技术转向</dd></div>
<div><dt>LABS</dt><dd>21 个可操作实验</dd></div> <div><dt>LABS</dt><dd>22 个可操作实验</dd></div>
<div><dt>EVIDENCE</dt><dd>60 个一手 / 官方节点</dd></div> <div><dt>EVIDENCE</dt><dd>60 个一手 / 官方节点</dd></div>
<div><dt>STATUS</dt><dd>七轮 · 512 条采样</dd></div> <div><dt>STATUS</dt><dd>八轮 · 864 条采样</dd></div>
</dl> </dl>
</div> </div>
</header> </header>
@@ -840,8 +842,22 @@ const toc = [
<DeepSeekCrossSourceSamplingLab /> <DeepSeekCrossSourceSamplingLab />
</section> </section>
<section class="article-section" id="task-bootstrap-crn">
<p class="eyebrow"><span>27</span> TASKS ARE NOT RANDOM TAPES</p>
<h2>换一道题与换一条随机带,不是同一种不确定性:把 32 题 bootstrap 与真正的共同随机数接起来</h2>
<p class="lede">
Round 07 把 source 提升为覆盖单位,却仍只有每域四题;四行也只是共享 batch
seed,不是真正共享同一概率分位。Round 08 在 HumanEval 与 GSM8K 各冻结 32 题,
主分析统一使用 T0;另取每域四题跑 T0–T3。每个 source、tape、step 的
<code>uₜ</code> 由 SHA-256 显式派生,四个 prompt 条件读取同一个
<code>uₜ</code>,再穿过各自的 <code>temperature=.3 / top_p=.95</code>
CDF。这样可以把任务差异、sampling tape 差异与 prompt 条件差异放进不同账本。
</p>
<DeepSeekTaskBootstrapLab />
</section>
<section class="article-section" id="branches"> <section class="article-section" id="branches">
<p class="eyebrow"><span>27</span> THE MAIN LINE IS NOT THE WHOLE TREE</p> <p class="eyebrow"><span>28</span> THE MAIN LINE IS NOT THE WHOLE TREE</p>
<h2>如果只读 V2 → V3 → R1 → V4,会漏掉五条反过来影响主线的旁支</h2> <h2>如果只读 V2 → V3 → R1 → V4,会漏掉五条反过来影响主线的旁支</h2>
<div class="branch-grid"> <div class="branch-grid">
{deepseekBranches.map(([name, line, text, url]) => ( {deepseekBranches.map(([name, line, text, url]) => (
@@ -861,7 +877,7 @@ const toc = [
</section> </section>
<section class="article-section" id="audit"> <section class="article-section" id="audit">
<p class="eyebrow"><span>28</span> EVIDENCE AUDIT</p> <p class="eyebrow"><span>29</span> EVIDENCE AUDIT</p>
<h2>同一张页面里有三种知识,它们的语气必须不同</h2> <h2>同一张页面里有三种知识,它们的语气必须不同</h2>
<div class="audit-grid"> <div class="audit-grid">
<article class="reported"> <article class="reported">
+5 -5
View File
@@ -145,18 +145,18 @@ const paths = [
</a> </a>
<a class="release-card deepseek-release" href="/deepseek/"> <a class="release-card deepseek-release" href="/deepseek/">
<div> <div>
<p class="eyebrow"><span>NEW / DEEPSEEK ROUND 07</span> CROSS-SOURCE SAMPLING · SOURCE-BLOCKED AUDIT</p> <p class="eyebrow"><span>NEW / DEEPSEEK ROUND 08</span> TASK BOOTSTRAP · EXPLICIT COMMON RANDOM NUMBERS</p>
<h2>从 Dense 到百万上下文:每次创新都在偿还上一代最贵的一张账</h2> <h2>从 Dense 到百万上下文:每次创新都在偿还上一代最贵的一张账</h2>
<p> <p>
单题抽 64 次仍然只有一道题。新一轮保持 256 条预算不变,改用 16 条预先冻结的 从每域四题扩到 HumanEval / GSM8K 各 32 题,并把“同 seed”升级为显式共享
source:Math 四题从 8 / 16 到 16 / 16,Code 四题也从 8 / 16 到 16 / 16; uniform tape:352 条正式输出、10,000 次选定任务配对 bootstrap 与 64 条
English 甚至出现域均值与 3 / 4 source 方向相反。新进程 R0 仍 64 / 64 格 exact。 十二字段新进程重放。正确性区间都跨零,但输出长度揭示 Code 与 Math 方向相反。
</p> </p>
</div> </div>
<dl> <dl>
<div><dt>LINEAGE</dt><dd>1991 → 2026 · 10 次转向</dd></div> <div><dt>LINEAGE</dt><dd>1991 → 2026 · 10 次转向</dd></div>
<div><dt>NODES</dt><dd>60 个一手 / 官方节点</dd></div> <div><dt>NODES</dt><dd>60 个一手 / 官方节点</dd></div>
<div><dt>LAB</dt><dd>21 · Base / Chat / sampling</dd></div> <div><dt>LAB</dt><dd>22 · Base / Chat / sampling</dd></div>
</dl> </dl>
<span class="release-arrow" aria-hidden="true">进入 DeepSeek 完整技术谱系 →</span> <span class="release-arrow" aria-hidden="true">进入 DeepSeek 完整技术谱系 →</span>
</a> </a>
+8 -4
View File
@@ -15,7 +15,7 @@ const workstreams = [
{ label: "表示、位置与残差高速公路", value: 81, next: "加入真实 hidden-state / norm traces、长上下文位置外推复现与更多深层稳定性消融" }, { label: "表示、位置与残差高速公路", value: 81, next: "加入真实 hidden-state / norm traces、长上下文位置外推复现与更多深层稳定性消融" },
{ label: "Scaling Laws", value: 74, next: "加入真实拟合复现、置信区间与更多模型族对照" }, { label: "Scaling Laws", value: 74, next: "加入真实拟合复现、置信区间与更多模型族对照" },
{ label: "数据工程与预训练配方", value: 73, next: "逐图精读 FineWeb / DCLM,加入真实去重与 mixture traces" }, { label: "数据工程与预训练配方", value: 73, next: "逐图精读 FineWeb / DCLM,加入真实去重与 mixture traces" },
{ label: "DeepSeek 专题", value: 99, next: "把跨题采样扩大到可做 task-level bootstrap,再推进 per-row RNG、干预式 mediation、SM90 FlashMLA 与 R1-like RL" }, { label: "DeepSeek 专题", value: 99, next: "推进干预式 mediation、SM90 FlashMLA、FP8 / pipeline traces 与 R1-like RL 小模型复现" },
{ label: "指令微调与人类偏好", value: 75, next: "加入真实偏好分歧样本、RM 长度偏置与 PPO/DPO 小模型复现" }, { label: "指令微调与人类偏好", value: 75, next: "加入真实偏好分歧样本、RM 长度偏置与 PPO/DPO 小模型复现" },
{ label: "推理与测试时扩展", value: 76, next: "真实模型采样曲线、PRM 案例与逐篇图表精读" }, { label: "推理与测试时扩展", value: 76, next: "真实模型采样曲线、PRM 案例与逐篇图表精读" },
{ label: "工具使用与长程 Agent", value: 74, next: "补真实环境 traces、cross-harness 对照、Agent RL 训练曲线与安全案例" }, { label: "工具使用与长程 Agent", value: 74, next: "补真实环境 traces、cross-harness 对照、Agent RL 训练曲线与安全案例" },
@@ -97,12 +97,12 @@ const workstreams = [
<article><span>✓</span><h3>K3 报告已结构化拆解</h3><p>47 页报告目录、151 条参考来源和架构/后训练/系统主线已经提取。</p></article> <article><span>✓</span><h3>K3 报告已结构化拆解</h3><p>47 页报告目录、151 条参考来源和架构/后训练/系统主线已经提取。</p></article>
<article><span>✓</span><h3>17 专题知识图</h3><p>从语言模型基础到评测安全,包含先修依赖和三条贯穿案例。</p></article> <article><span>✓</span><h3>17 专题知识图</h3><p>从语言模型基础到评测安全,包含先修依赖和三条贯穿案例。</p></article>
<article><span>✓</span><h3>编辑式网站系统</h3><p>响应式导航、章节模板、侧栏、进度、论文链和证据提示组件。</p></article> <article><span>✓</span><h3>编辑式网站系统</h3><p>响应式导航、章节模板、侧栏、进度、论文链和证据提示组件。</p></article>
<article><span>✓</span><h3>八十八个原创交互视图</h3><p>K3 三轴图、八联报告实验与四联开放工件实验,DeepSeek 四联公式实验、十三联 Base 工件实验、Chat 行为、completion/full-depth、multi-seed 与 cross-source sampling 四轮实验,以及语言模型前史、Transformer、表示深度、长上下文、MoE、推理、Agent、多模态、训练系统、推理服务、Scaling、数据工程、数值、Alignment 与评测安全专题。</p></article> <article><span>✓</span><h3>八十九个原创交互视图</h3><p>K3 三轴图、八联报告实验与四联开放工件实验,DeepSeek 四联公式实验、十三联 Base 工件实验、Chat 行为、completion/full-depth、multi-seed、cross-source 与 task-bootstrap CRN 五轮实验,以及语言模型前史、Transformer、表示深度、长上下文、MoE、推理、Agent、多模态、训练系统、推理服务、Scaling、数据工程、数值、Alignment 与评测安全专题。</p></article>
<article><span>✓</span><h3>十七篇首版长文</h3><p>K3、语言模型前史、Transformer、表示/位置/残差、DeepSeek、Scaling、数据工程、长上下文、MoE、后训练、推理、Agent、原生多模态、训练系统、推理服务、数值优化与评测安全专题。</p></article> <article><span>✓</span><h3>十七篇首版长文</h3><p>K3、语言模型前史、Transformer、表示/位置/残差、DeepSeek、Scaling、数据工程、长上下文、MoE、后训练、推理、Agent、原生多模态、训练系统、推理服务、数值优化与评测安全专题。</p></article>
<article><span>✓</span><h3>语言模型前史深度专题</h3><p>八张独立问题账、33 个正式节点、20 段长文与概率—向量—记忆—对齐四联实验。</p></article> <article><span>✓</span><h3>语言模型前史深度专题</h3><p>八张独立问题账、33 个正式节点、20 段长文与概率—向量—记忆—对齐四联实验。</p></article>
<article><span>✓</span><h3>Transformer 深度专题</h3><p>十张独立问题账、40 个正式节点、21 段正文与 QKV—Mask—多头位置—Block 成本四联实验。</p></article> <article><span>✓</span><h3>Transformer 深度专题</h3><p>十张独立问题账、40 个正式节点、21 段正文与 QKV—Mask—多头位置—Block 成本四联实验。</p></article>
<article><span>✓</span><h3>表示、位置与残差高速公路深度专题</h3><p>二十张问题账、66 个一手节点、DeepSeek/Kimi 双谱系,以及 Token—位置—Norm—Residual/FFN 四联实验。</p></article> <article><span>✓</span><h3>表示、位置与残差高速公路深度专题</h3><p>二十张问题账、66 个一手节点、DeepSeek/Kimi 双谱系,以及 Token—位置—Norm—Residual/FFN 四联实验。</p></article>
<article><span>✓</span><h3>DeepSeek 七轮真实权重里程碑</h3><p>继单题多 seed 之后,保持 256 条预算并把覆盖扩大到 16 条预先冻结的 source:250 条 natural EOS、247 个 unique trajectories;Math 四题为 14/16、16/16、8/16、9/16,Code 四题为 16/16、8/16、12/16、16/16。source-blocked 方向揭示 English 均值与多数题相反,新进程 R0 八项合同字段 64 / 64 exact。</p></article> <article><span>✓</span><h3>DeepSeek 八轮真实权重里程碑</h3><p>把覆盖扩到 HumanEval / GSM8K 各 32 条冻结任务,用显式 SHA-256 uniform tape 驱动四个条件的共同随机数采样:352 条正式输出中 343 条 natural EOS、320 个 unique trajectories;10,000 次选定任务配对 bootstrap 的正确性区间均跨零,长度则揭示 Code 与 Math 的相反方向。新进程十二字段重放 64 / 64 exact。</p></article>
<article><span>✓</span><h3>Kimi K3 技术报告二轮深读</h3><p>三十二张问题账、Figure 1–16 / Table 1–5 审计、100 节点阅读链,以及 Delta—Decay—AttnRes—LatentMoE—SiTU—QB—MOPD—Cache 八联实验。</p></article> <article><span>✓</span><h3>Kimi K3 技术报告二轮深读</h3><p>三十二张问题账、Figure 1–16 / Table 1–5 审计、100 节点阅读链,以及 Delta—Decay—AttnRes—LatentMoE—SiTU—QB—MOPD—Cache 八联实验。</p></article>
<article><span>✓</span><h3>Kimi K3 三轮开放工件里程碑</h3><p>固定官方 revisions,审计 96 个 shards、497,220 个 tensor entries 与真实 KDA / MLA / MoE / MoonViT shapes;四联实验分开显示层型、tensor anatomy、参数范围和复现边界。</p></article> <article><span>✓</span><h3>Kimi K3 三轮开放工件里程碑</h3><p>固定官方 revisions,审计 96 个 shards、497,220 个 tensor entries 与真实 KDA / MLA / MoE / MoonViT shapes;四联实验分开显示层型、tensor anatomy、参数范围和复现边界。</p></article>
<article><span>✓</span><h3>FlashKDA RTX 5090 执行闸门</h3><p>隔离 CUDA 13.0 / glibc 2.39 编译 sm_120a wheel;6/6 官方参考逐元素相等,并完成 fixed / varlen、三种 state mode 的 1,800 个 CUDA Event samples。</p></article> <article><span>✓</span><h3>FlashKDA RTX 5090 执行闸门</h3><p>隔离 CUDA 13.0 / glibc 2.39 编译 sm_120a wheel;6/6 官方参考逐元素相等,并完成 fixed / varlen、三种 state mode 的 1,800 个 CUDA Event samples。</p></article>
@@ -134,7 +134,7 @@ const workstreams = [
<div class="queue-table"> <div class="queue-table">
<div class="head"><b>优先级</b><b>专题</b><b>本轮交付</b><b>完成闸门</b></div> <div class="head"><b>优先级</b><b>专题</b><b>本轮交付</b><b>完成闸门</b></div>
<div><span>P0</span><strong>K3 三轮</strong><p>开放权重 traces → FlashKDA / AttnRes / MoE 真实行为 → Figure 1–16 数值重绘与独立复现</p><em>运行证据 + 逐图复现</em></div> <div><span>P0</span><strong>K3 三轮</strong><p>开放权重 traces → FlashKDA / AttnRes / MoE 真实行为 → Figure 1–16 数值重绘与独立复现</p><em>运行证据 + 逐图复现</em></div>
<div><span>P0</span><strong>DeepSeek 七轮后续</strong><p>扩大到 task-level bootstrap → per-row RNG 对照 → 干预式 mediation → SM90 FlashMLA / FP8 / pipeline traces → R1-like RL 小模型复现</p><em>运行证据 + 独立复现</em></div> <div><span>P0</span><strong>DeepSeek 八轮后续</strong><p>干预式 mediation → SM90 FlashMLA / FP8 / pipeline traces → R1-like RL 小模型复现</p><em>运行证据 + 独立复现</em></div>
<div><span>P0</span><strong>Transformer 二轮</strong><p>多头电路逐图 → Pre/Post-LN 真实 traces → Flash/KV 配置与 kernel 对照</p><em>逐图笔记 + 实测边界</em></div> <div><span>P0</span><strong>Transformer 二轮</strong><p>多头电路逐图 → Pre/Post-LN 真实 traces → Flash/KV 配置与 kernel 对照</p><em>逐图笔记 + 实测边界</em></div>
<div><span>P0</span><strong>表示、位置与残差二轮</strong><p>真实 hidden-state / norm traces → 长上下文位置外推 → mHC / AttnRes 深层稳定性消融</p><em>可复现实验 + 逐图笔记</em></div> <div><span>P0</span><strong>表示、位置与残差二轮</strong><p>真实 hidden-state / norm traces → 长上下文位置外推 → mHC / AttnRes 深层稳定性消融</p><em>可复现实验 + 逐图笔记</em></div>
<div><span>P0</span><strong>语言模型前史二轮</strong><p>Kneser–Ney / LSTM / Bahdanau 逐图 → 真实小语料复现 → tokenizer 公平性</p><em>可复现实验 + 逐图笔记</em></div> <div><span>P0</span><strong>语言模型前史二轮</strong><p>Kneser–Ney / LSTM / Bahdanau 逐图 → 真实小语料复现 → tokenizer 公平性</p><em>可复现实验 + 逐图笔记</em></div>
@@ -237,6 +237,10 @@ const workstreams = [
<div><time>2026-07-30</time><b>任务总数必须展开为逐题矩阵</b><p>Math 与 Code 的四题都从 8/16 跨到 16/16;跨不同 GSM8K gold 的 final-answer frequency 禁止聚合。</p></div> <div><time>2026-07-30</time><b>任务总数必须展开为逐题矩阵</b><p>Math 与 Code 的四题都从 8/16 跨到 16/16;跨不同 GSM8K gold 的 final-answer frequency 禁止聚合。</p></div>
<div><time>2026-07-30</time><b>均值与 source 方向同时展示</b><p>English 句点 contrast 均值 −8.5,但 3/4 source 为正;Code 两道题 +1/−1 interaction 在域均值 0 中抵消。</p></div> <div><time>2026-07-30</time><b>均值与 source 方向同时展示</b><p>English 句点 contrast 均值 −8.5,但 3/4 source 为正;Code 两道题 +1/−1 interaction 在域均值 0 中抵消。</p></div>
<div><time>2026-07-30</time><b>跨题 sampling 仍要求精确复跑</b><p>R0/R1 63/64 同格分叉;新进程 R0 的 seed、prompt、token、text、stop 与 CPU/CUDA RNG pre-state 八字段 64/64 exact。</p></div> <div><time>2026-07-30</time><b>跨题 sampling 仍要求精确复跑</b><p>R0/R1 63/64 同格分叉;新进程 R0 的 seed、prompt、token、text、stop 与 CPU/CUDA RNG pre-state 八字段 64/64 exact。</p></div>
<div><time>2026-07-30</time><b>共同随机数必须共享 uniform tape</b><p>仅把生成器 seed 重置为同一个值并不等于 CRN;Round 08 用 SHA-256 逐 task/tape/step 生成显式 u,并让四个条件把同一 u 映射到各自 token CDF。</p></div>
<div><time>2026-07-30</time><b>bootstrap 的统计单位是任务</b><p>HumanEval 与 GSM8K 各 32 题分开做 10,000 次成对任务重采样;这是冻结题集的敏感性带,不冒充 benchmark 总体或跨 seed 置信区间。</p></div>
<div><time>2026-07-30</time><b>正确性未定,不等于没有行为效应</b><p>八个正确性 contrast 区间全部跨零;system-at-period 的长度带在 Code 为 −130.9 [−178.7,−83.2],在 Math 为 +25.1 [7.9,44.5],明确显示任务域交互。</p></div>
<div><time>2026-07-30</time><b>复现合同扩到随机带本身</b><p>64 条新进程重放逐字段核对 uniform hash、token IDs、文本、停止状态与 RNG;十二字段全部 64/64 exact,并公开评分文件提前加载这一流程偏差。</p></div>
</div> </div>
</section> </section>