小規模言語モデル(SLM)の紹介
近年、大規模言語モデル(LLM)に対比されるする形で小規模言語モデル(Small language model, SLM)が注目を浴びつつあります。今回はSLMを自作するためのアプローチを複数紹介します。なお、本記事では作成したモデルの評価実験は扱いません。
SLMとは
具体的にはどの程度のサイズのLLMをSLMと呼ぶのでしょうか?はっきりとした定義はありませんが、今回はモデルサイズ1~3B程度のモデルをSLMとします。
※人によっては70B以上と対比して7BをSLMと称する場合もあるので注意が必要です。
表1:代表的なSLMの一覧
モデル名 | 特徴 |
---|---|
microsoft/Phi-4-mini-instruct | サイズは3.8B |
Qwen/Qwen2.5-1.5B-Instruct | |
Qwen/Qwen2.5-Math-1.5B | 上記よりPretrain, Math SFT, GRPOを追加 |
deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B | DeepSeek-R1をQwen2.5-Math-1.5Bへ蒸留 |
SakanaAI/TinySwallow-1.5B-Instruct | TAIDによりQwen2.5-32Bから作成 |
sbintuitions/sarashina2.2-3b-instruct-v0.1 | 日本語事前学習済みモデル |
pfnet/plamo-2-1b | 日英事前学習済みモデル |
SLMの最大の利点は軽量さゆえ、ローカルPCやエッジデバイス等でも高速に推論が実行できる点です。基本的にはLLMにはスケーリング則が知られており, パラメタサイズの小さいSLMはLLMほど性能を期待することができません。しかし近年, SLMであっても学習や推論に注力することでベンチマークのスコアがLLM並(もしくはそれ以上)に向上する報告が増えてきています。
スクラッチからの学習
Qwen系列, Sarashina系列, PLaMo系列などがこれに該当します。
サイズが小さいモデルではありますが、スクラッチから大量の学習データを利用して学習するアプローチであり、当然コストがとてもかかります。
蒸留によるSLM開発事例紹介4つ
1. DeepSeek蒸留モデル
2025年1月、DeepSeek-R1の登場と、それに基づく蒸留モデルが手元で動かしやすいモデルサイズとして提供されたことは、大きなインパクトでした。
DeepSeek-R1-Distill-Qwen-1.5B は以下にあるように、Qwen/Qwen2.5-Math-1.5Bをベースとし、671Bを有するDeepSeek-R1が生成したサンプルを用いてファインチューニングされました。論文によると、蒸留時の学習手法はSFTのみで、RL(強化学習)は利用されていないようです。
DeepSeek-R1-Distill models are fine-tuned based on open-source models, using samples generated by DeepSeek-R1.
(Hugging Face Model Cardより)
(出典)DeepSeek-AI, DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via
Reinforcement Learning**,** arXiv epreprint 2501.12948, 2025.
このように大規模モデルの入出力(知識とも言える?)を小規模なモデルに転移させるアプローチを「蒸留(Distillation)」と呼びます。DeepSeek以外にも蒸留モデルが盛んに開発されています。その他事例を見ていきましょう。
2. Reasoningデータを用いたSFT(Supervised FineTuning)
Sky-T1では, reasoningモデルからサンプリングしたデータを学習データとしてSFTをすることで, reasoning能力を獲得するアプローチを提案しています。Sky-T1ではQWQがreasoningモデルの枠として採用されています。また、類似の取り組みとして、reasoningモデルとしてDeepseek蒸留モデルを使ったものがBespokeLabsにより提供されています。同様のアプローチを1.5BのSLMに適用したものを弊社EQUESが作成しました。
(出典)Sky-T1
表2:Reasoningデータを用いたSFT事例の比較
Organization | Model | Base model | Dataset | Reasoning model for sampling | Size |
---|---|---|---|---|---|
NovaSky-AI | Sky-T1 | Qwen2.5-32B-Instruct | 17k | QwQ | 32B |
BespokeLabs | Bespoke-Stratos | Qwen2.5-Instruct | Stratos-17k | DeepSeek | 32B, 7B |
EQUES | TinySwallow-Stratos | TinySwallow-Instruct | ↑の35k版 | 同上 | 1.5B |
3. Mathデータを用いたGRPO(Group Relative Policy Optimization)
GRPOはDeepSeek-R1により知名度が上がった強化学習手法です。これまで事前学習・継続学習の後にはSFTを施すことが定番であった中、GRPOによりSFTが不要とする説も出現しました。
OpenRSでは、GRPOにより1.5BのDeepSeek蒸留モデル(DeepSeek-R1-Distill-Qwen-1.5B )を訓練することで、数学の難関ベンチマークAIME24の性能が向上した(なんとo1-preview超)と報告しています。
(出典)Dang and Ngo, Reinforcement Learning for Reasoning in Small LLMs: What
Works and What Doesn’t, arXiv epreprint 2503.16219, 2025.
本研究では実験設定は以下の3つをトライしています。
- open-s1データ 18615件
- 難問と易問を混ぜ合わせた7000件 = open-s1データ3000件 + open-deepscalerデータ3000件 + 容易なDeepScaleR データ 1000件
- 2の設定から, accuracy rewardをcosine rewardに変更. またlanguage reward functionを避け, 代わりに“Reply in English only, do not use other languages”というプロンプトを追加。
結果としては実験2の設定がAMC23では、実験3の設定がAIME24やOlympiadBenchで優れたスコアを出しました。特にAIME24では, Llama3.1-70Bやo1-previewにも勝ったという報告は驚きです。
GRPOを独自に試すには, trl(Transformer Reinforcement Learning)ライブラリが利用できます。これを用いて1.5BのモデルをGRPOで学習する事例は他にもいくつかブログ等で公開されています。例えば、HuggingfaceはNuminaMathという数学データを用いたGRPOの例を解説しています(解説記事:https://huggingface.co/learn/cookbook/fine_tuning_llm_grpo_trl)。UnslothAIからはLong-contextのGRPOに対応する実装が共有されており、とても参考になります(参考記事:https://unsloth.ai/blog/grpo) 。 EQUESでもOpenRSの実験設定3に対応する実装を利用し、日本語版のcounterpartを作成してみました。
表3:1.5BのモデルをGRPOで学習した事例の比較
Organization | Model | Base model | Training steps | Dataset | Size |
---|---|---|---|---|---|
knoveleng | knoveleng/Open-RS3 | DeepSeek-R1-Distill-Qwen-1.5B | 50 | 7k samples | 1.5B |
EQUES | EQUES/OpenRS3-GRPO-ja | TinySwallow-1.5B-Instruct | 300 | kunishou/OpenMathInstruct-1-1.8m-ja | 1.5B |
4. TAID(Temporally Adaptive Interpolated Distillation for Efficient Knowledge Transfer in Language Models)
TAIDはSakanaAI社により公開された蒸留手法の一つです。
SakanaAI/TinySwallow-1.5B-Instruct はQwen2.5-32B-Instructを教師、Qwen2.5-1.5B-Instructを生徒としたTAIDにより作成されたモデルに対し、追加で日本語による対話能力向上を目的としてInstruction-tuningが施されたようです。
We used Qwen2.5-32B-Instruct as the teacher model and Qwen2.5-1.5B-Instruct as the student model. The model has been further instruction-tuned to enhance its ability to follow instructions and engage in conversations in Japanese.
(Hugging Face Model Cardより)
TAIDの論文を参照すると、Instruction-following taskにおいて、英語SLMの蒸留時にはinstruction形式であるultrachat_200kデータセットが利用されているようです。一方で日本語SLMであるTinySwallow系列については公式ブログ記事(リンク:https://sakana.ai/taid-jp/) を参照しても学習データが何であるかは明言されていないようでした。
EQUESでもTAIDを活用する試みとして、英語想定と日本語想定モデルを公開しています。ただし、教師モデルの方のサイズが14Bと原作より小さいことにご留意ください。
表4:TAIDの事例比較
Organization | Model | Teacher model | Student model | 備考 |
---|---|---|---|---|
SakanaAI | TinySwallow-1.5B | Qwen2.5-32B-Instruct | Qwen2.5-1.5B-Instruct | TAIDに加え, 日本語データによる継続事前学習あり。 |
EQUES | TinyDeepSeek-JP-1.5B | DeepSeek-R1-Distill-Qwen-14B-Japanese | TinySwallow-1.5B-Instruct | 日本語を想定。 |
EQUES | TinyDeepSeek-1.5B | deepseek-ai/DeepSeek-R1-Distill-Qwen-14B | Qwen2.5-1.5B-Instruct | 英語を想定。 |
まとめ
今回は特に1.5BのSLMに焦点を当て、大きく4種類の蒸留事例を紹介しました。蒸留のアプローチとしては、① SFT ② GRPO ③ TAID が候補と言えます。蒸留の際に利用するデータセットはMathデータもしくはReasoningデータのケースが論文では主流のようです。いずれの手法もtrlライブラリ等を利用することで手元でも手軽に試せる状況なので、様々な技術ブログで試みが公開されています。
どの手法で作られたモデルが実用上良いかは一概には言えません。ベンチマークとしてはAIMEをはじめとする高難度の数学タスクが利用されることが典型的ですが、実応用の際に意識するべきタスクは別にあるのかもしれません。本記事では評価実験は割愛していますが、SLMを「何でどう学習し」「何で評価し」「何に使うか」は今後のSLM普及フェーズにおいて大変重要なトピックであると考えられます。
おわりに
EQUESでは引き続き、「最先端の機械学習技術をあやつり社会の発展を加速する」をミッションに研究開発と社会実装に取り組んでいきます。一緒に事業を創出する仲間を募集しています。詳しくは以下をご覧ください。
EQUESは経産省・NEDO「GENIAC」の採択事業者として薬学分野・製薬業務に特化したLLMの開発、およびその社会実装に挑戦しています。この領域にご興味ある方のご連絡をお待ちしています。詳しくは以下もご覧ください。
Discussion