Ollamaの真骨頂!Modelfileで自分だけのカスタムAIアシスタントを作る方法
01. はじめに
Ollamaを使っていると、「毎回『日本語で答えて』と指示するのが面倒だな」とか、「もっと厳格にコードだけを出力してほしいな」と思うことはありませんか?
既存のモデル(Llama
3など)をそのまま使うのも良いですが、Ollamaの真の力は「Modelfile(モデルファイル)」によるカスタムモデル作成にあります。Dockerを使ったことのある人ならお馴染みの
Dockerfile と非常によく似た概念で、ベースとなるモデルに独自の指示やパラメータを組み込むことで、簡単に自分専用のAIアシスタントを構築できます。
本記事では、このModelfileの書き方から実際のビルド手順までを、具体例を交えて解説します。
02. Modelfileとは何か
Modelfileは、モデルの設定を記述したテキストファイルです。IaC(Infrastructure as Code)のように、AIの振る舞いをコードとして保存・管理・共有することができます。
Modelfileを使うと、以下のようなことが可能になります。
- システムプロンプトの固定: 「あなたは優秀なPythonエンジニアです」といった役割を永続化。
- パラメータの調整:
temperature(創造性)などを微調整して、回答の傾向を変える。 - 学習データの注入(簡易RAG): 少量のコンテキスト情報をプロンプトに含める。
03. Modelfileの基本構文
ディレクトリのどこかに名前(例: Modelfile)を付けたファイルを作成し、以下のように記述します。
FROM llama3
# システムメッセージ(役割定義)
SYSTEM You are Mario from Super Mario Bros. Answer as Mario.
# パラメータ設定 (Temperature: 高いほど創造的、低いほど論理的)
PARAMETER temperature 1
主な命令は以下の通りです。
FROM: ベースとなるモデル名を指定(必須)。SYSTEM: AIに与えるシステムプロンプト。ここが性格付けの核になります。PARAMETER: 生成パラメータの設定(temperature, num_ctxなど)。TEMPLATE: チャットのテンプレート形式を変更する場合に使用(上級者向け)。
04. 実践:特定の役割を持つAIを作る
では、実際に役立つカスタムモデルを作ってみましょう。
例1: 日本語翻訳の専門家
英語を入力すると、余計な挨拶抜きで日本語訳だけを返すモデルです。
FROM llama3
SYSTEM "あなたはプロの翻訳家です。ユーザーが入力した英語テキストを、自然な日本語に翻訳してください。解説や挨拶は不要です。翻訳結果のみを出力してください。"
PARAMETER temperature 0.3
ビルドと実行
Modelfileを作成したら、ollama create コマンドでビルドします。
# create [モデル名] -f [ファイルパス]
ollama create translator -f Modelfile
# 実行
ollama run translator
>>> Hello world
こんにちは、世界
これで、いつでも ollama run translator と打つだけで、専属の翻訳家を呼び出せるようになりました。
05. パラメータ調整のコツ
Modelfileで設定できるパラメータの中でも、特に重要なのが temperature と num_ctx です。
temperature (0.0 - 1.0)
回答の「ランダム性(創造性)」を制御します。
- 0.1 (低い): コード生成やデータ抽出など、正確性が求められる場合に。毎回同じような答えになります。
- 0.7 (デフォルト): バランス型。
- 1.0 (高い): 小説の執筆やアイデア出しなど、多様な回答が欲しい場合に。
num_ctx
コンテキストウィンドウサイズ(記憶できるトークン量)です。デフォルトは2048ですが、長いドキュメントを読み込ませる場合は増やします(例: 4096, 8192)。ただしメモリ消費量は増えます。
PARAMETER num_ctx 4096
06. まとめ
Modelfileを使いこなせば、Ollamaは単なるLLMプレイヤーから、あなたの業務に特化した最強のツールへと進化します。自分だけの最強のプロンプトをModelfileに保存し、日々の作業を効率化していきましょう。
作ったModelfileはGitなどでバージョン管理することをお勧めします。「あの時の設定が一番良かったのに!」という事態を防げます。
次回は、Pythonを使ってOllamaをプログラムから制御する方法について解説します。
コメント
コメントを投稿