MacBook Air M4にOllamaを導入してローカルLLM(Gemma 3 27B)を動かす手順

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経由でのプログラムからの利用や、他のモデルとの比較検証など、応用の幅は広く広がっていきます。

コメント

タイトルとURLをコピーしました