はじめに
はじめまして。
この度、東京大学松尾・岩沢研究室が主催する松尾研LLM開発コンペ2025に参加しました。
その際に、Humanity’s Last Examという非常に高難易度なベンチマークにおいて高スコアを達成するため、どのように事後学習用データセットの作成を試みたのかについて共有したいと思います。
特に、PDF形式の公開教科書や問題集(オープンライセンスのもの)からLLMを用いて学習用データの自動作成+検証のフローを作成したことについてハイライトを当てた記事となります。
本記事は、松尾研LLM開発コンペ2025の予選フェーズ(Phase1:~8月下旬)における、Team Caminoの取り組みについてまとめたものです。コンペ参加者個人としての振り返りであり、所属機関・主催者を代表するものではありません。
Team Caminoの開発テーマは強化学習の難易度調整による性能向上でした。これは、Humanity’s Last Examのような非常に高難易度な問題を解くにあたって、モデルにとって難しすぎたり、簡単すぎる問題を学習させても性能向上が期待できないと考えて、データや学習手法において難易度の調整をすることで学習が進むことを期待するということです。
そのため、Team Caminoでは事後学習用のデータセットを用意するために
① Hugging Face 等にある既存のデータセットの収集とフォーマット整備
② 公開教科書や問題集(オープンライセンスのもの)からの問題自作
③ 合成データの生成
という三つの試みを並行していました。
この記事では②の公開教科書や問題集(オープンライセンスのもの)からの問題自作ということに関して、
1.「問題作成までの経緯・考え方」
2.「できたこと」
3.「できなかったこと」
4.「問題作成に際しての難点」
5.「工夫・議論の余地について」
という5つの項目に分けてまとめてたいと思います。
1.問題作成までの経緯・考え方
事後学習用データを自作をするに至った経緯として、
- HLEレベルの難易度に相当する既存公開データセットが少なかった。
- 検討していた基盤モデル(*1)は既存の公開データセットに対して高い正答率を示していた。そのため、既に解ける問題より少し難しめの問題を自作することで、事後学習で強化が見込めると期待した。
 ということが挙げられます。
