dsh-fast-mode 1.5.26 → 1.5.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BENCHMARK.md +22 -3
- package/CHANGELOG.md +8 -0
- package/index.js +1 -1
- package/package.json +1 -1
package/BENCHMARK.md
CHANGED
|
@@ -1944,6 +1944,23 @@ python3 bench/suite-run.py --tasks debugfix,ledger,codeimpl --arms off,def15,bud
|
|
|
1944
1944
|
|
|
1945
1945
|
任何一条不过 ⇒ 这条线判为「时点不可救」,默认永久停在 4,不再追。
|
|
1946
1946
|
|
|
1947
|
+
### 补测(2026-10-29,`D2G2`):闸门没覆盖过的两族补上,方向相反
|
|
1948
|
+
|
|
1949
|
+
上面的 21 对只覆盖 `codeimpl`/`debugfix`/`migrate`。闸门的常数 2 在 `ledger`/`shellpipeline` 上一次都没验过,而这两族恰好是 `d2`(无闸门提前)最两极的地方(`ledger` 0.506×、`shellpipeline` 1.111×)。`D2G2` 用这两族各 3 对补齐(`def15` 为基线,12 行全部可用、丢弃 0、质量零倒退):
|
|
1950
|
+
|
|
1951
|
+
```
|
|
1952
|
+
python3 bench/suite-run.py --tasks ledger,shellpipeline --arms def15,d2g --pairs 3 --tag D2G2
|
|
1953
|
+
python3 bench/block_score.py D2G2 def15 d2g
|
|
1954
|
+
```
|
|
1955
|
+
|
|
1956
|
+
| 族 | 对 | 几何 | 逐对比值 | 备注 |
|
|
1957
|
+
|---|---|---|---|---|
|
|
1958
|
+
| `ledger` | 3 | **1.898×** | 2.68 / 0.95 / **2.70** | 输的两对步数 8→10、7→13,输出 12.1k→34.0k、15.9k→29.1k token |
|
|
1959
|
+
| `shellpipeline` | 3 | **0.597×** | 0.47 / 0.69 / 0.66 | 赢的三对步数 23→19、27→10、24→17 |
|
|
1960
|
+
| 合并(= 上节 21 对 + 6 对) | 27 | **0.816×** CI95 [0.650, 1.023] | 18/27 更快 | 中位 0.719×、步数 0.892×、输出 0.777×、符号 p=0.122 |
|
|
1961
|
+
|
|
1962
|
+
**判定:HOLD 不变,默认继续停在第 4 步。** 补测不是把 CI 收窄,而是把结论说得更准:同一个时点在两族上方向相反——`shellpipeline` 这种「一条命令跑完再读结果」的任务提前提醒很值(0.597×),`ledger` 这种要逐笔对账的任务提前提醒会让它重做并超写(输出 token 涨到 1.9×,单对 2.7×)。所以「第一步调了几次」不是这个时点该用的信号,**时点类旋钮到此收档**:默认 4 不再动,也不再为新时点补块。
|
|
1963
|
+
|
|
1947
1964
|
## 预注册:`disciplineRepeatAtSteps`(第二次压缩提醒)的通过判据(2026-10-28,先写判据再跑)
|
|
1948
1965
|
|
|
1949
1966
|
**为什么是它。** 合并块里唯一被证明有效的机制,是 `outputDiscipline: late` 在第 4 步注入的那一句「剩下的话只写下一步要用的」。它**每回合只发一次**。可是合池的逐格数据显示,回合越长,赢面越小:`debugfix` 1.032×、`perfrefactor` 1.009×、`csvpipe` 0.982×,而 `shellpipeline` 0.699×、`codeimpl` 0.710× —— 长的回合里,第一次提醒之后的那些步又把输出写长了。这不是新机制,同一个机制的第二枪:同一句话,在更晚的一步再说一次,每回合仍然最多一次。
|
|
@@ -2313,7 +2330,7 @@ python3 bench/ablate.py --ci 2000 --anchor def15 # 相对默认配置(
|
|
|
2313
2330
|
| 臂 = 默认 + 打开 | n | wall 几何比 | CI95 | 中位 | 步数 | 输出 | 更快 | p |
|
|
2314
2331
|
|---|---|---|---|---|---|---|---|---|
|
|
2315
2332
|
| `d2`:明细律提前到第 2 步 | 41 | **0.695** | [0.565, 0.863] | 0.700 | 0.960 | 0.723 | 27/41 | 0.060 |
|
|
2316
|
-
| `d2g`:同上 + 第 1 步 ≥2 次调用才提前 |
|
|
2333
|
+
| `d2g`:同上 + 第 1 步 ≥2 次调用才提前 | 27 | **0.816** | [0.650, 1.023] | 0.719 | 0.892 | 0.777 | 18/27 | 0.122 |
|
|
2317
2334
|
| `map15` +`workspaceMap` | 23 | 0.802 | [0.648, 0.999] | 0.790 | 1.048 | 0.824 | 13/23 | 0.678 |
|
|
2318
2335
|
| `open15` +`openBatch` | 53 | 0.882 | [0.740, 1.049] | 0.911 | 0.831 | 0.915 | 30/53 | 0.410 |
|
|
2319
2336
|
| `bv15` +`batchVerify` | 39 | 0.963 | [0.813, 1.144] | 0.968 | 0.935 | 0.961 | 20/39 | 1.000 |
|
|
@@ -2323,8 +2340,10 @@ python3 bench/ablate.py --ci 2000 --anchor def15 # 相对默认配置(
|
|
|
2323
2340
|
| `nodisc` 关掉明细律 | 19 | 1.101 | [0.808, 1.492] | 1.110 | 0.998 | 1.049 | 8/19 | 0.648 |
|
|
2324
2341
|
|
|
2325
2342
|
- **结论 1:默认配置已经在平台上。** 除时点类两臂外,每个可选开关的 CI 都跨 1,几何比落在 0.80–1.08;把 `openBatch`、`workspaceMap`、`batchVerify`、`preferPatch`、更宽并行、步数预算一起打开,一个百分点都拿不到。所以「多开几个开关会更快」是错的——它们的收益在默认里已经兑现,或者从来就不存在。
|
|
2326
|
-
- **结论 2:唯一在池化下站得住的杠杆是「同一句提醒的时点」。** `d2` 41 对 0.695×(CI 上限 0.863 仍 < 1),但它是任务相关的:分族 `debugfix` 0.619、`ledger` 0.506、`migrate` 0.569,`codeimpl` **1.073**、`shellpipeline` **1.111**。加条件闸门后 `d2g` 把 `codeimpl` 收到 0.889,同时把 `debugfix` 的 0.619 抬到 0.903 ⇒
|
|
2327
|
-
- **结论 3:这两臂仍是 HOLD,不改默认。** `d2` 在 `codeimpl` 上是负收益,`d2g` 的闸门常量为 2、只在 3 个家族验过;按预注册判据(`D2_IMPL` 1.073×、3/8 更快)默认保持 `disciplineAfterSteps: 4
|
|
2343
|
+
- **结论 2:唯一在池化下站得住的杠杆是「同一句提醒的时点」。** `d2` 41 对 0.695×(CI 上限 0.863 仍 < 1),但它是任务相关的:分族 `debugfix` 0.619、`ledger` 0.506、`migrate` 0.569,`codeimpl` **1.073**、`shellpipeline` **1.111**。加条件闸门后 `d2g` 把 `codeimpl` 收到 0.889,同时把 `debugfix` 的 0.619 抬到 0.903 ⇒ 池化一度是 0.756×(21 对)。把闸门从没测过的 `ledger`/`shellpipeline` 补上后(`D2G2`,6 对)这条也塌了:27 对 **0.816×**、CI95 **[0.650, 1.023]**、18/27 更快。
|
|
2344
|
+
- **结论 3:这两臂仍是 HOLD,不改默认。** `d2` 在 `codeimpl` 上是负收益,`d2g` 的闸门常量为 2、只在 3 个家族验过;按预注册判据(`D2_IMPL` 1.073×、3/8 更快)默认保持 `disciplineAfterSteps: 4`。这张表的作用是说明**没有别的开关可以在默认之上继续叠加**;`ledger`/`shellpipeline` 的补测(`D2G2`)已经做完,见下一节,闸门在这两族上方向相反,时点类两臂到此可以收档。
|
|
2345
|
+
|
|
2346
|
+
**顺带把「只挑了 12 个干净块」这个质疑也答了。** `ablate.py` 不挑块(59 个全进),默认臂对 `off` 的池化读数是 **183 对、几何 0.816×、CI95 [0.755, 0.881]、122/183 更快、符号 p < 0.0001**——与 `pool.py` 那 12 个干净块的 138 对 0.8234×(CI [0.744, 0.918])落在同一点上,置信区间还更窄。所以主结论不是选块选出来的。
|
|
2328
2347
|
|
|
2329
2348
|
**这张表的两个诚实边界**:不同臂覆盖的任务组合不同(跑一遍命令就能看到 `tasks` 列,`d2` 含 `codeimpl:8`、`map15` 只有 `codebase/debugfix/perfrefactor`),所以行与行之间不能直接排大小;以及每个块只采样一次,`n < 20` 的行只算方向提示。
|
|
2330
2349
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.5.27(把闸门最后两个没测过的任务族补上:方向相反,时点类旋钮收档)
|
|
4
|
+
|
|
5
|
+
- **补测:`bench/suite-run.py --tasks ledger,shellpipeline --arms def15,d2g --pairs 3 --tag D2G2`**(12 次运行、全部可用、丢弃 0、质量零倒退)。`d2g` 的闸门常量(第 1 步 ≥2 次调用才提前)此前只在 `codeimpl`/`debugfix`/`migrate` 三族验过,`ledger`/`shellpipeline` 一个数都没有。
|
|
6
|
+
- **结果方向相反,池化仍不支持提前**:`shellpipeline` 3 对几何 **0.597×**(0.47 / 0.69 / 0.66,步数 23→19、27→10、24→17),`ledger` 3 对几何 **1.898×**(2.68 / 0.95 / 2.70,输的两对输出 token 12.1k→34.0k、15.9k→29.1k)。并进前 21 对后:27 对 **0.816×**、CI95 **[0.650, 1.023]**、18/27 更快、中位 0.719×、符号 p = 0.122。
|
|
7
|
+
- **判定不变:HOLD,默认继续停在第 4 步。** 结论也更准了:提前提醒的价值取决于任务「一条命令跑完再读」还是「逐笔对账」,而不取决于第一步调了几次;时点类旋钮到此收档,不再为新时点补块。
|
|
8
|
+
- **`BENCHMARK.md` 同步**:`d2g` 的消融行 21 → 27 对、0.756 → 0.816、CI 改为 [0.650, 1.023];新增「补测(`D2G2`)」一节记账两条反向的逐对比值。
|
|
9
|
+
- **没有行为变更**:只跑块、改文档;默认值、提醒时机、提示词与 1.5.26 完全一致。
|
|
10
|
+
|
|
3
11
|
## 1.5.26(把「多开几个开关会不会更快」变成一张可复算的表)
|
|
4
12
|
|
|
5
13
|
- **新增 `bench/ablate.py`**:把 59 个块的全部臂按「同块、同任务、同 pair」对锚点臂池化,输出每个开关相对默认配置(`--anchor def15`)或相对 `off` 的几何比、95 % bootstrap CI、中位、步数/输出比、更快对数与符号检验。这是第一次用一张表回答「多个开关一起开的效果」。
|
package/index.js
CHANGED
|
@@ -97,7 +97,7 @@ const TAG = '[fast-mode]'
|
|
|
97
97
|
* Shipped identity of this build. Traced into the debug log so a stale install is
|
|
98
98
|
* visible at a glance, and pinned by a test against `package.json`.
|
|
99
99
|
*/
|
|
100
|
-
export const VERSION = '1.5.
|
|
100
|
+
export const VERSION = '1.5.27'
|
|
101
101
|
const GLOBAL_AGENT = '__global__'
|
|
102
102
|
|
|
103
103
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-fast-mode",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.27",
|
|
4
4
|
"description": "DeepSeek Harness fast mode: same thinking effort, fewer round trips. An adaptive parallel tool fan-out, output discipline that never trims the answer, and a cancellable stall guard. Never changes reasoning effort, the model, or the request body. Provider-agnostic, one dependency (@deepseek-ai/schemastery).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|