ローカルLLM Ollama の導入手順|インストールからREST API呼び出しまで

ローカルLLM Ollama の導入手順|インストールからREST API呼び出しまで

ローカルで動く LLM を手軽に試したい、あるいは API コストを気にせず開発に使いたいと考えている方は多いと思います。Ollama は、LLaMA・Mistral・Gemma などのオープンウェイトモデルをコマンド 1 本でダウンロードして動かせるツールです。この記事では、Linux・macOS・Windows へのインストールから、モデルの取得・REST API 呼び出しまでを手順でまとめました。

Ollama とは何か

Ollama は、オープンウェイトの LLM をローカルで実行するためのランタイムです。ollama run でモデルをダウンロードし、対話型インターフェースまたは HTTP API からテキスト生成ができます。

API は http://localhost:11434 でリッスンし、OpenAI 互換エンドポイント(/v1/chat/completions)も備えているため、既存の OpenAI SDK コードを最小限の変更で流用できます。GPU が使えれば自動認識し、なければ CPU にフォールバックします。

インストール手順

Linux

curl -fsSL https://ollama.com/install.sh | sh

公式スクリプトが ollama ユーザーを作成し、systemd サービスを自動登録します。インストール後に次で状態を確認できます。

systemctl status ollama

NVIDIA GPU が搭載されていて CUDA ドライバーが導入済みであれば、GPU が自動で使われます。AMD GPU は ROCm ドライバーが別途必要です(認識状況は環境によって異なります)。

macOS

公式サイト(ollama.com)からアプリをダウンロードするか、Homebrew で入れます。

brew install ollama

Apple Silicon(M1 以降)では Metal 経由で GPU が使われます。アプリ起動後はメニューバーに常駐し、バックグラウンドでサーバーが動きます。

Windows

公式サイトから Windows 用インストーラーをダウンロードして実行します。インストール後はシステムトレイに常駐し、http://localhost:11434 で API が使えます。


モデルの保存先(執筆時点の公式ドキュメントより):

OS デフォルト保存先
Linux ~/.ollama/models
macOS ~/.ollama/models
Windows C:\Users\<ユーザー名>\.ollama\models

保存先を変えたい場合は OLLAMA_MODELS 環境変数にパスを指定します。モデルは数 GB〜十数 GB あるため、容量に余裕のあるドライブを選ぶことをお勧めします。

モデルの取得と起動

# モデルをダウンロードして対話起動
ollama run llama3.2

# ダウンロードだけ行い、対話は起動しない
ollama pull mistral

# インストール済みモデルの一覧
ollama list

# モデルの削除
ollama rm llama3.2:3b

モデル名にタグを付けるとサイズを選べます(例:llama3.2:1b)。量子化バリアント(例:q4_K_M)を使うと精度をある程度保ちながら VRAM 消費を抑えられます。

試しやすいモデルの目安(必要リソースは環境・量子化によって変わります):

モデル 規模 特徴
llama3.2:1b 1B 軽量テスト・低スペック向け
llama3.2:3b 3B 日常的なチャット・コード補完
mistral 7B 汎用・バランス型
qwen2.5:7b 7B 日本語の扱いが比較的良好とされる
gemma2:9b 9B 多言語・高品質とされる

REST API から呼び出す

Ollama は起動中、http://localhost:11434 で API を公開しています。

/api/generate(単発生成)

curl http://localhost:11434/api/generate \
  -H "Content-Type: application/json" \
  -d '{"model": "llama3.2", "prompt": "Pythonでフィボナッチ数列を書いて", "stream": false}'

stream: false を付けると生成完了後に 1 つの JSON が返ります。省略するとトークンごとにストリームで返ってきます。

/api/chat(会話形式)

curl http://localhost:11434/api/chat \
  -H "Content-Type: application/json" \
  -d '{"model": "llama3.2", "messages": [{"role": "user", "content": "Rustの所有権を一行で"}], "stream": false}'

Python から呼ぶ例

import requests

res = requests.post(
    "http://localhost:11434/api/generate",
    json={
        "model": "llama3.2",
        "prompt": "ログイン失敗時のエラーメッセージを日本語で書いて",
        "stream": False,
    },
)
print(res.json()["response"])

OpenAI SDK を使う場合は base_urlhttp://localhost:11434/v1 に向けるだけで既存コードを流用できます(執筆時点の互換範囲は公式ドキュメントで確認してください)。

つまずきやすいポイント

起動が遅い・CPU フォールバックになる
VRAM が不足すると CPU で実行され、速度が大幅に落ちます。CPU で実行されていることが確認できた場合は、より小さいモデルまたは量子化バリアント(q4_K_M など)に変えてみてください。

別端末からアクセスしたい
デフォルトでは 127.0.0.1 のみにバインドされるため、LAN 上の他端末からは届きません。

OLLAMA_HOST=0.0.0.0:11434 ollama serve

Linux で systemd サービスとして動かしている場合は、サービスファイルの [Service] セクションに次を追記します。

Environment=OLLAMA_HOST=0.0.0.0:11434

外部に公開する場合は、Cloudflare Tunnel を使えばポート開放なしでアクセスできます。ただし Ollama 自体には認証機能がないため、リバースプロキシや IP 制限などのアクセス制御を別途設けてください。

コンテキスト長を伸ばしたい
num_ctx はモデルによってデフォルト値が異なります。長文処理では options で明示的に指定します。

{"model": "llama3.2", "options": {"num_ctx": 8192}, "prompt": "..."}

num_ctx を大きくするほど VRAM・RAM 消費が増えます。手元の環境で上限を確認しながら調整してください。

まとめ

Ollama のインストールは 1 コマンドで完了しますが、実務で使うにはモデル選定と API 呼び出しの形式を押さえることが重要です。まず /api/generatecurl か Python でたたいて応答を確認し、そのうえでモデルサイズと量子化を切り替えながら速度と品質のバランスを探るのが近道です。

よくある質問

OllamaはGPUなしでも動きますか?

動きます。GPUがなければCPUにフォールバックして実行されますが速度は大幅に低下します。1B〜3Bの軽量モデルや量子化バリアントを選ぶと比較的現実的な速度で使えます。

Ollamaで日本語はうまく扱えますか?

モデルによって品質が大きく異なります。執筆時点では qwen2.5 や gemma2 などが日本語対応として比較的よく挙げられますが、実際の品質は用途に合わせて確認することをお勧めします。

利用できるモデルの一覧はどこで確認できますか?

公式サイト(ollama.com/library)でモデルの一覧とタグ(サイズ・量子化バリアント)を確認できます。ollama search コマンドでターミナルから検索することもできます(執筆時点)。

OllamaをOpenAI SDKから使えますか?

使えます。SDKの base_url を http://localhost:11434/v1 に変更するだけで既存コードをほぼ流用できます。互換対応の範囲は執筆時点のもので、公式ドキュメントで最新状況を確認してください。