はじめに:数コマンドでローカルLLMを動かす
ローカルLLMを始めようとすると、モデル形式、量子化、推論エンジン、GPU設定など、覚えることが多いように見えます。Ollamaは、こうした準備の多くをまとめ、モデルの取得・実行・管理をCLIから行えるランタイムです。
この記事では、macOS、Windows、Linuxへのインストールから、ターミナルでの対話、モデル管理、Modelfile、REST API、Claude Code・Codexとの連携までを順番に試します。最初の目標は、次の2コマンドを動かすことです。
ollama pull qwen3.5:4b
ollama run qwen3.5:4b起動したら、次のように質問できます。
>>> 日本語でOllamaについて簡単に説明してください本記事では、2026年7月の公開時点でOllamaライブラリに掲載されている比較的小さなモデル、qwen3.5:4bを例にします。モデルの公開状況、サイズ、タグは変わるため、実行前にモデルページを確認してください。量子化やハードウェア別のモデル選定は別のテーマとし、ここではOllamaの操作に集中します。
1. Ollamaとは何か
1-1. Ollamaはモデルではなくランタイム
OllamaはLLMそのものではありません。qwen3.5やgemma4がモデルであり、Ollamaはそれらを取得、実行、更新、削除するためのランタイムです。
Dockerに例えるなら、Ollamaが実行環境、モデルがコンテナイメージに近い関係です。モデルはqwen3.5:4bのような「名前:タグ」で指定します。ただし、タグの意味はモデルごとに異なり、パラメータ規模、量子化方式、用途などを表す場合があります。
Ollamaを起動するとバックグラウンドでサーバーが動きます。ollama runなどのCLIと、curlや自作アプリから使うAPIは、どちらもこのサーバーを経由します。
flowchart TD
accTitle: OllamaのCLI、API、サーバー、モデル、ハードウェアの関係
accDescr: ターミナル、curl、自作アプリからの要求がOllamaサーバーへ届き、保存済みモデルをCPUまたはGPUへロードして推論する流れを示します。
A[ターミナルのCLI] --> D[Ollama Server]
B[curl] --> D
C[自作アプリ] --> D
D --> E[保存済みモデル]
E --> F[CPUまたはGPU]Ollamaの内部構成
1-2. 主な機能
Ollamaでは、次の操作を一つのCLIにまとめられます。
- モデルのダウンロード、更新、実行、削除
- ディスク上のモデルとメモリ上のモデルの確認
- Modelfileによるシステムプロンプトやパラメータの固定
localhostで動くREST APIの利用- OpenAI APIと互換性のある一部エンドポイントの利用
ollama launchによるClaude Code、Codex、VS Codeなどの設定・起動
重要なのは、「Ollamaサーバー」「ディスク上のモデル」「メモリへロードされたモデル」が別々の状態を持つことです。この違いは、停止やトラブルシューティングで役立ちます。
2. 実行前に確認すること
2-1. メモリとディスク容量
Ollamaがインストールできても、すべてのモデルが快適に動くわけではありません。モデルのロードにはRAMまたはVRAMが必要です。コンテキスト長を増やした場合や、複数のリクエストを並列処理した場合も必要メモリが増えます。
初回は小さなモデルを選び、ほかの大きなアプリを閉じて試すのが安全です。本記事で使うqwen3.5:4bは、公開時点のライブラリでは約3.4GBのモデルファイルとして掲載されています。ただし、実行時の総メモリ使用量がファイルサイズと一致するとは限りません。
モデルは継続的にディスクへ保存されます。複数モデルを試す予定なら、数GBではなく、余裕を持った空き容量を用意してください。
2-2. ローカル実行の範囲
ローカルモデルをローカルAPIから呼ぶ限り、プロンプトを外部のモデルAPIへ送らずに推論できます。ただし、クラウドモデルを選んだ場合、連携ツールが独自に通信する場合、Web検索などの外部ツールを有効にした場合は別です。「Ollamaを使っているから常に完全オフライン」とは考えず、使用モデルと連携先を確認してください。
3. Ollamaをインストールする
3-1. macOS
公式macOSページからDMGを取得し、Ollama.appをApplicationsへ移動して起動します。初回起動時、CLIがPATHに見つからなければ、/usr/local/binへリンクを作る許可を求められます。
現在の公式要件はmacOS Sonoma 14以降です。Apple MシリーズではCPUとGPU、Intel MacではCPUでの実行が案内されています。インストール後に確認します。
ollama -v3-2. Windows
公式インストーラーを使うか、PowerShellで次を実行します。
irm https://ollama.com/install.ps1 | iex通常のインストールはユーザー領域に行われ、原則として管理者権限は不要です。完了するとOllamaがバックグラウンドで動き、PowerShellやコマンドプロンプトからollamaを実行できます。現在の詳細な公式要件はWindows 10 22H2以降です。
ollama -v3-3. Linux
公式インストールスクリプトを実行します。
curl -fsSL https://ollama.com/install.sh | sh確認コマンドは次のとおりです。
ollama -vsystemdサービスとして導入された環境では、状態も確認します。
sudo systemctl status ollama手動インストールやsystemdを使わない環境では、別のターミナルでollama serveを実行します。GPU利用には対応ハードウェアと適切なドライバーも必要です。
3-4. サーバーの疎通確認
OSを問わず、ローカルAPIへ問い合わせられればサーバーは動いています。
curl http://localhost:11434/api/versionまたは、保存済みモデルの一覧を表示します。
ollama lsconnection refusedになった場合は、Ollamaアプリまたはサービスが起動しているか確認してください。
4. 最初のモデルを取得して実行する
4-1. ダウンロード
次のコマンドでモデルを取得します。
ollama pull qwen3.5:4b進捗にはmanifestの取得、blobのダウンロード、チェックサムの検証などが表示されます。既存のblobをモデル間で共有できる場合があるため、似たモデルを取得するたびに全データが完全複製されるとは限りません。
完了したら一覧を確認します。
ollama lsNAMEはモデル名、IDは識別子、SIZEは保存サイズ、MODIFIEDは更新時刻です。
4-2. 対話を始める
ollama run qwen3.5:4bプロンプトが表示されたら質問します。
>>> ローカルLLMを使うメリットを3つ説明してください最初の回答だけ遅い場合、ストレージ上のモデルをRAMやVRAMへロードする時間が主な原因です。Ollamaは既定で、使用後のモデルを5分間メモリに保持します。この間の再利用は速くなることがあります。保持時間はkeep_aliveまたはOLLAMA_KEEP_ALIVEで変更できます。
5. 対話モードとワンショット実行
5-1. 対話モード
引数にプロンプトを付けずに実行すると、会話を続けられます。
ollama run qwen3.5:4b回答を見ながら追加質問したい場合、プロンプトを調整したい場合、モデルの傾向を確認したい場合に向いています。
複数行は対話画面で"""に囲みます。
>>> """
... 次の条件で回答してください。
... ・日本語を使う
... ・箇条書きで説明する
... ・初心者向けにする
...
... KubernetesのPodとは何ですか?
... """5-2. ワンショット実行
1回だけ回答が必要なら、モデル名の後ろへプロンプトを渡します。
ollama run qwen3.5:4b "Javaのrecordについて説明してください"ファイルへ保存することもできます。
ollama run qwen3.5:4b "Dockerと仮想マシンの違いを説明してください" \
> answer.txt長い入力ではヒアドキュメントも便利です。
ollama run qwen3.5:4b <<'EOF'
次のコードをレビューしてください。
public int add(int a, int b) {
return a + b;
}
EOFシェルスクリプトで使う場合は、終了コード、タイムアウト、生成内容の検証も実装してください。LLMの回答は常に正しいとは限りません。
6. よく使うコマンドとモデルの状態
コマンド | 用途 |
|---|---|
| モデルを実行する |
| モデルを取得または更新する |
| ディスク上のモデルを表示する |
| メモリへロード中のモデルを表示する |
| モデルをメモリからアンロードする |
| モデルをディスクから削除する |
| モデル情報を表示する |
| Modelfileから名前付き設定を作る |
| Ollamaサーバーを起動する |
| 対応する外部ツールを設定・起動する |
特に混同しやすいのがlsとps、stopとrmです。
flowchart LR
accTitle: Ollamaモデルのディスク保存とメモリロードの状態
accDescr: pullでモデルをディスクへ保存し、runでメモリへロードします。stopはメモリだけから下ろし、rmはディスク上のモデルを削除します。lsはディスク、psはメモリの状態を表示します。
A[モデルライブラリ] -->|ollama pull| B[ディスク上のモデル]
B -->|ollama run| C[メモリ上のモデル]
C -->|ollama stop| B
B -->|ollama rm| D[未保存]
B -. ollama ls .-> E[保存一覧]
C -. ollama ps .-> F[実行一覧]モデルの保存・実行状態
ollama stop qwen3.5:4bはRAMやVRAMを解放しますが、モデルファイルを残します。ollama rm qwen3.5:4bは保存済みモデルを削除します。サーバー自体を終了する操作はどちらでもありません。
7. モデルを切り替え、保存場所を管理する
モデルはリクエストごとに指定します。Ollama全体に固定された「現在のモデル」があるわけではありません。
ollama run qwen3.5:4b
ollama run gemma4qwen3.5:4bではqwen3.5が名前、4bがタグです。タグなしは通常latestへ解決されますが、latestが最小、最速、または自分のPCに最適という意味ではありません。モデルページでサイズと要件を確認してください。
標準のモデル保存先は次のとおりです。
OS | 保存先 |
|---|---|
macOS |
|
Windows |
|
Linux |
|
保存先を変更する環境変数はOLLAMA_MODELSです。macOSアプリではlaunchctl setenv、Windowsではユーザー環境変数、Linuxのsystemdではサービスのoverrideへ設定し、Ollamaを再起動します。Linuxでは、サービスを実行するollamaユーザーに新しいディレクトリの読み書き権限が必要です。
blobを手動で削除するより、削除にはollama rm、保存先の変更にはOLLAMA_MODELSを使う方が安全です。
8. コンテキスト長を変更する
コンテキスト長は、モデルが一度に参照できる入力、会話履歴、生成内容の範囲に関係します。長い文書やコードを扱うには大きな値が有効ですが、値を増やすほどメモリ消費も増えます。また、モデルが対応する上限を超えれば有効になるわけではありません。
対話モードでは次のように変更します。
/set parameter num_ctx 8192APIリクエスト単位ならoptions.num_ctxを指定します。
curl http://localhost:11434/api/generate -d '{
"model": "qwen3.5:4b",
"prompt": "この文章を要約してください",
"options": {
"num_ctx": 8192
},
"stream": false
}'手動起動するサーバー全体の既定値は環境変数で変更できます。
OLLAMA_CONTEXT_LENGTH=8192 ollama serve公式FAQは既定のコンテキスト長を4096トークンと説明していますが、Modelfileリファレンスのパラメータ表には異なる既定値の記載があります。モデルやOllamaのバージョン、起動方法による差も考えられるため、記事の数値を絶対視せず、実環境の設定と公式ドキュメントを確認してください。
9. Modelfileで設定を再利用する
Modelfileは、既存モデルをベースにシステムプロンプトや実行パラメータを定義するファイルです。Dockerfileに似た「設定の設計図」であり、これだけでモデルを再学習またはファインチューニングするものではありません。
次のファイルを作成します。
FROM qwen3.5:4b
PARAMETER temperature 0.3
PARAMETER num_ctx 8192
SYSTEM """
あなたはソフトウェア設計を支援するアシスタントです。
必ず日本語で回答してください。
コード例には簡単な説明を付けてください。
不明な情報を推測で断定しないでください。
"""名前付きモデル設定を作成します。
ollama create backend-assistant -f ./Modelfile実行方法は通常のモデルと同じです。
ollama run backend-assistant生成されたModelfileを確認できます。
ollama show --modelfile backend-assistantbackend-assistant、sql-reviewer、article-editorのように用途別の設定を用意すると、毎回長いシステムプロンプトを入力せずに済みます。ベースモデルの巨大なデータが用途ごとに必ず完全複製されるわけではなく、Ollamaはblobを利用してモデルデータを管理します。
10. ローカルREST APIを利用する
10-1. generateとchat
ローカルAPIの標準ベースURLはhttp://localhost:11434/apiです。単一プロンプトから生成する場合は/api/generateを使います。
curl http://localhost:11434/api/generate -d '{
"model": "qwen3.5:4b",
"prompt": "Spring BootのDIについて説明してください"
}'会話履歴を渡す場合は/api/chatを使います。
curl http://localhost:11434/api/chat -d '{
"model": "qwen3.5:4b",
"messages": [
{
"role": "system",
"content": "あなたはJavaの専門家です"
},
{
"role": "user",
"content": "recordについて説明してください"
}
]
}'messagesにはsystem、user、assistantなどのロールを含められます。会話を継続するアプリでは、必要な履歴をアプリ側で保持して次のリクエストに含めます。
10-2. ストリーミングを読む
/api/generateなどではストリーミングが既定で有効です。レスポンスは改行区切りJSON、つまりNDJSONとして順番に届きます。
{"response":"Spring","done":false}
{"response":" Boot","done":false}
{"response":"は","done":false}
{"response":"...","done":true}各responseを到着順に連結し、done: trueで終了と判断します。/api/chatでは生成テキストがmessage.contentに入るため、エンドポイントごとのレスポンス形状を混同しないでください。
ストリーミングが不要ならstream: falseを指定します。
curl http://localhost:11434/api/generate -d '{
"model": "qwen3.5:4b",
"prompt": "Ollamaについて説明してください",
"stream": false
}'この場合は回答全体を一つのJSONとして扱えます。短い処理や構造化レスポンスの検証には簡単ですが、長い生成では画面表示の開始が遅く感じられます。
10-3. パフォーマンス情報
完了レスポンスには、次の計測値が含まれます。時間の単位はナノ秒です。
total_duration: リクエスト全体の所要時間load_duration: モデルロード時間prompt_eval_count: 入力トークン数prompt_eval_duration: 入力評価時間eval_count: 生成トークン数eval_duration: 生成時間
load_durationだけが大きければ初回ロード、eval_durationが大きければ生成処理を中心に調べる、といった切り分けに使えます。
OllamaはOpenAI APIの一部とも互換性があり、http://localhost:11434/v1/を既存クライアントへ設定できます。ただし完全互換ではないため、利用予定のエンドポイントとフィールドを互換性ドキュメントで確認してください。
11. Claude Code・Codexと連携する
利用可能な連携先は次のコマンドで対話的に確認できます。
ollama launchClaude Codeを起動する例です。
ollama launch claude
ollama launch claude --model qwen3.5:4bCodex CLIを設定・起動する例です。
ollama launch codex
ollama launch codex --configCodexを手動設定している場合は、Ollamaプロバイダーを使うcodex --ossも公式連携手順にあります。
コーディングエージェントは、通常の短いチャットより長いコンテキストを必要とします。OllamaのClaude Code・Codex連携ドキュメントは少なくとも64Kトークンを推奨しています。小型モデルに64Kを設定すれば品質が保証されるわけではなく、メモリ消費も増えます。最初は起動確認に留め、実運用ではモデルのツール利用能力、コード品質、コンテキスト要件を別途評価してください。
12. Ollamaを停止・再起動する
モデルだけをメモリから下ろす場合は次を実行します。
ollama stop qwen3.5:4bmacOSとWindowsでサーバー全体を終了するには、メニューバーまたはタスクトレイのOllamaからQuitを選びます。再開するときはアプリを起動します。
Linuxのsystemdサービスは次のように管理します。
sudo systemctl stop ollama
sudo systemctl start ollama
sudo systemctl restart ollama
sudo systemctl status ollamaollama serveをターミナルで直接実行している場合は、そのターミナルでCtrl+Cを押します。
つまり、ollama stopはモデルのアンロード、アプリのQuitやsystemctl stopはサーバーの終了です。問題の対象に合わせて使い分けます。
13. よくあるエラーを切り分ける
13-1. サーバーへ接続できない
connection refusedが出たら、まずAPIを確認します。
curl http://localhost:11434/api/versionmacOS・WindowsではOllamaアプリ、Linuxではsystemdサービスを起動します。手動運用ならollama serveを実行してください。
13-2. モデルをロードできない、メモリ不足になる
ollama ps
ollama show qwen3.5:4bより小さいタグを選ぶ、不要なモデルをollama stopする、num_ctxを下げる、並列実行数を減らす、メモリを多く使うアプリを閉じる、という順に試します。並列リクエスト数とコンテキスト長の両方が大きいと、必要メモリも増えます。
13-3. 応答が遅い
ollama psのPROCESSOR列を確認します。100% GPU、100% CPU、CPU/GPUの分割などが表示されます。初回だけ遅いならロード、生成中も遅いならモデルサイズ、CPU実行、コンテキスト長などを疑います。APIのload_durationとeval_durationも判断材料になります。
13-4. ポート11434が使用中
macOS・Linuxでは次を実行します。
lsof -i :11434Windows PowerShellでは次を使います。
Get-NetTCPConnection -LocalPort 11434Ollamaアプリが動いている状態で別のollama serveを起動した、Docker版も同じポートを公開した、といった重複を確認してください。
13-5. ログを確認する
macOS:
cat ~/.ollama/logs/server.logLinux:
journalctl -u ollama --no-pager --follow --pager-endWindows:
%LOCALAPPDATA%\Ollama\server.log原因が分からない場合、ログ、Ollamaのバージョン、OS、GPU、実行コマンド、再現手順をそろえると調査しやすくなります。プロンプトやログに機密情報が含まれる場合は、共有前に削除してください。
14. localhost外へ公開するときの注意
Ollamaは標準で127.0.0.1:11434へバインドします。手動起動時にLANから接続可能にする例は次のとおりです。
OLLAMA_HOST=0.0.0.0:11434 ollama serveただし、ローカルのOllama APIはhttp://localhost:11434からのアクセスに認証を要求しません。0.0.0.0へ変更しただけでインターネットへ直接公開してはいけません。
公開が必要なら、ファイアウォールやVPNで接続元を制限し、リバースプロキシでTLSと認証を追加してください。ルーターから11434番ポートを直接転送する構成は避けます。ブラウザアプリから使う場合は、ネットワーク制御だけでなくOLLAMA_ORIGINSによる許可オリジンも最小限に設定します。
まとめ
Ollamaを使うと、ollama pullでモデルを取得し、ollama runでターミナルからローカルLLMを試せます。ollama lsはディスク、ollama psはメモリの状態を表示し、ollama stopとollama rmは異なる範囲を削除します。
さらに、Modelfileでシステムプロンプトとパラメータを再利用し、localhost:11434のREST APIから自作アプリへ組み込めます。ollama launchはClaude CodeやCodexを試す次の入口になります。
基本操作を確認したら、次はOpen WebUIによるブラウザUI、コーディングエージェント向けモデルの比較、認証付きリバースプロキシ、自作アプリでのストリーミング処理へ進むとよいでしょう。