Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
8d1cb4a53b
commit
12eb7018ec
@@ -1,43 +1,113 @@
|
||||
# 答题步推理强度(2026-10-15)
|
||||
|
||||
没有模型钥匙。下面只是本机拦截到的请求体,不是供应商的接受度,也不是耗时和质量。A/B 未跑。
|
||||
|
||||
命令:在 `frontend` 目录执行 `node node_modules/tsx/dist/cli.mjs tests/answer-effort-probe.mts --dry-run`。假请求不离开这台机器。模型对象与产品相同:`providerId: deepseek`,`modelId: deepseek-flash`,带 `url` 和假的 `apiKey`。2026-10-15 起脚本在 `frontend/tests/`,不再放在 `frontend/scripts/research/`。
|
||||
|
||||
## 请求体里实际有什么
|
||||
|
||||
| 形状 | thinking | reasoning_effort | max_tokens |
|
||||
| --- | --- | --- | --- |
|
||||
| 今天的答题设置,第 0 步和第 1 步 | `{ type: enabled }` | 无 | 24576 |
|
||||
| 旧的低强度设置(没有产品调用方) | `{ type: enabled, reasoningEffort: low }` | 无 | 10240 |
|
||||
| 新开关 `low` / `medium` / `high` / `max`(只在答题步) | `{ type: enabled }` | 与开关相同 | 24576 |
|
||||
| 续写 | `{ type: disabled }` | 无 | 16384 |
|
||||
|
||||
旧的低强度写在 `thinking` 里面,请求体没有 `reasoning_effort`。这证实了任务书 §2.3。记为 BUG-1354,状态 investigating。原先写成 BUG-1351,该号已被数据层占用。线上不用这处设置。
|
||||
|
||||
新开关写在供应商选项的最外层。兼容通道把它写成 `reasoning_effort`。开关不设时,两步请求体与改前逐字节一致,样本在 `frontend/tests/fixtures/answer-effort-switch-20261013.json`。
|
||||
|
||||
## 供应商接受度
|
||||
|
||||
未跑。没有 `DS_KEY` / `BACKTEST_MODEL_KEY`。`low`、`medium`、`high`、`max` 哪几档能用,要等验收时用临时钥匙跑探针的后半段。
|
||||
|
||||
## 固定 10 题
|
||||
|
||||
脚本已能按 `--cases` 跑下面这 10 题,并能按 `--efforts unset,low,medium` 把同一题的几档挨着跑。多档同时跑时并发降为 1,因为强度读的是进程里的环境变量,并行会串档。本机没有钥匙,这 10 题没有跑。
|
||||
|
||||
| # | 盘 | 领域 |
|
||||
| --- | --- | --- |
|
||||
| 1 | steve_jobs | career |
|
||||
| 2 | barack_obama | parents |
|
||||
| 3 | elizabeth_taylor | marriage |
|
||||
| 4 | marilyn_monroe | parents |
|
||||
| 5 | judy_garland | health |
|
||||
| 6 | edith_piaf | marriage |
|
||||
| 7 | frida_kahlo | health |
|
||||
| 8 | george_w_bush | career |
|
||||
| 9 | zinedine_zidane | career |
|
||||
| 10 | marilyn_monroe | marriage |
|
||||
|
||||
## 耗时与质量
|
||||
|
||||
没有数。空答、截断、rubric、人工四项都没做。默认值维持不设。
|
||||
# 答题步推理强度(2026-10-15;2026-10-28 补跑 A/B,issue #134)
|
||||
|
||||
2026-10-15 那次没有模型钥匙,只拦截了请求体。2026-10-28 产品提供了临时钥匙(只存在本机 0600 文件里,没有进仓库、日志或 issue),按任务书 T0 第 2 步、T2、T3 跑完了,结果见文末「2026-10-28 实测」。
|
||||
|
||||
命令:在 `frontend` 目录执行 `node node_modules/tsx/dist/cli.mjs tests/answer-effort-probe.mts --dry-run`。假请求不离开这台机器。模型对象与产品相同:`providerId: deepseek`,`modelId: deepseek-flash`,带 `url` 和假的 `apiKey`。2026-10-15 起脚本在 `frontend/tests/`,不再放在 `frontend/scripts/research/`。
|
||||
|
||||
## 请求体里实际有什么
|
||||
|
||||
| 形状 | thinking | reasoning_effort | max_tokens |
|
||||
| --- | --- | --- | --- |
|
||||
| 今天的答题设置,第 0 步和第 1 步 | `{ type: enabled }` | 无 | 24576 |
|
||||
| 旧的低强度设置(没有产品调用方) | `{ type: enabled, reasoningEffort: low }` | 无 | 10240 |
|
||||
| 新开关 `low` / `medium` / `high` / `max`(只在答题步) | `{ type: enabled }` | 与开关相同 | 24576 |
|
||||
| 续写 | `{ type: disabled }` | 无 | 16384 |
|
||||
|
||||
旧的低强度写在 `thinking` 里面,请求体没有 `reasoning_effort`。这证实了任务书 §2.3。记为 BUG-1354,状态 investigating。原先写成 BUG-1351,该号已被数据层占用。线上不用这处设置。
|
||||
|
||||
新开关写在供应商选项的最外层。兼容通道把它写成 `reasoning_effort`。开关不设时,两步请求体与改前逐字节一致,样本在 `frontend/tests/fixtures/answer-effort-switch-20261013.json`。
|
||||
|
||||
## 供应商接受度
|
||||
|
||||
未跑。没有 `DS_KEY` / `BACKTEST_MODEL_KEY`。`low`、`medium`、`high`、`max` 哪几档能用,要等验收时用临时钥匙跑探针的后半段。
|
||||
|
||||
## 固定 10 题
|
||||
|
||||
脚本已能按 `--cases` 跑下面这 10 题,并能按 `--efforts unset,low,medium` 把同一题的几档挨着跑。多档同时跑时并发降为 1,因为强度读的是进程里的环境变量,并行会串档。本机没有钥匙,这 10 题没有跑。
|
||||
|
||||
| # | 盘 | 领域 |
|
||||
| --- | --- | --- |
|
||||
| 1 | steve_jobs | career |
|
||||
| 2 | barack_obama | parents |
|
||||
| 3 | elizabeth_taylor | marriage |
|
||||
| 4 | marilyn_monroe | parents |
|
||||
| 5 | judy_garland | health |
|
||||
| 6 | edith_piaf | marriage |
|
||||
| 7 | frida_kahlo | health |
|
||||
| 8 | george_w_bush | career |
|
||||
| 9 | zinedine_zidane | career |
|
||||
| 10 | marilyn_monroe | marriage |
|
||||
|
||||
## 耗时与质量
|
||||
|
||||
2026-10-15:没有数。2026-10-28 的结果见下一节。
|
||||
|
||||
## 2026-10-28 实测(issue #134)
|
||||
|
||||
代码基线:staging `16fcb8c2`(本单不改代码)。脚本:供应商接受度用本机一次性脚本直连 `https://api.deepseek.com/chat/completions`,请求形状与产品相同(`thinking: enabled`,只改 `reasoning_effort`);A/B 用仓库里的 `frontend/scripts/research/consult-biography-backtest.mts`(产品的真实提示词、工具、答题设置与流式处理,引擎结果换成公开名人 golden 盘)。回答原文只留在本机 `scratch/`(不入库)。
|
||||
|
||||
### T0 · 供应商接受度
|
||||
|
||||
- 两个模型 `deepseek-flash`、`deepseek-v4-pro`,`reasoning_effort` 不设 / `low` / `medium` / `high` / `max` 各 3 次,**全部 HTTP 200**,没有一档被拒。
|
||||
- 短问题(推理只有一两百 token)看不出差别。换成一道要多步推理的长问题(`deepseek-flash`,每档 3 次,推理 token 中位数 / 用时中位数):
|
||||
|
||||
| 档 | 推理 token | 用时 |
|
||||
| --- | ---: | ---: |
|
||||
| 不设 | 5,979 | 45.9 s |
|
||||
| `low` | 2,820(−53%) | 25.9 s |
|
||||
| `medium` | 6,199(+4%) | 42.8 s |
|
||||
| `high` | 6,450(+8%) | 48.4 s |
|
||||
|
||||
- 判定(任务书 T0 规则):`medium`、`high` 与不设的差在 10% 以内,视为**被忽略**,A/B 去掉;只跑「不设」对「`low`」。
|
||||
|
||||
### T2 / T3 · 10 题 × 3 次(`deepseek-flash`)
|
||||
|
||||
两组各一个进程同时跑(并发 3),供应商时段波动两组一样。
|
||||
|
||||
| 指标(30 份回答) | A 不设 | B1 `low` |
|
||||
| --- | ---: | ---: |
|
||||
| 答题步推理 token 中位数 | 5,749 | 3,159(−45%) |
|
||||
| 端到端用时中位数 | 34.1 s | 21.6 s(−37%) |
|
||||
| 端到端用时平均 | 34.3 s | 23.2 s |
|
||||
| 失败 / 空答 / 截断 / 非正常结束 | 0 / 0 / 0 / 0 | 0 / 0 / 0 / 0 |
|
||||
| rubric `must_not` 原文命中 | 0 | 0 |
|
||||
| 确定性禁句命中 | 0 | 1(`retrograde_repeat`:「逆行,所以这条路走得慢一些」) |
|
||||
| 正文可见字数中位数 | 11,627 | 11,523 |
|
||||
| 第 0 步(选工具)用时中位数 | 0.70 s | 0.69 s |
|
||||
| 第 0 步选到与问题一致的领域 | 30 / 30 | 30 / 30 |
|
||||
|
||||
整场推理 token 合计 172,899 → 105,149。
|
||||
|
||||
**人工读稿**:10 题的第 1 次两组并排全读(20 份);第 2、3 次只有上面的自动检查,没有逐份读,这里如实写明。
|
||||
|
||||
| 人工四项(10 题 × 第 1 次) | A | B1 |
|
||||
| --- | ---: | ---: |
|
||||
| 缺事实(卡里有、与问题直接相关却没说) | 0 | 0 |
|
||||
| 跑题 | 0 | 0 |
|
||||
| 重复 | 0 | 0 |
|
||||
| 空答 | 0 | 0 |
|
||||
|
||||
短评:两组结构一样(结论 → 宫位与宫主 → 分盘 → 大运时间 → 一句追问),引用的宫位、宫主、九分盘和大运区间基本相同;B1 有几题多写了一层小运或分盘细节,没有因为想得少而漏掉要点。B1 另有一处措辞小毛病(一份回答里多了个「这」字)。
|
||||
|
||||
### `deepseek-v4-pro` 抽样(第 1、4、6 题 × 3 次)
|
||||
|
||||
| 指标(9 份) | A 不设 | B1 `low` |
|
||||
| --- | ---: | ---: |
|
||||
| 推理 token 中位数 | 6,569 | 3,361(−49%) |
|
||||
| 端到端用时中位数 | 80.1 s | 46.7 s(−42%) |
|
||||
| 失败 / 空答 / 截断 | 0 / 0 / 0 | 0 / 0 / 0 |
|
||||
| `must_not` / 禁句 | 0 / 0 | 0 / 0 |
|
||||
|
||||
### 判定(任务书 T3 五条门槛)
|
||||
|
||||
1. 推理 token 中位数降 ≥ 30%、端到端降 ≥ 20%:flash −45% / −37%,v4-pro −49% / −42% → **满足**。
|
||||
2. 空答、截断为 0:两组都是 0 → **满足**。
|
||||
3. `must_not` 命中 ≤ A:0 = 0 → **满足**。(确定性禁句 B1 多 1 处,记在这里。)
|
||||
4. 人工四项 ≤ A:读过的 10 题第 1 次都是 0 = 0 → **在读过的范围内满足**;第 2、3 次未逐份读。
|
||||
5. v4-pro 抽样不出现 A 没有的空答或截断:**满足**。
|
||||
|
||||
**提议**:答题步默认 `low`,即部署配置设 `CONSULT_ANSWER_REASONING_EFFORT=low`。按任务书,默认值由产品负责人拍板后另一个小提交写进部署配置;本单不改代码。
|
||||
|
||||
### 顺带:第 0 步要不要关思考(issue #135 的数据)
|
||||
|
||||
同一批 60 次运行里,第 0 步(只决定调哪个工具)用时中位数 0.70 s(最长 1.42 s),推理 token 中位数约 30(最多 159),60 次全部选对了领域。所以第 0 步关思考最多省约半秒,而且 DeepSeek 思考模式下历史里的工具调用必须带回 `reasoning_content`(本机实测缺了会 HTTP 400,BUG-282 / 937 一类风险)。体检估的「首字前多 3~5 秒」主要不在这一步。
|
||||
|
||||
Reference in New Issue
Block a user