2.8 KiB
LLM 生成設定の manifest 露出整理
背景
llm-worker::RequestConfig には LLM 生成に関する共通設定として max_tokens / temperature / top_p / top_k / stop_sequences / reasoning がある。一方、Pod manifest の [worker] まで露出しているのは現状 max_tokens と temperature のみで、top_p / top_k / stop_sequences は manifest から指定できない。
reasoning は tickets/model-reasoning-control.md で内部抽象と manifest 経路を整理するため、本チケットではそれ以外の既存 RequestConfig 項目を manifest から指定できるようにする。
要件
[worker] への生成設定追加
Pod manifest の [worker] セクションで、既存 RequestConfig に存在する以下の項目を指定できるようにする。
[worker]
top_p = 0.9
top_k = 40
stop_sequences = ["\n\n", "</stop>"]
top_p:Option<f32>として扱い、指定時のみ request に渡すtop_k:Option<u32>として扱い、指定時のみ request に渡すstop_sequences:Vec<String>として扱い、未指定時は空配列と同等にする
Provider / scheme によって効かない値がある場合でも、既存の scheme 投影に任せる。値の厳密な provider 別検証は本チケットでは行わない。
manifest cascade / restore 経路
WorkerManifestConfig / WorkerManifest に上記フィールドを追加し、manifest cascade の merge 後に pod::apply_worker_manifest() から RequestConfig へ渡す。
stop_sequences は cascade 時に上位 manifest が指定した場合の意味を明確にする。初期方針は、max_tokens や temperature と同様に「上位指定があれば置き換え」とし、配列の追記マージは行わない。
既存挙動の保持
未指定時は現在と同じ request body になること。特に、既存 manifest で top_p / top_k / stop_sequences を省略している場合、wire request に新しい値が出ない。
範囲外
reasoning/ thinking 制御の manifest 露出。これはtickets/model-reasoning-control.mdで扱うpresence_penalty/frequency_penalty/seed/response_format/tool_choice/parallel_tool_calls等、まだRequestConfigに存在しない新規生成パラメータの追加- provider ごとの値域検証や推奨値テーブル
- UI での設定編集画面
完了条件
[worker].top_p/[worker].top_k/[worker].stop_sequencesを manifest TOML で指定できる- cascade merge 後の
WorkerManifestがこれらの値を保持する pod::apply_worker_manifest()がRequestConfig.top_p/top_k/stop_sequencesへ値を渡す- 未指定時の既存挙動が変わらない
- manifest parse / merge / apply のテストが追加または更新されている