M1 MacBook Air 16GBでMLX対応ローカルLLMはどこまで動くのか試してみたゾ(2026年5月版)

実は2026年の4月くらいから、長らくメインだったWindowsから少しずつMacも使えるようにする「Macリハビリ」を始めていまして🤗 手持ちのM1 MacBook Air(2020年モデル、16GB)を引っ張り出して、ちょこちょこ環境を整えながら使い慣れているところです。

そんなタイミングだった3月末に、OllamaがMLXバックエンドに対応したというニュースが飛び込んできました。MLXはApple Siliconの統合メモリを直接活用して推論を高速化するためのライブラリで、要するに「M1/M2/M3/M4/M5チップのGPUとメモリを素直に使ってLLMを動かす」仕組みです。

Apple Siliconって、ベンチマークの数字だけ見ていると「最新のNVIDIA GPUにはさすがに敵わないでしょ🙄」くらいに思っていたのですが、ローカルLLMの文脈では統合メモリのおかげで大きめのモデルがそのまま乗るという独自の強みがあります。とはいえ自分のマシンはM1という4世代前のチップ、しかも16GBのエントリースペック。果たしてどのくらいパフォーマンスが出るんだろう🤔 というのが、今回の一番の関心事でした。

ということで、手持ちのM1 MacBook Air(16GBメモリ)で、MLX対応の各ツールを一通り試してみた備忘録です。LM StudioOllama の2つを実際にセットアップして、どれくらい動くのか?速度差はあるのか?を自分の手元で確認してきました。

結論から先に言ってしまうと、正直、このスペックでも動作して驚きました🤩 Ollama公式が「32GB以上推奨」と書いているMLXプレビューも、小さめのMLX系モデルなら16GBで普通に動きます。「4世代前のM1 Airで、ローカルにこのレベルのモデルが乗るんだ」という感触は、Macリハビリ中の自分にとってはちょっとしたご褒美のような体験なのかも😊 そのあたりの温度感も含めて、以下にまとめていこうと思います。

⚠️ 本記事の情報は2026年5月上旬時点のものです。Ollama・LM Studioはいずれも開発の動きが早いので、最新情報は各公式ドキュメントも併せて確認してみてください。

関連

uepon.hatenadiary.com


1. 今回の環境

最初に検証環境を書いておきます。

  • マシン … MacBook Air(M1, 2020)
  • メモリ … 16GB統合メモリ
  • macOS … Tahoe 26.3
  • ストレージ … 空き容量約100GB(モデルのダウンロードに余裕を持たせておく)

16GBという、Appleのラインナップの中ではエントリー寄りのスペックです。最近のMacラインナップだと36GB / 48GBが当たり前になっているので、いまや「ローカルLLMをやるにはちょっと厳しい」スペックなんですよね🥲 そのうえでどこまで遊べるか、というのを今回試した形です。


2. LM Studio(v0.4.12)でMLXを試す

まずは一番手堅いと言われているLM Studioから。GUIベースで、16GB環境での動作も公式に想定されていて、既にMLXにも対応しているという点で最初のとっかかりとしては安心感があります。

インストール

公式サイト(lmstudio.ai)からApple Silicon版をダウンロードして、Applicationsにドラッグするだけ。Macでアプリを入れるときの王道の手順なので、Macリハビリ中の自分にも優しい入口でした😊 MLXエンジンはバンドル済みなので追加作業は不要です。

起動するとUIが一新されていて、v0.3系とは少し雰囲気が変わっていました。Split Viewでチャットを並べられたり、PDFやMarkdownへのエクスポートができたり、地味に便利な機能が増えています😊

モデルのダウンロード

モデルの検索バーに「qwen/qwen3-8b」と入れると、関連するモデルがずらっと出てきます。今回は2026年5月時点で比較的新しめの2つを試しました。

  • Qwen/Qwen3-8B-MLX-4bit(約4.4GB)
  • lmstudio-community/gemma-4-E4B-it-MLX-4bit(約6.4GB)

⚠️モデルを検索するときはMLXタグが付いているものを選ぶこと。GGUFモデルを選ぶとllama.cppバックエンドで動くので、MLXの速度恩恵は得られません。これ、最初やらかしました😅

MLXエンジンの選択と実行

