site: explain K3 round seven local path audit
This commit is contained in:
+13
-4
@@ -8,7 +8,7 @@
|
|||||||
|---|---:|---:|---|
|
|---|---:|---:|---|
|
||||||
| 研究框架与规范 | 进行中 | 83% | Scaling Laws 二轮拟合复现与逐图精读 |
|
| 研究框架与规范 | 进行中 | 83% | Scaling Laws 二轮拟合复现与逐图精读 |
|
||||||
| 网站设计系统 | 进行中 | 89% | 打印样式与更多通用可视化组件 |
|
| 网站设计系统 | 进行中 | 89% | 打印样式与更多通用可视化组件 |
|
||||||
| Kimi K3 深读 | 六轮实证进行中 | 99% | 对 group 6 / 7 做局部 mixer backward 干预,并等待 `A_log` 官方转换合同 |
|
| Kimi K3 深读 | 七轮实证进行中 | 99% | 设计前向训练变体,并等待 `A_log` 社区候选的官方裁决 |
|
||||||
| 语言模型前史 | 完成首版 | 78% | Kneser–Ney、LSTM、Bahdanau 逐图精读与真实小语料复现 |
|
| 语言模型前史 | 完成首版 | 78% | Kneser–Ney、LSTM、Bahdanau 逐图精读与真实小语料复现 |
|
||||||
| Transformer 基础 | 完成首版 | 79% | 多头电路、归一化 traces 与真实 kernel / KV 配置 |
|
| Transformer 基础 | 完成首版 | 79% | 多头电路、归一化 traces 与真实 kernel / KV 配置 |
|
||||||
| 表示、位置与残差高速公路 | 完成首版 | 81% | 真实 hidden-state / norm traces、长上下文位置外推与深层稳定性消融 |
|
| 表示、位置与残差高速公路 | 完成首版 | 81% | 真实 hidden-state / norm traces、长上下文位置外推与深层稳定性消融 |
|
||||||
@@ -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 三轴架构、八联报告实验、四联开放工件实验、Round 04 / 05 / 06 各五联 AttnRes 独立实验、语言模型前史四联实验、Transformer 四联实验、表示深度四联实验、DeepSeek 二十二联实验、长上下文、MoE 路由、推理三页签,以及训练系统、推理服务、Scaling、数据工程、数值、Alignment、Agent、原生多模态与评测安全专题各四页签等一百零四个原创交互视图。
|
- [x] 完成 K3 三轴架构、八联报告实验、四联开放工件实验、Round 04 / 05 / 06 / 07 各五联 AttnRes 独立实验、语言模型前史四联实验、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 研究账本。
|
||||||
@@ -298,10 +298,16 @@
|
|||||||
- [x] K3 Round 06 五视图实验室完成:训练轨迹、六位置谱、12 格 reduction 稳健性、same-forward 三规则干预与 mixer 散点/证据阶梯可交互;protocol、scoping、audit、runner、analyzer、raw/aggregate/compact/reproduction 全部进入公开树。
|
- [x] K3 Round 06 五视图实验室完成:训练轨迹、六位置谱、12 格 reduction 稳健性、same-forward 三规则干预与 mixer 散点/证据阶梯可交互;protocol、scoping、audit、runner、analyzer、raw/aggregate/compact/reproduction 全部进入公开树。
|
||||||
- [x] Round 06 本地闸门通过:97 个 Astro 文件零诊断,21 个页面、1,151 个站内引用、12 个跨页锚点零失败;Round 04/05/06 三套冻结数据、三套专项、K3 全量与全站 22 套真实 Chrome 回归通过,桌面/390px 移动端零文档级溢出、零 offender、零运行时异常;首页首发卡与陈旧跨页断言同步到 Round 06。
|
- [x] Round 06 本地闸门通过:97 个 Astro 文件零诊断,21 个页面、1,151 个站内引用、12 个跨页锚点零失败;Round 04/05/06 三套冻结数据、三套专项、K3 全量与全站 22 套真实 Chrome 回归通过,桌面/390px 移动端零文档级溢出、零 offender、零运行时异常;首页首发卡与陈旧跨页断言同步到 Round 06。
|
||||||
- [x] K3 Round 06 以运行源提交 `b393780`、不可变镜像 `20260730T042651Z-b393780` 发布;OCI index digest `sha256:4e4cb2e065526f50c10cf759bab80a5a871177812ca9fa5c9da77c662c81a63a`,NAS healthy / 0 次重启、Compose Manager 标签、VPS→NAS、NPM host 31 / cert 41、DNS、HTTPS/2、首页/K3 公网内容、门户 `LLM ATLAS / projects / 180` 与全站 22 套生产 Chrome 回归全部通过;保留 Round 05 `20260730T022610Z-f7670ef` 与中间 `20260730T042110Z-a1a52d4` 回滚点。
|
- [x] K3 Round 06 以运行源提交 `b393780`、不可变镜像 `20260730T042651Z-b393780` 发布;OCI index digest `sha256:4e4cb2e065526f50c10cf759bab80a5a871177812ca9fa5c9da77c662c81a63a`,NAS healthy / 0 次重启、Compose Manager 标签、VPS→NAS、NPM host 31 / cert 41、DNS、HTTPS/2、首页/K3 公网内容、门户 `LLM ATLAS / projects / 180` 与全站 22 套生产 Chrome 回归全部通过;保留 Round 05 `20260730T022610Z-f7670ef` 与中间 `20260730T042110Z-a1a52d4` 回滚点。
|
||||||
|
- [x] K3 Round 07 在正式输出前冻结 `llm-atlas-k3-attnres-local-path-v1`:固定 Round 06 三个 depth-32 Block 正式格、layer 21–25 spike set、groups 6+7、14 个 exact selector masks、sufficiency / restoration 双向 log-gap score、主门 50%、单组/分支/输出控制与完整 seed-1 replay;Grok 只读对抗审阅提出的六个 blocking protocol 问题全部在冻结前修正。
|
||||||
|
- [x] 三个正式格与 replay 共消费 262,144,000 target bytes;Round 06 parent equivalence、forward identity、65-node census、selector identity / order / uniqueness、负对照与 loss-scale 闸门全部通过。正式最终 BPC 为 `1.7123525941 / 1.7093240656 / 1.7030966813`。
|
||||||
|
- [x] global gap 在两个指标 × 三 seed 的 6 / 6 格通过。groups 6+7 sufficiency 的 mean score 为 contrast `.677`、peak `1.700`,6 / 6 ≥ `.50`;restoration mean 为 contrast `.650`、peak `.380`,contrast 3 / 3 通过而 peak 0 / 3 通过,正式状态固定为 `one_sided_evidence_localization_not_established`。
|
||||||
|
- [x] 次级控制显示 group 7 MLP-only branch 在 sufficiency 方向 6 / 6 通过 material + margin 门;group 6 MLP-only 为 5 / 6,不能宣布 dominance。output-only mean sufficiency 仅 `.131 / .187`、0 / 6 过 50%;all-depth 为 `.949 / 1.145`。所有 score 都是非加性 log-gap 诊断,不写成贡献率。
|
||||||
|
- [x] K3 Round 07 五视图实验室完成:65-node 路径图、14-mask 全矩阵、双向主门、branch/output controls 与 32 层原始谱/replay 审计可交互;protocol、scoping、Grok 结果前审阅、audit、runner、analyzer、packager、四个 raw JSON、aggregate、compact 与 reproduction 全部进入公开树。
|
||||||
|
- [x] Round 07 本地闸门通过:100 个 Astro 文件零诊断,21 个页面、1,151 个站内引用、12 个跨页锚点零失败;Round 04/05/06/07 四套冻结数据、四套 K3 专项、K3 全量与全站 23 套真实 Chrome 回归通过。动态生成矩阵的 scoped CSS 退化由截图复查发现并修复;桌面/390px 移动端零文档级溢出、零 offender、零运行时异常。
|
||||||
|
|
||||||
## 正在进行
|
## 正在进行
|
||||||
|
|
||||||
- [ ] K3 六轮下一闸门:把全局 value-route sensitivity 收缩成 group 6 / group 7 的局部 mixer intervention matrix,并设计前向训练变体;真实 K3 forward 继续等待 `A_log [128]→[96]` 官方转换或权重修订。
|
- [ ] K3 七轮下一闸门:设计前向训练变体与非加性局部交互地图;真实 K3 forward 继续等待 `A_log [128]↔[96]` 社区候选的官方裁决或权重修订。
|
||||||
- [ ] DeepSeek 八轮下一闸门:推进干预式 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 元评测、动态污染与过拒案例。
|
||||||
@@ -490,7 +496,7 @@
|
|||||||
| 2026-07-30 | 输出长度揭示强任务域交互 | system-at-period 在 Code 为负、Math 为正,两个选定任务带都不跨零;不从长度外推能力 |
|
| 2026-07-30 | 输出长度揭示强任务域交互 | system-at-period 在 Code 为负、Math 为正,两个选定任务带都不跨零;不从长度外推能力 |
|
||||||
| 2026-07-30 | Round 08 十二字段重放过闸 | 64/64 exact;uniform hash、完整 token IDs、文本、stop 与 RNG 一并进入复现合同,评分 gold 提前加载的流程偏差公开保留 |
|
| 2026-07-30 | Round 08 十二字段重放过闸 | 64/64 exact;uniform hash、完整 token IDs、文本、stop 与 RNG 一并进入复现合同,评分 gold 提前加载的流程偏差公开保留 |
|
||||||
| 2026-07-30 | DeepSeek Round 08 任务 bootstrap / CRN 里程碑发布 | 源提交 `975ed3d`、镜像 `20260729T221654Z-975ed3d`、OCI `sha256:759a8446…21452b`;21/21 公网路由与生产专项/全量 Chrome 通过,保留 Round 07 回滚点 |
|
| 2026-07-30 | DeepSeek Round 08 任务 bootstrap / CRN 里程碑发布 | 源提交 `975ed3d`、镜像 `20260729T221654Z-975ed3d`、OCI `sha256:759a8446…21452b`;21/21 公网路由与生产专项/全量 Chrome 通过,保留 Round 07 回滚点 |
|
||||||
| 2026-07-30 | K3 `A_log [128]` 冲突继续阻断真实 checkpoint forward | 当前 HF / GitHub / FlashKDA / vLLM / SGLang 均未公开 128→96 转换;不裁剪、不 reshape、不把假设输出冒充 K3 |
|
| 2026-07-30 | K3 `A_log [128]` 冲突仍没有官方裁决 | 官方 main 仍期望 96;社区 #144 改为 128,#150 验证 tail zero 后裁为 96,两案都未合并。不把候选 patch 冒充官方 K3 forward |
|
||||||
| 2026-07-30 | AttnRes 缩小实验先冻结再训练 | 三结构共享公共主干、初始化、窗口与优化器;三 seed paired BPC 只按预注册 `3/3 same direction + mean≤−.010` 判为本协议内方向支持 |
|
| 2026-07-30 | AttnRes 缩小实验先冻结再训练 | 三结构共享公共主干、初始化、窗口与优化器;三 seed paired BPC 只按预注册 `3/3 same direction + mean≤−.010` 判为本协议内方向支持 |
|
||||||
| 2026-07-30 | 主结果与机制反结果同时发布 | Full / Block BPC 方向支持;核心参数 gradient RMS CV 却高于 Baseline,明确写成未复现论文梯度叙述 |
|
| 2026-07-30 | 主结果与机制反结果同时发布 | Full / Block BPC 方向支持;核心参数 gradient RMS CV 却高于 Baseline,明确写成未复现论文梯度叙述 |
|
||||||
| 2026-07-30 | 独立重放按数值合同而非计时合同验收 | Block / seed-1 的八组冻结字段 2,000 steps exact;wall time 受调度影响,不要求或声称 bit-exact |
|
| 2026-07-30 | 独立重放按数值合同而非计时合同验收 | Block / seed-1 的八组冻结字段 2,000 steps exact;wall time 受调度影响,不要求或声称 bit-exact |
|
||||||
@@ -506,6 +512,9 @@
|
|||||||
| 2026-07-30 | value-route 降幅不写成因果贡献百分比 | 全局 uniform value-backward 让 contrast 平均下降 70.2%,只支持预注册阈值下的材料级敏感性;不声称 value 路径“解释了 70.2%” |
|
| 2026-07-30 | value-route 降幅不写成因果贡献百分比 | 全局 uniform value-backward 让 contrast 平均下降 70.2%,只支持预注册阈值下的材料级敏感性;不声称 value 路径“解释了 70.2%” |
|
||||||
| 2026-07-30 | reduction 稳健性限定在预注册家族 | element RMS、token RMS mean/median/P95 的 12/12 格通过;探索性 reduction 和其他 batch 不被纳入确认性外推 |
|
| 2026-07-30 | reduction 稳健性限定在预注册家族 | element RMS、token RMS mean/median/P95 的 12/12 格通过;探索性 reduction 和其他 batch 不被纳入确认性外推 |
|
||||||
| 2026-07-30 | K3 Round 06 尖峰路径里程碑发布 | 运行源 `b393780`、镜像 `20260730T042651Z-b393780`、OCI `sha256:4e4cb2e0…1a63a`;21/21 公网页面链路与全站 22 套生产 Chrome 通过,保留 Round 05 与中间 Round 06 回滚点 |
|
| 2026-07-30 | K3 Round 06 尖峰路径里程碑发布 | 运行源 `b393780`、镜像 `20260730T042651Z-b393780`、OCI `sha256:4e4cb2e0…1a63a`;21/21 公网页面链路与全站 22 套生产 Chrome 通过,保留 Round 05 与中间 Round 06 回滚点 |
|
||||||
|
| 2026-07-30 | 局部路径必须同时通过 sufficiency 与 restoration | groups 6+7 的 sufficiency 6/6 过 `.50`,restoration 仅 contrast 3/3 通过、peak 0/3 通过;强单侧证据不升级为 localization |
|
||||||
|
| 2026-07-30 | 局部 score 不写成可加贡献率 | 同一 scope 在 learned 与 uniform 背景的响应不同,`S_peak > 1` 与负 interaction residual 都是非加性诊断,不是 170% 贡献或方差分解 |
|
||||||
|
| 2026-07-30 | branch 与 output 控制保持次级证据身份 | group 7 MLP-only 的 6/6 只属于 sufficiency branch gate;group 6 为 5/6,output-only 为 0/6,都不能补救失败的双向主门 |
|
||||||
|
|
||||||
## 未决问题
|
## 未决问题
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
当前里程碑包含 17 专题学习地图、486 篇关键论文索引、Kimi K3 完整导读,
|
当前里程碑包含 17 专题学习地图、486 篇关键论文索引、Kimi K3 完整导读,
|
||||||
语言模型前史、Transformer 基础、表示/位置/残差、DeepSeek 技术谱系、Scaling Laws、数据工程、长上下文、MoE、指令微调与人类偏好、推理、工具使用与长程 Agent、原生多模态、训练系统、推理服务、数值优化,以及评测与安全深度专题,
|
语言模型前史、Transformer 基础、表示/位置/残差、DeepSeek 技术谱系、Scaling Laws、数据工程、长上下文、MoE、指令微调与人类偏好、推理、工具使用与长程 Agent、原生多模态、训练系统、推理服务、数值优化,以及评测与安全深度专题,
|
||||||
以及 104 个覆盖核心机制的原创交互视图。K3 二轮导读以 32 张问题账、16 图 / 5 表审计、
|
以及 109 个覆盖核心机制的原创交互视图。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 个新视图
|
||||||
@@ -66,6 +66,18 @@ value-backward coefficients 换成均匀系数后,contrast 平均下降 `70.2%
|
|||||||
[K3_ATTNRES_SPIKE_PROTOCOL.md](./research/K3_ATTNRES_SPIKE_PROTOCOL.md)、
|
[K3_ATTNRES_SPIKE_PROTOCOL.md](./research/K3_ATTNRES_SPIKE_PROTOCOL.md)、
|
||||||
[K3_ATTNRES_SPIKE_AUDIT.md](./research/K3_ATTNRES_SPIKE_AUDIT.md) 与
|
[K3_ATTNRES_SPIKE_AUDIT.md](./research/K3_ATTNRES_SPIKE_AUDIT.md) 与
|
||||||
[spike-path experiment](./experiments/k3/attnres_spike/)。
|
[spike-path experiment](./experiments/k3/attnres_spike/)。
|
||||||
|
第七轮冻结 `llm-atlas-k3-attnres-local-path-v1`,把 Round 06 的全局 value-route
|
||||||
|
sensitivity 收缩为 14 个 exact selector masks,并同时从 learned 背景测 sufficiency、
|
||||||
|
从 all-uniform 背景测 restoration。groups 6+7 的 16 个 depth mixers 在充分性方向
|
||||||
|
两个指标 × 三 seed 的 `6 / 6` 格全部超过 `.50` global log gap;恢复性却只有 contrast
|
||||||
|
`3 / 3` 通过,peak `0 / 3` 通过,mean peak restoration 仅 `.380`。因此冻结结论是
|
||||||
|
`one_sided_evidence_localization_not_established`,不是“定位成功”。group 7 的
|
||||||
|
MLP-only 次级门 6 / 6 通过,但只属于 sufficiency 探索;output-only 为 0 / 6。
|
||||||
|
三个正式格与完整 replay 共处理 262,144,000 target bytes,Round 06 equivalence、
|
||||||
|
14 / 14 forward identity、65-node census、selector 与 canonical replay 全部 exact。
|
||||||
|
详见 [K3_ATTNRES_LOCAL_PATH_PROTOCOL.md](./research/K3_ATTNRES_LOCAL_PATH_PROTOCOL.md)、
|
||||||
|
[K3_ATTNRES_LOCAL_PATH_AUDIT.md](./research/K3_ATTNRES_LOCAL_PATH_AUDIT.md) 与
|
||||||
|
[local-path experiment](./experiments/k3/attnres_local_path/)。
|
||||||
DeepSeek 八轮专题以 24 张问题账、10 次技术转向、
|
DeepSeek 八轮专题以 24 张问题账、10 次技术转向、
|
||||||
22 个交互实验和 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 次真实专家选择、
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"check:data:k3-attnres": "node scripts/check-k3-attnres-data.mjs",
|
"check:data:k3-attnres": "node scripts/check-k3-attnres-data.mjs",
|
||||||
"check:data:k3-attnres-gradient": "node scripts/check-k3-attnres-gradient-data.mjs",
|
"check:data:k3-attnres-gradient": "node scripts/check-k3-attnres-gradient-data.mjs",
|
||||||
"check:data:k3-attnres-spike": "node scripts/check-k3-attnres-spike-data.mjs",
|
"check:data:k3-attnres-spike": "node scripts/check-k3-attnres-spike-data.mjs",
|
||||||
|
"check:data:k3-attnres-local-path": "node scripts/check-k3-attnres-local-path-data.mjs",
|
||||||
"check:site": "node scripts/check-site.mjs",
|
"check:site": "node scripts/check-site.mjs",
|
||||||
"check:moe-browser": "node scripts/check-moe-browser.mjs",
|
"check:moe-browser": "node scripts/check-moe-browser.mjs",
|
||||||
"check:reasoning-browser": "node scripts/check-reasoning-browser.mjs",
|
"check:reasoning-browser": "node scripts/check-reasoning-browser.mjs",
|
||||||
@@ -44,6 +45,7 @@
|
|||||||
"check:k3-attnres-browser": "node scripts/check-k3-attnres-browser.mjs",
|
"check:k3-attnres-browser": "node scripts/check-k3-attnres-browser.mjs",
|
||||||
"check:k3-attnres-gradient-browser": "node scripts/check-k3-attnres-gradient-browser.mjs",
|
"check:k3-attnres-gradient-browser": "node scripts/check-k3-attnres-gradient-browser.mjs",
|
||||||
"check:k3-attnres-spike-browser": "node scripts/check-k3-attnres-spike-browser.mjs",
|
"check:k3-attnres-spike-browser": "node scripts/check-k3-attnres-spike-browser.mjs",
|
||||||
|
"check:k3-attnres-local-path-browser": "node scripts/check-k3-attnres-local-path-browser.mjs",
|
||||||
"check:k3-browser": "node scripts/check-k3-browser.mjs"
|
"check:k3-browser": "node scripts/check-k3-browser.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -228,7 +228,7 @@ if (numeric(reliability.initial.passAt) <= numeric(reliability.k2.passAt) || num
|
|||||||
if (reliability.nonIdempotent.sideRisk === "LOW") failures.push("非幂等写操作风险没有提升");
|
if (reliability.nonIdempotent.sideRisk === "LOW") failures.push("非幂等写操作风险没有提升");
|
||||||
if (numeric(rl.wait.utilization) >= numeric(rl.full.utilization) || numeric(rl.wait.lostWork) <= numeric(rl.full.lostWork)) failures.push("wait-all 长尾/重算方向异常");
|
if (numeric(rl.wait.utilization) >= numeric(rl.full.utilization) || numeric(rl.wait.lostWork) <= numeric(rl.full.lostWork)) failures.push("wait-all 长尾/重算方向异常");
|
||||||
if (!rl.wait.takeaway.includes("wait-all") || rl.keyboardSelected !== "rl" || rl.keyboardVisible !== "rl") failures.push("长程 RL 解释或键盘导航异常");
|
if (!rl.wait.takeaway.includes("wait-all") || rl.keyboardSelected !== "rl" || rl.keyboardVisible !== "rl") failures.push("长程 RL 解释或键盘导航异常");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
||||||
if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasAgentFilter || papers.agentVisible < 52) failures.push("论文库 Agent 标签或论文总数异常");
|
if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasAgentFilter || papers.agentVisible < 52) failures.push("论文库 Agent 标签或论文总数异常");
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
||||||
if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`);
|
if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`);
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ if (!update.steps[0].includes("Fixed preference")) failures.push("DPO 更新流
|
|||||||
if (!recipe.family.includes("Multi-effort") || !recipe.regime.includes("9 RL experts") || !recipe.constraints.includes("verbosity")) failures.push("K3 配方合同异常");
|
if (!recipe.family.includes("Multi-effort") || !recipe.regime.includes("9 RL experts") || !recipe.constraints.includes("verbosity")) failures.push("K3 配方合同异常");
|
||||||
if (!recipe.path.some((step) => step.includes("3 domains × 3 efforts")) || !recipe.path.some((step) => step.includes("MOPD"))) failures.push("K3 配方路径异常");
|
if (!recipe.path.some((step) => step.includes("3 domains × 3 efforts")) || !recipe.path.some((step) => step.includes("MOPD"))) failures.push("K3 配方路径异常");
|
||||||
if (recipe.keyboardSelected !== "recipe" || recipe.keyboardVisible !== "recipe") failures.push("实验 tab 键盘导航异常");
|
if (recipe.keyboardSelected !== "recipe" || recipe.keyboardVisible !== "recipe") failures.push("实验 tab 键盘导航异常");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
||||||
if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasAlignmentFilter || papers.alignmentVisible < 35) failures.push("论文库后训练标签或论文总数异常");
|
if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasAlignmentFilter || papers.alignmentVisible < 35) failures.push("论文库后训练标签或论文总数异常");
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
||||||
if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`);
|
if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`);
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ if (layout.navLinks !== 20 || mobile.mobileLinks !== 20 || home.navLinks !== 20)
|
|||||||
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
||||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/") {
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/") {
|
||||||
failures.push("首页 Transformer 新章入口异常");
|
failures.push("首页 Transformer 新章入口异常");
|
||||||
}
|
}
|
||||||
if (home.paperCount !== "486") failures.push(`首页论文总数异常:${home.paperCount}`);
|
if (home.paperCount !== "486") failures.push(`首页论文总数异常:${home.paperCount}`);
|
||||||
|
|||||||
@@ -1318,7 +1318,7 @@ if (completionDepth.tasks.panel !== "tasks" || completionDepth.tasks.mathCards !
|
|||||||
if (completionDepth.hidden.panel !== "hidden" || completionDepth.hidden.stages !== 29 || completionDepth.hidden.selected !== "layer_07" || completionDepth.hidden.points !== 29 || completionDepth.hidden.exact === "1,537 / 1,537" || numeric(completionDepth.hidden.relative) <= 0) failures.push("29 阶段隐藏状态曲线或交互异常");
|
if (completionDepth.hidden.panel !== "hidden" || completionDepth.hidden.stages !== 29 || completionDepth.hidden.selected !== "layer_07" || completionDepth.hidden.points !== 29 || completionDepth.hidden.exact === "1,537 / 1,537" || numeric(completionDepth.hidden.relative) <= 0) failures.push("29 阶段隐藏状态曲线或交互异常");
|
||||||
if (completionDepth.router.panel !== "router" || completionDepth.router.layers !== 26 || completionDepth.router.selected !== "layer 24" || completionDepth.router.points !== 26 || !completionDepth.router.ordered.includes("%") || !completionDepth.router.setExact.includes("%") || numeric(completionDepth.router.tv) <= 0 || completionDepth.router.reproCards !== 4 || completionDepth.router.links !== 4) failures.push("26 层 MoE 路由曲线或复跑证据异常");
|
if (completionDepth.router.panel !== "router" || completionDepth.router.layers !== 26 || completionDepth.router.selected !== "layer 24" || completionDepth.router.points !== 26 || !completionDepth.router.ordered.includes("%") || !completionDepth.router.setExact.includes("%") || numeric(completionDepth.router.tv) <= 0 || completionDepth.router.reproCards !== 4 || completionDepth.router.links !== 4) failures.push("26 层 MoE 路由曲线或复跑证据异常");
|
||||||
if (completionDepth.keyboardSelected !== "tasks" || completionDepth.keyboardVisible !== "tasks") failures.push("完成度与全深度实验键盘 tab 导航异常");
|
if (completionDepth.keyboardSelected !== "tasks" || completionDepth.keyboardVisible !== "tasks") failures.push("完成度与全深度实验键盘 tab 导航异常");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/" || home.paperCount !== "486") failures.push("首页 K3 首发入口或论文数异常");
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/" || home.paperCount !== "486") failures.push("首页 K3 首发入口或论文数异常");
|
||||||
if (papers.total !== 486 || !papers.hasFilter || papers.visible < 20 || !papers.hasCoder || !papers.hasEngram) failures.push("论文库 DeepSeek 聚光异常");
|
if (papers.total !== 486 || !papers.hasFilter || papers.visible < 20 || !papers.hasCoder || !papers.hasEngram) failures.push("论文库 DeepSeek 聚光异常");
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4 || mobile.artifactTabs !== 13 || mobile.behaviorTabs !== 4 || mobile.behaviorSources !== 16 || mobile.behaviorEdges !== 10 || mobile.behaviorDeviceCells !== 29 || mobile.completionDepthTabs !== 4 || mobile.completionDepthHiddenStages !== 29 || mobile.completionDepthRouterLayers !== 26 || mobile.artifactHeatCells !== 64 || mobile.corpusCohorts !== 3 || mobile.lengthDeltaCards !== 4 || mobile.templateLayers !== 6 || mobile.templateScopes !== 2 || mobile.templateModes !== 2 || mobile.templateDomainCards !== 4 || mobile.templateDepthCells !== 24 || mobile.historyLayers !== 6 || mobile.historyScopes !== 2 || mobile.historyModes !== 2 || mobile.historyEffects !== 3 || mobile.historyDomainCards !== 4 || mobile.historyDepthCells !== 24 || mobile.distanceLayers !== 6 || mobile.distanceScopes !== 2 || mobile.distanceModes !== 2 || mobile.distanceContrasts !== 2 || mobile.distanceDomainCards !== 4 || mobile.distanceDepthCells !== 24 || mobile.boundaryLayers !== 6 || mobile.boundaryScopes !== 2 || mobile.boundaryModes !== 2 || mobile.boundaryContrasts !== 3 || mobile.boundaryTokenCards !== 4 || mobile.boundaryDomainCards !== 4 || mobile.boundaryDepthCells !== 24 || mobile.roleLayers !== 6 || mobile.roleScopes !== 2 || mobile.roleModes !== 2 || mobile.roleContrasts !== 3 || mobile.roleLevelCards !== 4 || mobile.roleDomainCards !== 4 || mobile.roleDepthCells !== 24 || mobile.specialLayers !== 6 || mobile.specialScopes !== 2 || mobile.specialModes !== 2 || mobile.specialContrasts !== 4 || mobile.specialTokenCards !== 4 || mobile.specialDomainCards !== 4 || mobile.specialDepthCells !== 24 || mobile.roleBlockLayers !== 6 || mobile.roleBlockScopes !== 2 || mobile.roleBlockModes !== 2 || mobile.roleBlockEffects !== 3 || mobile.roleBlockMatrixCards !== 4 || mobile.roleBlockDomainCards !== 4 || mobile.roleBlockDepthCells !== 24) failures.push("移动端导航或实验异常");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4 || mobile.artifactTabs !== 13 || mobile.behaviorTabs !== 4 || mobile.behaviorSources !== 16 || mobile.behaviorEdges !== 10 || mobile.behaviorDeviceCells !== 29 || mobile.completionDepthTabs !== 4 || mobile.completionDepthHiddenStages !== 29 || mobile.completionDepthRouterLayers !== 26 || mobile.artifactHeatCells !== 64 || mobile.corpusCohorts !== 3 || mobile.lengthDeltaCards !== 4 || mobile.templateLayers !== 6 || mobile.templateScopes !== 2 || mobile.templateModes !== 2 || mobile.templateDomainCards !== 4 || mobile.templateDepthCells !== 24 || mobile.historyLayers !== 6 || mobile.historyScopes !== 2 || mobile.historyModes !== 2 || mobile.historyEffects !== 3 || mobile.historyDomainCards !== 4 || mobile.historyDepthCells !== 24 || mobile.distanceLayers !== 6 || mobile.distanceScopes !== 2 || mobile.distanceModes !== 2 || mobile.distanceContrasts !== 2 || mobile.distanceDomainCards !== 4 || mobile.distanceDepthCells !== 24 || mobile.boundaryLayers !== 6 || mobile.boundaryScopes !== 2 || mobile.boundaryModes !== 2 || mobile.boundaryContrasts !== 3 || mobile.boundaryTokenCards !== 4 || mobile.boundaryDomainCards !== 4 || mobile.boundaryDepthCells !== 24 || mobile.roleLayers !== 6 || mobile.roleScopes !== 2 || mobile.roleModes !== 2 || mobile.roleContrasts !== 3 || mobile.roleLevelCards !== 4 || mobile.roleDomainCards !== 4 || mobile.roleDepthCells !== 24 || mobile.specialLayers !== 6 || mobile.specialScopes !== 2 || mobile.specialModes !== 2 || mobile.specialContrasts !== 4 || mobile.specialTokenCards !== 4 || mobile.specialDomainCards !== 4 || mobile.specialDepthCells !== 24 || mobile.roleBlockLayers !== 6 || mobile.roleBlockScopes !== 2 || mobile.roleBlockModes !== 2 || mobile.roleBlockEffects !== 3 || mobile.roleBlockMatrixCards !== 4 || mobile.roleBlockDomainCards !== 4 || mobile.roleBlockDepthCells !== 24) failures.push("移动端导航或实验异常");
|
||||||
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ if (numeric(system.initial.success) <= numeric(system.initial.model) || numeric(
|
|||||||
if (numeric(system.cheap.success) >= numeric(system.initial.success) || numeric(system.cheap.cost) !== 4) failures.push("低预算没有降低成功率 / 成本");
|
if (numeric(system.cheap.success) >= numeric(system.initial.success) || numeric(system.cheap.cost) !== 4) failures.push("低预算没有降低成功率 / 成本");
|
||||||
if (numeric(system.locked.unsafe) !== 0 || numeric(system.locked.overrefusal) <= numeric(system.initial.overrefusal)) failures.push("安全壳没有展现危险服从 / 过拒权衡");
|
if (numeric(system.locked.unsafe) !== 0 || numeric(system.locked.overrefusal) <= numeric(system.initial.overrefusal)) failures.push("安全壳没有展现危险服从 / 过拒权衡");
|
||||||
if (system.keyboardSelected !== "judge" || system.keyboardVisible !== "judge") failures.push("实验键盘 tab 导航异常");
|
if (system.keyboardSelected !== "judge" || system.keyboardVisible !== "judge") failures.push("实验键盘 tab 导航异常");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
||||||
if (home.paperCount !== "486" || home.topicCount !== "17" || papers.total !== 486 || !papers.hasFilter || papers.visible < 80) failures.push("首页 / 论文库评测索引异常");
|
if (home.paperCount !== "486" || home.topicCount !== "17" || papers.total !== 486 || !papers.hasFilter || papers.visible < 80) failures.push("首页 / 论文库评测索引异常");
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
||||||
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ if (!fleet.k3.avoided.includes("320K") || fleet.k3.shortSlo !== "PROTECTED") fai
|
|||||||
if (!fleet.failed.state.includes("SECONDARY RE-PREFILL") || !fleet.failed.recompute.includes("FAILED PRIMARY")) failures.push("缓存故障没有触发原子失效后的重算");
|
if (!fleet.failed.state.includes("SECONDARY RE-PREFILL") || !fleet.failed.recompute.includes("FAILED PRIMARY")) failures.push("缓存故障没有触发原子失效后的重算");
|
||||||
if (fleet.bursty.shortSlo !== "VIOLATED") failures.push("平均并发阈值没有暴露长请求突发");
|
if (fleet.bursty.shortSlo !== "VIOLATED") failures.push("平均并发阈值没有暴露长请求突发");
|
||||||
if (fleet.keyboardSelected !== "phase" || fleet.keyboardVisible !== "phase") failures.push("实验键盘 tab 导航异常");
|
if (fleet.keyboardSelected !== "phase" || fleet.keyboardVisible !== "phase") failures.push("实验键盘 tab 导航异常");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
||||||
if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasFilter || papers.visible !== 46) failures.push("论文库推理服务标签或总数异常");
|
if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasFilter || papers.visible !== 46) failures.push("论文库推理服务标签或总数异常");
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
||||||
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
||||||
|
|||||||
@@ -0,0 +1,292 @@
|
|||||||
|
import { writeFileSync } from "node:fs";
|
||||||
|
|
||||||
|
const cdpPort = process.env.CDP_PORT ?? "9230";
|
||||||
|
const baseUrl = process.env.SITE_URL ?? "http://127.0.0.1:4329";
|
||||||
|
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 navigate = async (path) => {
|
||||||
|
await command("Page.navigate", { url: `${baseUrl}${path}` });
|
||||||
|
for (let attempt = 0; attempt < 100; attempt += 1) {
|
||||||
|
await pause(100);
|
||||||
|
if (await evaluate("document.readyState === 'complete'")) return;
|
||||||
|
}
|
||||||
|
throw new Error(`${path} 加载超时`);
|
||||||
|
};
|
||||||
|
const screenshot = async (path) => {
|
||||||
|
const result = await command("Page.captureScreenshot", { format: "png", captureBeyondViewport: false });
|
||||||
|
writeFileSync(path, Buffer.from(result.data, "base64"));
|
||||||
|
};
|
||||||
|
|
||||||
|
await command("Page.enable");
|
||||||
|
await command("Runtime.enable");
|
||||||
|
await command("Emulation.setDeviceMetricsOverride", {
|
||||||
|
width: 1440,
|
||||||
|
height: 1100,
|
||||||
|
deviceScaleFactor: 1,
|
||||||
|
mobile: false,
|
||||||
|
});
|
||||||
|
await navigate("/k3/");
|
||||||
|
|
||||||
|
const desktop = await evaluate(`(() => {
|
||||||
|
const root = document.querySelector("[data-local-path-lab]");
|
||||||
|
root.scrollIntoView({ block: "start", behavior: "instant" });
|
||||||
|
window.scrollBy(0, -78);
|
||||||
|
const text = (selector) => root.querySelector(selector)?.textContent.trim();
|
||||||
|
const panel = () => root.querySelector("[data-local-panel]:not([hidden])")?.dataset.localPanel;
|
||||||
|
const setSelect = (selector, value) => {
|
||||||
|
const node = root.querySelector(selector);
|
||||||
|
node.value = value;
|
||||||
|
node.dispatchEvent(new Event("change", { bubbles: true }));
|
||||||
|
};
|
||||||
|
const findMatrix = (needle) => [...root.querySelectorAll(".matrix-bars article")]
|
||||||
|
.find((node) => node.textContent.includes(needle))?.textContent.replace(/\\s+/g, " ").trim();
|
||||||
|
|
||||||
|
const initial = {
|
||||||
|
panel: panel(),
|
||||||
|
tabs: root.querySelectorAll("[data-local-tab]").length,
|
||||||
|
panels: root.querySelectorAll("[data-local-panel]").length,
|
||||||
|
ledger: root.querySelectorAll(".local-ledger article").length,
|
||||||
|
groups: root.querySelectorAll(".group-map article.target").length,
|
||||||
|
spikeLayers: root.querySelectorAll(".group-map i.spike").length,
|
||||||
|
boundary: root.textContent.includes("LOCALIZATION NOT ESTABLISHED") &&
|
||||||
|
root.textContent.includes("不是贡献率") &&
|
||||||
|
root.textContent.includes("不是 K3 checkpoint"),
|
||||||
|
};
|
||||||
|
|
||||||
|
root.querySelector('[data-local-tab="matrix"]').click();
|
||||||
|
const matrixInitial = {
|
||||||
|
panel: panel(),
|
||||||
|
rows: root.querySelectorAll(".matrix-bars article").length,
|
||||||
|
state: text("[data-local-matrix-state]"),
|
||||||
|
group67: findMatrix("仅 Groups 6+7 uniform"),
|
||||||
|
restoration67: findMatrix("恢复 Groups 6+7"),
|
||||||
|
};
|
||||||
|
setSelect("[data-local-matrix-seed]", "2026073002");
|
||||||
|
root.querySelector('[data-local-matrix-metric="peak_normalized"]').click();
|
||||||
|
const matrixChanged = {
|
||||||
|
rows: root.querySelectorAll(".matrix-bars article").length,
|
||||||
|
state: text("[data-local-matrix-state]"),
|
||||||
|
group67: findMatrix("仅 Groups 6+7 uniform"),
|
||||||
|
restoration67: findMatrix("恢复 Groups 6+7"),
|
||||||
|
};
|
||||||
|
|
||||||
|
root.querySelector('[data-local-tab="dual"]').click();
|
||||||
|
const dual = {
|
||||||
|
panel: panel(),
|
||||||
|
rows: root.querySelectorAll(".dual-table tbody tr").length,
|
||||||
|
good: root.querySelectorAll(".dual-table td.good").length,
|
||||||
|
bad: root.querySelectorAll(".dual-table td.bad").length,
|
||||||
|
verdict: text(".verdict-banner"),
|
||||||
|
mean: root.querySelector(".dual-table tr.mean")?.textContent.replace(/\\s+/g, " ").trim(),
|
||||||
|
};
|
||||||
|
|
||||||
|
root.querySelector('[data-local-tab="branch"]').click();
|
||||||
|
const branchInitial = {
|
||||||
|
panel: panel(),
|
||||||
|
state: text("[data-local-branch-state]"),
|
||||||
|
values: [...root.querySelectorAll("[data-local-branch-value]")].map((node) => node.textContent.trim()),
|
||||||
|
passed: root.dataset.branchPassed,
|
||||||
|
};
|
||||||
|
root.querySelector('[data-local-branch-group="7"]').click();
|
||||||
|
const branchChanged = {
|
||||||
|
state: text("[data-local-branch-state]"),
|
||||||
|
values: [...root.querySelectorAll("[data-local-branch-value]")].map((node) => node.textContent.trim()),
|
||||||
|
labels: [...root.querySelectorAll("[data-local-branch-label]")].map((node) => node.textContent.trim()),
|
||||||
|
passed: root.dataset.branchPassed,
|
||||||
|
};
|
||||||
|
|
||||||
|
root.querySelector('[data-local-tab="spectrum"]').click();
|
||||||
|
const spectrumInitial = {
|
||||||
|
panel: panel(),
|
||||||
|
points: root.querySelectorAll("[data-local-spectrum-points] circle").length,
|
||||||
|
line: root.querySelector("[data-local-spectrum-line]").getAttribute("points"),
|
||||||
|
state: text("[data-local-spectrum-state]"),
|
||||||
|
count: text("[data-local-spectrum-count]"),
|
||||||
|
contrast: text("[data-local-spectrum-contrast]"),
|
||||||
|
peak: text("[data-local-spectrum-peak]"),
|
||||||
|
layer: text("[data-local-spectrum-layer]"),
|
||||||
|
};
|
||||||
|
setSelect("[data-local-spectrum-seed]", "2026073002");
|
||||||
|
setSelect("[data-local-spectrum-mode]", "uniform_groups_6_7_only");
|
||||||
|
const spectrumGroup67 = {
|
||||||
|
points: root.querySelectorAll("[data-local-spectrum-points] circle").length,
|
||||||
|
line: root.querySelector("[data-local-spectrum-line]").getAttribute("points"),
|
||||||
|
state: text("[data-local-spectrum-state]"),
|
||||||
|
count: text("[data-local-spectrum-count]"),
|
||||||
|
contrast: text("[data-local-spectrum-contrast]"),
|
||||||
|
peak: text("[data-local-spectrum-peak]"),
|
||||||
|
layer: text("[data-local-spectrum-layer]"),
|
||||||
|
selectedPeakRadius: root.querySelector('[data-local-spectrum-points] circle[data-layer="25"]')?.getAttribute("r"),
|
||||||
|
};
|
||||||
|
setSelect("[data-local-spectrum-seed]", "2026073003");
|
||||||
|
setSelect("[data-local-spectrum-mode]", "uniform_all");
|
||||||
|
const spectrumAll = {
|
||||||
|
points: root.querySelectorAll("[data-local-spectrum-points] circle").length,
|
||||||
|
state: text("[data-local-spectrum-state]"),
|
||||||
|
count: text("[data-local-spectrum-count]"),
|
||||||
|
layer: text("[data-local-spectrum-layer]"),
|
||||||
|
selectedPeakRadius: root.querySelector('[data-local-spectrum-points] circle[data-layer="2"]')?.getAttribute("r"),
|
||||||
|
};
|
||||||
|
|
||||||
|
const first = root.querySelector('[data-local-tab="scope"]');
|
||||||
|
first.focus();
|
||||||
|
first.dispatchEvent(new KeyboardEvent("keydown", { key: "ArrowRight", bubbles: true }));
|
||||||
|
const keyboard = {
|
||||||
|
selected: root.querySelector('[data-local-tab][aria-selected="true"]').dataset.localTab,
|
||||||
|
panel: panel(),
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
initial, matrixInitial, matrixChanged, dual, branchInitial, branchChanged,
|
||||||
|
spectrumInitial, spectrumGroup67, spectrumAll, keyboard,
|
||||||
|
documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth,
|
||||||
|
rootOverflow: root.scrollWidth - root.clientWidth,
|
||||||
|
};
|
||||||
|
})()`);
|
||||||
|
await pause(180);
|
||||||
|
await screenshot("/tmp/llm-atlas-k3-attnres-local-path-desktop.png");
|
||||||
|
|
||||||
|
await command("Emulation.setDeviceMetricsOverride", {
|
||||||
|
width: 390,
|
||||||
|
height: 844,
|
||||||
|
deviceScaleFactor: 1,
|
||||||
|
mobile: true,
|
||||||
|
});
|
||||||
|
await navigate("/k3/");
|
||||||
|
const mobile = await evaluate(`(() => {
|
||||||
|
const root = document.querySelector("[data-local-path-lab]");
|
||||||
|
root.scrollIntoView({ block: "start", behavior: "instant" });
|
||||||
|
window.scrollBy(0, -64);
|
||||||
|
root.querySelector('[data-local-tab="dual"]').click();
|
||||||
|
const dual = {
|
||||||
|
panel: root.querySelector("[data-local-panel]:not([hidden])")?.dataset.localPanel,
|
||||||
|
rows: root.querySelectorAll(".dual-table tbody tr").length,
|
||||||
|
wrapperOverflow: root.querySelector(".dual-table-wrap").scrollWidth -
|
||||||
|
root.querySelector(".dual-table-wrap").clientWidth,
|
||||||
|
};
|
||||||
|
root.querySelector('[data-local-tab="spectrum"]').click();
|
||||||
|
return {
|
||||||
|
tabs: root.querySelectorAll("[data-local-tab]").length,
|
||||||
|
ledger: root.querySelectorAll(".local-ledger article").length,
|
||||||
|
visiblePanel: root.querySelector("[data-local-panel]:not([hidden])")?.dataset.localPanel,
|
||||||
|
points: root.querySelectorAll("[data-local-spectrum-points] circle").length,
|
||||||
|
dual,
|
||||||
|
documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth,
|
||||||
|
rootOverflow: root.scrollWidth - root.clientWidth,
|
||||||
|
};
|
||||||
|
})()`);
|
||||||
|
await pause(180);
|
||||||
|
await screenshot("/tmp/llm-atlas-k3-attnres-local-path-mobile.png");
|
||||||
|
|
||||||
|
const report = { desktop, mobile, exceptions };
|
||||||
|
console.log(JSON.stringify(report, null, 2));
|
||||||
|
|
||||||
|
const numeric = (value) => Number.parseFloat(value.replace("−", "-").replace("×", ""));
|
||||||
|
const failures = [];
|
||||||
|
if (desktop.initial.panel !== "scope" || desktop.initial.tabs !== 5 || desktop.initial.panels !== 5 ||
|
||||||
|
desktop.initial.ledger !== 6 || desktop.initial.groups !== 2 || desktop.initial.spikeLayers !== 5) {
|
||||||
|
failures.push("五视图、六项账本或预注册路径地图结构异常");
|
||||||
|
}
|
||||||
|
if (!desktop.initial.boundary) failures.push("localization / contribution / reduced-model claim boundary 缺失");
|
||||||
|
if (desktop.matrixInitial.panel !== "matrix" || desktop.matrixInitial.rows !== 14 ||
|
||||||
|
!desktop.matrixInitial.state.includes("3-SEED MEAN") ||
|
||||||
|
!desktop.matrixInitial.group67.includes("+0.677") ||
|
||||||
|
!desktop.matrixInitial.restoration67.includes("+0.650")) {
|
||||||
|
failures.push("14-mask mean contrast 矩阵异常");
|
||||||
|
}
|
||||||
|
if (desktop.matrixChanged.rows !== 14 || !desktop.matrixChanged.state.includes("2026073002") ||
|
||||||
|
!desktop.matrixChanged.state.includes("PEAK / MEAN") ||
|
||||||
|
!desktop.matrixChanged.group67.includes("+1.783") ||
|
||||||
|
!desktop.matrixChanged.restoration67.includes("+0.355")) {
|
||||||
|
failures.push("matrix seed / metric 切换异常");
|
||||||
|
}
|
||||||
|
if (desktop.dual.panel !== "dual" || desktop.dual.rows !== 4 || desktop.dual.good !== 9 ||
|
||||||
|
desktop.dual.bad !== 6 || !desktop.dual.verdict.includes("LOCALIZATION NOT ESTABLISHED") ||
|
||||||
|
!desktop.dual.mean.includes("0.677") || !desktop.dual.mean.includes("0.380") ||
|
||||||
|
!desktop.dual.mean.includes("3 / 6")) {
|
||||||
|
failures.push("双向主门表格或冻结判定异常");
|
||||||
|
}
|
||||||
|
if (desktop.branchInitial.panel !== "branch" || desktop.branchInitial.passed !== "false" ||
|
||||||
|
!desktop.branchInitial.state.includes("5 / 6") ||
|
||||||
|
desktop.branchChanged.passed !== "true" || !desktop.branchChanged.state.includes("6 / 6 PASS") ||
|
||||||
|
desktop.branchChanged.labels.some((value) => value !== "GROUP 7") ||
|
||||||
|
Math.abs(numeric(desktop.branchChanged.values[0]) - .015) > .001 ||
|
||||||
|
Math.abs(numeric(desktop.branchChanged.values[1]) - .026) > .001 ||
|
||||||
|
Math.abs(numeric(desktop.branchChanged.values[2]) - .426) > .001 ||
|
||||||
|
Math.abs(numeric(desktop.branchChanged.values[3]) - .823) > .001) {
|
||||||
|
failures.push("group 6 / 7 branch gate 切换异常");
|
||||||
|
}
|
||||||
|
if (desktop.spectrumInitial.panel !== "spectrum" || desktop.spectrumInitial.points !== 32 ||
|
||||||
|
desktop.spectrumInitial.count !== "0 / 65" || numeric(desktop.spectrumInitial.contrast) !== 3.093 ||
|
||||||
|
numeric(desktop.spectrumInitial.peak) !== 3.241 || desktop.spectrumInitial.layer !== "21") {
|
||||||
|
failures.push("reference 32 层谱异常");
|
||||||
|
}
|
||||||
|
if (desktop.spectrumGroup67.points !== 32 || desktop.spectrumGroup67.line === desktop.spectrumInitial.line ||
|
||||||
|
!desktop.spectrumGroup67.state.includes("2026073002") ||
|
||||||
|
desktop.spectrumGroup67.count !== "16 / 65" ||
|
||||||
|
numeric(desktop.spectrumGroup67.contrast) !== 1.263 ||
|
||||||
|
numeric(desktop.spectrumGroup67.peak) !== 1.326 ||
|
||||||
|
desktop.spectrumGroup67.layer !== "25" || desktop.spectrumGroup67.selectedPeakRadius !== "4.5") {
|
||||||
|
failures.push("groups 6+7 spectrum seed / mode / peak 切换异常");
|
||||||
|
}
|
||||||
|
if (desktop.spectrumAll.points !== 32 || desktop.spectrumAll.count !== "65 / 65" ||
|
||||||
|
desktop.spectrumAll.layer !== "2" || desktop.spectrumAll.selectedPeakRadius !== "4.5") {
|
||||||
|
failures.push("all-uniform spectrum selector census 或 peak 异常");
|
||||||
|
}
|
||||||
|
if (desktop.keyboard.selected !== "matrix" || desktop.keyboard.panel !== "matrix") {
|
||||||
|
failures.push("键盘 tab 导航异常");
|
||||||
|
}
|
||||||
|
if (desktop.documentOverflow > 1 || desktop.rootOverflow > 1 ||
|
||||||
|
mobile.documentOverflow > 1 || mobile.rootOverflow > 1) {
|
||||||
|
failures.push("桌面或移动端出现文档级横向溢出");
|
||||||
|
}
|
||||||
|
if (mobile.tabs !== 5 || mobile.ledger !== 6 || mobile.visiblePanel !== "spectrum" ||
|
||||||
|
mobile.points !== 32 || mobile.dual.panel !== "dual" || mobile.dual.rows !== 4 ||
|
||||||
|
mobile.dual.wrapperOverflow <= 0) {
|
||||||
|
failures.push("移动端交互结构或局部可滚动表格异常");
|
||||||
|
}
|
||||||
|
if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`);
|
||||||
|
|
||||||
|
if (failures.length) {
|
||||||
|
console.error(`\nFAIL\n- ${failures.join("\n- ")}`);
|
||||||
|
process.exitCode = 1;
|
||||||
|
} else {
|
||||||
|
console.log("\nPASS K3 AttnRes local-path browser regression");
|
||||||
|
}
|
||||||
|
|
||||||
|
socket.close();
|
||||||
@@ -85,6 +85,9 @@ const overview = await evaluate(`(() => ({
|
|||||||
gradientPanels: document.querySelectorAll("[data-gradient-panel]").length,
|
gradientPanels: document.querySelectorAll("[data-gradient-panel]").length,
|
||||||
spikeTabs: document.querySelectorAll("[data-spike-tab]").length,
|
spikeTabs: document.querySelectorAll("[data-spike-tab]").length,
|
||||||
spikePanels: document.querySelectorAll("[data-spike-panel]").length,
|
spikePanels: document.querySelectorAll("[data-spike-panel]").length,
|
||||||
|
localPathTabs: document.querySelectorAll("[data-local-tab]").length,
|
||||||
|
localPathPanels: document.querySelectorAll("[data-local-panel]").length,
|
||||||
|
localPathVerdict: document.querySelector("#attnres-local-path")?.textContent.includes("localization 未建立"),
|
||||||
nativeVisionCorrected: document.body.textContent.includes("MoonViT‑V2 从头训练") &&
|
nativeVisionCorrected: document.body.textContent.includes("MoonViT‑V2 从头训练") &&
|
||||||
document.body.textContent.includes("同一个 next-token prediction objective"),
|
document.body.textContent.includes("同一个 next-token prediction objective"),
|
||||||
staleVisionClaim: document.body.textContent.includes("先固定语言模型训练视觉组件"),
|
staleVisionClaim: document.body.textContent.includes("先固定语言模型训练视觉组件"),
|
||||||
@@ -296,8 +299,9 @@ const mobile = await evaluate(`(() => {
|
|||||||
attnresTabs: document.querySelectorAll("[data-attnres-tab]").length,
|
attnresTabs: document.querySelectorAll("[data-attnres-tab]").length,
|
||||||
gradientTabs: document.querySelectorAll("[data-gradient-tab]").length,
|
gradientTabs: document.querySelectorAll("[data-gradient-tab]").length,
|
||||||
spikeTabs: document.querySelectorAll("[data-spike-tab]").length,
|
spikeTabs: document.querySelectorAll("[data-spike-tab]").length,
|
||||||
|
localPathTabs: document.querySelectorAll("[data-local-tab]").length,
|
||||||
offenders: [...document.querySelectorAll("body *")]
|
offenders: [...document.querySelectorAll("body *")]
|
||||||
.filter((node) => !node.closest(".paper-chain, .spec-table-wrap, .cache-strip, .architecture-explorer, [data-k3-lab], [data-k3-artifact-lab], [data-attnres-lab], [data-gradient-lab], [data-spike-lab]"))
|
.filter((node) => !node.closest(".paper-chain, .spec-table-wrap, .cache-strip, .architecture-explorer, [data-k3-lab], [data-k3-artifact-lab], [data-attnres-lab], [data-gradient-lab], [data-spike-lab], [data-local-path-lab]"))
|
||||||
.filter((node) => node.getBoundingClientRect().right > document.documentElement.clientWidth + 1)
|
.filter((node) => node.getBoundingClientRect().right > document.documentElement.clientWidth + 1)
|
||||||
.slice(0, 15)
|
.slice(0, 15)
|
||||||
.map((node) => ({
|
.map((node) => ({
|
||||||
@@ -328,7 +332,7 @@ console.log(JSON.stringify(report, null, 2));
|
|||||||
const numeric = (text) => Number.parseFloat(text.replaceAll(",", "").replace("−", "-"));
|
const numeric = (text) => Number.parseFloat(text.replaceAll(",", "").replace("−", "-"));
|
||||||
const failures = [];
|
const failures = [];
|
||||||
if (!overview.title.includes("因果环节")) failures.push("K3 二轮标题异常");
|
if (!overview.title.includes("因果环节")) failures.push("K3 二轮标题异常");
|
||||||
if (overview.sections !== 35 || overview.tocLinks !== 35) failures.push("34 个编号专题加阅读链的目录结构异常");
|
if (overview.sections !== 36 || overview.tocLinks !== 36) failures.push("35 个编号专题加阅读链的目录结构异常");
|
||||||
if (overview.ledgers !== 32 || overview.reportMap !== 9) failures.push("32 张问题账或报告地图异常");
|
if (overview.ledgers !== 32 || overview.reportMap !== 9) failures.push("32 张问题账或报告地图异常");
|
||||||
if (overview.figureAtlas !== 21 || overview.paperLinks !== 100 || overview.paperGroups < 12) failures.push("图表审计或 100 节点阅读链异常");
|
if (overview.figureAtlas !== 21 || overview.paperLinks !== 100 || overview.paperGroups < 12) failures.push("图表审计或 100 节点阅读链异常");
|
||||||
if (overview.labTabs !== 8 || overview.labPanels !== 8) failures.push("八联实验结构异常");
|
if (overview.labTabs !== 8 || overview.labPanels !== 8) failures.push("八联实验结构异常");
|
||||||
@@ -336,6 +340,7 @@ if (overview.artifactTabs !== 4 || overview.artifactPanels !== 4 || overview.art
|
|||||||
if (overview.attnresTabs !== 5 || overview.attnresPanels !== 5) failures.push("AttnRes 独立实验五视图异常");
|
if (overview.attnresTabs !== 5 || overview.attnresPanels !== 5) failures.push("AttnRes 独立实验五视图异常");
|
||||||
if (overview.gradientTabs !== 5 || overview.gradientPanels !== 5) failures.push("AttnRes 梯度定义扩展五视图异常");
|
if (overview.gradientTabs !== 5 || overview.gradientPanels !== 5) failures.push("AttnRes 梯度定义扩展五视图异常");
|
||||||
if (overview.spikeTabs !== 5 || overview.spikePanels !== 5) failures.push("AttnRes 尖峰路径五视图异常");
|
if (overview.spikeTabs !== 5 || overview.spikePanels !== 5) failures.push("AttnRes 尖峰路径五视图异常");
|
||||||
|
if (overview.localPathTabs !== 5 || overview.localPathPanels !== 5 || !overview.localPathVerdict) failures.push("AttnRes 局部路径五视图或冻结判定异常");
|
||||||
if (!overview.nativeVisionCorrected || overview.staleVisionClaim) failures.push("原生多模态纠错未生效或旧错误残留");
|
if (!overview.nativeVisionCorrected || overview.staleVisionClaim) failures.push("原生多模态纠错未生效或旧错误残留");
|
||||||
if (overview.documentOverflow > 1 || mobile.documentOverflow > 1) failures.push("桌面或移动端存在文档级横向溢出");
|
if (overview.documentOverflow > 1 || mobile.documentOverflow > 1) failures.push("桌面或移动端存在文档级横向溢出");
|
||||||
if (labs.memoryInitial.panel !== "memory" || numeric(labs.memoryInitial.additiveError) <= numeric(labs.memoryInitial.deltaError)) failures.push("Delta memory 初始递推异常");
|
if (labs.memoryInitial.panel !== "memory" || numeric(labs.memoryInitial.additiveError) <= numeric(labs.memoryInitial.deltaError)) failures.push("Delta memory 初始递推异常");
|
||||||
@@ -360,7 +365,7 @@ if (artifacts.parameterChanged.shape !== "[96,128] F32" || !artifacts.parameterC
|
|||||||
if (artifacts.reproductionInitial.panel !== "reproduction" || numeric(artifacts.reproductionInitial.speedup) !== 1.85 || numeric(artifacts.reproductionInitial.localMean) < 2.6 || !artifacts.reproductionInitial.exactSuite || numeric(artifacts.reproductionInitial.cv) < 2) failures.push("FlashKDA H20、本机 exact suite 或 router 初始探针异常");
|
if (artifacts.reproductionInitial.panel !== "reproduction" || numeric(artifacts.reproductionInitial.speedup) !== 1.85 || numeric(artifacts.reproductionInitial.localMean) < 2.6 || !artifacts.reproductionInitial.exactSuite || numeric(artifacts.reproductionInitial.cv) < 2) failures.push("FlashKDA H20、本机 exact suite 或 router 初始探针异常");
|
||||||
if (numeric(artifacts.reproductionChanged.speedup) !== 3.27 || numeric(artifacts.reproductionChanged.flash) !== 0.7064 || numeric(artifacts.reproductionChanged.localMean) >= numeric(artifacts.reproductionInitial.localMean) || !artifacts.reproductionChanged.localMode.includes("FP32 state") || numeric(artifacts.reproductionChanged.cv) <= numeric(artifacts.reproductionInitial.cv) || numeric(artifacts.reproductionChanged.zero) <= numeric(artifacts.reproductionInitial.zero)) failures.push("GB200 benchmark、本机 varlen/state 或 synthetic router counterexample 未更新");
|
if (numeric(artifacts.reproductionChanged.speedup) !== 3.27 || numeric(artifacts.reproductionChanged.flash) !== 0.7064 || numeric(artifacts.reproductionChanged.localMean) >= numeric(artifacts.reproductionInitial.localMean) || !artifacts.reproductionChanged.localMode.includes("FP32 state") || numeric(artifacts.reproductionChanged.cv) <= numeric(artifacts.reproductionInitial.cv) || numeric(artifacts.reproductionChanged.zero) <= numeric(artifacts.reproductionInitial.zero)) failures.push("GB200 benchmark、本机 varlen/state 或 synthetic router counterexample 未更新");
|
||||||
if (artifacts.keyboardSelected !== "tensors" || artifacts.keyboardVisible !== "tensors") failures.push("开放工件键盘 tab 导航异常");
|
if (artifacts.keyboardSelected !== "tensors" || artifacts.keyboardVisible !== "tensors") failures.push("开放工件键盘 tab 导航异常");
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 8 || mobile.artifactTabs !== 4 || mobile.artifactLayers !== 93 || mobile.attnresTabs !== 5 || mobile.gradientTabs !== 5 || mobile.spikeTabs !== 5) failures.push("移动端导航或实验异常");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 8 || mobile.artifactTabs !== 4 || mobile.artifactLayers !== 93 || mobile.attnresTabs !== 5 || mobile.gradientTabs !== 5 || mobile.spikeTabs !== 5 || mobile.localPathTabs !== 5) failures.push("移动端导航或实验异常");
|
||||||
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
||||||
if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`);
|
if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`);
|
||||||
|
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ if (ocr.unreported.status !== "OUT OF EVIDENCE" || ocr.unreported.accuracy !== "
|
|||||||
if (loop.toolsStart.state !== "OPEN" || loop.toolsEnd.state !== "VERIFIED" || loop.toolsEnd.evidence !== "97%" || loop.toolsEnd.tools !== "3") failures.push("vision-in-the-loop 终局异常");
|
if (loop.toolsStart.state !== "OPEN" || loop.toolsEnd.state !== "VERIFIED" || loop.toolsEnd.evidence !== "97%" || loop.toolsEnd.tools !== "3") failures.push("vision-in-the-loop 终局异常");
|
||||||
if (loop.cotEnd.state !== "FAILED" || !loop.cotEnd.takeaway.includes("不能凭空增加")) failures.push("文字 CoT 与新观察没有分开");
|
if (loop.cotEnd.state !== "FAILED" || !loop.cotEnd.takeaway.includes("不能凭空增加")) failures.push("文字 CoT 与新观察没有分开");
|
||||||
if (loop.keyboardSelected !== "connector" || loop.keyboardVisible !== "connector") failures.push("实验键盘 tab 导航异常");
|
if (loop.keyboardSelected !== "connector" || loop.keyboardVisible !== "connector") failures.push("实验键盘 tab 导航异常");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
||||||
if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasFilter || papers.multimodalVisible < 59) failures.push("论文库多模态标签或总数异常");
|
if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasFilter || papers.multimodalVisible < 59) failures.push("论文库多模态标签或总数异常");
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
||||||
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ if (layout.navLinks !== 20 || mobile.mobileLinks !== 20 || home.navLinks !== 20)
|
|||||||
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
||||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/") {
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/") {
|
||||||
failures.push("首页 Transformer 新章入口异常");
|
failures.push("首页 Transformer 新章入口异常");
|
||||||
}
|
}
|
||||||
if (home.paperCount !== "486") failures.push(`首页论文总数异常:${home.paperCount}`);
|
if (home.paperCount !== "486") failures.push(`首页论文总数异常:${home.paperCount}`);
|
||||||
|
|||||||
@@ -289,7 +289,7 @@ if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentO
|
|||||||
}
|
}
|
||||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有")) failures.push("首页 K3 首发入口异常");
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强")) failures.push("首页 K3 首发入口异常");
|
||||||
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
|
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
|
||||||
|
|
||||||
socket.close();
|
socket.close();
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ if (numeric(residual.attnres.states) !== 9 || !residual.attnres.routeExplain.inc
|
|||||||
if (!residual.clamp.activation.includes("V4") || !residual.clamp.bound.includes("100")) failures.push("DeepSeek-V4 clamp 展示异常");
|
if (!residual.clamp.activation.includes("V4") || !residual.clamp.bound.includes("100")) failures.push("DeepSeek-V4 clamp 展示异常");
|
||||||
if (!residual.situ.activation.includes("KIMI") || !residual.situ.bound.includes("100")) failures.push("K3 SiTU 上界展示异常");
|
if (!residual.situ.activation.includes("KIMI") || !residual.situ.bound.includes("100")) failures.push("K3 SiTU 上界展示异常");
|
||||||
if (residual.keyboardSelected !== "position" || residual.keyboardVisible !== "position") failures.push("实验键盘 tab 导航异常");
|
if (residual.keyboardSelected !== "position" || residual.keyboardVisible !== "position") failures.push("实验键盘 tab 导航异常");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
||||||
if (home.paperCount !== "486" || home.topicCount !== "17" || papers.total !== 486 || !papers.hasFilter || papers.visible < 30) failures.push("首页 / 论文库表示索引异常");
|
if (home.paperCount !== "486" || home.topicCount !== "17" || papers.total !== 486 || !papers.hasFilter || papers.visible < 30) failures.push("首页 / 论文库表示索引异常");
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
||||||
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`);
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ if (layout.navLinks !== 20 || mobile.mobileLinks !== 20 || home.navLinks !== 20)
|
|||||||
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
||||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/") {
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/") {
|
||||||
failures.push("首页 Transformer 新章入口异常");
|
failures.push("首页 Transformer 新章入口异常");
|
||||||
}
|
}
|
||||||
if (home.paperCount !== "486") failures.push(`首页论文总数异常:${home.paperCount}`);
|
if (home.paperCount !== "486") failures.push(`首页论文总数异常:${home.paperCount}`);
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ if (layout.articleSections !== 16 || layout.paperLinks !== 37 || layout.labTabs
|
|||||||
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
||||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有")) failures.push("首页 K3 首发入口异常");
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强")) failures.push("首页 K3 首发入口异常");
|
||||||
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
|
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
|
||||||
|
|
||||||
socket.close();
|
socket.close();
|
||||||
|
|||||||
@@ -236,7 +236,7 @@ if (block.family.trim() !== "Hybrid MoE" || !block.kv.includes("3 KDA : 1 Gated
|
|||||||
if (!block.path.some((step) => step.includes("KDA × 3")) || !block.note.includes("AttnRes")) failures.push("K3 Block 路径异常");
|
if (!block.path.some((step) => step.includes("KDA × 3")) || !block.note.includes("AttnRes")) failures.push("K3 Block 路径异常");
|
||||||
if (block.context.trim() !== "128K" || numeric(block.mha) !== 400 || numeric(block.kda) !== 1) failures.push("KV 成本缩放异常");
|
if (block.context.trim() !== "128K" || numeric(block.mha) !== 400 || numeric(block.kda) !== 1) failures.push("KV 成本缩放异常");
|
||||||
if (block.keyboardSelected !== "block" || block.keyboardVisible !== "block") failures.push("实验 tab 键盘导航异常");
|
if (block.keyboardSelected !== "block" || block.keyboardVisible !== "block") failures.push("实验 tab 键盘导航异常");
|
||||||
if (home.releaseCards !== 17 || !home.firstRelease.includes("尖峰不是出生时就有") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
if (home.releaseCards !== 17 || !home.firstRelease.includes("16 个局部 mixer 单侧证据很强") || home.firstHref !== "/k3/") failures.push("首页 K3 首发入口异常");
|
||||||
if (home.paperCount !== "486" || papers.total !== 486 || papers.transformerVisible < 30) failures.push("论文库或首页论文数量异常");
|
if (home.paperCount !== "486" || papers.total !== 486 || papers.transformerVisible < 30) failures.push("论文库或首页论文数量异常");
|
||||||
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常");
|
||||||
if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`);
|
if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`);
|
||||||
|
|||||||
@@ -334,7 +334,7 @@ const benchmarkDevices = [
|
|||||||
<p><span>TOP-16 OVERLAP</span><b>{probe.membership_overlap_mean.toFixed(2)} / 16</b></p>
|
<p><span>TOP-16 OVERLAP</span><b>{probe.membership_overlap_mean.toFixed(2)} / 16</b></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="boundary"><b>X/S/U boundary</b><p>本机 kernel 实测只验证公开 FlashKDA API 与合成合法 shape;没有加载 K3 checkpoint,也不解决 checkpoint `A_log [128]` 与 API `[96]` 的冲突。Router counterexample 仍只证明 hidden distribution 不可省略。</p></div>
|
<div class="boundary"><b>X/S/U boundary</b><p>本机 kernel 实测只验证公开 FlashKDA API 与合成合法 shape;没有加载 K3 checkpoint。官方 main 仍存在 `A_log [128]` 与 API `[96]` 的冲突;社区 #144 与 #150 给出两种未合并候选,本站不替官方裁决。Router counterexample 仍只证明 hidden distribution 不可省略。</p></div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<footer class="evidence-strip">
|
<footer class="evidence-strip">
|
||||||
|
|||||||
@@ -0,0 +1,707 @@
|
|||||||
|
---
|
||||||
|
import rawLab from "@/data/k3-attnres-local-path-compact.json";
|
||||||
|
|
||||||
|
const lab = rawLab as any;
|
||||||
|
const json = JSON.stringify(lab).replaceAll("<", "\\u003c");
|
||||||
|
const seeds = lab.study.seeds as number[];
|
||||||
|
const shortHash = (value: string) => `${value.slice(0, 10)}…${value.slice(-8)}`;
|
||||||
|
const modeLabels: Record<string, string> = {
|
||||||
|
detached_learned: "REFERENCE · 全部 detached learned",
|
||||||
|
uniform_group_6_only: "仅 Group 6 uniform",
|
||||||
|
uniform_group_7_only: "仅 Group 7 uniform",
|
||||||
|
uniform_groups_6_7_only: "仅 Groups 6+7 uniform",
|
||||||
|
uniform_group_6_attention_only: "Group 6 · Attention only",
|
||||||
|
uniform_group_6_mlp_only: "Group 6 · MLP only",
|
||||||
|
uniform_group_7_attention_only: "Group 7 · Attention only",
|
||||||
|
uniform_group_7_mlp_only: "Group 7 · MLP only",
|
||||||
|
uniform_output_only: "仅 Output mixer uniform",
|
||||||
|
uniform_depth_all: "64 个 depth mixers uniform",
|
||||||
|
uniform_all: "全部 65 个 mixers uniform",
|
||||||
|
uniform_except_group_6: "恢复 Group 6 → detached learned",
|
||||||
|
uniform_except_group_7: "恢复 Group 7 → detached learned",
|
||||||
|
uniform_except_groups_6_7: "恢复 Groups 6+7 → detached learned",
|
||||||
|
};
|
||||||
|
const score = (family: "sufficiency" | "restoration", mode: string, seed: number, metric: string) =>
|
||||||
|
lab.scores[family][mode][String(seed)][metric].score;
|
||||||
|
---
|
||||||
|
|
||||||
|
<figure class="local-lab" data-local-path-lab>
|
||||||
|
<figcaption>
|
||||||
|
<span>ROUND 07 / LOCAL MIXER PATHS</span>
|
||||||
|
<div>
|
||||||
|
<h3>把“全局敏感”缩到 16 个 mixer:为什么单侧很强,双向门仍然不让过?</h3>
|
||||||
|
<p>同一 forward · 14 个冻结 mask · 3 seeds · sufficiency × restoration · 完整 replay</p>
|
||||||
|
</div>
|
||||||
|
<em>REDUCED-MODEL DIAGNOSTIC</em>
|
||||||
|
</figcaption>
|
||||||
|
|
||||||
|
<div class="local-ledger">
|
||||||
|
<article><span>TOPOLOGY</span><b>64 + 1</b><p>depth mixers + output</p></article>
|
||||||
|
<article><span>MATRIX</span><b>14 modes</b><p>exact selector sets</p></article>
|
||||||
|
<article><span>GLOBAL GAP</span><b>6 / 6</b><p>two metrics × three seeds</p></article>
|
||||||
|
<article class="pass"><span>SUFFICIENCY</span><b>6 / 6</b><p>Groups 6+7 ≥ 50%</p></article>
|
||||||
|
<article class="warn"><span>RESTORATION</span><b>3 / 6</b><p>contrast pass · peak fail</p></article>
|
||||||
|
<article class="boundary"><span>LOCALIZATION</span><b>NOT ESTABLISHED</b><p>one-sided evidence</p></article>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="local-tabs" role="tablist" aria-label="Round 07 局部 mixer 路径实验视图">
|
||||||
|
<button type="button" role="tab" data-local-tab="scope" aria-selected="true">01 / PATH MAP</button>
|
||||||
|
<button type="button" role="tab" data-local-tab="matrix" aria-selected="false">02 / 14 MASKS</button>
|
||||||
|
<button type="button" role="tab" data-local-tab="dual" aria-selected="false">03 / TWO-WAY GATE</button>
|
||||||
|
<button type="button" role="tab" data-local-tab="branch" aria-selected="false">04 / BRANCH × OUTPUT</button>
|
||||||
|
<button type="button" role="tab" data-local-tab="spectrum" aria-selected="false">05 / SPECTRUM × AUDIT</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<section class="local-panel" data-local-panel="scope">
|
||||||
|
<div class="panel-lead">
|
||||||
|
<div><span>I / FIXED TOPOLOGY</span><h4>先画清 65 个 intervention nodes,再谈“局部”</h4></div>
|
||||||
|
<p>
|
||||||
|
layer 21–25 是 Round 05 看过数据后冻结的 spike set;Round 07 预先选择完整
|
||||||
|
group 6 / 7。group 7 还包含 S 外的 layers 26–28,所以不是事后只挑尖峰层。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="group-map">
|
||||||
|
{[1,2,3,4,5,6,7,8].map((group) => (
|
||||||
|
<article class:list={{ target: group === 6 || group === 7 }}>
|
||||||
|
<span>GROUP {group}</span>
|
||||||
|
<b>L{(group - 1) * 4 + 1}–{group * 4}</b>
|
||||||
|
<div>
|
||||||
|
{[0,1,2,3].map((offset) => {
|
||||||
|
const layer = (group - 1) * 4 + offset + 1;
|
||||||
|
return <i class:list={{ spike: layer >= 21 && layer <= 25 }}>{layer}</i>;
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
<small>8 MIXERS</small>
|
||||||
|
</article>
|
||||||
|
))}
|
||||||
|
<i class="map-arrow">→</i>
|
||||||
|
<article class="output-node"><span>OUTPUT</span><b>#65</b><p>9 sources</p></article>
|
||||||
|
</div>
|
||||||
|
<div class="scope-key">
|
||||||
|
<span><i class="target"></i>预注册局部 scope:groups 6+7 / 16 mixers</span>
|
||||||
|
<span><i class="spike"></i>固定 spike set:layers 21–25</span>
|
||||||
|
<span><i class="plain"></i>其他 49 mixers</span>
|
||||||
|
</div>
|
||||||
|
<div class="direction-pair">
|
||||||
|
<article>
|
||||||
|
<span>A / SUFFICIENCY</span>
|
||||||
|
<div><b>其他 49:learned</b><i>+</i><b class="accent">G6+7:uniform</b></div>
|
||||||
|
<code>Sₓ = ln(Xref / Xm) ÷ Gₓ</code>
|
||||||
|
<p>只改这 16 个,能否复现全局下降的一半?</p>
|
||||||
|
</article>
|
||||||
|
<i>⇄</i>
|
||||||
|
<article>
|
||||||
|
<span>B / RESTORATION</span>
|
||||||
|
<div><b>其他 49:uniform</b><i>+</i><b class="accent">G6+7:learned</b></div>
|
||||||
|
<code>Rₓ = ln(Xr / Xall) ÷ Gₓ</code>
|
||||||
|
<p>只恢复这 16 个,能否把全局 gap 恢复一半?</p>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
<div class="plain-rule">
|
||||||
|
<b>为什么要两个方向?</b>
|
||||||
|
<p>mixer 路径非线性交互。一个 scope 在 learned 背景“足够强”,不代表它在 uniform 背景“恢复得回来”。</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="local-panel" data-local-panel="matrix" hidden>
|
||||||
|
<div class="panel-lead">
|
||||||
|
<div><span>II / FROZEN MATRIX</span><h4>把 14 个 mask 全部摆出来,不只展示通过的 scope</h4></div>
|
||||||
|
<p>条形长度是 global log gap 的归一化 score,不是贡献率;负值和大于 1 都保留。</p>
|
||||||
|
</div>
|
||||||
|
<div class="local-controls">
|
||||||
|
<label>SEED
|
||||||
|
<select data-local-matrix-seed>
|
||||||
|
<option value="mean">3-SEED MEAN</option>
|
||||||
|
{seeds.map((seed) => <option value={String(seed)}>{seed}</option>)}
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<div>
|
||||||
|
<button type="button" data-local-matrix-metric="spike_contrast" aria-pressed="true">SPIKE CONTRAST</button>
|
||||||
|
<button type="button" data-local-matrix-metric="peak_normalized" aria-pressed="false">PEAK / MEAN</button>
|
||||||
|
</div>
|
||||||
|
<span data-local-matrix-state>3-SEED MEAN · SPIKE CONTRAST</span>
|
||||||
|
</div>
|
||||||
|
<div class="matrix-axis"><span>−</span><i></i><b>0</b><i></i><b>.5</b><i></i><b>1.0</b><i></i><span>2.0+</span></div>
|
||||||
|
<div class="matrix-bars" data-local-matrix-bars></div>
|
||||||
|
<div class="matrix-note">
|
||||||
|
<article><b>S</b><p>learned 背景 → scope uniform</p></article>
|
||||||
|
<article><b>R</b><p>uniform 背景 → scope learned</p></article>
|
||||||
|
<article><b>>1</b><p>超过 all-uniform endpoint;不是 >100% 贡献</p></article>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="local-panel" data-local-panel="dual" hidden>
|
||||||
|
<div class="panel-lead">
|
||||||
|
<div><span>III / PREREGISTERED VERDICT</span><h4>contrast 双向过线;peak 只在 sufficiency 方向过线</h4></div>
|
||||||
|
<p>主门要求两个方向、两个指标、三个 seed 全部 ≥ .50;均值只用于视觉摘要。</p>
|
||||||
|
</div>
|
||||||
|
<div class="verdict-banner">
|
||||||
|
<span>ONE-SIDED EVIDENCE</span>
|
||||||
|
<b>LOCALIZATION NOT ESTABLISHED</b>
|
||||||
|
<p>SUFFICIENCY 6 / 6 PASS · RESTORATION 3 / 6 FAIL</p>
|
||||||
|
</div>
|
||||||
|
<div class="dual-table-wrap">
|
||||||
|
<table class="dual-table">
|
||||||
|
<thead><tr><th>SEED</th><th>S / CONTRAST</th><th>S / PEAK</th><th>R / CONTRAST</th><th>R / PEAK</th><th>DUAL</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
{seeds.map((seed) => {
|
||||||
|
const sc = score("sufficiency", "uniform_groups_6_7_only", seed, "spike_contrast");
|
||||||
|
const sp = score("sufficiency", "uniform_groups_6_7_only", seed, "peak_normalized");
|
||||||
|
const rc = score("restoration", "uniform_except_groups_6_7", seed, "spike_contrast");
|
||||||
|
const rp = score("restoration", "uniform_except_groups_6_7", seed, "peak_normalized");
|
||||||
|
return (
|
||||||
|
<tr>
|
||||||
|
<th>{seed}</th>
|
||||||
|
<td class="good">{sc.toFixed(3)} ✓</td>
|
||||||
|
<td class="good">{sp.toFixed(3)} ✓</td>
|
||||||
|
<td class="good">{rc.toFixed(3)} ✓</td>
|
||||||
|
<td class="bad">{rp.toFixed(3)} ×</td>
|
||||||
|
<td class="bad">FAIL</td>
|
||||||
|
</tr>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
<tr class="mean">
|
||||||
|
<th>MEAN</th>
|
||||||
|
<td>{lab.means.sufficiency.uniform_groups_6_7_only.spike_contrast.toFixed(3)}</td>
|
||||||
|
<td>{lab.means.sufficiency.uniform_groups_6_7_only.peak_normalized.toFixed(3)}</td>
|
||||||
|
<td>{lab.means.restoration.uniform_except_groups_6_7.spike_contrast.toFixed(3)}</td>
|
||||||
|
<td>{lab.means.restoration.uniform_except_groups_6_7.peak_normalized.toFixed(3)}</td>
|
||||||
|
<td>3 / 6</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="dual-visual">
|
||||||
|
<article class="pass">
|
||||||
|
<span>LEARNED BACKGROUND</span><b>只 uniform G6+7</b>
|
||||||
|
<div><i style="--score:.677"></i><em>CONTRAST .677</em></div>
|
||||||
|
<div><i style="--score:1"></i><em>PEAK 1.700</em></div>
|
||||||
|
<p>16 个 mixer 足以把两项都推过 50% global log gap。</p>
|
||||||
|
</article>
|
||||||
|
<article class="fail">
|
||||||
|
<span>UNIFORM BACKGROUND</span><b>只 restore G6+7</b>
|
||||||
|
<div><i style="--score:.650"></i><em>CONTRAST .650</em></div>
|
||||||
|
<div><i style="--score:.380"></i><em>PEAK .380</em></div>
|
||||||
|
<p>contrast 回升;peak 三 seed 都稳定停在 50% 以下。</p>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
<div class="boundary-pair">
|
||||||
|
<article class="yes"><span>可以说</span><b>强局部 sufficiency</b><p>Groups 6+7 在 learned 背景足以复现全局下降的大部分。</p></article>
|
||||||
|
<article class="no"><span>不能说</span><b>尖峰 localization 到 G6+7</b><p>预注册 restoration peak 门没有通过;双向证据不闭合。</p></article>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="local-panel" data-local-panel="branch" hidden>
|
||||||
|
<div class="panel-lead">
|
||||||
|
<div><span>IV / SECONDARY CONTROLS</span><h4>group 7 的 MLP 分支过闸;group 6 差一格,output 远不到一半</h4></div>
|
||||||
|
<p>branch 判定只有 sufficiency 方向,证据等级低于双向 localization。</p>
|
||||||
|
</div>
|
||||||
|
<div class="local-controls">
|
||||||
|
<div>
|
||||||
|
<button type="button" data-local-branch-group="6" aria-pressed="true">GROUP 6</button>
|
||||||
|
<button type="button" data-local-branch-group="7" aria-pressed="false">GROUP 7</button>
|
||||||
|
</div>
|
||||||
|
<span data-local-branch-state>GROUP 6 · NO DOMINANT BRANCH · MLP 5 / 6</span>
|
||||||
|
</div>
|
||||||
|
<div class="branch-chart">
|
||||||
|
<article>
|
||||||
|
<span>ATTENTION-ONLY</span><b data-local-branch-label="attention">GROUP 6</b>
|
||||||
|
<div><em>CONTRAST</em><i data-local-branch-bar="attention:spike_contrast"></i><strong data-local-branch-value="attention:spike_contrast">.082</strong></div>
|
||||||
|
<div><em>PEAK</em><i data-local-branch-bar="attention:peak_normalized"></i><strong data-local-branch-value="attention:peak_normalized">.246</strong></div>
|
||||||
|
</article>
|
||||||
|
<article class="mlp">
|
||||||
|
<span>MLP-ONLY</span><b data-local-branch-label="mlp">GROUP 6</b>
|
||||||
|
<div><em>CONTRAST</em><i data-local-branch-bar="mlp:spike_contrast"></i><strong data-local-branch-value="mlp:spike_contrast">.250</strong></div>
|
||||||
|
<div><em>PEAK</em><i data-local-branch-bar="mlp:peak_normalized"></i><strong data-local-branch-value="mlp:peak_normalized">.950</strong></div>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
<div class="branch-verdicts">
|
||||||
|
<article><span>GROUP 6</span><b>MLP 5 / 6</b><p>seed 3 contrast S=.177;低于 material .20,不能宣布 dominance。</p></article>
|
||||||
|
<article class="pass"><span>GROUP 7</span><b>MLP 6 / 6 PASS</b><p>两个指标、三个 seed 自身 material,且领先 attention 至少 15pp。</p></article>
|
||||||
|
</div>
|
||||||
|
<div class="control-grid">
|
||||||
|
<article><span>OUTPUT ONLY · 1 MIXER</span><b>.131 / .187</b><p>contrast / peak mean sufficiency;0 / 6 达到 50%。</p></article>
|
||||||
|
<article><span>ALL DEPTH · 64 MIXERS</span><b>.949 / 1.145</b><p>depth path 已复现绝大多数 gap;peak 超过 global endpoint。</p></article>
|
||||||
|
<article class="warning"><span>INTERACTION RESIDUAL</span><b>NEGATIVE</b><p>只作 log-gap bookkeeping;不是加和分解或 hypothesis test。</p></article>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="local-panel" data-local-panel="spectrum" hidden>
|
||||||
|
<div class="panel-lead">
|
||||||
|
<div><span>V / RAW SHAPE × REPLAY</span><h4>同一个 score 背后,32 层峰值究竟移到哪里?</h4></div>
|
||||||
|
<p>谱按每个 mode 自己的 layer mean 归一化。位置变化帮助理解,但不替代双向 score gate。</p>
|
||||||
|
</div>
|
||||||
|
<div class="local-controls spectrum-controls">
|
||||||
|
<label>SEED
|
||||||
|
<select data-local-spectrum-seed>
|
||||||
|
{seeds.map((seed) => <option value={String(seed)}>{seed}</option>)}
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<label>MODE
|
||||||
|
<select data-local-spectrum-mode>
|
||||||
|
{lab.study.modes.map((mode: string) => <option value={mode}>{modeLabels[mode]}</option>)}
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<span data-local-spectrum-state>2026073001 · REFERENCE</span>
|
||||||
|
</div>
|
||||||
|
<div class="spectrum-layout">
|
||||||
|
<div class="chart-shell">
|
||||||
|
<header><b>POST-MLP · NORMALIZED ELEMENT RMS</b><span>layer mean = 1</span></header>
|
||||||
|
<svg viewBox="0 0 940 350" role="img" aria-label="局部 mixer mask 下的 32 层梯度谱" data-local-spectrum-chart>
|
||||||
|
<rect class="spike-zone" x="0" y="26" width="0" height="280" data-local-spectrum-zone></rect>
|
||||||
|
<g data-local-spectrum-grid></g>
|
||||||
|
<polyline class="series" points="" data-local-spectrum-line></polyline>
|
||||||
|
<g data-local-spectrum-points></g>
|
||||||
|
</svg>
|
||||||
|
<div class="spectrum-key"><span><i></i>normalized layer gradient</span><span><i class="zone"></i>S = layers 21–25</span></div>
|
||||||
|
</div>
|
||||||
|
<aside>
|
||||||
|
<span>SELECTED READOUT</span>
|
||||||
|
<b data-local-spectrum-label>REFERENCE</b>
|
||||||
|
<dl>
|
||||||
|
<div><dt>UNIFORM MIXERS</dt><dd data-local-spectrum-count>0 / 65</dd></div>
|
||||||
|
<div><dt>SPIKE CONTRAST</dt><dd data-local-spectrum-contrast>3.093×</dd></div>
|
||||||
|
<div><dt>PEAK / MEAN</dt><dd data-local-spectrum-peak>3.241×</dd></div>
|
||||||
|
<div><dt>PEAK LAYER</dt><dd data-local-spectrum-layer>21</dd></div>
|
||||||
|
</dl>
|
||||||
|
</aside>
|
||||||
|
</div>
|
||||||
|
<div class="spectrum-story">
|
||||||
|
<article><span>REFERENCE</span><b>L21 · 3 / 3</b><p>三个 seed 的最高层都是 layer 21。</p></article>
|
||||||
|
<i>→</i>
|
||||||
|
<article><span>G6+7 UNIFORM</span><b>L5 / L25 / L6</b><p>peak 强度压到 global endpoint 以下,但位置不统一。</p></article>
|
||||||
|
<i>→</i>
|
||||||
|
<article><span>RESTORE G6+7</span><b>L21 · 3 / 3</b><p>位置回归不等于强度恢复超过 50%。</p></article>
|
||||||
|
</div>
|
||||||
|
<div class="audit-grid">
|
||||||
|
<article><span>ROUND 06 EQUIVALENCE</span><b>3 / 3 exact</b><p>model、optimizer、history、BPC 与 parent diagnostics。</p></article>
|
||||||
|
<article><span>FULL REPLAY</span><b>canonical exact</b><p><code>{shortHash(lab.replay.frozen_compare_sha256)}</code></p></article>
|
||||||
|
<article><span>FORWARD IDENTITY</span><b>14 / 14</b><p>logits、loss、activations 与 parent summaries exact。</p></article>
|
||||||
|
<article class="boundary"><span>CLAIM BOUNDARY</span><b>diagnostic only</b><p>不是 K3 checkpoint、训练变体或 additive attribution。</p></article>
|
||||||
|
</div>
|
||||||
|
<div class="hash-strip">
|
||||||
|
<span>PROTOCOL <code>{lab.protocol_id}</code></span>
|
||||||
|
<span>AGGREGATE <code>{shortHash(lab.hashes.aggregate_canonical_sha256)}</code></span>
|
||||||
|
<span>COMPACT <code>{shortHash(lab.canonical_sha256_without_self)}</code></span>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<script is:inline type="application/json" data-local-payload set:html={json}></script>
|
||||||
|
</figure>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const initializeLocalPathLab = (root: HTMLElement) => {
|
||||||
|
if (root.dataset.ready === "true") return;
|
||||||
|
root.dataset.ready = "true";
|
||||||
|
const payload = root.querySelector<HTMLScriptElement>("[data-local-payload]");
|
||||||
|
if (!payload) return;
|
||||||
|
const data = JSON.parse(payload.textContent || "{}");
|
||||||
|
const modeLabels: Record<string, string> = {
|
||||||
|
detached_learned: "REFERENCE · 全部 detached learned",
|
||||||
|
uniform_group_6_only: "仅 Group 6 uniform",
|
||||||
|
uniform_group_7_only: "仅 Group 7 uniform",
|
||||||
|
uniform_groups_6_7_only: "仅 Groups 6+7 uniform",
|
||||||
|
uniform_group_6_attention_only: "Group 6 · Attention only",
|
||||||
|
uniform_group_6_mlp_only: "Group 6 · MLP only",
|
||||||
|
uniform_group_7_attention_only: "Group 7 · Attention only",
|
||||||
|
uniform_group_7_mlp_only: "Group 7 · MLP only",
|
||||||
|
uniform_output_only: "仅 Output mixer uniform",
|
||||||
|
uniform_depth_all: "64 个 depth mixers uniform",
|
||||||
|
uniform_all: "全部 65 个 mixers uniform",
|
||||||
|
uniform_except_group_6: "恢复 Group 6 → detached learned",
|
||||||
|
uniform_except_group_7: "恢复 Group 7 → detached learned",
|
||||||
|
uniform_except_groups_6_7: "恢复 Groups 6+7 → detached learned",
|
||||||
|
};
|
||||||
|
const metricLabels: Record<string, string> = {
|
||||||
|
spike_contrast: "SPIKE CONTRAST",
|
||||||
|
peak_normalized: "PEAK / MEAN",
|
||||||
|
};
|
||||||
|
const tabs = [...root.querySelectorAll<HTMLButtonElement>("[data-local-tab]")];
|
||||||
|
const panels = [...root.querySelectorAll<HTMLElement>("[data-local-panel]")];
|
||||||
|
const activate = (name: string, focus = false) => {
|
||||||
|
tabs.forEach((tab) => {
|
||||||
|
const selected = tab.dataset.localTab === name;
|
||||||
|
tab.setAttribute("aria-selected", String(selected));
|
||||||
|
if (selected && focus) tab.focus();
|
||||||
|
});
|
||||||
|
panels.forEach((panel) => {
|
||||||
|
panel.hidden = panel.dataset.localPanel !== name;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
tabs.forEach((tab, index) => {
|
||||||
|
tab.addEventListener("click", () => activate(tab.dataset.localTab || "scope"));
|
||||||
|
tab.addEventListener("keydown", (event) => {
|
||||||
|
if (!["ArrowLeft", "ArrowRight", "Home", "End"].includes(event.key)) return;
|
||||||
|
event.preventDefault();
|
||||||
|
let next = index;
|
||||||
|
if (event.key === "ArrowRight") next = (index + 1) % tabs.length;
|
||||||
|
if (event.key === "ArrowLeft") next = (index - 1 + tabs.length) % tabs.length;
|
||||||
|
if (event.key === "Home") next = 0;
|
||||||
|
if (event.key === "End") next = tabs.length - 1;
|
||||||
|
activate(tabs[next].dataset.localTab || "scope", true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
let matrixMetric = "spike_contrast";
|
||||||
|
const matrixSeed = root.querySelector<HTMLSelectElement>("[data-local-matrix-seed]");
|
||||||
|
const matrixBars = root.querySelector<HTMLElement>("[data-local-matrix-bars]");
|
||||||
|
const matrixState = root.querySelector<HTMLElement>("[data-local-matrix-state]");
|
||||||
|
const family = (mode: string) => mode.startsWith("uniform_except_") ? "restoration" : "sufficiency";
|
||||||
|
const matrixValue = (mode: string, seed: string, metric: string) => {
|
||||||
|
if (mode === "detached_learned") return 0;
|
||||||
|
const kind = family(mode);
|
||||||
|
if (seed === "mean") return data.means[kind][mode][metric];
|
||||||
|
return data.scores[kind][mode][seed][metric].score;
|
||||||
|
};
|
||||||
|
const rawValue = (mode: string, seed: string, metric: string) => {
|
||||||
|
if (seed === "mean") return data.means.mode_metrics[mode][metric];
|
||||||
|
return data.formal_cells.find((cell: any) => String(cell.seed) === seed).mode_metrics[mode][metric];
|
||||||
|
};
|
||||||
|
const uniformCount = (mode: string) => data.final_spectra[0].modes[mode].uniform_count;
|
||||||
|
const renderMatrix = () => {
|
||||||
|
if (!matrixBars || !matrixSeed || !matrixState) return;
|
||||||
|
const selectedSeed = matrixSeed.value;
|
||||||
|
matrixState.textContent = `${selectedSeed === "mean" ? "3-SEED MEAN" : selectedSeed} · ${metricLabels[matrixMetric]}`;
|
||||||
|
matrixBars.innerHTML = "";
|
||||||
|
data.study.modes.forEach((mode: string) => {
|
||||||
|
const value = matrixValue(mode, selectedSeed, matrixMetric);
|
||||||
|
const row = document.createElement("article");
|
||||||
|
const kind = family(mode);
|
||||||
|
row.dataset.family = mode === "detached_learned" ? "reference" : kind;
|
||||||
|
const magnitude = Math.min(Math.abs(value) / 2, 1) * 100;
|
||||||
|
row.innerHTML = `
|
||||||
|
<div><span>${mode === "detached_learned" ? "REF" : kind === "sufficiency" ? "S" : "R"}</span><b>${modeLabels[mode]}</b><small>${uniformCount(mode)} uniform</small></div>
|
||||||
|
<div class="matrix-track"><i class="${value < 0 ? "negative" : ""}" style="--magnitude:${magnitude}%"></i></div>
|
||||||
|
<strong>${value >= 0 ? "+" : "−"}${Math.abs(value).toFixed(3)}</strong>
|
||||||
|
<em>RAW ${rawValue(mode, selectedSeed, matrixMetric).toFixed(3)}×</em>`;
|
||||||
|
matrixBars.appendChild(row);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
matrixSeed?.addEventListener("change", renderMatrix);
|
||||||
|
root.querySelectorAll<HTMLButtonElement>("[data-local-matrix-metric]").forEach((button) => {
|
||||||
|
button.addEventListener("click", () => {
|
||||||
|
matrixMetric = button.dataset.localMatrixMetric || "spike_contrast";
|
||||||
|
root.querySelectorAll<HTMLButtonElement>("[data-local-matrix-metric]").forEach((item) =>
|
||||||
|
item.setAttribute("aria-pressed", String(item === button)));
|
||||||
|
renderMatrix();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
renderMatrix();
|
||||||
|
|
||||||
|
const renderBranch = (group: string) => {
|
||||||
|
root.querySelectorAll<HTMLButtonElement>("[data-local-branch-group]").forEach((button) =>
|
||||||
|
button.setAttribute("aria-pressed", String(button.dataset.localBranchGroup === group)));
|
||||||
|
const gate = data.gates.branch_dominance[`group_${group}`];
|
||||||
|
const state = root.querySelector<HTMLElement>("[data-local-branch-state]");
|
||||||
|
if (state) state.textContent = group === "7"
|
||||||
|
? "GROUP 7 · MLP DOMINANT · 6 / 6 PASS"
|
||||||
|
: "GROUP 6 · NO DOMINANT BRANCH · MLP 5 / 6";
|
||||||
|
(["attention", "mlp"] as const).forEach((branch) => {
|
||||||
|
root.querySelectorAll<HTMLElement>(`[data-local-branch-label="${branch}"]`).forEach((node) => node.textContent = `GROUP ${group}`);
|
||||||
|
(["spike_contrast", "peak_normalized"] as const).forEach((metric) => {
|
||||||
|
const mode = `uniform_group_${group}_${branch}_only`;
|
||||||
|
const value = data.means.sufficiency[mode][metric];
|
||||||
|
const bar = root.querySelector<HTMLElement>(`[data-local-branch-bar="${branch}:${metric}"]`);
|
||||||
|
const label = root.querySelector<HTMLElement>(`[data-local-branch-value="${branch}:${metric}"]`);
|
||||||
|
if (bar) bar.style.setProperty("--branch-score", String(Math.min(value, 1.2) / 1.2));
|
||||||
|
if (label) label.textContent = value.toFixed(3);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
root.dataset.branchPassed = String(gate.passed);
|
||||||
|
};
|
||||||
|
root.querySelectorAll<HTMLButtonElement>("[data-local-branch-group]").forEach((button) =>
|
||||||
|
button.addEventListener("click", () => renderBranch(button.dataset.localBranchGroup || "6")));
|
||||||
|
renderBranch("6");
|
||||||
|
|
||||||
|
const spectrumSeed = root.querySelector<HTMLSelectElement>("[data-local-spectrum-seed]");
|
||||||
|
const spectrumMode = root.querySelector<HTMLSelectElement>("[data-local-spectrum-mode]");
|
||||||
|
const spectrumState = root.querySelector<HTMLElement>("[data-local-spectrum-state]");
|
||||||
|
const chart = root.querySelector<SVGElement>("[data-local-spectrum-chart]");
|
||||||
|
const grid = root.querySelector<SVGGElement>("[data-local-spectrum-grid]");
|
||||||
|
const line = root.querySelector<SVGPolylineElement>("[data-local-spectrum-line]");
|
||||||
|
const points = root.querySelector<SVGGElement>("[data-local-spectrum-points]");
|
||||||
|
const zone = root.querySelector<SVGRectElement>("[data-local-spectrum-zone]");
|
||||||
|
const svg = (name: string) => document.createElementNS("http://www.w3.org/2000/svg", name);
|
||||||
|
const renderSpectrum = () => {
|
||||||
|
if (!spectrumSeed || !spectrumMode || !chart || !grid || !line || !points || !zone) return;
|
||||||
|
const seed = spectrumSeed.value;
|
||||||
|
const mode = spectrumMode.value;
|
||||||
|
const run = data.final_spectra.find((item: any) => String(item.seed) === seed);
|
||||||
|
const selected = run.modes[mode];
|
||||||
|
const values = selected.normalized;
|
||||||
|
const left = 56, right = 908, top = 28, bottom = 306;
|
||||||
|
const maximum = Math.max(2, ...values) * 1.08;
|
||||||
|
const x = (index: number) => left + index * (right - left) / 31;
|
||||||
|
const y = (value: number) => bottom - value / maximum * (bottom - top);
|
||||||
|
grid.innerHTML = "";
|
||||||
|
[0, .5, 1, 1.5, 2].filter((value) => value <= maximum).forEach((value) => {
|
||||||
|
const guide = svg("line");
|
||||||
|
guide.setAttribute("x1", String(left));
|
||||||
|
guide.setAttribute("x2", String(right));
|
||||||
|
guide.setAttribute("y1", String(y(value)));
|
||||||
|
guide.setAttribute("y2", String(y(value)));
|
||||||
|
grid.appendChild(guide);
|
||||||
|
const label = svg("text");
|
||||||
|
label.setAttribute("x", "48");
|
||||||
|
label.setAttribute("y", String(y(value) + 4));
|
||||||
|
label.setAttribute("text-anchor", "end");
|
||||||
|
label.textContent = value.toFixed(1);
|
||||||
|
grid.appendChild(label);
|
||||||
|
});
|
||||||
|
zone.setAttribute("x", String(x(20) - 8));
|
||||||
|
zone.setAttribute("width", String(x(24) - x(20) + 16));
|
||||||
|
line.setAttribute("points", values.map((value: number, index: number) => `${x(index)},${y(value)}`).join(" "));
|
||||||
|
points.innerHTML = "";
|
||||||
|
values.forEach((value: number, index: number) => {
|
||||||
|
const point = svg("circle");
|
||||||
|
point.setAttribute("cx", String(x(index)));
|
||||||
|
point.setAttribute("cy", String(y(value)));
|
||||||
|
point.setAttribute("r", index + 1 === selected.peak_layer ? "4.5" : "2.3");
|
||||||
|
point.dataset.layer = String(index + 1);
|
||||||
|
points.appendChild(point);
|
||||||
|
});
|
||||||
|
if (spectrumState) spectrumState.textContent = `${seed} · ${modeLabels[mode]}`;
|
||||||
|
const bind = (selector: string, value: string) => {
|
||||||
|
const node = root.querySelector<HTMLElement>(selector);
|
||||||
|
if (node) node.textContent = value;
|
||||||
|
};
|
||||||
|
bind("[data-local-spectrum-label]", modeLabels[mode]);
|
||||||
|
bind("[data-local-spectrum-count]", `${selected.uniform_count} / 65`);
|
||||||
|
bind("[data-local-spectrum-contrast]", `${selected.spike_contrast.toFixed(3)}×`);
|
||||||
|
bind("[data-local-spectrum-peak]", `${selected.peak_normalized.toFixed(3)}×`);
|
||||||
|
bind("[data-local-spectrum-layer]", String(selected.peak_layer));
|
||||||
|
};
|
||||||
|
spectrumSeed?.addEventListener("change", renderSpectrum);
|
||||||
|
spectrumMode?.addEventListener("change", renderSpectrum);
|
||||||
|
renderSpectrum();
|
||||||
|
};
|
||||||
|
|
||||||
|
document.querySelectorAll<HTMLElement>("[data-local-path-lab]").forEach(initializeLocalPathLab);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.local-lab {
|
||||||
|
--ink: #e8e5dd;
|
||||||
|
--muted: #9a9890;
|
||||||
|
--line: rgba(232,229,221,.14);
|
||||||
|
--panel: #121413;
|
||||||
|
--panel-2: #171a18;
|
||||||
|
--green: #8aae8d;
|
||||||
|
--copper: #c98a58;
|
||||||
|
--red: #c77768;
|
||||||
|
margin: 42px 0 0;
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
background: #0d0f0e;
|
||||||
|
color: var(--ink);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.local-lab figcaption { display: grid; grid-template-columns: auto 1fr auto; gap: 24px; align-items: start; padding: 26px 28px; border-bottom: 1px solid var(--line); }
|
||||||
|
.local-lab figcaption > span, .panel-lead span { color: var(--copper); font: .58rem/1.3 var(--mono); letter-spacing: .1em; }
|
||||||
|
.local-lab figcaption h3 { margin: 0; color: var(--ink); font-size: 1.08rem; line-height: 1.35; }
|
||||||
|
.local-lab figcaption p { margin: 8px 0 0; color: var(--muted); font: .62rem/1.5 var(--mono); }
|
||||||
|
.local-lab figcaption em { color: var(--muted); font: normal .55rem var(--mono); letter-spacing: .08em; }
|
||||||
|
.local-ledger { display: grid; grid-template-columns: repeat(6, 1fr); border-bottom: 1px solid var(--line); }
|
||||||
|
.local-ledger article { min-width: 0; padding: 16px 14px; border-right: 1px solid var(--line); }
|
||||||
|
.local-ledger article:last-child { border-right: 0; }
|
||||||
|
.local-ledger span { color: var(--muted); font: .52rem var(--mono); letter-spacing: .08em; }
|
||||||
|
.local-ledger b { display: block; margin-top: 10px; font: 800 .78rem var(--mono); }
|
||||||
|
.local-ledger p { margin: 7px 0 0; color: var(--muted); font: .55rem/1.4 var(--mono); }
|
||||||
|
.local-ledger .pass b { color: var(--green); }
|
||||||
|
.local-ledger .warn b { color: var(--copper); }
|
||||||
|
.local-ledger .boundary { background: rgba(199,119,104,.07); }
|
||||||
|
.local-ledger .boundary b { color: var(--red); font-size: .68rem; }
|
||||||
|
.local-tabs { display: grid; grid-template-columns: repeat(5, 1fr); border-bottom: 1px solid var(--line); }
|
||||||
|
.local-tabs button, .local-controls button { appearance: none; border: 0; border-right: 1px solid var(--line); background: transparent; color: var(--muted); cursor: pointer; font: .57rem var(--mono); letter-spacing: .06em; }
|
||||||
|
.local-tabs button { padding: 16px 10px; }
|
||||||
|
.local-tabs button[aria-selected="true"], .local-controls button[aria-pressed="true"] { background: rgba(201,138,88,.11); color: var(--copper); box-shadow: inset 0 -2px var(--copper); }
|
||||||
|
.local-panel { padding: 28px; }
|
||||||
|
.panel-lead { display: grid; grid-template-columns: 1fr minmax(260px, .7fr); gap: 34px; align-items: end; margin-bottom: 26px; }
|
||||||
|
.panel-lead h4 { margin: 9px 0 0; color: var(--ink); font-size: 1rem; line-height: 1.4; }
|
||||||
|
.panel-lead > p { margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.7; }
|
||||||
|
.group-map { display: grid; grid-template-columns: repeat(8, minmax(72px,1fr)) 22px minmax(82px,.8fr); align-items: stretch; border: 1px solid var(--line); }
|
||||||
|
.group-map article { position: relative; min-width: 0; padding: 14px 10px; border-right: 1px solid var(--line); background: var(--panel); }
|
||||||
|
.group-map article.target { background: rgba(201,138,88,.11); box-shadow: inset 0 3px var(--copper); }
|
||||||
|
.group-map span { color: var(--muted); font: .5rem var(--mono); }
|
||||||
|
.group-map b { display: block; margin: 12px 0; font: .7rem var(--mono); }
|
||||||
|
.group-map article > div { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; }
|
||||||
|
.group-map article i { display: grid; place-items: center; aspect-ratio: 1; border: 1px solid var(--line); color: var(--muted); font: normal .55rem var(--mono); }
|
||||||
|
.group-map article i.spike { border-color: var(--copper); background: var(--copper); color: #16110d; }
|
||||||
|
.group-map small { display: block; margin-top: 11px; color: var(--muted); font: .45rem var(--mono); }
|
||||||
|
.map-arrow { display: grid; place-items: center; color: var(--muted); font-style: normal; }
|
||||||
|
.group-map .output-node { border-left: 1px solid var(--line); border-right: 0; background: rgba(138,174,141,.08); }
|
||||||
|
.group-map .output-node b { color: var(--green); font-size: 1rem; }
|
||||||
|
.group-map .output-node p { color: var(--muted); font: .5rem var(--mono); }
|
||||||
|
.scope-key { display: flex; flex-wrap: wrap; gap: 18px; margin: 14px 0 24px; color: var(--muted); font: .54rem var(--mono); }
|
||||||
|
.scope-key span { display: inline-flex; align-items: center; gap: 7px; }
|
||||||
|
.scope-key i { width: 12px; height: 12px; border: 1px solid var(--line); }
|
||||||
|
.scope-key i.target { background: rgba(201,138,88,.2); border-color: var(--copper); }
|
||||||
|
.scope-key i.spike { background: var(--copper); }
|
||||||
|
.scope-key i.plain { background: var(--panel); }
|
||||||
|
.direction-pair { display: grid; grid-template-columns: 1fr auto 1fr; gap: 18px; align-items: center; }
|
||||||
|
.direction-pair > article { padding: 20px; border: 1px solid var(--line); background: var(--panel); }
|
||||||
|
.direction-pair > article > span { color: var(--copper); font: .55rem var(--mono); }
|
||||||
|
.direction-pair article div { display: flex; gap: 10px; align-items: center; margin: 18px 0; }
|
||||||
|
.direction-pair article div b { padding: 9px 10px; border: 1px solid var(--line); font: .6rem var(--mono); }
|
||||||
|
.direction-pair article div b.accent { border-color: var(--copper); color: var(--copper); }
|
||||||
|
.direction-pair article div i, .direction-pair > i { color: var(--muted); font-style: normal; }
|
||||||
|
.direction-pair code { color: var(--green); font-size: .65rem; }
|
||||||
|
.direction-pair p { margin: 12px 0 0; color: var(--muted); font-size: .63rem; }
|
||||||
|
.plain-rule { margin-top: 20px; padding: 17px 20px; border-left: 3px solid var(--copper); background: rgba(201,138,88,.07); }
|
||||||
|
.plain-rule b { font-size: .68rem; }
|
||||||
|
.plain-rule p { margin: 6px 0 0; color: var(--muted); font-size: .65rem; line-height: 1.6; }
|
||||||
|
.local-controls { display: flex; gap: 12px; align-items: stretch; min-height: 40px; margin-bottom: 18px; border: 1px solid var(--line); }
|
||||||
|
.local-controls label { display: flex; align-items: center; gap: 10px; padding: 0 12px; border-right: 1px solid var(--line); color: var(--muted); font: .54rem var(--mono); }
|
||||||
|
.local-controls select { max-width: 310px; border: 0; background: transparent; color: var(--ink); font: .58rem var(--mono); }
|
||||||
|
.local-controls select option { background: #151715; }
|
||||||
|
.local-controls > div { display: flex; }
|
||||||
|
.local-controls button { padding: 0 16px; border-left: 1px solid var(--line); }
|
||||||
|
.local-controls > span { margin-left: auto; display: flex; align-items: center; padding: 0 14px; color: var(--muted); font: .55rem var(--mono); }
|
||||||
|
.matrix-axis { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto 1fr auto; gap: 8px; align-items: center; padding: 0 170px 8px 245px; color: var(--muted); font: .47rem var(--mono); }
|
||||||
|
.matrix-axis i { height: 1px; background: var(--line); }
|
||||||
|
.matrix-bars { border: 1px solid var(--line); }
|
||||||
|
.matrix-bars :global(article) { display: grid; grid-template-columns: 235px 1fr 66px 86px; gap: 12px; align-items: center; min-height: 44px; padding: 5px 12px; border-bottom: 1px solid var(--line); }
|
||||||
|
.matrix-bars :global(article:last-child) { border-bottom: 0; }
|
||||||
|
.matrix-bars :global(article[data-family="restoration"]) { background: rgba(138,174,141,.035); }
|
||||||
|
.matrix-bars :global(article > div:first-child) { display: grid; grid-template-columns: 24px 1fr auto; gap: 8px; align-items: center; min-width: 0; }
|
||||||
|
.matrix-bars :global(article > div:first-child span) { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid var(--line); color: var(--copper); font: .52rem var(--mono); }
|
||||||
|
.matrix-bars :global(article[data-family="restoration"] > div:first-child span) { color: var(--green); }
|
||||||
|
.matrix-bars :global(article > div:first-child b) { overflow: hidden; color: var(--ink); text-overflow: ellipsis; white-space: nowrap; font: .58rem var(--mono); }
|
||||||
|
.matrix-bars :global(article > div:first-child small) { color: var(--muted); font: .45rem var(--mono); }
|
||||||
|
.matrix-bars :global(.matrix-track) { position: relative; height: 12px; background: rgba(232,229,221,.045); }
|
||||||
|
.matrix-bars :global(.matrix-track::after) { content: ""; position: absolute; left: 13%; top: -4px; bottom: -4px; width: 1px; background: rgba(232,229,221,.4); }
|
||||||
|
.matrix-bars :global(.matrix-track i) { position: absolute; left: 13%; top: 2px; height: 8px; width: calc(var(--magnitude) * .87); background: var(--copper); }
|
||||||
|
.matrix-bars :global(article[data-family="restoration"] .matrix-track i) { background: var(--green); }
|
||||||
|
.matrix-bars :global(.matrix-track i.negative) { right: 87%; left: auto; width: calc(var(--magnitude) * .13); background: var(--red) !important; }
|
||||||
|
.matrix-bars :global(strong) { text-align: right; color: var(--ink); font: .64rem var(--mono); }
|
||||||
|
.matrix-bars :global(em) { color: var(--muted); font: normal .48rem var(--mono); }
|
||||||
|
.matrix-note { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 14px; border: 1px solid var(--line); }
|
||||||
|
.matrix-note article { display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: center; padding: 12px; border-right: 1px solid var(--line); }
|
||||||
|
.matrix-note article:last-child { border-right: 0; }
|
||||||
|
.matrix-note b { color: var(--copper); font: .75rem var(--mono); }
|
||||||
|
.matrix-note p { margin: 0; color: var(--muted); font-size: .56rem; }
|
||||||
|
.verdict-banner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; padding: 18px 20px; border: 1px solid rgba(199,119,104,.5); background: rgba(199,119,104,.08); }
|
||||||
|
.verdict-banner span, .verdict-banner p { color: var(--muted); font: .54rem var(--mono); }
|
||||||
|
.verdict-banner b { color: var(--red); font: 800 .9rem var(--mono); }
|
||||||
|
.verdict-banner p { margin: 0; text-align: right; }
|
||||||
|
.dual-table-wrap { margin-top: 18px; overflow-x: auto; border: 1px solid var(--line); }
|
||||||
|
.dual-table { width: 100%; border-collapse: collapse; font: .59rem var(--mono); }
|
||||||
|
.dual-table th, .dual-table td { padding: 13px 11px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: right; }
|
||||||
|
.dual-table th:first-child { text-align: left; }
|
||||||
|
.dual-table thead { color: var(--muted); }
|
||||||
|
.dual-table .good { color: var(--green); }
|
||||||
|
.dual-table .bad { color: var(--red); }
|
||||||
|
.dual-table .mean { background: rgba(232,229,221,.04); }
|
||||||
|
.dual-visual { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 18px; }
|
||||||
|
.dual-visual article { padding: 18px; border: 1px solid var(--line); background: var(--panel); }
|
||||||
|
.dual-visual span { color: var(--muted); font: .52rem var(--mono); }
|
||||||
|
.dual-visual b { display: block; margin: 9px 0 16px; font: .75rem var(--mono); }
|
||||||
|
.dual-visual article > div { position: relative; height: 22px; margin: 8px 0; background: rgba(232,229,221,.05); }
|
||||||
|
.dual-visual article > div::after { content: "50%"; position: absolute; left: 50%; top: -14px; bottom: -2px; border-left: 1px dashed var(--muted); color: var(--muted); font: .42rem var(--mono); }
|
||||||
|
.dual-visual article i { display: block; width: calc(min(var(--score), 1) * 100%); height: 100%; background: var(--green); }
|
||||||
|
.dual-visual article.fail i { background: var(--copper); }
|
||||||
|
.dual-visual em { position: absolute; left: 9px; top: 5px; color: #0d0f0e; font: normal 800 .52rem var(--mono); }
|
||||||
|
.dual-visual p { margin: 13px 0 0; color: var(--muted); font-size: .62rem; line-height: 1.55; }
|
||||||
|
.boundary-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 18px; }
|
||||||
|
.boundary-pair article { padding: 18px; border: 1px solid var(--line); }
|
||||||
|
.boundary-pair span { color: var(--muted); font: .52rem var(--mono); }
|
||||||
|
.boundary-pair b { display: block; margin: 9px 0; font-size: .72rem; }
|
||||||
|
.boundary-pair p { margin: 0; color: var(--muted); font-size: .61rem; line-height: 1.5; }
|
||||||
|
.boundary-pair .yes { border-color: rgba(138,174,141,.45); }
|
||||||
|
.boundary-pair .yes b { color: var(--green); }
|
||||||
|
.boundary-pair .no { border-color: rgba(199,119,104,.45); }
|
||||||
|
.boundary-pair .no b { color: var(--red); }
|
||||||
|
.branch-chart { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
|
||||||
|
.branch-chart article { padding: 18px; border: 1px solid var(--line); background: var(--panel); }
|
||||||
|
.branch-chart article > span { color: var(--muted); font: .52rem var(--mono); }
|
||||||
|
.branch-chart article > b { display: block; margin: 8px 0 18px; font: .75rem var(--mono); }
|
||||||
|
.branch-chart article > div { display: grid; grid-template-columns: 74px 1fr 46px; gap: 9px; align-items: center; margin: 10px 0; }
|
||||||
|
.branch-chart em { color: var(--muted); font: normal .5rem var(--mono); }
|
||||||
|
.branch-chart i { height: 14px; width: calc(var(--branch-score, .1) * 100%); background: var(--copper); }
|
||||||
|
.branch-chart .mlp i { background: var(--green); }
|
||||||
|
.branch-chart strong { text-align: right; font: .58rem var(--mono); }
|
||||||
|
.branch-verdicts, .control-grid, .audit-grid { display: grid; gap: 14px; margin-top: 16px; }
|
||||||
|
.branch-verdicts { grid-template-columns: 1fr 1fr; }
|
||||||
|
.control-grid { grid-template-columns: repeat(3, 1fr); }
|
||||||
|
.branch-verdicts article, .control-grid article, .audit-grid article { padding: 16px; border: 1px solid var(--line); }
|
||||||
|
.branch-verdicts span, .control-grid span, .audit-grid span { color: var(--muted); font: .5rem var(--mono); }
|
||||||
|
.branch-verdicts b, .control-grid b, .audit-grid b { display: block; margin: 9px 0; font: .7rem var(--mono); }
|
||||||
|
.branch-verdicts p, .control-grid p, .audit-grid p { margin: 0; color: var(--muted); font-size: .59rem; line-height: 1.5; }
|
||||||
|
.branch-verdicts .pass { border-color: rgba(138,174,141,.45); }
|
||||||
|
.branch-verdicts .pass b { color: var(--green); }
|
||||||
|
.control-grid .warning { border-color: rgba(201,138,88,.4); }
|
||||||
|
.spectrum-controls label:nth-child(2) { flex: 1; }
|
||||||
|
.spectrum-controls label:nth-child(2) select { width: 100%; max-width: none; }
|
||||||
|
.spectrum-layout { display: grid; grid-template-columns: 1fr 220px; gap: 16px; }
|
||||||
|
.chart-shell { border: 1px solid var(--line); background: var(--panel); }
|
||||||
|
.chart-shell header { display: flex; justify-content: space-between; padding: 12px 15px; border-bottom: 1px solid var(--line); }
|
||||||
|
.chart-shell header b, .chart-shell header span { font: .53rem var(--mono); }
|
||||||
|
.chart-shell header span { color: var(--muted); }
|
||||||
|
.chart-shell svg { display: block; width: 100%; height: auto; }
|
||||||
|
[data-local-spectrum-grid] :global(line) { stroke: var(--line); stroke-width: 1; }
|
||||||
|
[data-local-spectrum-grid] :global(text) { fill: var(--muted); font: 10px var(--mono); }
|
||||||
|
.spike-zone { fill: rgba(201,138,88,.08); }
|
||||||
|
.series { fill: none; stroke: var(--green); stroke-width: 2; }
|
||||||
|
[data-local-spectrum-points] :global(circle) { fill: var(--green); stroke: #0d0f0e; stroke-width: 1; }
|
||||||
|
.spectrum-key { display: flex; gap: 18px; padding: 10px 14px; border-top: 1px solid var(--line); color: var(--muted); font: .5rem var(--mono); }
|
||||||
|
.spectrum-key span { display: flex; gap: 6px; align-items: center; }
|
||||||
|
.spectrum-key i { width: 14px; height: 2px; background: var(--green); }
|
||||||
|
.spectrum-key i.zone { height: 10px; background: rgba(201,138,88,.25); }
|
||||||
|
.spectrum-layout aside { padding: 18px; border: 1px solid var(--line); background: var(--panel); }
|
||||||
|
.spectrum-layout aside > span { color: var(--muted); font: .5rem var(--mono); }
|
||||||
|
.spectrum-layout aside > b { display: block; margin: 10px 0 18px; font: .67rem/1.4 var(--mono); }
|
||||||
|
.spectrum-layout dl { margin: 0; }
|
||||||
|
.spectrum-layout dl div { display: flex; justify-content: space-between; gap: 8px; padding: 10px 0; border-top: 1px solid var(--line); }
|
||||||
|
.spectrum-layout dt, .spectrum-layout dd { margin: 0; font: .53rem var(--mono); }
|
||||||
|
.spectrum-layout dt { color: var(--muted); }
|
||||||
|
.spectrum-layout dd { color: var(--green); }
|
||||||
|
.spectrum-story { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 12px; align-items: center; margin-top: 16px; }
|
||||||
|
.spectrum-story article { min-height: 105px; padding: 15px; border: 1px solid var(--line); }
|
||||||
|
.spectrum-story span { color: var(--muted); font: .5rem var(--mono); }
|
||||||
|
.spectrum-story b { display: block; margin: 9px 0; font: .7rem var(--mono); }
|
||||||
|
.spectrum-story p { margin: 0; color: var(--muted); font-size: .58rem; line-height: 1.5; }
|
||||||
|
.spectrum-story > i { color: var(--muted); font-style: normal; }
|
||||||
|
.audit-grid { grid-template-columns: repeat(4, 1fr); }
|
||||||
|
.audit-grid .boundary { border-color: rgba(199,119,104,.45); }
|
||||||
|
.hash-strip { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 14px; padding: 12px 14px; border: 1px solid var(--line); color: var(--muted); font: .48rem var(--mono); }
|
||||||
|
.hash-strip code { color: var(--green); }
|
||||||
|
|
||||||
|
@media (max-width: 980px) {
|
||||||
|
.local-ledger { grid-template-columns: repeat(3, 1fr); }
|
||||||
|
.local-ledger article:nth-child(3) { border-right: 0; }
|
||||||
|
.local-tabs { grid-template-columns: repeat(3, 1fr); }
|
||||||
|
.group-map { grid-template-columns: repeat(4, 1fr); }
|
||||||
|
.group-map .map-arrow { display: none; }
|
||||||
|
.group-map .output-node { grid-column: span 4; border-left: 0; border-top: 1px solid var(--line); }
|
||||||
|
.matrix-bars :global(article) { grid-template-columns: 210px 1fr 58px; }
|
||||||
|
.matrix-bars :global(em) { display: none; }
|
||||||
|
.matrix-axis { display: none; }
|
||||||
|
.spectrum-layout { grid-template-columns: 1fr; }
|
||||||
|
.audit-grid { grid-template-columns: repeat(2, 1fr); }
|
||||||
|
}
|
||||||
|
@media (max-width: 680px) {
|
||||||
|
.local-lab figcaption { grid-template-columns: 1fr; padding: 20px; }
|
||||||
|
.local-lab figcaption > span { order: -1; }
|
||||||
|
.local-ledger { grid-template-columns: repeat(2, 1fr); }
|
||||||
|
.local-ledger article:nth-child(3) { border-right: 1px solid var(--line); }
|
||||||
|
.local-ledger article:nth-child(even) { border-right: 0; }
|
||||||
|
.local-tabs { display: flex; overflow-x: auto; }
|
||||||
|
.local-tabs button { min-width: 145px; }
|
||||||
|
.local-panel { padding: 20px 14px; }
|
||||||
|
.panel-lead { grid-template-columns: 1fr; gap: 14px; }
|
||||||
|
.group-map { grid-template-columns: repeat(2, 1fr); }
|
||||||
|
.group-map .output-node { grid-column: span 2; }
|
||||||
|
.direction-pair { grid-template-columns: 1fr; }
|
||||||
|
.direction-pair > i { transform: rotate(90deg); text-align: center; }
|
||||||
|
.local-controls { flex-wrap: wrap; }
|
||||||
|
.local-controls > span { width: 100%; min-height: 34px; border-top: 1px solid var(--line); }
|
||||||
|
.matrix-bars :global(article) { grid-template-columns: 1fr 58px; padding: 9px; }
|
||||||
|
.matrix-bars :global(article > div:first-child) { grid-column: 1 / -1; }
|
||||||
|
.matrix-bars :global(.matrix-track) { min-width: 0; }
|
||||||
|
.matrix-note, .dual-visual, .boundary-pair, .branch-chart, .branch-verdicts, .control-grid, .audit-grid { grid-template-columns: 1fr; }
|
||||||
|
.verdict-banner { grid-template-columns: 1fr; }
|
||||||
|
.verdict-banner p { text-align: left; }
|
||||||
|
.dual-table { min-width: 670px; }
|
||||||
|
.spectrum-story { grid-template-columns: 1fr; }
|
||||||
|
.spectrum-story > i { transform: rotate(90deg); text-align: center; }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -334,7 +334,7 @@ const reductionLabels: Record<string, string> = {
|
|||||||
<i>→</i>
|
<i>→</i>
|
||||||
<article class="accent"><span>3 / INTERVENE</span><b>value route −70.2%</b><p>全局反向规则干预支持路径敏感性。</p></article>
|
<article class="accent"><span>3 / INTERVENE</span><b>value route −70.2%</b><p>全局反向规则干预支持路径敏感性。</p></article>
|
||||||
<i>→</i>
|
<i>→</i>
|
||||||
<article><span>4 / NEXT GATE</span><b>局部 group 6 / 7</b><p>下一轮冻结局部 mixer 的干预矩阵。</p></article>
|
<article><span>4 / LOCAL FOLLOW-UP</span><b>单侧 6 / 6 · 双向 3 / 6</b><p>groups 6+7 的 sufficiency 通过;restoration peak 未过,localization 未建立。</p></article>
|
||||||
</div>
|
</div>
|
||||||
<div class="audit-grid">
|
<div class="audit-grid">
|
||||||
<article><span>ROUND 05 EQUIVALENCE</span><b>3 / 3 exact</b><p>model、optimizer、history、六个 BPC 与全部 post-MLP 数组一致。</p></article>
|
<article><span>ROUND 05 EQUIVALENCE</span><b>3 / 3 exact</b><p>model、optimizer、history、六个 BPC 与全部 post-MLP 数组一致。</p></article>
|
||||||
|
|||||||
@@ -128,20 +128,20 @@ const paths = [
|
|||||||
<div class="release-grid">
|
<div class="release-grid">
|
||||||
<a class="release-card k3-release" href="/k3/">
|
<a class="release-card k3-release" href="/k3/">
|
||||||
<div>
|
<div>
|
||||||
<p class="eyebrow"><span>NEW / K3 ROUND 06</span> SPIKE TRAJECTORY · SAME-FORWARD BACKWARD PATH</p>
|
<p class="eyebrow"><span>NEW / K3 ROUND 07</span> LOCAL MIXER PATH · BIDIRECTIONAL GATE</p>
|
||||||
<h2>尖峰不是出生时就有:它在训练中形成,并对 value 路径敏感</h2>
|
<h2>16 个局部 mixer 单侧证据很强,但双向定位仍然没有闭合</h2>
|
||||||
<p>
|
<p>
|
||||||
严格复用 Round 05 的 depth-32 Block 正式格,追踪六个训练时点、六个张量位置与四种
|
以 14 个冻结 mask 同时检查 sufficiency 与 restoration:groups 6+7 在 learned
|
||||||
reduction。layer 21–25 的尖峰在 step 500 后形成;全局 uniform value-backward
|
背景的 6 / 6 格全部超过 50% global log gap;但从 uniform 背景恢复时,peak 三个
|
||||||
让 contrast 平均下降 70.2%,但只判为反向路径敏感性,不冒充因果贡献或训练变体。
|
seed 全部未过线。因此只能报告 one-sided evidence,不能宣布尖峰已定位到这 16 个 mixer。
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<dl>
|
<dl>
|
||||||
<div><dt>FORMAL</dt><dd>3 seeds × 8,000 steps</dd></div>
|
<div><dt>MATRIX</dt><dd>14 masks × 3 seeds</dd></div>
|
||||||
<div><dt>ROBUST</dt><dd>4 reductions · 12/12</dd></div>
|
<div><dt>SUFFICIENCY</dt><dd>6 / 6 pass</dd></div>
|
||||||
<div><dt>REPLAY</dt><dd>16 frozen groups exact</dd></div>
|
<div><dt>RESTORATION</dt><dd>3 / 6 fail</dd></div>
|
||||||
</dl>
|
</dl>
|
||||||
<span class="release-arrow" aria-hidden="true">进入训练轨迹、六位置谱与反向路径干预 →</span>
|
<span class="release-arrow" aria-hidden="true">进入局部路径图、双向门与 32 层原始谱 →</span>
|
||||||
</a>
|
</a>
|
||||||
<a class="release-card deepseek-release" href="/deepseek/">
|
<a class="release-card deepseek-release" href="/deepseek/">
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import BaseLayout from "@/layouts/BaseLayout.astro";
|
|||||||
import ArchitectureExplorer from "@/components/ArchitectureExplorer.astro";
|
import ArchitectureExplorer from "@/components/ArchitectureExplorer.astro";
|
||||||
import K3ArtifactLab from "@/components/K3ArtifactLab.astro";
|
import K3ArtifactLab from "@/components/K3ArtifactLab.astro";
|
||||||
import K3AttnResGradientLab from "@/components/K3AttnResGradientLab.astro";
|
import K3AttnResGradientLab from "@/components/K3AttnResGradientLab.astro";
|
||||||
|
import K3AttnResLocalPathLab from "@/components/K3AttnResLocalPathLab.astro";
|
||||||
import K3AttnResSpikeLab from "@/components/K3AttnResSpikeLab.astro";
|
import K3AttnResSpikeLab from "@/components/K3AttnResSpikeLab.astro";
|
||||||
import K3AttnResTraceLab from "@/components/K3AttnResTraceLab.astro";
|
import K3AttnResTraceLab from "@/components/K3AttnResTraceLab.astro";
|
||||||
import K3ReportLab from "@/components/K3ReportLab.astro";
|
import K3ReportLab from "@/components/K3ReportLab.astro";
|
||||||
@@ -42,7 +43,8 @@ const toc = [
|
|||||||
["30", "attnres-reduced", "AttnRes 缩小机制实验"],
|
["30", "attnres-reduced", "AttnRes 缩小机制实验"],
|
||||||
["31", "attnres-gradient", "梯度定义与深度扩展"],
|
["31", "attnres-gradient", "梯度定义与深度扩展"],
|
||||||
["32", "attnres-spike", "尖峰轨迹与反向路径"],
|
["32", "attnres-spike", "尖峰轨迹与反向路径"],
|
||||||
["33", "audit", "21 张图表审计"],
|
["33", "attnres-local-path", "局部 mixer 双向干预"],
|
||||||
|
["34", "audit", "21 张图表审计"],
|
||||||
["↳", "papers", "100 节点阅读链"],
|
["↳", "papers", "100 节点阅读链"],
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -111,13 +113,13 @@ const paperGroups = [
|
|||||||
|
|
||||||
<BaseLayout
|
<BaseLayout
|
||||||
title="Kimi K3 技术报告完整深读:架构、训练、RL、系统与评测"
|
title="Kimi K3 技术报告完整深读:架构、训练、RL、系统与评测"
|
||||||
description="用三十二张问题账、二十一张图表审计、八个机制实验、四个开放工件视图、三轮十五个 AttnRes 独立实验视图与一百个一手阅读节点,逐节读懂 Kimi K3。"
|
description="用三十二张问题账、二十一张图表审计、八个机制实验、四个开放工件视图、四轮二十个 AttnRes 独立实验视图与一百个一手阅读节点,逐节读懂 Kimi K3。"
|
||||||
section="k3"
|
section="k3"
|
||||||
>
|
>
|
||||||
<header class="page-hero k3-hero">
|
<header class="page-hero k3-hero">
|
||||||
<div class="page-hero-inner">
|
<div class="page-hero-inner">
|
||||||
<div>
|
<div>
|
||||||
<p class="eyebrow"><span>ANCHOR REPORT / ROUND 06</span> KIMI K3 · REPORT → ARTIFACTS → INDEPENDENT PROBE</p>
|
<p class="eyebrow"><span>ANCHOR REPORT / ROUND 07</span> KIMI K3 · REPORT → ARTIFACTS → INDEPENDENT PROBE</p>
|
||||||
<h1>不把报告压成摘要<br />把每个因果环节<br />重新展开</h1>
|
<h1>不把报告压成摘要<br />把每个因果环节<br />重新展开</h1>
|
||||||
<p class="lead">
|
<p class="lead">
|
||||||
K3 同时扩展序列、深度、宽度、视觉与 Agent 轨迹。真正值得读的不是 2.8T 这个最大数字,
|
K3 同时扩展序列、深度、宽度、视觉与 Agent 轨迹。真正值得读的不是 2.8T 这个最大数字,
|
||||||
@@ -131,7 +133,7 @@ const paperGroups = [
|
|||||||
<div><dt>READING</dt><dd>100 个一手 / 官方节点</dd></div>
|
<div><dt>READING</dt><dd>100 个一手 / 官方节点</dd></div>
|
||||||
<div><dt>MODEL</dt><dd>2.78T total / 104.2B active</dd></div>
|
<div><dt>MODEL</dt><dd>2.78T total / 104.2B active</dd></div>
|
||||||
<div><dt>ARTIFACTS</dt><dd>96 shards · 497,220 tensors</dd></div>
|
<div><dt>ARTIFACTS</dt><dd>96 shards · 497,220 tensors</dd></div>
|
||||||
<div><dt>STATUS</dt><dd>K3 六轮 · 尖峰路径审计</dd></div>
|
<div><dt>STATUS</dt><dd>K3 七轮 · 局部路径审计</dd></div>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
@@ -866,13 +868,14 @@ const paperGroups = [
|
|||||||
<article><span>O / OBSERVED</span><b>1.4196 TiB tensor data</b><p>96 shards、497,220 entries;不是运行显存,也不是参数量口径。</p></article>
|
<article><span>O / OBSERVED</span><b>1.4196 TiB tensor data</b><p>96 shards、497,220 entries;不是运行显存,也不是参数量口径。</p></article>
|
||||||
<article><span>D / CLOSED LOOP</span><b>69 KDA · 24 MLA · 92 MoE</b><p>配置、tensor names 与 header shape 三方闭合。</p></article>
|
<article><span>D / CLOSED LOOP</span><b>69 KDA · 24 MLA · 92 MoE</b><p>配置、tensor names 与 header shape 三方闭合。</p></article>
|
||||||
<article><span>X / RTX 5090</span><b>exact 6/6 · max error 0</b><p>官方 torch reference;fixed BF16 mean 2.6210 ms。</p></article>
|
<article><span>X / RTX 5090</span><b>exact 6/6 · max error 0</b><p>官方 torch reference;fixed BF16 mean 2.6210 ms。</p></article>
|
||||||
<article class="warning"><span>U / UNRESOLVED</span><b>A_log [128] ≠ expected [96]</b><p>checkpoint 与公开代码 / kernel API 的形状冲突保留在主视区,不擅自解释。</p></article>
|
<article class="warning"><span>U / MAIN UNRESOLVED</span><b>A_log [128] ≠ expected [96]</b><p>main 未修;#144 改成 128,#150 验零后裁成 96,两个社区 PR 都未合并。</p></article>
|
||||||
</div>
|
</div>
|
||||||
<K3ArtifactLab />
|
<K3ArtifactLab />
|
||||||
<div class="hero-actions">
|
<div class="hero-actions">
|
||||||
<a class="button primary" href="https://huggingface.co/moonshotai/Kimi-K3">打开官方开放权重</a>
|
<a class="button primary" href="https://huggingface.co/moonshotai/Kimi-K3">打开官方开放权重</a>
|
||||||
<a class="button" href="https://github.com/MoonshotAI/FlashKDA">打开 FlashKDA 官方实现</a>
|
<a class="button" href="https://github.com/MoonshotAI/FlashKDA">打开 FlashKDA 官方实现</a>
|
||||||
<a class="button" href="https://github.com/MoonshotAI/FlashKDA/blob/master/BENCHMARK_GB200.md">核对作者 GB200 benchmark</a>
|
<a class="button" href="https://github.com/MoonshotAI/FlashKDA/blob/master/BENCHMARK_GB200.md">核对作者 GB200 benchmark</a>
|
||||||
|
<a class="button" href="https://huggingface.co/moonshotai/Kimi-K3/discussions/150">审阅社区 PR #150</a>
|
||||||
<a class="button" href="https://git.k1412.top/wuyang/llm-atlas/src/branch/main/experiments/k3/flashkda">复跑本站 RTX 5090 探针</a>
|
<a class="button" href="https://git.k1412.top/wuyang/llm-atlas/src/branch/main/experiments/k3/flashkda">复跑本站 RTX 5090 探针</a>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -881,8 +884,8 @@ const paperGroups = [
|
|||||||
<p class="eyebrow"><span>30</span> REDUCED ATTENTION RESIDUALS STUDY</p>
|
<p class="eyebrow"><span>30</span> REDUCED ATTENTION RESIDUALS STUDY</p>
|
||||||
<h2>真实 K3 权重还不能诚实 forward;先把一个可证伪的 AttnRes 问题完整做完</h2>
|
<h2>真实 K3 权重还不能诚实 forward;先把一个可证伪的 AttnRes 问题完整做完</h2>
|
||||||
<p class="lede">
|
<p class="lede">
|
||||||
checkpoint 的 <code>A_log [128]</code> 与 config、remote code、FlashKDA、vLLM 和 SGLang
|
checkpoint 的 <code>A_log [128]</code> 与 main 代码期望的 96 heads 仍没有官方转换合同;
|
||||||
期望的 96 heads 仍没有公开转换合同。本轮不裁剪权重冒充 K3,而是预注册一个从零训练的缩小实验:
|
社区 #144 / #150 提出相反修复,均未合并。本轮不把候选 patch 冒充 K3 官方 forward,而是预注册一个从零训练的缩小实验:
|
||||||
相同 16-block Transformer、相同数据窗口与相同初始化,只改变 residual source 的读取拓扑。
|
相同 16-block Transformer、相同数据窗口与相同初始化,只改变 residual source 的读取拓扑。
|
||||||
</p>
|
</p>
|
||||||
<div class="artifact-callout">
|
<div class="artifact-callout">
|
||||||
@@ -949,8 +952,33 @@ const paperGroups = [
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section class="article-section" id="attnres-local-path">
|
||||||
|
<p class="eyebrow"><span>33</span> LOCAL MIXER PATH × BIDIRECTIONAL GATE</p>
|
||||||
|
<h2>全局 value-route 很敏感;能不能把它诚实地缩到 group 6 / 7?</h2>
|
||||||
|
<p class="lede">
|
||||||
|
第七轮先冻结 14 种 same-forward mask:在 learned 背景只把固定 scope 改成 uniform,
|
||||||
|
测 sufficiency;再从 all-uniform 背景只恢复同一 scope 的 detached-learned coefficients,
|
||||||
|
测 restoration。groups 6+7 的 16 个 depth mixers 在 sufficiency 的两个指标、三个 seed
|
||||||
|
全部复现至少一半 global log gap;但 restoration 只在 contrast 通过,peak 三 seed 均低于 50%。
|
||||||
|
因而主结论不是“定位成功”,而是强单侧证据与未闭合的双向 localization。
|
||||||
|
</p>
|
||||||
|
<div class="artifact-callout">
|
||||||
|
<article><span>F / FROZEN</span><b>14 masks · 65 visits</b><p>每次 forward 审计 exact identity set、顺序、唯一性与 census。</p></article>
|
||||||
|
<article><span>X / SUFFICIENCY</span><b>6 / 6 PASS</b><p>groups 6+7 mean S:contrast .677;peak 1.700。</p></article>
|
||||||
|
<article class="warning"><span>X / RESTORATION</span><b>3 / 6 FAIL</b><p>contrast mean .650;peak 仅 .380,三 seed 均未过 .50。</p></article>
|
||||||
|
<article class="warning"><span>B / VERDICT</span><b>one-sided evidence</b><p>双向 localization 未建立;group 7 MLP 只作次级 sufficiency 发现。</p></article>
|
||||||
|
</div>
|
||||||
|
<K3AttnResLocalPathLab />
|
||||||
|
<div class="hero-actions">
|
||||||
|
<a class="button primary" href="https://git.k1412.top/wuyang/llm-atlas/src/branch/main/research/K3_ATTNRES_LOCAL_PATH_AUDIT.md">阅读完整结果审计</a>
|
||||||
|
<a class="button" href="https://git.k1412.top/wuyang/llm-atlas/src/branch/main/research/K3_ATTNRES_LOCAL_PATH_PROTOCOL.md">核对预注册协议</a>
|
||||||
|
<a class="button" href="https://git.k1412.top/wuyang/llm-atlas/src/branch/main/research/K3_ATTNRES_LOCAL_PATH_GROK_REVIEW.md">查看结果前对抗审阅</a>
|
||||||
|
<a class="button" href="https://git.k1412.top/wuyang/llm-atlas/src/branch/main/experiments/k3/attnres_local_path">复跑矩阵与 replay</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section class="article-section" id="audit">
|
<section class="article-section" id="audit">
|
||||||
<p class="eyebrow"><span>33</span> FIGURE & TABLE AUDIT</p>
|
<p class="eyebrow"><span>34</span> FIGURE & TABLE AUDIT</p>
|
||||||
<h2>Figure 1–16、Table 1–5:每张图究竟支持什么,不能支持什么</h2>
|
<h2>Figure 1–16、Table 1–5:每张图究竟支持什么,不能支持什么</h2>
|
||||||
<div class="figure-atlas">
|
<div class="figure-atlas">
|
||||||
{k3FigureAtlas.map(([id, report, title, contract]) => (
|
{k3FigureAtlas.map(([id, report, title, contract]) => (
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const researching = chapters.filter((chapter) => ["researching", "drafting"].inc
|
|||||||
const workstreams = [
|
const workstreams = [
|
||||||
{ label: "研究框架与规范", value: 83, next: "给 Scaling 与推理专题补逐篇图表/实验精读层级" },
|
{ label: "研究框架与规范", value: 83, next: "给 Scaling 与推理专题补逐篇图表/实验精读层级" },
|
||||||
{ label: "网站设计系统", value: 89, next: "打印样式与更多通用可视化组件" },
|
{ label: "网站设计系统", value: 89, next: "打印样式与更多通用可视化组件" },
|
||||||
{ label: "Kimi K3 深读", value: 99, next: "对 group 6 / 7 做局部 mixer backward 干预;等待 A_log 官方转换合同" },
|
{ label: "Kimi K3 深读", value: 99, next: "设计前向训练变体,并等待 A_log 社区方案的官方裁决" },
|
||||||
{ label: "语言模型前史", value: 78, next: "逐图精读 Kneser–Ney、LSTM 与 Bahdanau,并加入真实小语料复现" },
|
{ label: "语言模型前史", value: 78, next: "逐图精读 Kneser–Ney、LSTM 与 Bahdanau,并加入真实小语料复现" },
|
||||||
{ label: "Transformer 基础", value: 79, next: "逐图精读多头电路、Pre/Post-LN 与真实 kernel / KV 配置" },
|
{ label: "Transformer 基础", value: 79, next: "逐图精读多头电路、Pre/Post-LN 与真实 kernel / KV 配置" },
|
||||||
{ label: "表示、位置与残差高速公路", value: 81, next: "加入真实 hidden-state / norm traces、长上下文位置外推复现与更多深层稳定性消融" },
|
{ label: "表示、位置与残差高速公路", value: 81, next: "加入真实 hidden-state / norm traces、长上下文位置外推复现与更多深层稳定性消融" },
|
||||||
@@ -50,7 +50,7 @@ const workstreams = [
|
|||||||
<div><dt>OVERALL</dt><dd>专题平均 {average}%</dd></div>
|
<div><dt>OVERALL</dt><dd>专题平均 {average}%</dd></div>
|
||||||
<div><dt>READABLE</dt><dd>{published} 个首版可读专题</dd></div>
|
<div><dt>READABLE</dt><dd>{published} 个首版可读专题</dd></div>
|
||||||
<div><dt>ACTIVE</dt><dd>{researching} 个研究/写作中</dd></div>
|
<div><dt>ACTIVE</dt><dd>{researching} 个研究/写作中</dd></div>
|
||||||
<div><dt>UPDATED</dt><dd>2026-07-30 12:20 CST</dd></div>
|
<div><dt>UPDATED</dt><dd>2026-07-30 15:20 CST</dd></div>
|
||||||
<div><dt>MODE</dt><dd>持续迭代,不锁死版本</dd></div>
|
<div><dt>MODE</dt><dd>持续迭代,不锁死版本</dd></div>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
@@ -97,7 +97,7 @@ 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 三轴图、八联报告实验、四联开放工件实验与三轮十五联 AttnRes 独立实验,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 三轴图、八联报告实验、四联开放工件实验与四轮二十联 AttnRes 独立实验,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>
|
||||||
@@ -108,6 +108,7 @@ const workstreams = [
|
|||||||
<article><span>✓</span><h3>Kimi K3 四轮 AttnRes 独立实验</h3><p>冻结三结构 × 三 seed 的 9 个 2,000-step 格;Full / Block 相对 Baseline 的平均 paired delta 为 −0.01457 / −0.04247 BPC,但核心参数梯度 CV 没有复现论文叙述。指定正式格全新进程八字段 exact,五视图同时展示结果、反证、成本与 claim boundary。</p></article>
|
<article><span>✓</span><h3>Kimi K3 四轮 AttnRes 独立实验</h3><p>冻结三结构 × 三 seed 的 9 个 2,000-step 格;Full / Block 相对 Baseline 的平均 paired delta 为 −0.01457 / −0.04247 BPC,但核心参数梯度 CV 没有复现论文叙述。指定正式格全新进程八字段 exact,五视图同时展示结果、反证、成本与 claim boundary。</p></article>
|
||||||
<article><span>✓</span><h3>Kimi K3 五轮梯度定义与深度扩展</h3><p>先确认 Figure 5 没有公开唯一 gradient telemetry 合同,再冻结 16/32 blocks × Baseline/Block × 3 seeds 的 12 个 8,000-step 格。Block 的首尾失衡 6/6 改善但全层 CV 6/6 恶化,两个深度都判为 mixed;指定 32 层格完整重训的模型、优化器与全部冻结字段 exact。</p></article>
|
<article><span>✓</span><h3>Kimi K3 五轮梯度定义与深度扩展</h3><p>先确认 Figure 5 没有公开唯一 gradient telemetry 合同,再冻结 16/32 blocks × Baseline/Block × 3 seeds 的 12 个 8,000-step 格。Block 的首尾失衡 6/6 改善但全层 CV 6/6 恶化,两个深度都判为 mixed;指定 32 层格完整重训的模型、优化器与全部冻结字段 exact。</p></article>
|
||||||
<article><span>✓</span><h3>Kimi K3 六轮尖峰轨迹与反向路径</h3><p>严格复用 Round 05 depth-32 Block 的三个正式格:尖峰在 step 500 后形成,六个位置 3/3 seed 可见,四种 reduction 12/12 格稳健。切断 key/softmax 源梯度没有降低尖峰;uniform value-backward 让 contrast 平均下降 70.2%,只判为全局 backward-rule sensitivity。完整 replay 的 16 组冻结字段 exact。</p></article>
|
<article><span>✓</span><h3>Kimi K3 六轮尖峰轨迹与反向路径</h3><p>严格复用 Round 05 depth-32 Block 的三个正式格:尖峰在 step 500 后形成,六个位置 3/3 seed 可见,四种 reduction 12/12 格稳健。切断 key/softmax 源梯度没有降低尖峰;uniform value-backward 让 contrast 平均下降 70.2%,只判为全局 backward-rule sensitivity。完整 replay 的 16 组冻结字段 exact。</p></article>
|
||||||
|
<article><span>✓</span><h3>Kimi K3 七轮局部路径双向审计</h3><p>冻结 14 个 same-forward mask,把 groups 6+7 的 16 个 depth mixers 同时放进 sufficiency 与 restoration 两个方向。充分性 6/6 过 50%,恢复性却只有 contrast 3/3 通过、peak 0/3 通过,因此正式状态为 one-sided evidence / localization not established。三个正式格、完整 replay、selector 与 forward identity 全部 exact。</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>
|
||||||
<article><span>✓</span><h3>Scaling Laws 深度专题</h3><p>九张账、29 个一手节点、DeepSeek/Kimi 双谱系与曲面—部署—复用—涌现四联实验。</p></article>
|
<article><span>✓</span><h3>Scaling Laws 深度专题</h3><p>九张账、29 个一手节点、DeepSeek/Kimi 双谱系与曲面—部署—复用—涌现四联实验。</p></article>
|
||||||
<article><span>✓</span><h3>数据工程深度专题</h3><p>十二张账、31 个一手节点、DeepSeek/Kimi 双谱系与流水线—去重—混合—改写四联实验。</p></article>
|
<article><span>✓</span><h3>数据工程深度专题</h3><p>十二张账、31 个一手节点、DeepSeek/Kimi 双谱系与流水线—去重—混合—改写四联实验。</p></article>
|
||||||
@@ -136,7 +137,7 @@ const workstreams = [
|
|||||||
</div>
|
</div>
|
||||||
<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>group 6 / 7 局部 mixer intervention matrix → 前向训练变体 → 等待 A_log 官方合同后进入真实 checkpoint forward</p><em>局部机制 + 工件边界</em></div>
|
<div><span>P0</span><strong>K3 七轮后续</strong><p>前向训练变体 → 非加性局部交互地图 → 等待 A_log 社区候选的官方裁决后进入真实 checkpoint forward</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>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>
|
||||||
@@ -218,7 +219,7 @@ const workstreams = [
|
|||||||
<div><time>2026-07-29</time><b>A_log 形状冲突保持未决</b><p>checkpoint 的 [128] 与 config / remote code / FlashKDA API 期待的 [96] 并列展示;不宣布权重损坏,也不把 channel-wise 假设写成真实 forward。</p></div>
|
<div><time>2026-07-29</time><b>A_log 形状冲突保持未决</b><p>checkpoint 的 [128] 与 config / remote code / FlashKDA API 期待的 [96] 并列展示;不宣布权重损坏,也不把 channel-wise 假设写成真实 forward。</p></div>
|
||||||
<div><time>2026-07-29</time><b>FlashKDA 编译与执行永久分两道闸门</b><p>容器产出 sm_120a wheel 只证明可编译;RTX 5090 的 6/6 official-reference exact suite 通过后,才把证据升级为本机执行 X。</p></div>
|
<div><time>2026-07-29</time><b>FlashKDA 编译与执行永久分两道闸门</b><p>容器产出 sm_120a wheel 只证明可编译;RTX 5090 的 6/6 official-reference exact suite 通过后,才把证据升级为本机执行 X。</p></div>
|
||||||
<div><time>2026-07-29</time><b>作者表与 RTX 5090 表永久分账</b><p>H20 / GB200 保持 O;本站只报告独立环境、协议、300 samples/mode 和延迟分布,未跑本机 FLA 就不写本机 speedup。</p></div>
|
<div><time>2026-07-29</time><b>作者表与 RTX 5090 表永久分账</b><p>H20 / GB200 保持 O;本站只报告独立环境、协议、300 samples/mode 和延迟分布,未跑本机 FLA 就不写本机 speedup。</p></div>
|
||||||
<div><time>2026-07-30</time><b>K3 权重冲突不靠裁剪“解决”</b><p>HF / FlashKDA / vLLM / SGLang 仍没有公开 A_log 128→96 转换;真实 K3 forward 继续标为未决。</p></div>
|
<div><time>2026-07-30</time><b>K3 权重冲突仍没有官方裁决</b><p>官方 main 仍保留 128↔96 不匹配;社区 #144 把 head 数改成 128,#150 验证尾部全零后按 96 裁入,两案都未合并。真实 K3 forward 继续标为未决。</p></div>
|
||||||
<div><time>2026-07-30</time><b>AttnRes 缩小实验先冻结、后运行</b><p>三结构共享公共主干、初始化、窗口与优化器;只按三个 paired seed 和预注册 −0.010 BPC 阈值给出本协议内方向判断。</p></div>
|
<div><time>2026-07-30</time><b>AttnRes 缩小实验先冻结、后运行</b><p>三结构共享公共主干、初始化、窗口与优化器;只按三个 paired seed 和预注册 −0.010 BPC 阈值给出本协议内方向判断。</p></div>
|
||||||
<div><time>2026-07-30</time><b>支持结果与梯度反结果同时进入主视区</b><p>Full / Block 的最终 BPC 同向改善;核心参数 gradient RMS CV 却高于 Baseline,不换指标掩盖。</p></div>
|
<div><time>2026-07-30</time><b>支持结果与梯度反结果同时进入主视区</b><p>Full / Block 的最终 BPC 同向改善;核心参数 gradient RMS CV 却高于 Baseline,不换指标掩盖。</p></div>
|
||||||
<div><time>2026-07-30</time><b>正式重放不把 wall time 纳入 exact</b><p>Block / seed-1 的模型、优化器、曲线、历史、诊断和环境八字段 exact;计时受调度影响,单独报告。</p></div>
|
<div><time>2026-07-30</time><b>正式重放不把 wall time 纳入 exact</b><p>Block / seed-1 的模型、优化器、曲线、历史、诊断和环境八字段 exact;计时受调度影响,单独报告。</p></div>
|
||||||
@@ -229,7 +230,7 @@ const workstreams = [
|
|||||||
<div><time>2026-07-30</time><b>尖峰是定向复查,不是盲发现</b><p>layer 21–25 来自 Round 05;Round 06 先固定目标集合,再检查训练时点、张量位置、reduction 与反向路径。</p></div>
|
<div><time>2026-07-30</time><b>尖峰是定向复查,不是盲发现</b><p>layer 21–25 来自 Round 05;Round 06 先固定目标集合,再检查训练时点、张量位置、reduction 与反向路径。</p></div>
|
||||||
<div><time>2026-07-30</time><b>最早可见不等于物理起源</b><p>pre-attention input 是六个采样点中最早可见位置;更早 mixer 与跨层回传已经作用,不能写成尖峰从这里注入。</p></div>
|
<div><time>2026-07-30</time><b>最早可见不等于物理起源</b><p>pre-attention input 是六个采样点中最早可见位置;更早 mixer 与跨层回传已经作用,不能写成尖峰从这里注入。</p></div>
|
||||||
<div><time>2026-07-30</time><b>同一前向只识别反向规则敏感性</b><p>三模式的 logits、loss、activations 与 mixer summaries exact;uniform value-backward 的 70.2% contrast 降幅不是训练变体或因果贡献百分比。</p></div>
|
<div><time>2026-07-30</time><b>同一前向只识别反向规则敏感性</b><p>三模式的 logits、loss、activations 与 mixer summaries exact;uniform value-backward 的 70.2% contrast 降幅不是训练变体或因果贡献百分比。</p></div>
|
||||||
<div><time>2026-07-30</time><b>相关性、全局干预与局部归因分三层</b><p>MLP latest weight 的局部 r≈.69 只提供候选;全局 value-route 干预支持路径敏感性,下一轮才做 group 6 / 7 局部归因矩阵。</p></div>
|
<div><time>2026-07-30</time><b>局部充分性不自动成为双向定位</b><p>groups 6+7 的 sufficiency 6/6 通过,但 restoration peak 0/3 通过;非线性交互让两个方向不同,正式结论保持 localization not established。</p></div>
|
||||||
<div><time>2026-07-29</time><b>32-token 对照改为同源 16→24</b><p>TNEWS 只有 105/10,000 条达到 32 tokens,强行统一会落入约 1% 极端长尾;24-token eligibility 仍保留 1,609 条中文候选。</p></div>
|
<div><time>2026-07-29</time><b>32-token 对照改为同源 16→24</b><p>TNEWS 只有 105/10,000 条达到 32 tokens,强行统一会落入约 1% 极端长尾;24-token eligibility 仍保留 1,609 条中文候选。</p></div>
|
||||||
<div><time>2026-07-29</time><b>长度敏感性必须成对重采样</b><p>16-token 输入严格是 24-token 输入前缀,2,000 次 bootstrap 共用 prompt indices;结果只描述固定 cohort 的长度敏感性。</p></div>
|
<div><time>2026-07-29</time><b>长度敏感性必须成对重采样</b><p>16-token 输入严格是 24-token 输入前缀,2,000 次 bootstrap 共用 prompt indices;结果只描述固定 cohort 的长度敏感性。</p></div>
|
||||||
<div><time>2026-07-29</time><b>三类 cohort 永久分身份</b><p>自然长度回答本批样本如何路由;matched-16 / 24 回答同一 prompt 多看 8 tokens 后如何变化,不把二者混成内容因果。</p></div>
|
<div><time>2026-07-29</time><b>三类 cohort 永久分身份</b><p>自然长度回答本批样本如何路由;matched-16 / 24 回答同一 prompt 多看 8 tokens 后如何变化,不把二者混成内容因果。</p></div>
|
||||||
|
|||||||
Reference in New Issue
Block a user