たねやつの木

Photographs, Keyboards and Programming

Ollamaでモデルのコンテキストサイズを拡張する方法

こんにちは、たねやつです。

OllamaをCodex CLIのようなコーディングアシスタントツールと連携させていると、「簡単なファイル作成もしてくれない…」のように、モデルがうまく機能しない状況に遭遇することがあります。多くの場合、その原因はモデルが一度に処理できる情報量、つまり「コンテキストサイズ」の不足にあります。

今回は、Ollamaで既存モデルのコンテキストサイズを拡張し、長文のプロンプトを扱うツールでも快適に動作させるための方法を紹介します。

この記事でできること

  • Ollamaでモデルのコンテキストサイズ(num_ctx)を変更する方法を学べます。
  • 設定を変更したモデルを、新しい名前を付けて保存し、再利用できるようになります。

なぜコンテキストサイズの変更が必要か?

Codex CLIを始めとする多くの開発支援ツールは、その動作の前提として、非常に長い「システムプロンプト」をAIモデルに送信します。このシステムプロンプトには、ツールの使い方や制約、望ましい応答形式などが詳細に記述されています。

しかし、Ollamaが使用するモデルのデフォルトのコンテキストサイズは、多くの場合2048や4096トークンに設定されており、ツールが送信する長大なシステムプロンプトをすべて受け取ることができません。

プロンプトが途中で切れてしまうと、モデルは指示を正しく理解できず、結果として簡単なタスクすら実行できなくなってしまうのです。

この問題を解決するために、モデルが扱えるコンテキストサイズを、使用するツールの要件やご自身のPCスペック(特にVRAM)に合わせて拡張する必要があります。

コンテキストサイズを変更する手順

Ollamaでは、ollama runコマンドの対話モードを利用して、比較的簡単にモデルのパラメータを調整できます。

ステップ1: モデルの実行

まず、ベースとなるモデルを指定してollama runを実行します。

# 例として`gpt-oss-20b`モデルを使用
ollama run gpt-oss-20b

ステップ2: パラメータの変更

コマンドを実行すると、プロンプト(>>>)が表示されます。ここで、/setコマンドを使い、コンテキストサイズを変更します。

# プロンプトに続けて入力
>>> /set parameter num_ctx 64000

num_ctxがコンテキストサイズを指定するパラメータです。設定する値は、お使いのグラフィックボードのVRAM容量に応じて調整してください。コーディングツールでは、最低でも32000以上が推奨されることが多いようです。

ステップ3: 新しいモデルとして保存

パラメータの変更が成功したら、/saveコマンドで設定を反映した新しいモデルを作成します。これにより、次回から簡単にこの設定を呼び出せるようになります。

# 新しい名前を付けて保存
>>> /save gpt-oss-20b-64000

これで、gpt-oss-20b-64000という名前の新しいモデルが作成されました。

ツールの設定変更

最後に、Codex CLIなど、利用したいツール側の設定を開き、使用するモデル名を先ほど保存した新しいモデル名(この例ではgpt-oss-20b-64000)に変更します。

これで、ツールは拡張されたコンテキストサイズを持つモデルを利用して動作するようになり、これまで処理できなかった長いプロンプトにも対応できるはずです。

最後に

今回は、Ollamaでモデルのコンテキストサイズを拡張する簡単な方法を紹介しました。

ローカルLLMを単なるチャットボットとしてだけでなく、高機能な開発ツールと連携させる上で、この設定は非常に重要になります。もしお使いのツールでAIの応答が思わしくない場合は、ぜひコンテキストサイズの見直しを試してみてください。

参考・引用