llm-jp-4-math-lion
ファインチューニングコンペ LLM 2026 — 数学タスク(オープン枠)提出モデル
日本の中学・高校レベルの数学問題に対する推論精度を最大化するために、2段階のSFT(Supervised Fine-Tuning)と推論時のSelf-Consistencyを組み合わせたモデルです。
モデル概要
項目 詳細 ベースモデル LLM-JP 4 継続事前学習済みモデル(llm-jp/llm-jp-4-8b-base) 学習手法 2段階 SFT(Stage 1: Full Fine-Tuning → Stage 2: LoRA) 学習データ 合成データ 約160万件(自作 + LLM蒸留) 推論手法 vLLM + \boxed{} 形式出力(Self-Consistency対応) 開発ベンチマーク精度 95%(運営配布100問) コンペ ファインチューニングコンペ LLM 2026 数学タスク・オープン枠
ベースモデルの選定
運営から提供された3つのベースモデル候補を開発用ベンチマーク100問で評価し、以下の結果を得ました。
モデル 精度 事前学習のみ 7% 継続事前学習済み 48% インストラクションチューニング済み 44%
継続事前学習とSFTを組み合わせる方針だったため、追加の継続事前学習が行いやすく精度も最も高かった「継続事前学習済みモデル」を選定しました。
学習データセット
2種類のデータセットを作成し、段階的にモデルへ学習させています。
データセット1: ベンチマーク指向型データ(約60万件)
評価ベンチマークの出題形式・分野を意識して作成したデータセットです。
問題生成 : LLMは不使用。日本語の設問テンプレートを手動で作成し、ランダムに組み合わせるロジックで生成。計算部分はSymPyを使用して式と回答の整合性を保証。
カバー範囲 : 中学・高校数学の評価対象カテゴリを網羅。約3万件のユニークな問題・回答ペアを作成。
CoT付与 : 各問題に対して Qwen/Qwen3-235B-A22B-Instruct-2507 で20個のCoTを生成(Temperature / Top-p制御で多様性を確保)。生成されたCoTと正解を突き合わせ、正確なもののみを採用。
最終データ量 : 約60万件(3万問 × 正確なCoT)
データセット2: LLM完全生成型データ(約100万件)
問題・CoTの両方をLLMで生成した蒸留データセットです。NVIDIAの数学タスク精度向上に関する研究を参考にしています。
問題生成 : Qwen/Qwen3-235B-A22B-Instruct-2507 を使用。日本の中学・高校の数学カリキュラムに準拠した問題を全カテゴリで約5万件生成。ベンチマークとは独立した出題で汎化性能を意識。
回答・CoT生成 : Qwen/Qwen3-235B-A22B-Instruct-2507 を使用。各問題に対して20回の試行を行い、マジョリティ・ボーティング(多数決)で80%以上の一致率が得られたもののみを採用。
最終データ量 : 約100万件(5万問 × 正確なCoT)
学習手法
Stage 1: Full Fine-Tuning
汎用的な数学推論能力の獲得を目的とし、LLM完全生成型データセット(約100万件:azuki-digital/ft-llm-2026-synthetic-ja-math-qwen-235b-v2)でフルパラメータのファインチューニングを実施。
パラメータ 値 手法 Full Fine-Tuning 学習率 2e-5 データ LLM完全生成型データ(~100万件)
Stage 2: LoRA Fine-Tuning
ベンチマークの出題形式への適応を目的とし、ベンチマーク指向型データセット(約60万件:azuki-digital/ft-llm-2026-synthetic-ja-math-qwen-235b-v1)でLoRAによる追加学習を実施。
パラメータ 値 手法 LoRA ランク (r) 64 Alpha (α) 128 ドロップアウト 0.03 学習率 1e-4 データ ベンチマーク指向型データ(~60万件)
使い方
プロンプトテンプレート
本モデルは以下のプロンプトテンプレートで学習・推論を行っています。出力は必ず \boxed{} で最終回答を囲む形式になります。
次の数学の問題を解いてください。
【厳守】
- 数式はLaTeXで書く。
- 最後の答えは必ず \boxed{} で1回だけ囲む。
問題:
{problem}
解答:
推論コード(vLLM)
1 from vllm import LLM , SamplingParams
2
3 PROMPT_TEMPLATE = """\
4 次の数学の問題を解いてください。
5
6 【厳守】
7 - 数式はLaTeXで書く。
8 - 最後の答えは必ず \\boxed{{}} で1回だけ囲む。
9
10 問題:
11 {problem}
12
13 解答:
14 """
15
16 model_path = "azuki-digital/llm-jp-4-math-lion"
17 llm = LLM ( model = model_path , trust_remote_code = True )
18
19 sampling_params = SamplingParams (
20 temperature = 0.0 ,
21 top_p = 1.0 ,
22 max_tokens = 4096 ,
23 )
24
25 problem = "2次方程式 x^2 - 5x + 6 = 0 を解きなさい。"
26 prompt = PROMPT_TEMPLATE . format ( problem = problem )
27
28 outputs = llm . generate ( [ prompt ] , sampling_params = sampling_params )
29 print ( outputs [ 0 ] . outputs [ 0 ] . text )
回答の抽出
モデルの出力から最終回答を取得するには、\boxed{} の中身を抽出してください。
1 import re
2
3 def extract_answer ( text : str ) - > str :
4 """text から最後の \\boxed{...} の中身を抽出する"""
5 key = r"\boxed{"
6 start = text . rfind ( key )
7 if start == - 1 :
8 return ""
9 i = start + len ( key )
10 depth = 1
11 out_chars = [ ]
12 while i < len ( text ) :
13 ch = text [ i ]
14 if ch == "{" :
15 depth += 1
16 out_chars . append ( ch )
17 elif ch == "}" :
18 depth -= 1
19 if depth == 0 :
20 return "" . join ( out_chars ) . strip ( )
21 out_chars . append ( ch )
22 else :
23 out_chars . append ( ch )
24 i += 1
25 return ""
推論時のTips
Self-Consistency(オプション) : 精度をさらに向上させたい場合、同一問題に対して複数回(例: 20回)推論を行い、Math-Verify で回答を比較した上でマジョリティ・ボーティングを行う手法が有効です。学習に使用しなかった外部ベンチマークでは、この手法により精度が顕著に向上する傾向が確認されました。
リトライ : \boxed{} が出力に含まれない場合は、同じ問題で再度推論を行うことで回答を得られる場合があります。
評価結果
ベンチマーク 精度 備考 開発用ベンチマーク(100問) 95% 運営配布の評価データ
参考として、Qwen/Qwen3-30B-A3B-Instruct-2507 の同ベンチマークに対する精度は84%であり、本モデルはこれを上回る精度を達成しています。
制限事項
日本の中学・高校レベルの数学問題に特化して学習しているため、それ以外の領域での性能は保証されません。
合成データ(Qwen3による蒸留データ)を中心に学習しているため、学習データの分布から外れるパターンの問題では精度が低下する可能性があります。
継続事前学習は当初計画していたものの、リソース・スケジュールの制約により未実施です。
ライセンス
Apache License 2.0
引用
1 @misc{llm-jp-4-math-lion,
2 title={llm-jp-4-math-lion: Two-Stage SFT with Self-Consistency for Japanese Math Reasoning},
3 author={azuki-digital},
4 year={2026},
5 url={https://huggingface.co/azuki-digital/llm-jp-4-math-lion}
6 }