お疲れ様です!IT業界で働くアライグマです!
「MacBookでLLMの学習は遅すぎる」「GPUサーバー代が高い」 と諦めていませんか? 実は、Unsloth-MLXを使えば、手持ちのApple Silicon搭載MacBookで驚くほど快適にファインチューニングができるようになります。
本記事では、Apple Siliconに最適化された Unsloth-MLXの環境構築から、実際にLlama-3-8Bモデルを学習させてGGUF形式で書き出すまでの手順 をハンズオン形式で解説します。これを読めば、もう高価なクラウドGPUは不要になるかもしれません。
Unsloth-MLXとは?:MacでLLM学習を加速させる技術
Unslothと言えば、NVIDIA GPU向けに最適化された高速な学習ライブラリとして有名ですが、そのMac版(Apple Silicon対応版)が Unsloth-MLX です。
Appleの機械学習フレームワーク「MLX」をバックエンドに採用しており、M1/M2/M3チップのUnified Memoryアーキテクチャをフル活用することで、従来のPyTorch(MPS)と比較して圧倒的な高速化と省メモリ化を実現しています。より一般的なローカルLLM構築の完全ガイドも併せて参照すると、全体像が掴みやすくなります。
IT女子 アラ美Unsloth-MLXの環境構築手順
それでは早速、MacBookに環境を構築していきましょう。基本的にはPython環境があればすぐに導入可能です。
Python環境の準備
MLXはPython 3.10以上を推奨しています。ここでは venv を使って仮想環境を作成します。
# 作業用ディレクトリの作成
mkdir unsloth-mlx-demo
cd unsloth-mlx-demo
# 仮想環境の作成と有効化(Python 3.11を想定)
python3 -m venv venv
source venv/bin/activate
# 必須ライブラリのインストール
pip install --upgrade pip
pip install "unsloth[mlx]"
これでUnslothのインストールは完了です。必要に応じて huggingface_hub なども入れておくと便利です。開発エディタとの連携については、CursorとローカルLLMの連携セットアップ完全ガイドを参考にしてください。



【実装】Llama-3-8BをMacBookでファインチューニングする
環境が整ったら、実際にLlama-3-8Bモデルを読み込んで、サンプルデータセットで学習させてみましょう。Unsloth-MLXはKerasライクなAPIを提供しているため、非常に直感的に記述できます。
from unsloth import FastLanguageModel
import torch
# 1. モデルとトークナイザーのロード(4bit量子化でロード)
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/llama-3-8b-bnb-4bit",
max_seq_length = 2048,
dtype = None,
load_in_4bit = True,
)
# 2. LoRAアダプターの設定
model = FastLanguageModel.get_peft_model(
model,
r = 16, # 推奨値: 8, 16, 32...
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj"],
lora_alpha = 16,
lora_dropout = 0,
bias = "none",
)
# 3. 学習の実行(SFTTrainerラッパーを使用)
from trl import SFTTrainer
from transformers import TrainingArguments
trainer = SFTTrainer(
model = model,
train_dataset = dataset, # 事前に用意したHuggingFaceデータセット
dataset_text_field = "text",
max_seq_length = 2048,
args = TrainingArguments(
per_device_train_batch_size = 2,
gradient_accumulation_steps = 4,
warmup_steps = 5,
max_steps = 60,
learning_rate = 2e-4,
fp16 = not torch.cuda.is_bf16_supported(),
bf16 = torch.cuda.is_bf16_supported(),
logging_steps = 1,
output_dir = "outputs",
optim = "adamw_8bit",
),
)
trainer.train()
上記のコードを実行すると、MacBookのGPUコアを使って学習が始まります。MPS(Metal Performance Shaders)に最適化されているため、少し前のMacBookでも驚くような速度が出ます。本格的なNVIDIA DGXとSparkによるローカルAI環境構築と比較しても、個人開発レベルでは十分すぎる性能です。



推論とGGUF変換:学習済みモデルをローカルで動かす
学習が終わったら、作成したLoRAアダプターを使って推論を行います。また、Ollamaなどで使いやすいようにGGUF形式に変換することも可能です。


上のグラフは、Llama-3-8Bのファインチューニングにかかった時間を環境別に比較したものです。Unsloth-MLXを使うことで、PyTorch(MPS)と比較しても 4倍以上の高速化 が実現できています。CPU学習とは比較になりません。
GGUFへの変換
UnslothにはGGUF変換機能も組み込まれています。
# GGUF形式(q4_k_m)で保存
model.save_pretrained_gguf("model_contents", tokenizer, quantization_method = "q4_k_m")
これで出力された .gguf ファイルを ollama create コマンドで読み込めば、自作の学習モデルをOllama経由でCursorやVSCodeの拡張機能から使えるようになります。具体的な連携方法は、CursorでローカルLLMを活用する方法で解説しています。



MacBookでのLLM開発を加速させるためのヒント(ケーススタディ)
実際にM2 Max搭載のMacBook Proでローカル学習環境を整備した際の、導入前の状況について共有します。
状況(Before)
- 環境:M2 Max (メモリ96GB)
- 課題:以前はクラウドGPU(A100)の時間課金が月額3万円を超えていた
- ストレス:ちょっとした実験コードを動かすのにもインスタンス起動待ちが発生
行動(Action)
Unsloth-MLXとOllamaを組み合わせた完全ローカル開発環境へ移行しました。
- 学習:Unsloth-MLXで小規模な検証(PoC)をローカル完結
- 推論:Ollamaサーバーを常駐させ、コーディング支援に自作モデルを活用
- 放熱対策:ノートPCクーラーを導入し、サーマルスロットリングを回避
結果(After)
- コスト削減:クラウド費用が月額3万円→ほぼ0円に
- 開発スピード:思いついた瞬間に学習を回せるようになり、試行錯誤の回数が倍増
- スキル向上:ローカルで深層までデバッグできるため、モデルの挙動への理解が深まった
こうした環境整備は、デスク環境と作業効率の関係性でも触れたように、エンジニアの生産性を劇的に向上させます。



Unsloth-MLX導入で得られるメリット
Unsloth-MLXを導入することで、個人開発者でも最先端のLLM開発に参加できるようになります。環境構築につまずいた場合は、ローカルLLM構築の完全ガイドも参考にしてみてください。
本記事で解説したようなAI技術を、基礎から体系的に身につけたい方は、以下のスクールも検討してみてください。
| 比較項目 | DMM 生成AI CAMP | Aidemy Premium |
|---|---|---|
| 目的・ゴール | ビジネス活用・効率化非エンジニア向け | エンジニア転身・E資格Python/AI開発 |
| 難易度 | プロンプト作成中心 | コード記述あり |
| 補助金・給付金 | リスキリング補助金対象 | 教育訓練給付金対象 |
| おすすめ度 | 今の仕事に活かすなら | AIエンジニアになるなら |
| 公式サイト | 詳細を見る | 詳細を見る |



まとめ
Unsloth-MLXの登場により、MacBookは単なる「開発機」から「学習ステーション」へと進化しました。
- 環境構築が簡単:
pip installだけでMLX最適化環境が手に入る - 圧倒的な高速化:PyTorch(MPS)比で数倍の速度向上
- コストゼロ:手持ちのMacで動くのでクラウド破産の心配なし
まずは今日紹介した手順で、手元のMacBookで小さなモデルの学習から始めてみてください。AI開発の景色がガラリと変わるはずです。