(*1)複数の推論モデルを基盤モデルとして検討した。予選終了1週間前の基盤モデル候補は以下。
microsoft/Phi-4-reasoning-plus
deepseek-ai/DeepSeek-R1-Distill-Qwen-14B
deepseek-ai/DeepSeek-R1-Distill-Llama-70B  
最終的にはPhi-4-reasoning-plusのGRPOモデルを提出しました。
また、Team CaminoではExPOという自己説明に基づく強化学習手法に挑戦していました。
ExPO(Self-Explanation Policy Optimization)は、ground-truth(正解)を条件として、モデル自身に現在の方策(policy)と整合する推論軌跡を生成させることで、自己説明的な探索を行う強化学習です。
従来のGRPOやDPOなどの手法が、モデルが既に生成できる「良い出力」を強調することで性能を高めるのに対し、ExPOはground-truth(正解)を手がかりに新たな推論経路を探索し、困難な問題でもより効果的な学習を行うことが出来るとされています。
これにより、学習サンプル効率や推論能力の向上が報告されています。
最終的に、ExPOによって学習させたモデルは SFT(Supervised Fine-Tuning)後のモデルを上回る性能には至らなかったため、提出は見送られました。
しかし、ExPOの実験のために推論過程を含まず、一意的なQAペアとして利用可能なフォーマットを整備したことは、後続のデータ設計にも活かされました。
2.できたこと
💡- LaTeX形式から問題作成&モデルに投入
- PDF形式から問題作成
- PDF形式から問題作成の自動処理フローをサーバー上で実行
LaTeX形式から問題作成&モデルに投入
LaTeX形式から正規表現やLLMを用いて、問題と解答の抽出作業を行いました。
その後、一意的なQAペアになるようにフォーマットなどを整備し、人手による確認作業を行いました。
自身が正規表現やLLMを用いて作成した問題セットは、数式において欠損などが見られ学習に使用できるものではなく、複雑な数式などを含む問題抽出の難しさを実感しました。しかし、チームメイトのKさんがLLMを用いて問題作成に成功していたようです。(すごい)
PDF形式から問題作成
PDF形式からマークアップへの変換には、科学文書/数式認識に強いNougat (Neural Optical Understanding for Academic Documents)というOCRツールを用いました。
抽出テキストを元に、モデルA(生成用、問題作成)で問題文と解答を生成し、モデルB(検証用、品質保証)で生成された問題の品質をチェックするプロセスを組みました。
モデルA(生成用、問題作成)に与えたプロンプトは以下。
 """
You are an expert in creating high-quality, graduate-level benchmark questions for a highly capable AI model. Your goal is to create a single question-and-answer (QA) pair that is entirely self-contained and accurate.
Your output must adhere to the following strict rules:
1.  **High Difficulty and Complex Reasoning**: Your question must require complex, multi-step logical deduction or calculations by integrating information from the provided text. It must not be a simple recall of a definition or a single, obvious fact.
2.  **Source Independence & Comprehensive Context**: The question must be a standalone unit. It cannot rely on the user having access to the original source text. This means you must explicitly define all variables, symbols, and concepts directly within the question. For example, if the text discusses a matrix 'A' or a vector space 'V', the question must define what 'A' and 'V' represent and their relationship (e.g., "Given a matrix A and a vector space V..."). All necessary numerical data, key terms, and context required to answer the question must be included in the question itself.
3.  **Direct and Final Answer**: The answer must be a single, final result to the question. Do not include any step-by-step reasoning, intermediate calculations, or extraneous explanations. The answer should be presented concisely, without any additional context or conversational filler. For numerical answers, provide only the final value and its unit (if applicable), e.g., "15 J". For formulas, provide only the final expression.
4.  **Accuracy**: The QA pair must be factually correct based solely on the provided text.
**Provided Text:**
{context}
**Your Output should be a single, valid JSON object with the following structure:**
```json
{{
  "qa_pairs": [
    {{
      "question": "string",
      "answer": "string"
    }},
    {{"question": "string",
      "answer": "string"
    }},
]
}},
...
"""
プロンプトの概要
- 問題の難易度・複雑性:問題の難易度が大学院レベルかつ、複雑な思考ステップを複数回必要とするような問題を作成する。例えば、言葉の意味をそのまま答えるような問題などは除外する。
- 問題の独立性:ソースの文書や図表を参照せずとも、独立した問題文から解答が導き出せるような問題を作成する。
- 思考過程を含まない、一意的なQAペアの出力:ExPOのために推論過程を含まない、QAペアのみを作成する。
- 問題の一貫性・正確性:作成した質問のみをもとに、正しい解答が導き出せるような問題を作成する。
以上の4つを順守して問題を生成するよう指示しました。JSON形式を明示的に指定することで、出力フォーマットの一貫性を担保しました。
その後モデルB(検証用、品質保証)で再度、この四つの指示に沿った問題が作れているかを検証させました。モデルB(検証用、品質保証)に与えたプロントは以下。
"""
You are a meticulous and highly skilled quality assurance specialist for an educational content platform. Your task is to rigorously evaluate a single question and answer pair (QA Pair) to determine its suitability for a graduate-level benchmark exam.
The QA Pair are provided below. Your primary goal is to verify the following criteria:
1.  **Source Independence**: Can a well-prepared human examinee answer the question without needing any external documents? The question must be a standalone unit that explicitly defines all variables, symbols, and concepts.
2.  **Direct and Final Answer**: Does the answer refrain from including any step-by-step reasoning, intermediate calculations, or thought processes, presenting only a direct, final result? The answer should not contain any additional context, explanations, or conversational filler. For numerical answers, only the final value and its unit should be present. For formulas, only the final expression should be given.
3.  **Logical Consistency**: Are the question and its corresponding answer internally consistent and logically sound?
**Input QA Pair to Evaluate:**
<qa_pair>
Question: {question}
Answer: {answer}
</qa_pair>
Analyze the QA pair and determine if it meets all three criteria. If it fails, provide specific, constructive feedback on how to improve it.
Return ONLY a single, valid JSON object that starts with '{{' and ends with '}}'. The JSON object must have the following structure:
{{
  "is_valid": boolean,
  "reason": "string"
}},
{{
  "is_valid": boolean,
  "reason": "string"
}},
...
"""
PDF形式から問題を自動生成+自動検証ループをサーバー上で実行
手元の環境で小規模検証の後、自己ホストの高速推論サーバー(vLLM を利用)上でパイプラインを自動化し、テキストや数式を抽出→問題作成→検証のバッチ処理を実行しました。
この際にvLLMとnougat-ocrのライブラリの依存関係の競合を解決するために、サーバー用とクライアント用で二つの仮想環境をチームメイトに構築していただきました。
(Tさん、本当にありがとうございます。)
安定した動作のため、このプロジェクトでは2つのGPUを使用しています。
3.できなかったこと
💡- PDF形式から問題を量産
- PDF形式から作成した問題をモデルに学習&評価
計算環境と時間的な制約と問題の質への不安から学習に十分な量の問題を作成し、モデルに投入、評価することが出来ませんでした。
さらにシステム自体について、工夫の余地がある点については「5.個人的に気になったこと、工夫・議論の余地について」でまとめます。
- 
PDF形式から問題を量産
 生成・検証器に与える制約を厳格にすると、ソースに対して生成される問題数が大幅に減るというジレンマがありました。
 また、特定のPDFから生成される問題が少ない、あるいはない箇所については、OCRの段階で複雑な数式・行跨りのテーブル等で誤抽出が生じたり、元文に依存する様な参照(「前問の条件」など)が削られ、独立して解くことのできる問題が生成できない状態であるように考えられました。
 また、一見もっともらしいが条件を満たさない問題をフィルタリングする方法についても、より工夫が必要だと感じました。
