Joy to the world

とある中小企業のしがない技術者でクリスチャンな人が書く日記。実はメビウス症候群当事者だったり、統合失調症のパートナーがいたりする。

まともに日本語が話せそうなSLMを探す

前の記事でローカルLLMを試してみたが、確かに4Bくらいでもそれなりには動くものの、しょぼいGPUやiGPUではちょっと厳しい。Jan-v1みたいなモデルでWebスクレイピングをして放置って用途ならこれでもいいが、文章要約とかあらかじめ用意されているドキュメントのRAG用途としてはちょっときつい。

そういうわけで、もう少し小さめのモデルで、要約とかRAGができるSLMを探してみた。

Gemma-2-2B-it Q5_K_S

速度は許容範囲だと思う。要約についてもそんなにシッチャカメッチャカな内容にならず、それなりに使えると思う。日本語で返せと言っても英語で返してくることもあるが、改めて日本語で話せといえば日本語で返してくれる。

RAGについては、まあ使えなくは無いがあんまり性能が良くない。このモデルの主な用途としては、コンテキストウィンドウに入る範囲での文章の要約といったところだろうか。

Jan-v1-4b

リーズニングモデルなのでThinking時間が長いが、生成速度としてはまずまず。

ツール使用がうまく、Webスクレイピングなども問題なく動作するが、時間がかかるので自分でググってRAGに突っ込むほうが速い気がする。これはPerplexityとか他の一般的なLLMでも同じだけど、Webスクレイピングした結果のまとめはだいたい一般的な内容になるので、それが目的でない場合は自分でコンテキストを用意したほうが良いと思う。

MCP連携には使えると思うので、ローカルLLMでMCPを使いたい場合にはこのモデルを使うのがいいと思う。 Context7とかMicrosoft Learn MCP Serverを使って、RAG的な使い方を拡張するのも良さげ。

あとはFirecrawl使うとかもあるけど、どのみちコンテキストウィンドウが小さいのでわざわざ課金して使うのも微妙かなとも思う。そもそもFirecrawlに似た機能はAnything LLMにあるので、使わないかも。

Qwen2.5-1.5b-instruct Q8_0

回答は速いが結果としては微妙な感じ。あえてこれを使う必要性はあんまり感じない。 やっぱりリーズニングモデルがいいなぁ。

Qwen3-4b-2507 Q4_K_M

回答速度としてはまずまず。RAG性能も特に問題はないので、単純にRAGだけしたいならこれで十分だろう。 ただ、指示に対してなんかよくわからん行動を取る(文章を要約しろと言っているのにWeb検索し始める)事があるので、信頼性については微妙。

ツール使用には問題なさそうなので、Webスクレイピングの非リーズニングモデルとしては使えそう。

ちょっと重めの処理で、非リーズニングモデルにはこれがいいのでは。

Qwen3 4B Thinking 2507 Q4_K_M

速度としてはJan-v1-4bとあまり変わらない感じがする。ツール使用も特に問題ない。

というのも、Jan-v1-4b自体がこのモデルの強化学習版らしいので、あえてこっちを使う理由はあんまり感じない。Jan-v1-4bでうまくいかないツール利用があったらこっちを使ってみてもいいかもしれない。

性能としては特に問題ない。

Gemma 3 4B Q4_K_M

今までのモデルはマルチモーダルではなかったが、このモデルはVisionモデルなので画像が読み込める。

試しに画像を読み込ませてその説明をさせてみたが、まあ概ね問題無いように思える。 ただ、GeminiでもそうだがGoogleのAIはなぜかツール使用が弱い。このモデルは画像の説明をさせるために使うのがいいだろう。

www.mhlw.go.jp

試しに上記のグラフの説明をさせてみた。

日本人の人口は近年減少傾向を示しています。2070年までに総人口は約9,000万人を下回ると予測されています。グラフを見ると、いくつかの重要なポイントがあります。

まず、15歳から64歳の労働人口が大きく増加し、ピークを迎えました。2020年には7,589万人と最多でした。しかし、高齢化が進み、65歳以上の人口は着実に増加しています。2070年までに12,615万人となる見込みです。

また、14歳以下の人口は減少傾向にあります。

グラフの横軸は年で、縦軸は人口(万人)を示しています。グラフから、特に1960年代から1980年代にかけて人口が急増し、その後減少傾向にあることがわかります。高齢化と出生率の低下により、人口減少が進んでいる現状です。

文字は読めているようだが、ところどころ文章がおかしいのと、言っていることもおかしい。やはりリーズニングモデルの方がよさげ。

Qwen2 VL 2B Instruct Q4_K_S

こっちについても、Gemma 3 4Bとあまり変わらないかなと思う。やはりグラフを説明させるのはちょっと重荷だと思う。 ただ、日本語はちゃんと読めてるみたい。

まとめ

試しに上記の文章を「Qwen3 4B Thinking 2507 Q4_K_M」でまとめた文章を共有しておく。日本語が多少微妙な部分があるものの、意味理解としては問題ないので十分使えるとは思う。

1. テキスト要約(コンテキストウィンドウ内)

モデル: Gemma-2-2B-it Q5_K_S
説明: 速度が適切で、短いテキストの要約に十分に使えます。日本語で要求しても時々英語で返す場合がありますが、全体的に内容がまとまりやすいです。


2. ウェブスクレイピングとツールの利用(MCP連携)

モデル: Jan-v1-4b
説明: ツールの使用がしっかりしており、MCP連携(例: Microsoft Learn MCP Server)に適しています。ただし、推論時間が長いため、速度が優先される場合は他のモデルが望ましい場合もあります。


3. RAG(検索拡張生成)

モデル: Qwen3-4b-2507 Q4_K_M
説明: 速度とRAGの性能がバランスよく、非推論モデルとして最適です。意図した動作をしやすく、Webスクレイピングの結果をもとにしたRAGに適しています。


4. 多モーダルタスク(画像・グラフの説明)

モデル: Gemma 3 4B Q4_K_M
説明: 画像やグラフの説明に適していますが、時々誤った情報が含まれます。日本語の要件がある場合は、Qwen2 VL 2B Instruct Q4_K_Sがより正確に日本語を扱うためおすすめです。


5. 日本語特化のタスク

モデル: Qwen2 VL 2B Instruct Q4_K_S
説明: 日本語の処理が正確で、画像説明に特に適しています。日本語の要件がある場合は、このモデルが最も信頼性が高い選択肢です。


その他のモデルの特徴

  • Qwen2.5-1.5b-instruct Q8_0: 速度が遅く、結果が微妙です。一般的な用途にはあまり適しません。
  • Qwen3 4B Thinking 2507 Q4_K_M: Jan-v1-4bとほぼ同じ性能ですが、特に優位性はありません。Jan-v1-4bがうまく動作しない場合は、このモデルを試すことができます。

上記のモデルは、用途ごとに最適なバランスを考慮し、ローカル環境での実行にも適しています。日本語の処理や多モーダルタスクに特化したモデルを選ぶことで、より効果的に活用できます。

最終的なモデル一覧