【要約】Ollama + Gemma4で右腕AIをローカル化:num_ctxは「大きければ良い」ではなかった [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
- ・3万文字に及ぶ膨大なシステムプロンプトの保持。
- ・Ollamaのデフォルト設定(num_ctx: 4k)では指示が切り捨てられる。
- ・指示が無視され、モデルが汎用的なAIとして振る舞う。
- ・VRAM 8GB環境では、コンテキスト長を下げても推論速度が改善しにくい。
// Approach
1.OllamaのAPIを用いて、システムプロンプトのトークン数を実測。
2.実測値に基づき、会話履歴の余裕を含めた
num_ctx を算出。3.
gemma4:e4b を採用し、num_ctx: 32768 を設定。4.
.env を活用し、Claude APIとOllamaを容易に切り替えられる設計を導入。// Result
- ・
num_ctx: 32768の設定により、キャラクター性が安定して維持される。 - ・VRAM 8GB環境では、モデルの大部分がCPUにオフロードされる。
- ・そのため、コンテキスト長を下げても劇的な速度改善は得られない。
- ・応答開始時間は15〜20秒程度まで短縮。
Senior Engineer Insight
> ローカルLLM運用において、コンテキスト長の設定は精度とリソースのトレードオフだ。本記事の「実測に基づき、プロンプト+履歴の余白を確保する」手法は極めて合理的である。ただし、VRAM不足でCPUオフロードが発生すると、速度改善は限定的となる。実戦投入時は、コンテキスト長だけでなく、モデルの量子化やGPU容量をセットで検討すべきだ。