0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacBook Air 32GBでローカルLLMによるコード生成を評価してみた

Last updated at Posted at 2025-04-20

はじめに

最近話題のローカルLLM。オンラインでコード生成するのではなく、自分のマシンだけでAIにコードを書かせる試みに挑戦してみました。今回使ったのは、MacBook Air(M4・32GBメモリ)とroo codeです。「無料でローカルLLMを使ってプログラミングできたら最高!」というモチベーションで、さまざまなモデルを試してみました。
※ Qwen3-30B-a3Bが最強でした
MacBook Air 32GBでローカルLLMによるコード生成を評価してみた(2025/04 最終稿:Qwen3-30B-A3Bのlmxが最強)

結論:ローカルLLMでコード生成するには?

  • 14Bクラスのモデルが必要 → メモリ32GBでは厳しい
  • 8bit量子化が最適解 → モデルサイズと性能のバランスが取れる
  • M4で動かすならlmx化が必要&lmxで動かすならLM Studio一択
  • コード系モデルより、汎用LLMの方がうまく動く

よく動いたモデルの例:

  • phi4-8b(8bit量子化):バランスが良く、応答も素直
  • deepseek-r1-distill-qwen-14b(8bit量子化):やや回り道するが実行可能
  • Qwen2.5-Coder-14B-Instruct-8bit:重いが安定
  • meta-llama-3.1-8b-instruct:非常に軽快。応答も良好だがコードの質はやや劣る

評価方法

以下のタスクで、ローカルLLMのコード生成能力を評価しました。

  1. 現在開いているファイルに、Pythonのmain関数を追加してHello Worldを出力する
  2. scikit-learnのIrisデータを分類する関数を作成し、main関数から呼び出す
  3. 同一タスクを複数モデルで評価

プロンプトの指示を徐々に曖昧にしても、うまく対応できるかを確認。ループしたり意味不明なコードを出さないかがポイントです。

モデル別の所感

よく動いたモデル

  • phi4-8b(8bit量子化):それなりに重いが、安定して動く
  • deepseek-r1-distill-qwen-14b(8bit量子化):phi4より遠回り気味だが、動く
  • mlx-community/Qwen2.5-Coder-14B-Instruct-8bit:問題なく動くがphi4ほどではない
  • mlx-community/meta-llama-3.1-8b-instruct:軽くて速い!ただしコードの質は微妙

動作が厳しいモデル

  • phi4-mini系(通常/8bit量子化):ループしやすい
  • codegemma系gemma-3-12b-it-8bit:コンテキスト長不足
  • CodeLlama系 13bIBM Granite 20b:8bitでもサイズが大きすぎて読み込めず
  • mistral-nemo-instruct-2407@8bit/4bit:コンテキストが大きく取れるが、ループや実装不能が発生

roo codeの注意点

  • 実験的なコンテンツ挿入機能では、JSON形式が正しく出力されず動作しないことがある

プロンプトに追加したロール指定(試行錯誤中)

If you do modify code, keep it minimal and simple and short.
I will give you the tasks in Japanese, but when you think about the code, you can think in English.
In the code you output, please add lots of comments so that your intentions can be understood in Japanese.

→ ローカルLLMには複雑すぎてうまく機能しない印象でした

lmxモデルの作り方

MacでローカルLLMを動かすには、mlx形式のモデルを準備する必要があります。基本的にはpipで最新版のPyTorchをインストールしましょう(condaだと古い)。

モデルの変換と8bit量子化には以下のコマンドを使用します:

python -m mlx_lm.convert --hf-path microsoft/phi-4 \
  --mlx-path ~/.lmstudio/models/phi4/phi4-8b -q --q-bits 8

python -m mlx_lm.convert --hf-path deepseek-ai/DeepSeek-R1-Distill-Qwen-14B \
  --mlx-path ~/.lmstudio/models/DeepSeek-R1/DeepSeek-R1-Distill-Qwen-14B -q --q-bits 8

※.cacheに大量の一時ファイルが生成されるので、適宜削除してください。

まとめ

MacBook Air 32GBでローカルLLMを使うには、

  • 8bit量子化された14Bクラスのモデルを使う
  • mlx化をする
  • 汎用LLMをベースに
  • 軽量モデルはループや精度不足の傾向あり

ローカルLLMは夢があるけど、ハードルもまだ高い。でも工夫すれば、ある程度までは使えるようになる…そんな実感を得られた実験でした!

この記事の作成過程

評価作業メモをchatgptでqiita記事にした際のログ。
作業メモをメモ帳で作って、chatgptに修正してもらった。ほぼそのまま記事にしちゃった。
https://chatgpt.com/share/680452bf-20fc-8009-967e-9063231d1627

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?