Ollama 1 はローカル LLM を動かすためのソフトウェアのひとつ。 一般的なラップトップやデスクトップマシンで動かすようなユースケースが主に想定されているように思う。 LLM の機能を不特定多数に提供するというよりは、マシンを操作しているユーザ自身が使用するイメージだろう。 似たようなユースケースで用いられるソフトウェアには、他にも LM Studio 2 などがある。 今回は、そんな Ollama を Mac から使う方法についてメモしておく。
使った環境は次のとおり。
$ sw_vers ProductName: macOS ProductVersion: 15.5 BuildVersion: 24F74 $ uname -srm Darwin 24.5.0 arm64 $ sysctl machdep.cpu.brand_string machdep.cpu.brand_string: Apple M2 Pro $ ollama --version ollama version is 0.9.0
もくじ
- もくじ
- 下準備
- サーバを起動する
- 設定を変更する
- モデルをダウンロードする
- モデルの情報を得る
- ターミナルでモデルと対話する
- OpenAI-like な WebAPI を利用する
- 不要になったモデルを削除する
下準備
まず、Ollama は Homebrew を使ってインストールできる。
$ brew install --formula ollama
サーバを起動する
Ollama を利用するには、何をするにもまずはサーバのインスタンスを立ち上げる必要がある。
そのためには、Homebrew でインストールした場合には Ollama をサービスとして起動すれば良い。
$ brew services start ollama
あるいは、フォアグラウンドで実行したいときは単に ollama serve
コマンドを叩いても良い。
$ ollama serve
設定を変更する
Ollama は、OLLAMA_
から始まる名前のシェル変数・環境変数を使って動作を変更できる。
たとえば、Homebrew のサービスからサーバを起動する場合には launchctl setenv
で設定を変更する。
以下ではグローバルなコンテキスト長を 32768
トークンに変更している。
$ launchctl setenv OLLAMA_CONTEXT_LENGTH 32768
あるいは ollama serve
コマンドで起動しているときは、単純にセッション変数として指定すれば良い。
$ OLLAMA_CONTEXT_LENGTH=32768 ollama serve
モデルをダウンロードする
続いてモデルをダウンロードするには ollama pull
コマンドを使う。
以下では例として Gemma3 の 1B モデルを指定している。
$ ollama pull gemma3:1b pulling manifest pulling 7cd4618c1faf: 100% ▕██████████████████▏ 815 MB pulling e0a42594d802: 100% ▕██████████████████▏ 358 B pulling dd084c7d92a3: 100% ▕██████████████████▏ 8.4 KB pulling 3116c5225075: 100% ▕██████████████████▏ 77 B pulling 120007c81bf8: 100% ▕██████████████████▏ 492 B verifying sha256 digest writing manifest success
Ollama が公式が提供しているモデルについては以下の Web ページで検索できる。
ダウンロードしたモデルは ollama ls
コマンドで確認できる。
$ ollama ls NAME ID SIZE MODIFIED gemma3:1b 8648f39daa8f 815 MB 6 hours ago
モデルの情報を得る
モデルの詳しい情報は ollama show
コマンドで確認できる。
$ ollama show gemma3:1b Model architecture gemma3 parameters 999.89M context length 32768 embedding length 1152 quantization Q4_K_M Capabilities completion Parameters stop "<end_of_turn>" temperature 1 top_k 64 top_p 0.95 License Gemma Terms of Use Last modified: February 21, 2024 ...
ターミナルでモデルと対話する
ollama run
コマンドを使うと、ターミナルを使ってモデルと対話できる。
$ ollama run gemma3:1b
>>> こんにちは!
こんにちは!何かお手伝いできることはありますか?😊
どんなことでも構いません。例えば:
* 質問に答える
* 文章を作成する
* アイデアを出す
* 情報検索をする
など、お気軽にお申し付けください。
なお、ollama ps
コマンドを使うと、現在どのモデルがメモリ上で動作しているか確認できる。
$ ollama ps NAME ID SIZE PROCESSOR UNTIL gemma3:1b 8648f39daa8f 2.2 GB 100% GPU 4 minutes from now
OpenAI-like な WebAPI を利用する
Ollama は OpenAI-like な Web API を提供している。 この Web API を通してモデルの機能を利用できる。
たとえば completions の API を curl(1) で叩いてみよう。 API はループバックアドレスの 11434 ポートで提供されている。
$ curl -s http://localhost:11434/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "gemma3:1b", "messages": [ { "role": "user", "content": "ご機嫌いかがですか?" } ] }' | jq .
すると JSON で結果が得られる。
$ curl -s http://localhost:11434/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "gemma3:1b", "messages": [ { "role": "user", "content": "ご機嫌いかがですか?" } ] }' | jq . { "id": "chatcmpl-578", "object": "chat.completion", "created": 1749812263, "model": "gemma3:1b", "system_fingerprint": "fp_ollama", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "元気です、ありがとう! 😊 あなたはいかがですか? \n\n何かお手伝いできることはありますか?\n" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 16, "completion_tokens": 24, "total_tokens": 40 } }
すべての API のドキュメントは以下の Web ページで確認できる。
そして、API を通して様々なツールと連携できる。 連携できるツールは以下のページにまとめられている。
必要に応じて、先ほど叩いた API のエンドポイントをツールに設定することで連携が可能になる。
不要になったモデルを削除する
LLM のファイルはサイズが大きいので、不要になったときは消したくなることもある。
そんなときは ollama rm
コマンドを使って削除できる。
$ ollama rm gemma3:1b deleted 'gemma3:1b'
いじょう。