モデルをロードするとき、エンジン設定を確認します。MLX形式のモデルを選んでいれば自動的にMLXエンジンが使われるはずですが、念のため確認しておくと安心です。

Qwen3-8B-MLX-4bitの結果

日本語で「ナレッジグラフとRAGの違いを説明してください」と聞いてみました。

  • 生成速度 ... 約 6.8 tokens/sec
  • メモリ消費 ... 約 5 GB
  • Memory Pressure ... 緑色(Chromeは閉じるのがよい)

正直、M1 Airでこの速度が出るなら使えなくもないかな思いました。

gemma-4-9b-it-4bit の結果

こちらは約5.5GBとやや大きめ。

  • 生成速度 ... 約 9 tokens/sec
  • メモリ消費 ... 約 7 GB
  • Memory Pressure ... 緑色(Chromeは閉じるのがよい)

9Bモデルになると、さすがに16GBだとギリギリ感が出てきます。他のアプリはほぼ全部閉じる必要がありました。ブラウザを開いたままだとスワップが発生して体感速度がガクッと落ちます🥲

⚠️ 16GBでのTips … モデルをロードする前にChromeやSlack等のメモリ食いアプリを必ず閉じることを推奨します。Activity Monitorの「メモリ」タブでMemory Pressureが緑であることを確認してからロードするのがベストです(Activity Monitorの起動方法は後述の # 6. 16GBでのメモリ管理 の章でまとめます)。

ローカルAPIサーバーとして使う

LM Studioの左メニューから「Local Server」を起動すると、http://localhost:1234/v1 でOpenAI互換APIが立ち上がります。これでロード済みのMLXモデルを、自作スクリプトやLangChain・LlamaIndex等の外部ツールからも叩けるようになります。

このあたりは後述するOllamaのAPIエンドポイントと同様の感覚で使える部分なので、今回は「外部ツールに繋ぎたい場合の口がある」という事実だけ押さえておけば十分かなと思います😊

LM Studio まとめ

  • ✅ 16GBでMLXが確実に動作する、最も安定した選択肢
  • ✅ GUIでのモデル管理が楽
  • ✅ OpenAI互換APIもワンクリック
  • ⚠️ 8B以上のモデルは16GBだとギリギリ
  • ⚠️ 並列リクエスト(continuous batching)はMLXエンジンは現時点では未対応

3. Ollama v0.23.2でMLXを試す

ここが今回一番試したかったところなんですよね。Ollamaの公式MLXプレビューは「32GB以上推奨」と案内されていましたが、小さいMLX系タグなら16GBでも動くはず……という賭け。

インストール

Macで Ollama を入れる場合、いまは公式サイト(ollama.com)から .dmg をダウンロードしてアプリをApplicationsにドラッグするのが一番素直で一般的です。最近のOllamaはメニューバー常駐アプリ+CLI+WebUIチャット画面が一式同梱されているので、これだけで一通りの環境が揃います😊

⚠️ Homebrewに慣れている方は brew install --cask ollama-app でも入りますが、結局のところ中身は公式 .dmg と同じものなので、初めて入れるなら公式ダウンロードのほうが分かりやすいです。 また、CLIだけほしい場合は brew install ollama という選択肢もありますが、今回はGUIとWebUIも使いたいのでアプリ版を採用しました。

アプリを起動するとメニューバーに🦙アイコンが常駐します。あわせてCLIも自動でPATHに通ります。

$ ollama --version
# ollama version is 0.23.2

5月10日時点ではv0.23.2が入りました。

MLX-bf16形式について

モデルを選ぶ前に、MLX-bf16形式の特徴を押さえておく必要があります。OllamaのMLX系タグ(*-mlx-bf16)は量子化なしのbf16で配布されているため、同じパラメータ数のq4_K_M(GGUF版)と比べて約2倍のサイズになります🤔

つまり「q4_K_Mで4GBだったモデルがMLX-bf16では8GB」みたいなことが普通に起きます。16GBメモリの環境では、この差がかなり効いてくるんですよね。

もうひとつ重要なのが、MLX版はVision(画像入力)に非対応で、テキスト入力のみという点です。同じモデルファミリーでも、OllamaのタグでMLX系は「Text input」、従来のGGUF系は「Text, Image input」と分かれているケースがあります。マルチモーダルの検証をしたい場合は通常のGGUF版を使う必要があります。

16GB環境でのモデル選定

OSや他のアプリで4〜6GB消費されることを考えると、モデルに割り当てられるのは実質約10GB。これを踏まえて、16GB機で動かせるMLXモデルを整理するとこうなります。

https://ollama.com/library/qwen3.5/tags https://ollama.com/library/gemma4/tags

🙆‍♂️余裕で動作する

モデル サイズ 備考
qwen3.5:0.8b-mlx-bf16 1.7GB 軽量・速度確認用
qwen3.5:2b-mlx-bf16 4.4GB 余裕で快適
qwen3.5:4b-mlx-bf16 9.1GB 実用上の最有力候補

🤔動作するがメモリギリギリ

モデル サイズ 備考
gemma4:e2b-mlx-bf16 10GB コンテキストを絞らないとスワップ発生

🙅‍♂️16GB機では非現実的

モデル サイズ 理由
gemma4:e4b-mlx-bf16 16GB モデル単体で物理メモリと同等
qwen3.5:9b-mlx-bf16 19GB 物理メモリ超過
qwen3.5:27b-mlx-bf16 以上 55GB〜 起動不可

これを見ると、16GB環境での実用上の最有力候補は qwen3.5:4b-mlx-bf16(9.1GB)ですね。日本語の表現力と速度のバランスが取れていて、ブログ執筆支援やプロンプト試行錯誤にも使えるサイズ感です😊

まずは0.8Bから動作確認

# まずは一番小さいところから
$ ollama run qwen3.5:0.8b-mlx-bf16 --verbose

👇️GUIでも動作します。

動きました🤩 0.8Bなので回答の質はそれなりですが、MLXバックエンドで動作していることは確認できました。

⚠️ ollama psPROCESSOR 列を見ると、GPUの使用率が確認できます。MLXで動いていれば、GPUの割合が高くなるはずです。

4Bモデルに挑戦

$ ollama run qwen3.5:4b-mlx-bf16 --verbose

4Bモデル(約9.1GB)は16GBの半分以上を占めるので、ちょっとドキドキしましたが……動きました😊

  • 生成速度 … 約 10 tokens/sec
  • メモリ消費 … 約 8 GB

ただし、この状態でブラウザを開くとMemory Pressureが赤に振れます。実質的にOllama専用マシンになる覚悟が必要です😅

Gemma 4のMLX版も試す

$ ollama run gemma4:e2b-mlx-bf16 --verbose

Gemma 4のe2b-mlx-bf16(約10GB)を試しました。E2BはGemma 4のPLE(Parameter-Level Efficiency)構造を持つ最小モデルで、MLXでMac上での動作を確認するには限界的なサイズです。

…が、さすがに10GBはギリギリでした😅 モデル単体で実質割当可能メモリ(約10GB)をほぼ使い切るので、起動前の準備が重要です😎

  1. ブラウザの不要タブを閉じる
  2. Slack, Discord などのチャットアプリを終了
  3. Activity Monitorで「メモリプレッシャー」がグリーンであることを確認
  4. num_ctx は 8192 を超えないこと

  5. 生成速度 … 約 6 tokens/sec

  6. メモリ消費 … 約 9 GB

日本語の質問にも一応答えてくれますが、2Bクラスだと回答の深さには限界がありますね🤔 ただ、Gemma 4のMLX版がM1 Air 16GBで動くこと自体は確認できました。「動くかどうかの検証」としては十分です。

⚠️ なお、gemma4:e4b-mlx-bf16 は16GBでモデル単体が物理メモリと同等のため、事実上起動不可です。Gemma 4をMLXで16GB機で試すなら e2b-mlx-bf16 一択かなと思います。

macOS固有の注意: 環境変数の設定方法

16GBで安定運用するために、Ollamaの環境変数を設定しておきたいのですが、ここにちょっとしたハマりポイントがあります。

macOS版の Ollama.applaunchd経由でデーモン常駐するため、シェルで export OLLAMA_XXX=...ollama run としてもデーモン側には効きません😅 サーバープロセス(デーモン)側に設定する必要があります。

👉️export、launchctl setenvの違い

⚠️ スコープ … export は現在のシェルとその子プロセスのみ、launchctl setenv は launchd 経由で起動される GUI アプリを含む macOS 全体に影響 ⚠️ 永続性 … どちらも揮発性。export は .zshrc 等に記述、launchctl setenv は LaunchAgent の plist で永続化が必要 ⚠️ 使い分け … ターミナル作業だけなら export、Dock/Finder から起動する GUI アプリにも変数を渡したいときは launchctl setenv

# 同時にロードするモデル数を1に制限(16GBでは必須)
launchctl setenv OLLAMA_MAX_LOADED_MODELS 1

# 並列リクエスト数を1に制限
launchctl setenv OLLAMA_NUM_PARALLEL 1

# アイドル時のアンロードまでの時間
launchctl setenv OLLAMA_KEEP_ALIVE 5m

# 設定反映のためOllama.appを終了→再起動

これにより、16GB機で起こりがちな「複数モデル同時ロードによるスワップ」を防ぐことができます。

⚠️ KVキャッシュの量子化(OLLAMA_KV_CACHE_TYPE=q8_0)も16GBでは有効な手段ですが、こちらもシェルのexportではなく launchctl setenv で設定する必要があります。Apple Metal バックエンドでは逆にパフォーマンスが落ちるケースも報告されているため、MLXバックエンドでの効果は実際に計測してから判断するのが無難です。

Modelfileで設定を恒久化する

毎回 ollama run の後に /set parameter ... を打つのが面倒な場合、Modelfileを作っておくとパラメータを固定化できます。

# qwen4-tuned.Modelfile
FROM qwen3.5:4b-mlx-bf16
PARAMETER num_ctx 16384
PARAMETER num_predict 2048
PARAMETER temperature 0.7
$ ollama create qwen4-tuned -f qwen4-tuned.Modelfile
$ ollama run qwen4-tuned

システムプロンプトも含めたい場合はこんな感じです:

FROM qwen3.5:4b-mlx-bf16
PARAMETER num_ctx 16384
PARAMETER num_predict 2048
PARAMETER temperature 0.7
SYSTEM """
あなたは技術ブログ執筆を支援するアシスタントです。
回答は日本語で、簡潔かつ実装可能なコード例を含めてください。
"""

ブログ記事の下書き支援や、特定のプロンプトパターンを繰り返し試す場合に便利です。「自分専用にチューンしたモデルエイリアス」を作れる感覚ですね😊

状態確認・管理コマンド

Ollamaの管理コマンドもまとめておきます。16GBでは「今何がロードされているか」「ストレージをどれだけ食っているか」の把握が特に重要です:

コマンド 用途
ollama list インストール済みモデル一覧
ollama ps 現在ロード中のモデルとメモリ使用量
ollama stop <model> 明示的にアンロード
ollama rm <model> モデル削除(ストレージ解放)
ollama show <model> モデル詳細情報の表示
# 使い終わったモデルを明示的にアンロード
$ ollama stop qwen3.5:4b-mlx-bf16

# 試して不要になったモデルを削除(SSD 256GBでは重要)
$ ollama rm qwen3.5:0.8b-mlx-bf16

⚠️ SSD 256GBの環境では、MLX-bf16モデルはサイズが大きめ(bf16なので)なので、試し終わったモデルは ollama rm でこまめに削除しておかないと、あっという間にストレージが圧迫されます。ollama list で定期的に確認するようにしてください。

Ollama 同梱のチャットUIで使う

最近のOllamaアプリにはチャットUIが本体に同梱されています。メニューバーの🦙アイコンから「Open Chat」(あるいは http://localhost:11434/ をブラウザで開く)でチャット画面が立ち上がるので、Open WebUIをDockerで別途立てる必要はもうありません🤗

以前は「OllamaサーバーをCLIで起動 → Docker で Open WebUI を立てて → そこから繋ぐ」というのが定番でしたが、「とりあえずGUIでチャットしたいだけ」というユーザーにとっては、Dockerを起動せず使えるようになったのはかなり大きいです。

⚠️ 外部ツール(LangChain、LlamaIndex、自作のRAGパイプラインなど)から呼びたい場合は、これまで通り http://localhost:11434/v1 のOpenAI互換APIエンドポイントも使えるので、用途に応じて使い分けが可能です。

Ollama まとめ

  • v0.23.2でMLXバックエンドの完成度が大幅に向上
  • 16GBでも小さいMLX系タグ(0.8B〜4B)なら動作する。実用上の限界は qwen3.5:4b-mlx-bf16
  • Modelfileで設定を恒久化でき、用途別のカスタムモデルエイリアスを作れる
  • ⚠️macOS版は launchctl setenv で環境変数を設定する必要あり(シェルのexportは効かない)
  • ⚠️gemma4:e2b-mlx-bf16(10GB)は動くがギリギリ。4B以上はブラウザ等との同居が厳しい

5. ハマりポイントまとめ

2つを順に触っていて、共通して引っかかったポイントとツール固有の地雷を整理しました😊

区分 ハマりポイント 回避策
LM Studio GGUF版モデルを選んでしまうとMLXの速度恩恵が得られない 検索時に「MLX」タグ付きを選ぶ
LM Studio MLXエンジンでは並列リクエスト(continuous batching)が未対応 並列を要するならllama.cppエンジン側に切り替える
Ollama OLLAMA_* 環境変数をシェルでexportしてもデーモンに効かない launchctl setenv で設定し、Ollama.appを再起動
Ollama ollama ps で MLX で動いているかが一見わからない PROCESSOR 列のGPU比率で判断する
Ollama MLX-bf16はq4_K_Mの約2倍のサイズで、ストレージを圧迫しやすい ollama rm で不要モデルをこまめに削除(SSD 256GBでは特に重要)
Ollama アプリ版とCLI版(brew)を両方入れると挙動が混乱 どちらか片方に統一する
共通 16GBではChromeなどのメモリ食いと同居でスワップ発生 ロード前に Memory Pressure が緑であることを確認
共通 9B以上のモデルは16GBだと現実的にきつい 4Bクラスまでで運用、9B以上は割り切ってクラウドへ

6. 16GBでのメモリ管理

今回一通り試して得られた、16GBでの体感をまとめておきます。

余裕がある(他のアプリと共存可能)

  • 0.8B〜2Bクラスのモデル(1.7〜4.4GB)
  • CLIから ollama run で1モデルだけ立てる構成が最も軽い

動くけど専用マシン状態になる

  • 4B〜7Bクラスのモデル(4.5〜9GB)
  • Chromeは閉じる、他のアプリは最小限に

厳しい〜無理

  • 9B以上のモデル
  • チャットUI + 7Bモデル + ブラウザ等の同時運行

⚠️ Activity Monitor の起動方法は、Spotlight 検索(⌘ + Space)で「Activity Monitor」または「アクティビティモニタ」と入力して Return が一番手軽です。 Finder から辿る場合は「アプリケーション → ユーティリティ → アクティビティモニタ.app」になります。Macリハビリ中の自分は、まずこれを覚えるところからでした😅


7. どれを選ぶ?

最終的に、自分の中での用途別の使い分けはこんな感じに落ち着きました。

「とりあえずMLXを体験したい」LM Studio。GUIでモデル検索・ダウンロード・チャットまで完結する。16GBでの利用が公式に想定されているので安心感がある。

「RAGパイプラインや外部ツールと繋ぎたい」Ollama。エコシステムの強さは圧倒的。v0.23.2でMLXの完成度も上がっており、小さいMLXモデルなら16GBでも問題なし。チャットUIも同梱なので、まずブラウザで動作確認してから外部ツールに繋ぐ、という流れがスムーズです🤗


おわりに

M1 MacBook Air 16GBという、ローカルLLMをやるにはかなり厳しいスペックですが、MLX対応によって「小さいモデルなら実用的に動く」という状況になってきたのは嬉しい展開😊

特にOllamaのMLX対応は、3月のプレビューから2ヶ月弱でv0.23.2まで進み、対応モデルのバリエーションもどんどん増えていて、開発の勢いがすごいなと感じました。

ただ、正直なところ16GBで快適に使えるのは4Bクラスまでで、7B以上のモデルを本格的に使うなら32GB以上のメモリは欲しい、というのが率直なところでしょうか。ローカルLLMを使っているので、M5 Max Mac Studioが出たらすぐに飛びつきたい気持ちはありますが、RAM不足で10月にずれ込むかもという話もあり、更に高額ということもあり…悩ましいところですね😅


参考