Ctx2Skill: 自律的なコンテキスト学習の実現

LLM(大規模言語モデル)に独自のドキュメントや複雑なデータを読み込ませ、特定のタスクを解かせたいと考えたことはありませんか? LLMが未知のコンテキスト(背景情報)からルールを読み取り、自ら推論を実施する能力は「コンテキスト学習(Context Learning)」と呼ばれ、近年その重要性が高まっています。

しかし、モデルに専門的な手順を教えるために、手作業で「スキル(自然言語で記述されたルールセット)」を作成するアノテーション作業は、非常にコストがかかります。また、スキルの構築を自動化しようにも、コンテキストに特化したタスクでは正誤を判定する外部からのフィードバックが得られないという根本的な課題がありました。

この記事では、最新論文「From Context to Skills: Can Language Models Learn from Context Skillfully?」をもとに、こうした限界を打ち破る手法を紹介します。人手によるアノテーションや外部フィードバックを一切必要とせず、AIが自律的にスキルを発見し、最適化していくフレームワーク「Ctx2Skill」の仕組みについて解説します。

1. コンテキスト学習とスキル抽出の限界

現代のLLMは多くのタスクをこなせますが、実世界の業務に適用するには、モデルが事前に学習した知識だけでは不十分です。業務マニュアルや実験データといった、未知で複雑なコンテキスト(背景情報)から直接ルールや新しい知識を学び取り、推論を実施する能力が求められます。

この課題に対する有効な解決策として、コンテキストから手順やルールを抽出し、自然言語で記述した「スキル」として推論時のプロンプトに組み込む「推論時スキル拡張(Inference-time Skill Augmentation)」という手法があります。この手法を用いれば、LLMは未知のデータに対しても、特定のタスクを解決するための思考の足場を得ることができます。

しかし、コンテキスト学習のシナリオにおいて、このスキルを構築するには、大きく分けて2つの技術的な壁が存在します。

  • 手作業によるアノテーションの非現実的なコスト
    専門的で長大なドキュメントから、人間が手作業で高品質なスキルを抽出・作成するアノテーション作業は、認知的な負担が非常に大きく、コストの観点から大規模な展開は不可能。
  • 自動フィードバックの欠如
    • プログラミングや数学のタスクであれば、コードの実行結果や正解データを使って、AIが生成したスキルの正誤を自動で判定可能
    • しかし、複雑なコンテキストの読み取りでは「そのスキルが本当に正しい知識を網羅しているか」を判定する外部からのフィードバックが得られない
    • そのため、既存の自動スキル構築パイプラインをそのまま適用して自動化することも困難。

つまり、手作業でも自動化でもスキル抽出が難しいという限界が、コンテキスト学習を実用化する上での大きなボトルネックとなっています。

図1. コンテキスト学習のボトルネックとCtx2Skill

2. Ctx2Skillのアーキテクチャ

前章で触れた「外部からの自動フィードバックが得られない」という課題を克服するために、Ctx2SkillはAIモデル同士を競わせるSelf-Play(自己対局)ループという仕組みを採用しています。このフレームワークは、以下の5つの役割を持つLLMエージェントによって構成されており、それぞれが独立して機能しながらスキルを進化させていきます。

  • Challenger(挑戦者) 与えられたコンテキスト(背景情報)と自身の持つスキルセットに基づいて、モデルの深い理解度を測るためのテスト用タスクと、その合否を決める評価基準(Rubric: ルーブリック)を生成します。
  • Reasoner(推論者) コンテキストを読み込み、自身が蓄積してきたスキルセットを活用して、Challengerから提示されたタスクの解決を試みます。
  • Judge(審判) 完全に中立な立場から、Reasonerの回答がChallengerの作成した評価基準を満たしているかを確認し、「合格(Pass)」か「不合格(Fail)」の二値判定を下します。
  • Proposer(提案者)とGenerator(生成者) ChallengerとReasonerのそれぞれの陣営に配置される2つのエージェントです。Judgeの判定結果を分析してスキルの改善案を提案(Proposer)し、それを具体的なスキルセットとして自然言語で書き出し(Generator)ます。

この自己対局ループは、タスクの結果に応じて二手に分かれて進行します。Reasonerが「不合格」となった失敗タスクは、Reasoner側のProposerとGeneratorに送られます。そこで「どのような知識やルールが不足していたのか」を診断し、該当する情報を抽出して自身のスキルセットに追加・修正します。

