概要
gemma3,qwq等々、24GB程度のVRAMで動き、かつ性能が高いとされるローカルLLMモデルがどんどん出てきています。それぞれ、英語や多言語のベンチマークをそれぞれ出してきて我こそが最高性能だ!って言いあっているわけですが、私がLLMに求めているものはコーディング支援。英語や中国語の性能が良くても、学術的にはそりゃすごいんでしょうけど、私にとってはあまり意味がないんですよね。特に中国語なんてさっぱり読めないし。(英語も読めないけれど・・・・)
ということで、日本語で数学(コーディング)能力が高いのは結局どれよ?という疑問に誰も答えてくれないので、自分でMGSMの日本語ベンチマークを動かして、ランキング形式で評価してみました。ベンチを動かすコードもgitに共有しているので、ぜひその他のいろいろなモデルで試してみてください。
ちなみに、結論から先にお伝えすると、時間に余裕があるときはreasoningモデルのqwq_bakeneko、余裕がないときやclineを使う際等はqwen2.5_bakeneko_v2を使うのがベストプラクティスになりそう。ベンチ結果や考察内容は↓をご確認ください。
対象モデルの選定
まずは評価に挙げる対象モデルですが、1つのベンチを回すのに1~3時間程度かかることを考えると、あまり膨大な数のベンチをとるわけにもいきません。そこで、VRAM24GB以下(RTX3090以上のモデルで回せる)モデルかつ、日本語、もしくはコーディング性能がいいと、ここ半年間で話題になったモデルを独断と偏見でリストアップしてみました。
まず外せないのがQwQとgemma-3の32bモデル。QwQは日本語性能がイマイチ(出力が英語になったり中国語になったりする)ので、rinnaさんの公開してくれているファインチューニング版も評価に加えました。qwen2.5-bakenekoに関しては数日前にv2が出たので、v1とv2の両方ともを、また、少し古いですがqwen2.5-coderとphi-4も念のため評価してみます。
さぁ、どれが一位になるかな・・・?
以下のモデル順は私が実験前に想定した評価順です。なんだかんだでQwQ-32bが強くて、僅差でモデルサイズの少し小さいgemma-3が続くかなという予想。phi-4は14bだしね・・・・。
ちなみにどのモデルもq4(_kmがあるものは_km)で評価をしています。この量子化方法ならぎりぎり24GBのVRAMに乗るはず。私の環境だとVRAM40GB乗っているので、24GBのVRAM単体に乗るかどうかは若干自信ないですが。
また、参考までにgemini2.0flashもベンチをとってみることにしました。これはローカルでは動かないので、参考として。
[評価モデル]
- QwQ-32b
- gemma-3-27b-it
- qwq-bakeneko-32b
- qwen2.5-bakeneko-32b-instruct-v2
- qwen2.5-bakeneko-32b-instruct
- Qwen2.5-Coder-32B-Instruct
- phi-4(14b)
- (参考)gemini2.0flash
- (追加)Mistral-Small-3.1-24B
ベンチマークの選定
日本語のベンチで真っ先に浮かぶのがshaberi3ベンチ(ShaberiベンチマークでLLMを評価する – soy-software)ですが、今回評価したいのはコーディング支援能力なので、ちょっとマッチしない。ということで、数学・論理問題のみのベンチを探していきました。
最初はJcommonsenseQAのmawps(日本語版)というベンチマークを使ったのですが、これだと問題が比較的簡単であまり差が出ない、かつ1000問もあるので手元で評価するには重すぎる。いろいろ試行錯誤した末、多言語数学性能を測定するMultilingual Grade School Math (MGSM) ベンチの"日本語部分だけ"を抽出してベンチを回すスクリプトを作って評価してみました。ベンチの一部だけを抽出するのは邪道だと怒られるかもしれませんが・・。
参考までに、mawpsとmgsmの問題を抜粋してみます。mawpsは単純な掛け算、引き算で答えが出るのに対して、mgsmのほうが段階的な思考が求められる分難しいですね。
(mawps(日本語版)) "question": "問題:山田は浜辺で70個の貝殻を見つけました。彼女は佐々木に貝殻をいくつかあげました。彼女は今27個の貝殻を持っています。山田は佐々木に何個の貝殻をあげましたか?\n解答:", "question": "問題:吉田はケーキを焼いています。レシピでは小麦粉が8カップ必要です。彼女はすでに2カップを入れました。彼女は何カップ追加する必要がありますか?\n解答:", "question": "問題:山崎の高校は今年、バスケットボールの試合を12回行いました。チームはほとんどの試合で優勝したが、4試合で敗北しました。彼らは何試合勝ちましたか?\n解答:",
mgsm (日本語部分) "question": "ジャネットのアヒルは1日に16個の卵を生みます。ジャネットは毎朝朝食の一環で3個を消費し、毎日4個使って友達向けにマフィンを焼きます。残りを市場で1個あたり2ドルの価格で売ります。彼女は毎日市場でいくら手に入れていますか?", "question": "ローブを作成するには、青色の繊維を2巻分、白色の繊維をその半分用いる必要があります。全体で何巻必要ですか?", "question": "ジョッシュは不動産の売買に挑戦してみることにしました。8万ドルで家を購入し、5万ドルかけて修繕しました。その結果、家の価格は150%分増えました。ジョッシュの利益はいくらでしょうか?",
ベンチマークの実行
Multilingual Grade School Math (MGSM) ベンチの"日本語部分だけ"を実行、なんて特殊なことをやっている例があまりないので、ベンチを実行するコードをClaudeと一緒に構築しました。
以下に置いておくので、もしもほかのモデルを試してみたい方は使ってみてください。使い方はpipでいくつかのライブラリを入れて実行するだけなのでごくシンプル。ollamaをバックエンドに使っています。
自分で書くと使い方等をまとめるのが面倒で放置されるけど、Clineで開発するとちゃんとドキュメント書いてくれるから気軽に共有できていいですね。
評価結果とランキング
さて、いよいよMGSM(日本語部分)ベンチを各モデルで実行してみた結果がこちらになります。評価指標は「正答率(Accuracy)」で、完全に正しい数値が出力されたものを正答としてカウントしています。総問題数は250問です。
順位 | モデル名 | 正答数 | 正答率 |
🥇 1位 | qwq-bakeneko-32b | 213 / 250 | 85.2% |
🥈 2位 | QwQ-32b | 208 / 250 | 83.2% |
🥉 3位 | qwen2.5-bakeneko-32b-instruct-v2 | 198 / 250 | 79.2% |
4位 | gemma-3-27b-it | 192 / 250 | 76.8% |
5位 | qwen2.5-bakeneko-32b-instruct | 188 / 250 | 75.2% |
(参考) | gemini2.0 flash | 188 / 250 | 75.2% |
6位 | Mistral-Small-3.1-24B | 187/250 | 74.8% |
7位 | phi-4 | 185 / 250 | 74.0% |
8位 | Qwen2.5-Coder-32B-Instruct | 171 / 250 | 68.4% |
予想に反して最も高い正答率を叩き出したのは、rinnaのqwq-bakeneko-32b!!rinnnaさんさすがです・・・。qwq-bakenekoは、ベースのQwQ-32bと比べてもわずかに上回っており、日本語ファインチューニングの効果がしっかり出ていることが見て取れます。ファインチューニングすると論理性能は落ちると一般的には言われていますが、日本語の読解能力の向上の影響の方が大きかったということでしょうか。
そして、qwen2.5-bakeneko-32b-instruct-v2の性能もすごいですね。v1はgemma-3以下、何ならphi-4と同等の性能なのに、一気にgemma-3を抜き去りました。
このあたりの上位グループはgemini2.0 flashを抜いているので、gemini2.0 flashの無料枠を使ってclineを動かすくらいならば、ローカルLLMを使った方が良いですね。
下位グループとしては、phi-4はパラメータ数が少ない14bながらも堅実な結果。gemma-3-27b-itはもう少し性能が出ると思いましたがさほどでもなかったですね。そしてphi-4よりも下のQwen2.5-Coder君、君はもう少しやってくれると思っていたのですが・・・。
結論
2025/3/21現在、VRAM使用率24GB以下で動く日本語ローカルLLMの数学能力を測定した結果、qwq-bakeneko-32bが一番高性能という結果になりました。
コーディングに使う際は、時間に余裕があるときはreasoningモデルのqwq_bakeneko、余裕がないときやclineを使う際等はqwen2.5_bakeneko_v2を使うのがよさそうですね。厳密には、必ずしも数学性能とコーディング性能が一致するとは限りませんが、ある程度の指標にはなるかと思います。