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によるコード生成を評価してみた(2025/04 最終稿:Qwen3-30B-A3Bのlmxが最強)

Posted at

はじめに

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

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

  • Qwen3-30B-A3Bのlmx(4q)がスピード品質ともに最強 → 3Bのみアクティブになるため早くてメモリも有利
  • MoE以外では14Bクラスのモデルが必要 → メモリ32GBでは厳しい
  • 8bit量子化が最適解 → モデルサイズと性能のバランスが取れる
  • M4で動かすならlmx化が必要&lmxで動かすならLM Studio一択
  • コード系モデルより、汎用LLMの方がうまく動く

なぜQwen3-30B-A3Bが良いか?

  • とにかく早い: A3Bが効いているのか、推論のスピードがとにかく早い(25.27 tok/sec)
  • メモリ消費も少ない: やはりA3Bの効果かメモリプレッシャーも低い
  • とにかく応答が賢い: コードが賢いというよりは一般的な推論がやはり30B級

よく動いたモデル:

  • Qwen3-30B-A3B(4bit量子化): スピードと品質両方で最強
  • Qwen3-14B(8bit量子化): やや回り道。コメントを日本語にしてくれない。。。
  • phi4-8q(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-mini系(通常/8bit量子化):ループしやすい
  • codegemma系gemma-3-12b-it-8bit:コンテキスト長不足
  • CodeLlama系 13bIBM Granite 20b:8bitでもサイズが大きすぎて読み込めず
  • mistral-nemo-instruct-2407@8bit/4bit:コンテキストが大きく取れるが、ループや実装不能が発生
  • phi4-reasonal系 考えすぎてなかなかコードを生成してくれない

roo codeの注意点

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

プロンプトに追加したロール指定

最近のモデルは長考しがちなので「Output only final answer.」を追加。

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.
Output only final answer.

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を使うには、

  • Qwen3-30B-A3Bの4bit量子化が最強
  • 他の一般的なモデルでは、8bit量子化された14Bクラスのモデルを使う
  • mlx化をする
  • 汎用LLMをベースに
  • 軽量モデルはループや精度不足の傾向あり

Qwen3-30B-A3Bであれば全てOK!な状態。

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?