diff --git a/docs/adr/adr-040-local-llm-context-size.md b/docs/adr/adr-040-local-llm-context-size.md index 5279353c..5f7e8c84 100644 --- a/docs/adr/adr-040-local-llm-context-size.md +++ b/docs/adr/adr-040-local-llm-context-size.md @@ -50,17 +50,17 @@ ephemeral artifact (旧 analysis.md) には permanent data を残さない原則 **実測値 vs 線形 derivation の使い分け** (派生プロジェクトでの porting 時の判断指針): - **実測値 (600s) を正規採択**: Phase C cargo test で 269s 観測 → 2x safety margin で 600s。本 ADR が定義する canonical 値。 -- **線形 derivation (= 720s) は保守上限見積もり**: per-token 不変仮定 (`22 ms/token × 32768 = 721s`) は KV cache locality を無視するため過大評価。新規 model / 未測定環境での fallback ceiling として使う。 -- sublinear 性の根拠は KV cache locality 効果 (推定) で model-specific。別 model (llama2:13b 等) では再 calibration 必須。 +- **線形 derivation (= 720s) は保守上限見積もり**: per-token 不変を仮定した線形スケール (`180s × (32768 / 8192) = 180s × 4 = 720s`) は KV cache locality を無視するため過大評価。新規 model / 未測定環境での fallback ceiling として使う (per-token 表示 `22 ms/token × 32768 ≈ 721s` は丸め由来の誤差、canonical な係数は線形式の 720s)。 +- **canonical 600s が線形 ceiling 720s を下回る差 (= 120s, 17%) が sublinear 性の定量表現**: 大規模 context ほど KV cache の locality により per-token 推論コストが下がるため (`≈22 ms/token → ≈18.3 ms/token`、同じく 17% 改善で reference table の 600s と整合)。この gap は model-specific で、別 model (llama2:13b 等) では sublinear 係数が変わるため再 calibration 必須。 **reference 値** (派生プロジェクトでの derivation 用): | num_ctx | 採用 step_timeout | 根拠 | |---|---|---| | 8192 | 180s | Phase b' 実測 (12 件 mistral invoke、cargo test --ignored 完走) | -| 32768 | 600s | Phase C 実測 (269s 超過観測 → 2x margin で確定) | +| 32768 | 600s | Phase C 実測 (269s 超過観測 → 2x margin で確定、線形 ceiling 720s を sublinear 効果で 17% 下回る) | -派生プロジェクトでは上記 reference 値を最初の見積もりに使い、実測 cargo test 経過時間の **2x margin** で補正する (例: 観測 250s → 500s に設定)。 +reference table の **600s (canonical / 実測由来)** と上記係数 section の **720s (線形 ceiling / `180s × 4`)** の差 120s は KV cache locality による sublinear 効果分。未測定環境では安全側の 720s を初期 ceiling に置き、実測 cargo test が取れ次第 600s 系の sublinear 補正に寄せる。派生プロジェクトでは上記 reference 値を最初の見積もりに使い、実測 cargo test 経過時間の **2x margin** で補正する (例: 観測 250s → 500s に設定)。 ### Context 選定の判断 flow diff --git a/docs/claude-code-web-tasks.md b/docs/claude-code-web-tasks.md index 9a997b39..b5b079e1 100644 --- a/docs/claude-code-web-tasks.md +++ b/docs/claude-code-web-tasks.md @@ -16,7 +16,6 @@ | 順位 | Tier | 内容 | 編集ファイル | 工数 | |---|---|---|---|---| -| 116 | T3 | ADR-040 `step_timeout` 説明に sublinear / KV cache locality clarification を 2-3 行追記し、reference table 600s と formula 720s の数値整合化 (PR #145 T3-#1) | [docs/adr/adr-040-local-llm-context-size.md](adr/adr-040-local-llm-context-size.md) | XS | | 120 | T3 | `takt-workflow-persona-without-model` rule コメント拡張(field 拡張手順 4-5 行)+ ADR-007 case study 追記(enumeration-based 正規表現層、Rust regex lookahead 非対応の pragmatic 対処)(PR #150 T1-#1、実体 Tier 3) | [.claude/custom-lint-rules.toml](../.claude/custom-lint-rules.toml) ルール⑨ + [docs/adr/adr-007-custom-linter-layer-boundary.md](adr/adr-007-custom-linter-layer-boundary.md) | XS | | 127 | T3 | extensions 拡張時の test 追加 pattern を Rust ソース内コメントで明文化 (PR #151 T3-#2、順位 124 と同 PR 推奨) | Rust ソース内コメント(test location を正確に参照) | XS | | 134 | T3 | ADR-035 に docs-only PR 評価の適用外基準リスト追加(mutation / error handling / DRY / YAGNI / function length / test coverage / magic-number 等)(PR #156 T3 #2) | [docs/adr/adr-035-doc-evaluation-policy.md](adr/adr-035-doc-evaluation-policy.md) | S |