一方、Reasonerが簡単に「合格」してしまったタスクは、Challenger側の陣営に送られます。Challenger側のエージェントたちは「なぜ簡単に解かれてしまったのか」を分析し、次回はより鋭く、様々な観点からタスクを生成できるように、自身のタスク生成用スキルを更新します。

このように、Ctx2Skillの最大の利点は、モデルのパラメータを直接更新する学習処理を一切必要としない点にあります。テキストベースの自然言語によるフィードバックのやり取りのみで、タスクの難易度と推論能力を競わせながら、未知のドキュメントに対する実践的なスキルセットを自律的に進化させることが可能です。

図2. Ctx2Skill の全体像

3. Cross-Time Replay メカニズム

前章で紹介した自己対局ループは強力な仕組みですが、反復を重ねるうちに「対敵的崩壊(Adversarial Collapse)」という思わぬ落とし穴に直面するリスクがあります。

Challenger(挑戦者)は反復が進むにつれて自身のスキルを更新し続けるため、次第に極端で難解なタスクばかりを生成するようになります。すると、Reasoner(推論者)のスキルも、そうした特殊なタスクを解くことだけに過剰に最適化されてしまい、結果として一般的なタスクを解くための汎用的な能力(汎化性能)が低下してしまうのです。

この対敵的崩壊を防ぐために、Ctx2Skillでは「Cross-Time Replay」というメカニズムを導入しています。これは、反復処理の中で収集された以下の2種類のテスト用タスクに対して、過去のすべての時点で生成されたスキルセット候補を改めて再評価する仕組みです。

  • Hard Probe Set(最も難しい失敗タスク): 各反復において、最も評価基準を満たせなかった失敗タスクの集合。
  • Easy Probe Set(最も簡単な成功タスク): 各反復において、最も少ない評価基準で簡単に解けた成功タスクの集合。

すべての自己対局が終わった後、これら2つのタスクセットを用いて過去のスキル候補をテストし、最終的に採用するスキルセットを決定します。その際の評価には、以下の最適化式が用いられます。

$$ S^* = \arg\max_i (\rho_h(i) \times \rho_e(i)) $$

ここで、\(\rho_h(i)\) と \(\rho_e(i)\) は、それぞれ特定の時点 \(i\) のスキルセットを用いた場合の、Hard Set と Easy Set におけるタスク解決率を表しています(計算時に分母がゼロになるのを防ぐため、ラプラス平滑化という処理が適用されています)。

この式の最大のポイントは、解決率を足し合わせる(加算)のではなく、掛け合わせる「乗算形式」を採用している点にあります。もし加算であれば、簡単なタスクを解く能力を失っても、難しいタスクをいくつか解ければスコアが上がってしまう可能性があります。しかし乗算を採用することで、「難しいタスクを解くために、簡単なタスクの解決能力を犠牲にする」ような過剰適合を起こしたスキルには強力なペナルティが掛かるよう設計されています。

このメカニズムにより、特定の極端な状況に偏らず、様々なタスクに対して最もバランス良く対応できる、汎用性の高いスキルセットを最終的に抽出することが可能になります。

4. 評価結果とスキルの移植性

Ctx2Skillの実用性を検証するため、コンテキスト学習のベンチマークである「CL-bench」を用いて様々な評価が実施されました。ここでは、その主要な結果を3つの観点からご紹介します。

  • タスクカテゴリ別の効果
    Ctx2Skillは、CL-benchで定義された4つのタスクカテゴリすべてにおいて、従来の手法(ベースライン)を一貫して上回るタスク解決率を記録しました。特に、深い手順の理解や帰納的な推論が求められる「Procedural Task Execution(手続的タスク実行)」や「Empirical Discovery & Simulation(経験的発見とシミュレーション)」において顕著な性能向上を示しています。さらに細かな分類で見ると、「Workflow Orchestration(ワークフローの編成)」といったサブカテゴリで特に大きな改善(+11.8%)が確認されています。
  • 生成されたスキルの品質
    スキルの品質自体についても、言語モデル(GPT-4.1)を審査員役として用い、「簡潔性(Conciseness)」「忠実性(Faithfulness)」「明確性(Clarity)」「有効性(Effectiveness)」「再利用性(Reusability)」という5つの次元で評価を実施しました。その結果、Ctx2Skillが自律的に生成したスキルは、他の手法で抽出されたスキルと比較して、より高い品質であることが実証されています。
  • スキルの移植性(Transferability)
    非常に興味深い結果として、あるモデルの自己対局で生成したスキルを、別のモデルに使い回す「移植性」の検証結果があります。以下の表は、モデル間でスキルを移植した際のタスク解決率の変化を示しています。