- 
PDF形式から作成した問題をモデルに学習&評価
 作成した問題をモデルに投入し、評価まで行うことがこの実験の達成条件だったように思います。そこまで到達できなかったのは非常に悔しく感じています。
4.問題作成に際しての難点
問題を作成するには以下のような難点がありました。
- HLEレベルかつモデルにとって良問な問題ソースの選定が難しい(難易度の判定や後述するOut of domainの問題など)
- 複雑な問題を正確に抽出し、ソースから独立した問題と解答を作成させることの難しさ
- 作成した問題の人手検証の限界と、自動検証の信頼性の判断のしづらさ
5.個人的に気になったこと、工夫・議論の余地について
- 
「同じモデルを生成と検証に使う vs 異なるモデルを使う」 どちらが良いか? 
 今回、サーバー上では同LLMモデル(Llama 3.1 8B Instruct)のvllmをサーバー上に立てて、それぞれ「問題作成」の役割の生成器と「品質保証」の役割の検証器を用意しました。
 手元で小規模に実験する際は、異なるモデルのAPI(ホワイトリスト上のモデル)を使用しましたが、この生成器と検証器の二つの役割には、異なるモデルを使用したほうが良いのか?同じモデルを使用したほうが良いのか?サイズや性能はどのような関係が良いのか?について検証したいと感じました。
- 
PDFから抽出した要旨(seed)をもとに、複数モデルで質疑応答を繰り返す合成データ(反復生成)について 
 今回行ったPDFから問題作成の過程を拡張する形で、複数のLLMモデルに質疑応答を繰り返させる「反復生成」の考え方があると思います。これは初期の要旨(seed)から多様な派生問題を生成するだけでなく、異なるモデル間の相互検証を通じて内容の一貫性や妥当性を高める手法として注目されていますが、反復を繰り返すことでノイズが増える危険も指摘されています。
- 
Out-of-Domain(OOD)問題について 
 今回のコンペ全体を通して話題にも挙がっていたOODについてですが、肌感覚として、PDF由来の教材はドメインが偏りやすいのではないか(学術文献や教科書に特有の言い回し・問題形式)と感じました。これらを訓練データに入れた際、モデルは特定ドメインに最適化されやすく、汎化性能の向上には多ソース・多スタイル由来の教材を取り入れるなど工夫が必要だと感じました。
最後に
データを自作するというタスクに圧倒される場面も多くありました。
特に、地道に目視で検証するタスクや、問題が正しく抽出されない場面では、「自作データが既存や合成データと比べて本当に有用なのだろうか」と感じることもありました。
ただ、そのような困難に遭遇することで、なるほど、だからこのようなデータ作成やフィルタリング手法や工夫があるのだと、提唱されている手法の必要性や、学習データに対する細かい配慮について体感できたように思います。
今後は、この経験を生かして、より再現性と汎化性の高いデータ生成を探求するなど、よりスキルアップを目指したいと考えています。
最後になりますが、素晴らしい機会を提供して下さった松尾・岩沢研の皆様、さくらインターネットはじめ関係者の皆様に誠にお礼申し上げます。
注)本プロジェクトは、国立研究開発法人新エネルギー・産業技術総合開発機構(以下「NEDO」)の「日本語版医療特化型LLMの社会実装に向けた安全性検証・実証」における基盤モデルの開発プロジェクトの一環として行われます。

