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?

Qwen3モデル評価:MacBook Air M4(32GB)でのローカルLLMコード生成検証

Last updated at Posted at 2025-05-01

はじめに

前回は phi4-8B や Qwen2.5-Coder-14B-Instruct などを対象に、MacBook Air (M4・32GB) 上で Roo Code と LM Studio/Ollama を使ったコード生成性能を評価しました。今回は、最新の Qwen3 系列モデル を中心に、同じタスクを用い評価し、前回との 差分 をまとめます。
※ Qwen3-30B-a3Bが最強でした
MacBook Air 32GBでローカルLLMによるコード生成を評価してみた(2025/04 最終稿:Qwen3-30B-A3Bのlmxが最強)

追加評価

  • /nothinkをプロンプトにつけると余計な回り道せずにそれなりのコードを出力する様になりました。
  • lmstudio-community/Qwen3-30B-A3B-MLX-4bitが品質、スピードともに最強!/nothink要らず。かなり早い

前回評価の振り返り

  • 14B クラスモデル が最低限必要 (32GB 環境)
  • 8bit 量子化 (Q4_0/Q8_0) がメモリ・性能バランスで最適
  • M4 上では MLX 化 + LM Studio が安定
  • コード系専用モデル より汎用モデルのほうが応答品質良好
  • よく動いたモデル:phi4-8b, deepseek-r1-distill-qwen-14b, Qwen2.5-Coder-14B-Instruct, meta-llama-3.1-8b-instruct
  • 動作が厳しいモデル:phi4-mini系, codegemma系, CodeLlama13b, IBM Granite20b, mistral-nemo-instruct-2407

今回の評価方法

評価手法は前回と同一:

・既存ファイルに Python の main 関数を追加し Hello World 出力
・scikit-learn の Iris 分類関数を作成し main 関数から呼び出し
・プロンプトを徐々に曖昧化し、複数モデルで出力の正しさを確認

具体的なプロンプトは下記。

・今開いているファイルにpythonのmain関数を追加してhello worldを出力するようにして
・scikit-learnのirisを分類する関数を作ってmain関数から呼び出すようにして
・複数モデルで評価して

Roo Code と Ollama MPS/MLX-LM それぞれで動作を比較。

評価対象モデル

  1. Qwen3-MoE 系
    • Unsloth Dynamic 2.0 量子化モデル (Ollama MPS)を評価
    • Qwen3-30B-A3B (A3B: 推論時に約3.3B 活性化) → MoE 非対応で MLX-LM 変換不可
    • ollamaをMPS対応バージョンにバージョンアップして評価(8Bとか4Bとか)
    • unsloth/Qwen3-8B:Q4_K_XL / unsloth/Qwen3-4B:Q4_K_XL → 出力前に長い thinking mode を生成し、待ち切れず
  2. Dense 系 Qwen3
    • qwen3-1.7B → ループ多発
    • qwen3-4B → Roo Code の diff 出力形式にならず
    • qwen3-8B → 複雑タスクで正しいコード生成も diff 破壊
    • qwen3-14B → 正常動作、メモリ約9GB、生成高速だが思考ブロック多め

実験環境

  • マシン:MacBook Air M4, 32GB RAM
  • Roo Code:v3.15.0
  • LM Studio:MLX-LM エンジン
  • Ollama:v0.5.8 以上 (MPS 対応)
  • 量子化:INT4 (Q4_0/Q4_K_XL), INT8 (Q8_0)

結果と所感

  • 結局14Bモデルを量子化するのが一番安定する。Qwen3はコードの質がよい気がする。
  • MoEモデル (A3B):変換も推論も不可。Dense モデル必須。
  • qwen3-1.7B:軽量だがループ多発で実用性低い
  • qwen3-4B/8B:コード生成そのものは高品質も、Roo Code 連携で diff 出力不可
  • qwen3-14B:メモリ余裕、生成速度良好、コード品質高いが verbosity が過剰
  • UD2.0 (Q4_K_XL):精度高いが MPS 上では待ち切れないほど遅い

前回評価との主な差分

項目 前回 今回
モデル群 phi4, Qwen2.5 系 Qwen3 系 (MoE/Dense 両対応)
量子化 Q4_0/Q8_0 Q4_K_XL (Dynamic 2.0), INT4/INT8
環境 32GB RAM, LM Studio + Roo Code 32GB RAM, MPS(Ollama) / LM Studio + Roo Code
Roo Code 連携可否 diff 出力 OK 14B以上で出力OK
推論速度 phi4-8B: 実用 Qwen3-14B: 高速だが思考冗長

まとめと今後の展望

  • Dense Qwen3-14B の8bit量子化が最もバランス良好:メモリ/速度/品質
  • UD2.0 動的量子化 は精度良好だが、ollama(MPS:非mlx)でしか動かずとても遅い
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?