From fe98e842591de458728d57d403189822e4ae0531 Mon Sep 17 00:00:00 2001 From: cbb <2625274797@qq.com> Date: Sun, 18 Oct 2026 05:52:53 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E7=AC=AC=E5=85=AB=E8=8A=82=20R4=20?= =?UTF-8?q?=E5=A4=8D=E8=B7=91=EF=BC=88feat=5Fdyn=20=E6=96=B0=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=20+=20=E5=85=A5=E5=BA=93=20ort=EF=BC=89=E2=80=94?= =?UTF-8?q?=E2=80=94=E9=83=A8=E7=BD=B2=E5=8F=A3=E5=BE=84=20P99=2012.67=20?= =?UTF-8?q?=E9=80=9A=E8=BF=87=EF=BC=9BWebGPU=20=E9=A6=96=E6=AC=A1=E5=AE=9E?= =?UTF-8?q?=E6=B5=8B=2027.09=EF=BC=88=E6=9C=89=E7=95=8C=E9=9D=A2=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=EF=BC=8Cadapter=20nvidia=20ampere=EF=BC=8C=E6=AF=94?= =?UTF-8?q?=20wasm=20=E6=85=A2=EF=BC=89=EF=BC=9Bviewer=5Fref=20=E9=9A=8F?= =?UTF-8?q?=E6=9C=BA=E6=A8=A1=E5=9E=8B=E6=95=B4=E5=91=A8=E6=9C=9F=20planP9?= =?UTF-8?q?9=20131=20/=20starve=2032.7%=20/=20lookaheadP99=20170=20/=20cer?= =?UTF-8?q?tFailWhy=20time=20948=EF=BC=8870%=EF=BC=89/=20tickGapMax=20736?= =?UTF-8?q?=EF=BC=8C=E4=B8=89=E6=9D=A1=E5=88=A4=E8=AF=BB=E7=95=99=E7=BB=99?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ML运行手册审查.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/docs/ML运行手册审查.md b/docs/ML运行手册审查.md index 633cc19..2fdcf3d 100644 --- a/docs/ML运行手册审查.md +++ b/docs/ML运行手册审查.md @@ -246,3 +246,40 @@ V1 通过后再跑,分三段,每段跑完把回传文件发我: - **APG 的 `steps` 与机时**:`batch` 从 128 降到 48,每步看到的任务少 2.7 倍。`steps=3000` 要不要加、加多少是收敛判断,我只有显存实测、没有这个依据。`R2/R4/N-6` 各处按整卡写的显存估算文案也要按 19–20 GB 重写。 - `R4 复跑`:`feat_dyn` 要重导模型,探针现在会**弹有界面窗口**跑 `viewer_ref`(30 题×≤10 s)与 WebGPU——本机跑之前请知悉会有窗口,别动它。 - B-2 的几何查询搬 Worker(若本机 R9 仍不过);R9 用真模型才有意义。 + +--- + +## 八、R4 复跑(2026-10-18,`feat_dyn` 新模型 + 本地 ort + WebGPU) + +`bash ml/pipeline.sh r4` 端到端 **rc=0**。这次先把 `webapp/vendor/ort/`(onnxruntime-web 1.20.1,33 MB)**入库**(`.gitignore` 同步移除),不再依赖 npm/CDN——上一轮 `vendor_ort.sh` 的 `npm pack` 失败后探针静默退回 CDN,而 jsDelivr 本机完全不通,四种配置全变成「加载 ort 失败」,一条数字都没有。**这是个真问题**:下载失败时流程不该"看起来跑完了"。 + +### 8.1 R4 判定口径:通过 + +| 配置 | P50 | P95 | P99 | 备注 | +|---|---|---|---|---| +| **wasm·16 线程·proxy(部署口径)** | 7.06 | 8.88 | **12.67** | 本地 ort,`enc_once` + `feat_dyn` 新模型 | +| wasm·4 线程·proxy | 10.25 | 12.48 | 13.22 | | +| wasm·16 线程·无 proxy | 6.83 | 8.28 | 9.53 | | +| **WebGPU** | 18.26 | 22.76 | **27.09** | 首次拿到真数:`hasGpu:true`、adapter `nvidia ampere`、有界面窗口;比 wasm 慢,不用 | + +结论:纯推理 P99 12.67 < 15,**R4 通过**;与修复前(10.22–11.25)同量级,`feat_dyn` 没让主推理变慢(主推理仍只送 1 行)。 + +### 8.2 `viewer_ref`:随机模型的整周期数字(只作参考,但暴露了三件事) + +30 道贴柱题、随机权重、真查看器(有界面窗口)、16 线程 + proxy: + +| 指标 | 值 | 说明 | +|---|---|---| +| `planP50` / `planP99` | 68.5 / **131.2 ms** | R9 线是 45;随机策略几乎每次都认证多条候选 | +| `starve_rate` | **32.7%** | 执行时钟到点队列为空 = 实际丢步 | +| `inferP99` | 58.3 ms | 纯推理探针只有 12.7 → 差额是主线程排队 | +| `lookaheadP99` | **170 ms** | 前瞻(8 行特征逐行编码 + 8 次 gapMatrix) | +| `certFailWhy` | **time 948** / box 346 / cert 19 | 3902 次规划里 70% 的失败是"墙钟到点判不过" | +| `tickGapMax` | **736 ms** | 主线程仍会被一次性占住(安全层在主线程) | + +**三条判读(给实现方,不是结论)**: +1. 前瞻是现在最贵的一环(170 ms P99)。虽然已改成只在冷启动做,但 30 题就是 30 次冷启动,每次都落在 P99 上——R9 的 `planP99` 会被冷启动那几次主导。建议 `r4_probe --viewer` 同时报 `planP99`(含冷启动)与 `planP99Warm`(剔除每题第一次规划),否则这条线测的是"题数"而不是稳态性能。 +2. **`time` 截止占失败原因 70%**:45 ms 预算在随机模型上基本等于"到点判不过 → 刹停"(1019 次刹停 / 3902 次规划)。R9 若"通过",必须同时报 `certFailWhy.time` 占比与 `brakeRate`,否则可能是靠拒绝候选换来的。 +3. `tickGapMax 736 ms` 说明安全层(几何查询)仍在主线程;B-2 的"搬进 Worker"没有做,这条是真模型跑之前要盯的。 + +这些全是随机权重的数,R9 判据本来就规定用训练好的模型测,所以**不据此判 R9 过不过**;`r4.json` 里 `viewer_ref` 已标注"仅参考"。