ChatGPTやClaudeなどクラウド型のLLMは便利ですが、機密情報を扱う場面や、ネット接続なしで使いたい場面では「ローカルLLM」が選択肢になります。本記事では、MacBook Air M4(メモリ32GB)にOllamaをインストールし、Googleの「Gemma 3 27B」モデルを動かすまでの手順を、実際の出力を交えて解説します。
Ollamaとは
Ollamaは、ローカル環境で大規模言語モデル(LLM)を簡単に実行できるオープンソースのツールです。コマンド一つでモデルのダウンロードから起動までを管理でき、CLIでの対話に加えて、起動と同時にローカルAPIサーバー(localhost:11434)も立ち上がるため、自作ツールやアプリへの組み込みも容易です。
macOS、Linux、Windowsに対応しており、Apple Silicon搭載のMacではユニファイドメモリを活用してGPUで効率的にモデルを動かせる点が大きな魅力です。
動作環境
- MacBook Air M4
- メモリ 32GB
- Homebrewインストール済み
ローカルLLMはモデルサイズに応じてメモリを大きく消費します。本記事で扱うGemma 3 27Bは約20GBのメモリを使用するため、最低でも24GB、快適に使うなら32GB以上のメモリを推奨します。
OllamaをHomebrewでインストールする
HomebrewでOllamaをインストールします。
brew install ollama
インストールが完了すると、起動方法の案内が表示されます。
==> Caveats
==> ollama
To start ollama now and restart at login:
brew services start ollama
Or, if you don't want/need a background service you can just run:
OLLAMA_FLASH_ATTENTION="1" OLLAMA_KV_CACHE_TYPE="q8_0" /opt/homebrew/opt/ollama/bin/ollama serve
常用するならバックグラウンドサービスとして起動するのが便利です。ログイン時に自動起動されるようになります。
brew services start ollama
実行結果は以下のようになります。
==> Successfully started `ollama` (label: homebrew.mxcl.ollama)
APIサーバーの動作確認
Ollamaを起動すると、ローカルAPIサーバーが http://localhost:11434 で待ち受け状態になります。curlで疎通確認します。
curl http://localhost:11434
正常に動作していれば、以下のレスポンスが返ってきます。
Ollama is running
モデルをダウンロードする
今回はGoogleが提供する「Gemma 3」の27Bパラメータモデルを使用します。Gemma 3は多言語対応で、日本語の出力も自然なため、日本語ユーザーにとって扱いやすいモデルです。
モデルのダウンロードには ollama pull コマンドを使います。
ollama pull gemma3:27b
ダウンロードサイズは約17GBあり、回線速度によりますが10〜30分ほどかかります。実際の出力は以下のようになります。
pulling manifest
pulling e796792eba26: 100% ▕████████████████▏ 17 GB/ 17 GB 14 MB/s 0s
pulling e0a42594d802: 100% ▕████████████████▏ 358 B
pulling dd084c7d92a3: 100% ▕████████████████▏ 8.4 KB
pulling 3116c5225075: 100% ▕████████████████▏ 77 B
pulling f838f048d368: 100% ▕████████████████▏ 490 B
verifying sha256 digest
writing manifest
success
モデルを起動して対話する
ダウンロードが完了したら、対話モードでモデルを起動します。
ollama run gemma3:27b
初回起動時はモデルをメモリに読み込むため10〜20秒ほど待ち時間があります。プロンプトが >>> に変わったら準備完了です。日本語で自由に質問できます。
対話モードでよく使うコマンドは以下のとおりです。
/bye… 対話を終了する/?… ヘルプを表示する/show info… モデル情報を表示する/clear… 会話履歴をクリアしてコンテキストをリセットする
稼働状況を確認する
別ターミナルから ollama ps コマンドを実行すると、現在メモリにロードされているモデルの状態を確認できます。
ollama ps
出力例は以下のとおりです。
NAME ID SIZE PROCESSOR CONTEXT UNTIL
gemma3:27b a418f5838eaf 20 GB 100% GPU 32768 4 minutes from now
各項目の意味は以下のとおりです。
- SIZE: モデルが使用しているメモリサイズ(20GB)
- PROCESSOR: 処理を行うデバイス。「100% GPU」はモデル全体がGPUで処理されていることを示し、Apple Siliconのユニファイドメモリを最大限活用できている状態
- CONTEXT: 扱えるコンテキスト長(32768トークン)
- UNTIL: アイドル状態が続くとモデルがメモリからアンロードされるまでの時間(デフォルトは5分)
「100% GPU」と表示されていれば、CPUにフォールバックせずに高速に動作する理想的な状態です。32GBメモリのうち20GBをモデルが使用するため、他のアプリと並行して動かしても余裕があります。
モデルのアンロード挙動について
UNTIL 列に表示される時間は、アイドル状態が続いた際にモデルがメモリから自動的にアンロードされるまでの猶予です。デフォルトでは5分でアンロードされ、次に使うときは再度メモリへの読み込み(10〜20秒)が発生します。
常時メモリに保持しておきたい場合は、OLLAMA_KEEP_ALIVE 環境変数で挙動を変更できます。ただし常駐させ続けると常に20GB前後のメモリを占有するため、使うときだけロードされるデフォルト挙動が省メモリの観点では合理的です。
まとめ
本記事では、MacBook Air M4にHomebrewでOllamaをインストールし、Gemma 3 27Bモデルを動かすまでの一連の手順を紹介しました。要点は以下のとおりです。
- Ollamaは
brew install ollamaでインストール、brew services start ollamaで起動できる - 起動と同時にローカルAPIサーバー(
localhost:11434)が立ち上がる - Gemma 3 27Bは約17GBのダウンロード、約20GBのメモリを消費する
- Apple Siliconでは「100% GPU」処理となり、効率的にモデルが動作する
- 32GBメモリのMacBook Air M4で十分実用的に動かせる
ローカルLLMはクラウド型サービスと違い、データを外部に送信せずに使える点が大きな利点です。Ollamaを土台として、API経由でのプログラムからの利用や、他のモデルとの比較検証など、応用の幅は広く広がっていきます。


コメント