OllamaでローカルLLM環境構築&出来ることまとめ
はじめに
お久しぶりです、筆者です。
主にコーディングや自作イラストのレビュー関連で生成AIを使うようになって久しいですが、
使うたびに毎回気になるのが「課金料金」。
重たいプロンプトや画像を投げるのはどうしても躊躇しがちですし、
レスポンスのプロンプト量がうっかり多くなっちゃったら…と思うと複雑な内容は投げにくくて。
(とはいえAPI経由ならレスポンスのプロンプト量は調整可能ですが)
また、規約が変わって自身のプロンプトが学習目的に使われる可能性もある…と考えると、機密情報も投げにくくて。
以前の記事で折角API経由でOpenAIモデルとやりとり出来るようにしたのに、
課金具合が気になりまくってあまり大胆には使えない…というのが続いてました。
「だったら課金気にしなくて良いローカルで動かせばいいじゃない」という事で、
ちょっと前から気になってた「ローカルLLM」に手を出してみようかなと。
ローカルで動かすので、機密情報周りの懸念もなくなりますからね!
昨今はローカル環境で動かせるモデルでも、性能が凄く良いモデルがたくさん出てる様なので…今がチャンスかなと。
それではいきましょう٩( ‘ω’ )و
※MacOS環境が前提の話となります。
他PCスペックについては余談に記しましたので、ご参照に。
ローカルLLM環境構築ツールについて
執筆当時(2025/05/05)時点だと、ローカル環境でLLMを動かせるツールは以下がありそうです:
※参考記事その1、参考記事その2
- llama.cpp: 元祖ローカルLLMフレームワーク、C++で記載
- 対応モデル: モデルをGGUF形式へ変換が必要、参考記事
- Ollama: CLIベース、軽量
- 対応モデル: こちらに記載のモデルが使用可能
- LM Studio: GUIベース、モデル検索やチャット機能がこれ1本で可能
- 対応モデル: Hugging Face経由で可能、選択肢が多そう
ChatGPTの様にリッチなUIで使いたいならLM Studio、
CLIベースでAPI経由での使用を想定してるならOllama、といった形でしょうか。
Ollamaが対応してないモデルを軽量で使いたいなら、llama.cppも候補に上がるのかな…と思います。
筆者的には、リッチなUIは不要でAPI経由で使えるだけで十分なので…。
OllamaでローカルLLM環境を作っていこうと思います。
Ollama環境構築
お次はOllamaの環境構築を。
…と言っても、公式がMacOS/Linux/Windows向けにインストーラーを用意してくれており:
MacOSだとインストーラーを起動するだけで環境構築は終わりました…。
なお執筆当時(2025/05/05)では、OSはWindowsであれば「Windows10」以降、
MacOSであれば「macOS 11 Big Sur」以降が必要です。
また、インストールすると自動的に「ログイン時に開く」アプリケーションとして登録もしてくれます。
※MacOSの「設定」>「一般」>「ログイン項目と拡張機能」に追加されてればOKです:

PCを起動するたびOllama自身の起動をするのも面倒だと思うので、この配慮はありがたいですね…。
OllamaはGUIはないので、これ以降はコマンドラインでの作業となります。
モデルのインストール
お次はモデル(GPT-4o、Qwen3、DeepSeek-r1とか)のインストールを。
Ollamaで利用可能なモデル一覧は以下で見れます:
モデル一覧は以下の様に見やすくレイアウトされており:
ソート&フィルター機能もあり、デフォルトでは「Popular(人気順)」で表示されてますが…。
「Newest(新着順)」でソートも可能ですし、「Vision」を選ぶと「画像認識に対応したモデル」のみが表示可能です。
各モデルをクリックすると、そのモデルの詳細が見れます:

「8b」とあるのは「パラメータ数」の事で、クリックすると他パラメータの内容が見れます:

