はじめに
松尾研LLM開発コンペ2025にチームRAMENのデータ班メンバーとして参加しました。Phase1(予選)、Phase2(決勝)で行った、LLM推論を用いたデータセットの難易度フィルターとそのパイプラインを使ったDPOデータセットの作成についてまとめます。
LLMの推論能力を伸ばすためのデータセット
LLMの推論能力を伸ばすためには適切な難易度のデータで学習させることが必要で、簡単すぎる問題をいくら事後学習させても、その能力は伸びないことが分かっている(Ji et al., Arxiv, 2025 他)。
また、LLMの推論能力は一般的にモデル規模と相関が高いことから、規模の異なるモデルに同じ問題を解かせた場合、小規模モデルでも解ける問題は容易な問題、小規模モデルでは解けないが大規模モデルには解ける問題は中程度の難易度の問題、大規模モデルでも解けない問題は高難度の問題、という形で段階的に難易度をラベル付けできるのではないかと考え、LLMに学習用データセットの問題を解かせて、難易度別にフィルターしようという考えのもとでこのタスクを始めた。また、同じ問題を複数のLLMに解かせて、「賢い」LLMの推論から出てきたThink tagと「イマイチな」LLMの推論から出てきたThink tagを組み合わせてDPOに使えないかとも考えてこのパイプライン構築を行った。Phase1では難易度別でフィルターをかけたものの、それを学習データセットの選別に活用するところまで行けなかったが、Phase2では当初の予定を超えてこのパイプラインで作ったDPO用のデータセットがチームRAMENのメインデータセットとなった。
パイプライン
Task 1) 問題に解答 (problem-solving task)、Task 2) 回答を判定 (answer-judgement task) の2つに分割して実施した。
コードはGithubの松尾研LLM開発コンペ2025内のTeam RAMENディレクトリでシェアしている。
https://github.com/matsuolab/llm_competition_2025_bridge_code/tree/main
Task 1) Problem-solving task
各種LLMに問題を解かせ、思考過程(thinkタグの内容)と解答を保存。
Task2 ) Answer-judgement task
松尾研コンペ公式のHLE評価プロンプトを修正・加筆し、回答を判定。このプロンプトは回答形式の揺らぎを吸収するために使用した。ここではQwen/Qwen3-32Bを判定モデルとして使用した。
判定の際は処理を高速化するため、tokenizer設定でenable_reasoning=False とし、推論なしで判定を行った。判定の正確性は、タスク1の最初の100問についてモデルの回答とデータセットの正答を目視比較することで検証した。当初は誤答を正答と判定する誤りが見られたため、プロンプトを修正・加筆して改善した。
タスク1・2共通環境
Singularity/Apptainerによるコンテナ環境を作成し、その中でvLLMによる並列実行を行った(最大出力トークン数とモデルサイズに応じて並列数を調整)。
Phase 1での難易度選別実験
方法
Phase1では以下の2つのモデルを用いて問題の難易度ラベル付けの検証をした。
モデル1) Qwen/Qwen3-30B-A3B (FP8: W8A8)
モデル2) deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
さらに、出力トークン長を5kと11kに設定し、出力長が推論に与える影響を検証した。
この2つのモデルを選択した理由は以下の通りである。
1つ目は、コンペで使用するファインチューニング対象の本番モデルが推論モデルであり、thinkタグを出力できるモデルの方が下位モデルとして適切と考えられたため。2つ目は、我々が事後学習を行うモデルに近いQwen系のモデルを使用したい。
結果
出力トークン長を5kと11kに設定した場合でも、30Bモデルと7Bモデルの正答率にはおよそ30%の差がみられた。30Bモデルでは出力トークン長を11kに延長することで正答率が約5%改善したが、7Bモデルでは改善は1%未満であった。また、両モデルの正誤の組み合わせを確認すると、およそ96%の問題が3段階の難易度に分類可能であった。30Bモデルが誤答し、7Bモデルが正答するケースは全体の3–4%にとどまった。以上より、複数規模のモデルを用いた難易度ラベル付けは有効に機能していると考えられる。
(理想的には、さらに別のモデルを加えて低・中・高難易度ごとに正答率の有意差を確認すべきだが、今回は時間の制約により実施しなかった。)
| モデル | 単位 | 5k token | 11k token |
|---|---|---|---|
| Qwen/Qwen3-30B-A3B | 正答率 (%) | 66.3 | 71.2 |
| deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | 正答率 (%) | 39.9 | 40.6 |
| 30B 正解, 7B 正解 (低難易度) | 個 | 4753 | 5002 |
| 30B 正解, 7B 不正解(中難易度) | 個 | 4071 | 4475 |
| 30B 不正解, 7B 正解 (順序反転) | 個 | 549 | 403 |
| 30B 不正解, 7B 不正解 (高難易度) | 個 | 3922 | 3418 |
最大トークン長ごとに、データセット全体および分野別で未完了出力の割合を集計した(Table 2)。7Bモデルは30Bモデルに比べ、推論未完結の割合が有意に高かった。さらに最大出力トークン長を5kから11kに延長した場合、7Bモデルでは未完了率が1.4%しか減少しなかった一方、30Bモデルでは6.7%減少した。この差はTable 1に示した正答率改善(4.9%)と近似していた。
分野別に見ると、30Bモデルでの改善は数学・物理・科学で顕著であり、これら論理的推論の比重が大きい分野ではトークン長延長の恩恵が大きいことが示された。
推論未完結の割合(%)
| 分野 | 5k token 7B | 5k token 30B | 11k token 7B | 11k token 30B |
|---|---|---|---|---|
| 全体 | 47.5 | 26.9 | 46.1 | 20.2 |
| 生物医学 | 5.8 | 0.6 | 5.6 | 0.1 |
| 物理 | 25.7 | 24.5 | 21.4 | 9.6 |
| 科学 | 41.9 | 19.4 | 39.8 | 2.2 |
| 数学 | 77.3 | 40.7 | 76.8 | 35 |
| 化学 | 22.3 | 15 | 15.3 | 4.7 |
Phase 1の難易度選別のまとめ
小さいモデルに長い推論を行わせても問題は解けるようにならない。
長い推論による恩恵は分野によって大きく異なり、物理や数学などの論理的な思考の割合が大きい分野ではその恩恵を受けられるが、知識の比重が大きくなる生物や化学などでは小さい。このため、論理的思考の割合が高い分野の問題を解かせるときには、十分な出力トークン長を確保することが必須であると考えられる。
一方、別の解釈としては、小規模モデルにRAGを導入しても、推論能力自体が弱ければ性能向上は限定的である可能性がある。 特に高難易度ベンチマーク問題は単なる知識想起ではなく、複数の知識を統合して初めて解けるケースが多い。このため、小規模モデルの弱点は知識の統合能力の不足にある可能性も考えられる。
さらに、出力トークン長による推論結果の変化がモデルサイズに依存する点は興味深い。これは意図した実験結果ではなく、当初は処理高速化のため出力長を5kに設定したところ、推論未完了が頻発したため、出力長を11kやそれ以上に延長した過程で偶然得られた知見である。
Phase 2でのDPO学習データセットの作成
Phase 2ではベースモデル(Qwen3-235B-A22B-Thinking-2507)の推論能力が、Phase 1の時よりさらに高かったため、なかなかベースモデルから推論能力を向上させることができずにチーム全体で様々な方策が議論された。そこで出てきた案で、ベースモデルを使いTemperatureパラメーターを高くして、同じ問題を複数回解かせて、その正解例をchosen,不正解例をrejectedとしてDPOを行うのが良いのではないかという提案があった。
Phase 1で作った難易度選別パイプラインをフル活用すればこのDPO用データセットを作成できるということで、以下のような形でDPOデータセットを構築した。
時間的な制約もあり、効率よくデータセットを構築するために元々の難易度選別のアイディアを流用し、1段階目で問題の絞り込み、2段階目で複数回推論を行ってDPOデータセットを構築した。
- Qwen3-30B-A3B-Thinking-2507に問題を解かせて、正解となった問題は簡単な問題として除外
- 残りの問題をQwen3-235B-A22B-Thinking-2507に4回解かせて、0回正解、4回正解の問題を除いた後、正解例をChosen,不正解例をRejectedとして組み合わせてDPO用データセットを構築。
結果的にはこの手法はオフラインのGRPOを1ステップ行っているのと同じようなことを行っていると考えられ、最終的にこのDPOデータを使った事後学習ではRAMEN内のテストで成績が向上した。
さいごに
本業は実験解析屋なので、LLMの経験がほとんどない中、今回の松尾研コンペに参加させていただくことで、様々なバックグランドを持つ方々とリモートで交流し、学ぶ機会をいただきました。本コンペをオーガナイズされた松尾研関係者の皆様、チームRAMENを率いた鈴木リーダーと素晴らしいチームメンバーに改めて感謝を表したいと思います。
本プロジェクトは、国立研究開発法人新エネルギー・産業技術総合開発機構(NEDO)の「日本語版医療特化型LLMの社会実装に向けた安全性検証・実証」における基盤モデルの開発プロジェクトの一環として行われます。