3行でいうと

  • MLXはMITライセンスのオープンソースで、Apple siliconの統一メモリを前提に設計されています。
  • mlx-lmは、LLMの生成、量子化、LoRAなどの微調整、ローカルのサーバーを一通り備えます。
  • Appleの2025年11月の記事では、M5はM4より最初の文字が出るまでが最大約4倍、生成は19〜27%速いとされています。
  • 同じ記事で、M5の効果を得るにはmacOS 26.2以上が必要とされています。

この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書や論文を読んでまとめたものです。

先に結論

見立てです。MLXは「Macで機械学習を動かすための、Apple純正に近い選択肢」と考えると、位置づけが分かりやすいと思います。llama.cppやOllamaのようにGGUFのファイルを読むのではなく、MLX用の形式のモデルを使います。そのかわり、微調整(LoRA)や量子化を同じ道具で続けて行えます。

見立てです。Macで文章生成を試すだけなら、他の選択肢(OllamaやLM Studioなど)でも足ります。MLXが効くのは、Macの上でモデルを自分のデータで微調整したいとき、またはPython/Swiftから直接MLXを組み込みたいときだと思います。ただし、これは公式資料の記述からの見立てで、実際の使い心地は分かりません。

前提:MLXとmlx-lmは何か

公式資料に書かれている特徴

MLX本体

mlx-lm

READMEとドキュメントから拾えた、できることです。

やりたいこと 道具・コマンド 読んだ範囲での内容
文章を生成する mlx_lm.generate、mlx_lm.chat 既定のモデルはmlx-community/Llama-3.2-3B-Instruct-4bit
量子化する mlx_lm.convert -q Hugging Face Hubへのアップロードもできる
精度を保つ量子化 mlx_lm.dwq、mlx_lm.awq、mlx_lm.dynamic_quant、mlx_lm.gptq いずれも調整用のデータを使う
微調整する mlx_lm.lora LoRA、DoRA、全体の3種類。量子化済みのモデルならQLoRAになる
ローカルのサーバー mlx_lm.server OpenAIのチャットAPIに似た窓口。本番向けではないと明記
微調整の結果を合体 mlx_lm.fuse GGUFへの書き出しオプションあり(対応モデルは限定)

WWDC25のセッション

AppleのWWDC25の「Get started with MLX for Apple silicon」は、MLXを「Apple Silicon専用に作られたオープンソースの配列フレームワーク」と紹介しています。LM StudioがMLXを使っていること、テキスト生成はMLX LMが担当すること、数千億パラメータ級の言語モデルの生成と微調整にも使えると述べていることを確認しました(微調整の実演は、このセッションにはありません)。量子化については、「ビット数が小さく、グループサイズが大きいほど、小さく速くなる」という趣旨の説明がありました。

量子化のコマンドと、微調整のメモリを減らす工夫

mlx-lmの4つの量子化法(LEARNED_QUANTS.mdより)

手法 内容 既定値の例
DWQ(蒸留重み量子化) 元のモデルを先生にして、量子化後のパラメータを微調整する。結果は良いが時間がかかる 4ビット、サンプル1024
AWQ 重みを量子化の前にスケーリングとクリップする。数分〜数時間 4ビット、サンプル32
動的量子化 層ごとの感度を見て、敏感な層に高い精度を割り当てる。最も速い 敏感な層は5ビット、他は4ビット
GPTQ 層の出力の二乗誤差が小さくなるように重みを決める。数分〜数時間 4ビット

文書は、これらを重ねて使えるとしています(例:動的量子化の後にDWQ)。

微調整のメモリを減らす方法(LORA.mdより)

  1. 量子化したモデルで学習する(QLoRA)。
  2. --batch-size(既定4)を減らし、--grad-accumulation-stepsで実質のバッチを保つ。
  3. --num-layers(既定16)を減らす。8や4にするとメモリは減るが、大きなデータでは質が下がるかもしれない。
  4. 長い例を短く分ける。
  5. --grad-checkpointで、計算を増やしてメモリを減らす。

文書には、32GBのMac(M1 Max)でMistral-7Bを--batch-size 1 --num-layers 4で学習し、1秒あたり約250トークンという例が載っています。これは文書の数字で、この記事では測っていません。

データの形式

学習用のtrain.jsonlが必要で、valid.jsonlは任意です。形式はchat、tools、completions、textで、自動判別されます。1つの例は1行に収めます。

M5での速さ:Appleの2025年11月の記事

Appleの機械学習研究のサイトは、2025年11月19日の記事で、M5チップのMacBook Pro(24GBのメモリ)とM4を、mlx_lm.generateで比べた結果を載せています。条件は、入力4096トークン、生成128トークンです。

読み方の前提を整理します。

記事の表(M5がM4の何倍か)は次のとおりです。

モデル TTFTの倍率 生成の倍率 メモリ(GB)
Qwen3-1.7B(BF16) 3.57 1.27 4.40
Qwen3-8B(BF16) 3.62 1.24 17.46
Qwen3-8B(4ビット) 3.97 1.24 5.61
Qwen3-14B(4ビット) 4.06 1.19 9.16
gpt-oss-20b(MXFP4) 3.33 1.24 12.08
Qwen3-30B-A3B(4ビット) 3.52 1.25 17.31

記事の説明は次のとおりです。

僕らの計算です。帯域の比は153÷120で約1.275。記事の「28%」と合っています。生成の倍率が1.19〜1.27に収まっているのは、帯域の比に近い範囲です。

見立てです。この表の倍率は「M4との比」で、1秒あたり何トークンかという絶対値は、読んだ範囲では記事に載っていませんでした。手元のMacでどのくらい出るかは、実際に動かさないと分かりません。

選ぶときの目安

見立てです。

状況 向いていそうなもの 理由(読んだ資料から)
Macで会話や要約を試したい Ollama、LM Studio、mlx-lm LM StudioはMLXを使っているとWWDC25で紹介
Macで自分のデータで微調整したい mlx-lm(LoRA/QLoRA) mlx_lm.loraが公式の道具として文書化されている
アプリに組み込みたい MLX Swift / Python iOSなどにもSwiftのAPIがある(WWDC25)
多人数に配りたい vLLMなど mlx_lm.serverは本番向けではない(公式の注意書き)

よくあるつまずき

気をつけること

出典

更新履歴