Microsoft Research⁠AIがタスクの実行結果を自ら評価し⁠解法や注意点を蓄積するフレームワーク「EvoLib」紹介

Microsoft Researchは2026年7月30日、AIがタスクの実行結果を自ら評価し、そこから得た知識を別のタスクに再利用するテスト時学習(test-time learning)フレームワーク「EvoLib」を公式ブログで紹介した。モデルのパラメーターを更新する代わりに、解法や注意点を、モデルの外側に置く知識ライブラリへ蓄える。知識を追加・整理する際も、外部の正解データや人間による評価を必要としない。研究論文は同年5月にarXivへ投稿され、コードと実験結果もGitHubで公開されている。

タスクの実行結果を「スキル」「洞察」に変換

ここでいうテスト時学習とは、モデルが実際に問題を解く段階で得た経験を、後から取り組む別の問題に反映することを指す。過去の経験を保存・検索するメモリは、AIエージェントの重要な機能になっている。しかし、会話や推論過程、操作履歴などの記録を増やすだけでは、有用な情報を探しにくくなり、個別の経験から汎用的な知識を得ることも難しい。

EvoLibは、生成した解答や行動履歴をそのまま保存せず、別の問題でも使える知識へ変換する。知識ライブラリは空の状態から始まるため、最初の問題では過去の知識を使わずに解答や行動を生成する。そこから再利用できる部分をスキルとして取り出すほか、正解データを使わずに結果を自己評価し、その振り返りから洞察をまとめてライブラリに加える。