スキルの生成元スキルの適用先(推論モデル)タスク解決率備考
(スキルなし)GPT-4.111.1%ベースライン
GPT-5.1GPT-4.116.1%強力なモデルのスキルを軽量モデルに適用
(スキルなし)GPT-5.121.1%ベースライン
GPT-4.1GPT-5.123.1%軽量モデルのスキルを強力なモデルに適用
(※参考: GPT-5.1自身で生成したスキルをGPT-5.1に適用した場合は25.8%)

表から分かるように、GPT-5.1のような強力なモデルで生成したスキルを、GPT-4.1のような比較的軽量なモデルに適用すると、大幅な性能向上が得られます。しかしその逆、つまり軽量なモデルのスキルを強力なモデルに適用しても、効果は限定的にとどまります。

これは、強力なモデルが抽出できる深い知識を、軽量なモデルは十分に抽出できないという「非対称性」が存在することを示しています。この特性を活かせば、「強力なモデルで一度だけ高品質なスキルセットを構築し、実際の運用時には軽量で安価なモデルを使って推論を進める」といった、コストパフォーマンスに優れた実用的なシステム設計が可能になります。

図3. CL-bench のスコア比較

5. Self-Playのダイナミクスとアブレーション検証

これまでの章でCtx2Skillの仕組みや成果を見てきましたが、「自己対局ループの各構成要素は本当に必要なのか?」、「反復処理の過程で、AI同士は具体的にどのような攻防を繰り広げているのか?」と気になる方もいるでしょう。ここでは、システムの内部動作を紐解くための詳細な検証結果を見ていきます。

具体的には、以下の4つの観点からCtx2Skillのダイナミクスを分析しています。

  • アブレーション(構成要素の)検証
    システムから特定の機能を無効化して影響を測る検証を実施した結果、「Challenger側のスキル進化」を止めた場合に最もパフォーマンスが低下しました。この結果から、挑戦者からの継続的で敵対的なプレッシャーが、推論者に未知のコンテキストを深く理解させ、スキルを獲得させるために不可欠であることが分かります。
  • タスクとRubric(評価基準)の複雑化
    自己対局の反復(イテレーション)が進むにつれて、Challengerが生成するタスクの単語数や、合否判定のためのRubricの数が増加していく傾向が確認されました。これは、挑戦者が自身のスキルを進化させながら、より多角的で厳しいテストを推論者に突きつけている様子を示しています。
  • Adversarial Collapse(対敵的崩壊)の観察
    言語モデルにGPT-5.2を使用した場合、非常に興味深い現象が確認されました。Challengerのタスク生成スキルの進化が速すぎた結果、Reasonerの対応が追いつかず、反復が進むにつれて逆にタスク解決率が低下(第1イテレーションの36.1%から第4イテレーションの23.0%へ下落)してしまったのです。これは第3章で触れた「対敵的崩壊」が実際に起きた典型的な例と言えます。
  • スキルセットの肥大化と過剰適合の抑制
    自己対局では反復ごとに新しいスキルが追加されるため、スキルセット全体の単語数は直線的に増加(肥大化)していきます。しかし、Cross-Time Replayメカニズムによって最終的に採用されたスキルを調べると、反復の初期から中期にかけて生成された、適度な長さのものが選ばれる傾向にありました。この仕組みにより、特定の難問にのみ特化した、長すぎる過剰適合スキルが効果的に排除されていることが実証されています。

6. ケーススタディ – 生成されたスキルの実践的構造

Ctx2Skillが自律的にどのようなスキルを生成するのか、ケーススタディからその具体的な構造を確認します。出力されるスキル(SKILL.md)は、単なる抽象的なアドバイスの羅列ではありません。具体的には以下のような、実践的ですぐに実行可能なMarkdown形式の構造で構成されています。

  • 事前チェックリスト(Pre-answer checklist): タスクの制約や条件を抽出・整理するステップ
  • 回答手順(Response procedure): 計画に沿って回答を構築するステップ
  • 自己検証ステップ(Self-verification steps): 最終出力の前に、抜け漏れや禁止事項の違反がないかを確認するステップ

