24. Ollama Modelfileによるモデルの挙動カスタマイズ入門

モデルの「振る舞い」を制御したいというニーズ

ダウンロードしたモデルは、あくまで「知識の塊」に過ぎません。しかし、業務で利用する際は、「この役割を演じ、この形式で出力する」という明確な振る舞いを期待します。この「振る舞いの定義」をモデルに組み込むのが、Modelfileの役割です。

Modelfileとは何か?

Modelfileは、Ollamaがモデルの振る舞いを定義するための設定ファイルです。これを通じて、ベースモデル(例:llama3)を継承しつつ、システムプロンプトの追加、特定のシステム指示の埋め込み、あるいは特定のパラメータのデフォルト値を設定することが可能になります。

主要なディレクティブと役割

Modelfileにはいくつかの重要なディレクティブ(命令)があります。

ディレクティブ 役割 実務での利用例
FROM ベースとなるモデルを指定する 既存の高性能モデル(例:gemma:7b)を指定し、その知識を継承する
SYSTEM モデル全体に適用される「役割」や「制約」を定義する 「あなたは経験豊富な技術コンサルタントです。常に丁寧語を使い、結論から述べてください。」といった役割定義を記述する
PARAMETER 温度(temperature)や最大トークン数(num_predict)など、推論時の挙動を制御する。 創造性を高めたい場合はtemperatureを高く、事実確認が目的なら低く設定する

具体的なカスタマイズの構築事例

例えば、「社内FAQボット」を構築する場合を考えます。単にollama run llama3とするのではなく、Modelfileを使って以下のようなカスタマイズを行います。

【Modelfileの記述例】FROM llama3:8b
SYSTEM """あなたは社内規定に精通したヘルプデスクAIです。回答は必ず規定番号を明記し、専門用語は平易な言葉に置き換えてください。"""
PARAMETER temperature 0.2

この設定により、モデルは「ヘルプデスクAI」という役割を強制され、出力のトーンや構造が一定に保たれます。これが、PoCから本番運用への移行において最も重要な「安定したインターフェース」となります。

まとめ:Modelfileは「振る舞いの契約書」である

Modelfileは、モデルの知識を書き換えるのではなく、その「振る舞い」を定義し、利用者に「契約」を結ばせるための仕組みです。この仕組みを理解し、タスクごとに適切なシステムプロンプトを埋め込むことが、実用的なLLMアプリケーション開発の鍵となります。