ローカルエージェントがシステムプロンプトを忘れた理由 — Ollama num_ctx無言truncationを実測
ローカルエージェントが長い会話で急に指示を無視しはじめた。プロンプトの先頭に秘密コードを隠し、長さを伸ばしながらrecallを測った。 num_ctxを超えるとOllamaはエラーも出さずプロンプトの前方を切り落とす。そして「既定値は4096」という通説も私のMacでは外れていた。
タグ
3件の記事
ローカルエージェントが長い会話で急に指示を無視しはじめた。プロンプトの先頭に秘密コードを隠し、長さを伸ばしながらrecallを測った。 num_ctxを超えるとOllamaはエラーも出さずプロンプトの前方を切り落とす。そして「既定値は4096」という通説も私のMacでは外れていた。
少し離れてからエージェントを呼び直すと、最初の応答だけやけに重い。Ollamaが応答ごとに返すload_durationをモデルサイズ別に 分解すると、2GBで1.5秒、9.6GBで最大9.7秒だった。しかも「コールド」には二種類あった。keep_alive一つでこの費用が どう分かれるかを実測してまとめた。
同じ9,700トークンのプロンプトが私のノートPCで最初のトークンまで55秒かかったのに、2回目の呼び出しは65ミリ秒だった。Ollamaのタイムスタンプを直接取り出してprefillとgenerationを分離測定し、prefixキャッシュがなぜ396倍速かったのか、エージェントのコンテキスト設計にどう活かすかをまとめた。