モデルの容量も↑で見れます。
パラメータ数は多ければ多いほどスペックは高いですが、
それ相応に容量も食いますし、動かすためのマシンスペックも必要です。
この辺は自分のPCスペックと相談しながら…になるかと。
インストールしたいモデルを見つけたら、右にあるollama run [モデル名]をコピーしターミナルへペーストしましょう。
以下の様にダウンロードが進み、完了すればOllama上で次の入力を受け付ける>>>コマンドが出てくれます:
$ ollama run qwen3 pulling manifest pulling a3de86cd1c13: 100% ▕██████████████████▏ 5.2 GB pulling eb4402837c78: 100% ▕██████████████████▏ 1.5 KB pulling d18a5cc71b84: 100% ▕██████████████████▏ 11 KB pulling cff3f395ef37: 100% ▕██████████████████▏ 120 B pulling 05a61d37b084: 100% ▕██████████████████▏ 487 B verifying sha256 digest writing manifest success >>>
この時点でインストールしたモデルとチャット会話が出来るようになります!
適当に入力すれば、以下の様な返信が返ってきてくれます:
>>> こんにちは!ご機嫌いかがですか? <think> Okay, the user greeted me in Japanese with "こんにちは!ご機嫌いかがですか? " which means "Hello! How are you?" I need to respond politely in Japanese. First, I should acknowledge their greeting. Then, I should mention that I'm a Qwen and don't have feelings, but I'm here to help. Keep the tone friendly and open for conversation. Make sure the response is natural and not too robotic. Also, check for any grammar or spelling mistakes. Let me put that together. </think> こんにちは!お元気ですか?私はQwenと申します。感情を持つことはできませんが、 お手伝いできることがあれば、どうぞお気軽にお声がけくださいね!どんな話題でも お気軽にお話ししましょう!
また、画像認識が可能なモデル(gemma3など)であれば、画像の相対パスを入れれば認識してくれます。
Added imageと出力されればOKです。
>>> 画像を説明してください。./[画像ファイル名] Added image './[画像ファイル名]' このイラストは、 〜以下省略〜
チャット入力をやめたい場合は/byeと入力すれば終了します。
再度チャット入力したい場合はollama run [モデル名]と入力しましょう。
モデルのダウンロードは初回のみ実行されるだけなので、2回目以降は起動だけしてくれます。
なお、チャット入力はせずモデルのダウンロードのみを行いたい場合は、ollama pull [モデル名]とすればOKです。
もしこの段階でうまく動かない場合は、MacOSであれば~/.ollama/logs/server.logにOllamaのログが出力されてる(はず)です。
公式Docsのトラブルシューティング記事も合わせて参照ください。
お次はCUIではなく、API経由でチャットをやってみましょう。
API経由でチャットを使おう
Ollamaは起動時にAPIサーバーも起動してくれるため、API経由でのチャット入力が可能です。
デフォルト設定だとhttp://localhost:11434でサーバーが起動してくれてます。
なお、起動時のポート番号を変えたい場合はOLLAMA_HOST環境変数を変えれば変更可能です。
チャットを投げたい場合は、以下の様にコマンドを叩けばOKです:
$ curl -X POST http://localhost:11434/api/generate -d '{
"model": "モデル名",
"prompt":"プロンプト"
}'
レスポンスは以下の様に返ってきます:
{"model":"qwen3","created_at":"2025-05-04T16:42:12.908996Z","response":"\u003cthink\u003e","done":false} {"model":"qwen3","created_at":"2025-05-04T16:42:12.967872Z","response":"\n","done":false} {"model":"qwen3","created_at":"2025-05-04T16:42:13.028856Z","response":"Okay","done":false} 〜中略〜 {"model":"qwen3","created_at":"2025-05-04T16:42:21.902938Z","response":"ください","done":false} {"model":"qwen3","created_at":"2025-05-04T16:42:21.962704Z","response":"ね","done":false} {"model":"qwen3","created_at":"2025-05-04T16:42:22.025573Z","response":"!","done":false} {"model":"qwen3","created_at":"2025-05-04T16:42:22.087558Z","response":"😊","done":false} {"model":"qwen3","created_at":"2025-05-04T16:42:22.149839Z","response":"","done":true,"done_reason":"stop","context":[151644,872,198,89015,6313,47054,100482,100314,131621,28195,131938,11319,151645,198,151644,77091,198,151667,198,32313,11,279,1196,43765,752,448,330,89015,6313,47054,100482,100314,131621,28195,131938,11319,1,892,3363,330,9707,0,2585,525,498,7521,304,10769,13,358,1184,311,5889,80767,304,10769,13,6771,752,1281,2704,358,990,279,4396,15669,1086,82,323,11657,16232,382,5338,11,358,1265,24645,862,42113,13,5005,11,3158,429,358,2776,3730,1632,13,10696,912,264,2699,911,1660,1588,311,1492,13,13655,432,4285,323,11657,13,6771,752,1779,369,894,31428,20643,13,7281,11,1281,2704,279,2033,374,5810,323,537,2238,15908,13,97593,11,429,1265,975,624,151668,271,89015,6313,32234,23305,94121,131938,11319,130698,32234,44934,132322,16586,139142,135358,37541,6313,130967,32234,44934,132322,16586,126241,124186,137652,32403,5373,126956,71561,32234,140357,125882,52183,137433,71215,124381,6313,144236],"total_duration":9517036375,"load_duration":29664333,"prompt_eval_count":17,"prompt_eval_duration":245358875,"eval_count":155,"eval_duration":9241370583}
…人間が読める形式では返ってこないので、まともに使いたいならツール化は必須かと。
ただ大体の形式は以前当ブログでまとめたOpenAI APIと似通ってるので…。
OpenAI APIを触った事ある方なら、そこまで抵抗なく触れれるかと。
また、画像認識が可能なモデル(gemma3など)であれば、Base64エンコードした文字列で画像も送付可能です。
curl http://localhost:11434/api/generate -d '{
"model": "gemma3",
"prompt":"この画像を説明してください。",
"images": ["[Base64エンコードした画像文字列]"]
}'
Ollamaで使えるコマンド等一覧
ここからは、Ollamaで利用可能なコマンド等を紹介します。
まぁ基本はollama run [モデル名]しか使わないと思いますが…。
参考: 公式Docs
ollama create [モデル名] -f ./ModelfileModelfileからモデルを作成、詳しくはこちら
ollama pull [モデル名]- モデルをDL
ollama rm [モデル名]- モデルを削除
ollama cp [コピー元モデル名] [コピー先モデル名]- モデルをコピー
ollama run [モデル名]- モデルを起動、ローカルにないモデルの場合DLも行う
- 起動後そのまま
ollamaのコンソールへ移動する
ollama run [モデル名] "[プロンプト]"- モデルを起動し、プロンプトの入力をしたのちターミナルへ戻ってくる
- プロンプトに画像パスを入れたり、
"Summarize this file: $(cat README.md)"とすればファイル内を参照もできる
ollama show [モデル名]- モデル情報を表示
Qwen3での実行例
$ ollama show qwen3
Model
architecture qwen3
parameters 8.2B
context length 40960
embedding length 4096
quantization Q4_K_M
Capabilities
completion
tools
Parameters
repeat_penalty 1
stop "<|im_start|>"
stop "<|im_end|>"
temperature 0.6
top_k 20
top_p 0.95
License
Apache License
Version 2.0, January 2004
ollama list- ローカル上にDLしてるモデル一覧を表示
実行結果例
$ ollama list NAME ID SIZE MODIFIED deepseek-r1:latest 0a8c26691023 4.7 GB 15 hours ago qwen2.5-coder:latest 2b0496514337 4.7 GB 17 hours ago gemma3:latest a2af6cc3eb7f 3.3 GB 17 hours ago qwen3:latest e4b5fd7f8af0 5.2 GB 17 hours ago
ollama ps- ローカル上で起動してるモデル一覧を表示
実行結果例
$ ollama ps NAME ID SIZE PROCESSOR UNTIL qwen2.5-coder:latest 2b0496514337 6.0 GB 100% GPU 4 minutes from now
ollama stop [モデル名]- 起動してるモデルを停止させる(モデルの削除はしない)
ollama serve- OllamaをCLI経由で起動
執筆当時(2025/05/05)現在のOllamaのコマンド一覧は上記の通りです。
最新の状況が気になる場合は、以下公式Docsを参照ください:
ollama/README.md at main · ollama/ollama · GitHub
Ollamaセッション上にて実行可能なコマンド一覧
お次はOllama起動後のセッション上で実行可能なコマンド一覧を。
ollama run [モデル名]と実行し、>>>と表示されてから実行可能なコマンドですね。
全てのコマンドは最初に/を付けないといけません。
/set: 起動してるセッション上での変数を指定/set parameter [パラメータ]: パラメータを設定/set system [システム文字列として設定したい内容]: システム文字列を設定/set history: ヒストリーの有効化/set nohistory: ヒストリーの無効化/set wordwrap: 単語折り返しの有効化/set nowordwrap: 単語折り返しの有効化/set format json: JSONフォーマットで送付可能に/set noformat: ↑を無効化/set verbose: チャット返答時にトークン数等の統計情報も一緒に返却する様になる/set quiet: ↑を無効化
/show: モデル情報を表示/show info: 概要表示、ollama show [モデル名]と表示する情報は一緒/show license: ライセンス表示/show modelfile: 対象モデルのModelfileを表示/show parameters: 対象モデルに設定されてるパラメータを表示/show system: 設定されたシステムメッセージを表示/show template: 設定されたプロンプトのテンプレートを表示
/load [モデル名]: セッション上で使用するモデルの変更/save [モデル名]: 現在の設定を保存する/clear: 現在のセッション上での文脈(コンテキスト)をクリアする/bye: Ollamaセッションを抜ける/?または/help: 実行可能なコマンド一覧を表示/? shortcuts: 実行可能なキーボードショートカットを表示
また、"""でプロンプトを囲む事で複数行のプロンプトを入力する事も可能です。
例:
>>> """今日は天気がいいですね。 ご機嫌いかがですか?"""
APIとして使えるエンドポイント一覧
最後に、APIのエンドポイント一覧を。
- POST
/api/generate- LLMを使用し会話、OpenAI APIの
completionエンドポイントと役割は同じ
- LLMを使用し会話、OpenAI APIの
- POST
/api/chat- LLMを使用し会話、OpenAI APIの
chatエンドポイントと役割は同じ
- LLMを使用し会話、OpenAI APIの
- POST
/api/create- モデルを生成
- POST
/api/blobs/:digest- BlobファイルをOllamaサーバー上にPush
- Ollama.comへのPushではない
- HEAD
/api/blobs/:digest- モデル作成時に使うBlobファイルがOllamaサーバー上にあるかどうかチェック
- Ollama.comへの確認ではない
- GET
/api/tags- ローカル環境で利用可能なモデル一覧を取得
- POST
/api/show- モデル情報を取得
- POST
/api/copy- モデルをコピー
- DELETE
/api/delete- モデルを削除
- POST
/api/pull- モデルをダウンロード
- POST
/api/push- モデルをOllamaパブリックサーバー上にPush
- 予めollama.aiにて公開鍵の設定が必要
- POST
/api/embed- モデルからEmbeddingsを生成
- GET
/api/ps- ローカル上で起動してるモデル一覧を取得
- GET
/api/version- Ollamaのバージョン情報を取得
上記APIで使える具体的なリクエスト/レスポンスパラメータについては、
以下GistにTypeScriptの型定義ファイルとしてまとめたのでご参照に。
※全部まとめるのはしんどかったので、筆者の利用頻度が高いgenerate,chat,tags,psのAPIのみまとめてます:
また、レスポンスパラメータは全てstream: falseとして受け取った際の内容です。
Gist
執筆当時(2025/05/05)現在のOllama API一覧は上記の通りです。
最新の状況が気になる場合は、以下公式Docsを参照ください:
ollama/docs/api.md at main · ollama/ollama · GitHub
おわりに
今回の記事では「Ollamaを使ったローカルLLM環境構築」や「Ollamaで実行可能なコマンド、API」を一通り見てみました。
OpenAI APIと共通してる内容も多々あり、あちらを使った事があるならすんなり使えるんじゃないかと思います。
何よりローカル環境で好き放題動かせるのが嬉しいですね…課金状況も気にしなくて済みますし!
また「Qwen3」「Qwen2.5-coder」「gemma3」モデルを少し使ってみた感じ、
返答内容もChatGPTと遜色ない回答が返ってくる様に思えます。
((とはいえそこまで使いこなしてはないですが…
Ollamaなら環境構築も驚くほど簡単に出来ましたし、
情報漏洩や課金等を気にせず生成AIを軽く使ってみたいなら、ローカルLLMかなりアリだなと思う次第です。
ちなみに筆者がローカルLLMを使おうと思った本当の目的は、Clineを使ってのコーディング支援です。
((結構トークンバカ喰いすると聞いたので…
ClineとOllama組み合わせて色々やってみた記事も、後日記事上げれればと。
最後に、余談として筆者のPCスペックを記載してます。もし気になれば。
それでは|д゚)
余談:筆者のPCスペックについて
- Macbook Pro
- OS: Sequoia 15.4.1
- チップ: Apple M2
- メモリ: 24GB
- ストレージ: 1TB
当ブログに記載のOllamaインストール〜モデルの稼働、並びにChat機能について問題なく出来たので…。
※レスポンスも即返ってくるレベルです
当ブログに記載のモデル程度であれば、上記スペックがあれば十分かと。
ただ、もう少し良いモデルで試したいなら…もう少し良いスペックにした方が良いかと思います。