EvoLibの「知識ライブラリ」には、次の2種類の知識が蓄積されていく。論文は両者を「抽象化された知識(knowledge abstractions⁠⁠」と呼ぶ。

  • モジュール化されたスキル(modular skills):解答や行動の一部を、別の問題で再利用できる部品としてまとめたもの。開発者があらかじめMarkdownで用意するエージェント向けの手順書や機能パッケージではなく、EvoLibが実行結果から自動的に取り出す知識を指す。コーディングでは関数のソースコード、数学などの推論では部分問題とその解法、エージェントタスクでは複数の操作をまとめた手順になる
  • 振り返りから得た洞察(reflective insights):過去の解答や行動の誤りから得た注意点や修正方法を自然言語のルールとしてまとめたもの

ここでいう自己評価は、LLM自身の出力や実行結果を基に評価を得る処理を指す。方法はタスクによって異なり、公開実装では、コーディングでLLMが作ったテストケースの実行結果、数学で複数の回答による多数決(同数ならLLMが判定⁠⁠、エージェントタスクで行動と観察の履歴から見積もった達成度を使う。いずれの方法でも、ベンチマークに用意された正解データや採点の仕組みは使わない。論文の実験では、これらを最終的な性能の測定にのみ用いている。

有用な知識を選び⁠統合して次のタスクへ

知識ライブラリにスキルや洞察が加わると、次の問題から再利用が始まる。EvoLibは、まず問題文との意味が近いスキルや洞察を候補にし、過去の問題での有用性も踏まえて選び、プロンプトの参考情報としてLLMに渡す。得られた解答や行動を自己評価し、新たなスキルや洞察をライブラリに加える。この流れを問題ごとに繰り返すことで、蓄えた知識をさらに後の問題へ引き継ぐ。

EvoLibは、新しく得たスキルや洞察を単純に追加せず、同じ種類で意味や働きが近い既存の知識とまとめる「統合」を行う。統合できない場合だけ、新しい知識として追加する。これにより、個々の問題に特化した知識を複数の問題で使える形へ育てつつ、ライブラリが際限なく増えることを抑える。

数学・コード生成向けの公開実装では、この知識ライブラリを.skill.json.insight.jsonに分けて保存する。.skill.jsonには、スキルの内容、その問題に対する有用性を表すInformation Gain(IG⁠⁠、後から有用な知識を生み出すことへの貢献度を表すFuture Information Gain(Future IG)を記録する。.insight.jsonに保存するのは、洞察の内容とFuture IGである。

既存の知識と統合されず、新しい知識として保存される場合、Future IGの履歴は空から始まる。後続の問題を解く際にその知識が選ばれると、Future IGを計算して履歴へ追加する。EvoLibは、スキルではIGと蓄積したFuture IG、洞察ではFuture IGから重みを計算し、その後の問題で知識を選ぶ際に反映する。

こうした知識ライブラリの更新はモデルの重みを書き換えずに行うため、内部のパラメーターへアクセスできないAPI経由のLLMでもEvoLibを利用できる。

数学⁠コード⁠エージェントタスクで性能を検証

研究チームは、数学、コード生成、複数回の対話を伴うエージェントタスクという3分野、計5つのベンチマークでEvoLibを評価した。数学のHMMT 2025–2026、コード生成のBigCodeBench HardとLiveCodeBench v6 Hard、エージェント向けの科学実験環境ScienceWorldと計画問題のPDDLを用いた。ScienceWorldとPDDLの実験には、LLMエージェントを対話型環境で実行し、タスク全体の成否だけでなく途中までの進捗も測るオープンソースの評価ソフトウェアAgentBoardを使用した。各手法のスコアは3回の試行の平均に基づく。

数学・コード生成では、同じ問題集合を複数回処理しながら知識ライブラリを育てる「静的ベンチマーク」の設定を用いた。過去の問題から知識を引き継がず、同じ問題への推論を増やす手法との比較には、複数の解答を生成して最良のものを選ぶBest-of-Nと、解答候補を反復的に改善するRecursive Self-Aggregation(RSA)を用いた。次の表に示すように、EvoLibは3つのベンチマークすべてでベースラインを上回り、Best-of-NとRSAに対しても同等以上の結果となった。

ベンチマーク EvoLibなし EvoLib Best-of-N、RSAとの比較
HMMT 57.0% 77.4% 両手法を上回った
BigCodeBench 29.7% 40.8% 両手法を上回った
LiveCodeBench 58.8% 70.0% Best-of-Nを上回り、RSAと同率

一方、タスクを順に与え、それぞれ一度だけ試行する継続学習の評価では、ScienceWorldの成功率は57.4%、PDDLは72.8%を記録した。

継続学習で比較したDynamic Cheatsheetとの違いは、知識の管理方法にある。論文が比較に使った累積型は、過去の試行から得た戦略や注意点を一つの文章メモへ順次加えていく。これに対し、EvoLibはスキルと洞察を個別に保存し、関連性や重みに応じて選ぶ。Dynamic Cheatsheetの成功率は、ScienceWorldが55.9%、PDDLが65.0%だった。PDDLのタスク順を変えた実験では、簡単な順、難しい順、ランダムのいずれでもEvoLibがDynamic Cheatsheetを上回り、差が最も大きかったランダム順では成功率が8.8ポイント高かった。

ただし、EvoLibは、こうした自己評価が一定の信頼性を持つことを前提としている。論文によると、コード生成のように、解答を作るよりも、テスト実行で正しさを確かめるほうが簡単なタスクに向く。一方、自己評価を誤ることが多いタスクでは、誤った知識が蓄積し、後続タスクの性能を下げる可能性がある。

GitHubの数学⁠コード生成向け実装はAzure OpenAIを使用

GitHubリポジトリには、数学・コード生成向けのEvoLib本体と、AgentBoard向けの実装が含まれる。数学・コード生成向けの実装は、解答を作るチャットモデルと、知識の検索・統合に使う埋め込みモデルの双方にAzure OpenAIを利用する構成になっている。公開された構成のままではローカル環境だけで完結しないが、EvoLibの方式そのものはAzure OpenAIに限定されているわけではない。そのため、解答生成モデルと埋め込みモデルのクライアントをローカルモデル向けに置き換えるなど、構成を変更すればローカルでも動かせるとみられる。

EvoLib本体はMITライセンスで公開されている。ただし、リポジトリに組み込まれたAgentBoardのコードにはApache License 2.0、実行時に別途ダウンロードするAgentBoardのデータセットにはGPLv2が適用される。

おすすめ記事

記事・ニュース一覧