この構造化されたスキルは、LLMの「制約への準拠能力」を劇的に向上させます。ケーススタディの実験では、スキルを持たないベースラインモデルは、文字数制限や出力形式の指定、さらには「〜してはならない」といった細かなフォーマット制約を見落とし、評価基準(ルーブリック)を満たせないケースが多発しました。

例えば、学術レポートの作成タスクでは、ベースラインモデルが不要な「フォーマットに関するメモ」を出力して形式違反となったのに対し、Ctx2Skillのスキルを与えられたモデルは、自己検証ステップを通じて禁止事項を厳格に遵守し、完璧なMarkdownレポートを生成しています。また、複雑な計算が求められるデータ分析タスクにおいても、指定された数式や条件をチェックリストに沿って正確に適用し、すべての評価基準をクリアしました。

このように、Ctx2Skillはモデルに対して「どのように考え、確認すべきか」という思考の足場を、具体的な自然言語の手順書として提供することで、複雑なコンテキストでも確実なタスク遂行を実現しています。

以下、参考までに、学術レポートの作成タスク(College Movie Report)用にCtx2Skillが最終的に生成・適用したスキルのMarkdownを日本語に翻訳したものを紹介します。

---
name: constraint-trace-to-pre-answer-validation
description: "明示的な制約とルーブリックの要件をすべて抽出し、回答前チェックリストを構築して、最終提出前に作成した出力と各項目を体系的に検証し、曖昧な点や欠落している情報をフラグ付けする。"
---

## 回答前チェックリスト
1. 会話のコンテキスト全体(指示、ルーブリック、成果物)をスキャンする。
2. 以下を含む、出力に関する明示的な制約をすべてリストアップする:
   - 必須のセクション/見出しと正確な名称
   - 出力形式(例:箇条書き、YAML、コードブロック)
   - 単語/行/文字数の制限
   - データ/引用の要件
   - 正当性または根拠の提示の義務
   - 曖昧さの処理に関する指示(例:不確実な点にフラグを立てる)
   - 禁止されているコンテンツや除外すべき矛盾点
   - その他の明記された要件
3. 各制約を明確なチェックリスト項目として記録する。
4. 曖昧、指定が不十分、または矛盾する要件があればフラグを立ててリストアップする。

## 回答手順
1. チェックリストの項目に順番に取り組みながら、段階的に回答を構築する。
2. すべてのチェックリスト項目に対して、対応する出力要素(例:セクション、フォーマット、根拠)を明示的に作成する。
3. 曖昧な点や指定が不十分な指示に遭遇した場合は、ドラフト内のギャップをメモし、チェックリストに従って出力にフラグを用意する。

## 自己検証ステップ
1. 提出前に以下を行う:
   - 各チェックリスト項目について、ドラフト回答内の対応する要素を正確に見つけて確認する。
   - 以下を機械的にチェックする:
     - 正確なセクションの見出し/名称
     - フォーマットと制限の厳密な遵守(必要に応じて単語/行/文字数を数える)
     - 指定された場所への証拠/根拠の包含
     - 不確実性や曖昧さへのフラグ付け
     - 禁止事項やスコープ違反がないこと
2. 項目が欠落している、誤って適用されている、または曖昧である場合は、修正するか、出力内のギャップに明示的にフラグを立てる。
3. すべてのチェックリスト項目が検証されるか、適切にフラグが立てられた後にのみ提出する。

## 避けるべきよくある落とし穴
- 必須のセクション/見出し名の欠落または言い換え
- 記載されていないルーブリック基準のでっち上げ
- フォーマットや文字数制限の無視またはルーズな適用
- 義務付けられた根拠や理由の記載漏れ
- 曖昧さへのフラグ付け要件の見落とし
- 未検証または未対応のチェックリスト項目が残ったままの出力の提示

おわりに

Ctx2Skillは、手作業によるアノテーションのコストや外部フィードバックの欠如といった実務上のハードルを乗り越え、未知の複雑な文書から自律的にスキル(システムプロンプトに追加される自然言語の手順書)を構築・最適化する強力な手法です。

モデルのパラメータ(ウェイト)を直接更新することなく、LLM同士の自己対局(Self-Play)と厳密な「Cross-Time Replay」評価メカニズムを組み合わせることで、文脈に特化したプロンプトエンジニアリングを自動化しています。

事前学習データには含まれない独自のドキュメントから、AI自身が思考の足場となるルールを抽出するこのアプローチは、AIエージェントシステムなどの高度なアプリケーション開発に取り組む開発者にとって、極めて有用な新しいパラダイムとなるはずです。

More Information