日本語版
最新ニュース
科学&テクノロジー

Agent Lightning: コードを書き換えずに AI エージェントに強化学習を追加

AI エージェントは、コードの作成から複雑な命令の実行に至るまで、ソフトウェア開発を再構築しています。しかし、LLM ベースのエージェントはエラーが発生しやすく、複雑な複数ステップのタスクではパフォーマンスが低下することがよくあります。強化学習 (RL) は、AI システムが自分の行動に対して報酬またはペナルティを受け取ることで最適な意思決定を行うことを学習し、試行錯誤を通じて改善するアプローチです。 RL はエージェントの改善に役立ちますが、通常、開発者はコードを大幅に書き直す必要があります。これらのエージェントが生成するデータが RL トレーニングを通じてパフォーマンスを大幅に向上させる可能性があるにもかかわらず、これにより導入が妨げられます。 これに対処するために、からの研究チームは、 マイクロソフト リサーチ アジア – 上海 導入しました エージェント ライトニング。これ オープンソース (新しいタブで開きます) このフレームワークは、エージェントがタスクを実行する方法をモデルのトレーニングから分離することで、RL を通じて AI エージェントをトレーニングできるようにし、開発者がコードを実質的に変更せずに RL 機能を追加できるようにします。 トレーニングのためにエージェントの行動をキャプチャする Agent Lightning は、エージェントの実行を一連の状態とアクションとして扱うことにより、エージェントのエクスペリエンスを RL が使用できる形式に変換します。各状態はエージェントのステータスを取得し、各 LLM 呼び出しはエージェントを新しい状態に移行するアクションです。 このアプローチは、どんなに複雑であっても、どのようなワークフローでも機能します。複数のエージェントの連携や動的なツールの使用に関係なく、Agent Lightning はそれを一連の遷移に分割します。各遷移は、LLM…

Agent Lightning: コードを書き換えずに AI エージェントに強化学習を追加

1765742167
2025-12-12 17:20:00

AI エージェントは、コードの作成から複雑な命令の実行に至るまで、ソフトウェア開発を再構築しています。しかし、LLM ベースのエージェントはエラーが発生しやすく、複雑な複数ステップのタスクではパフォーマンスが低下することがよくあります。強化学習 (RL) は、AI システムが自分の行動に対して報酬またはペナルティを受け取ることで最適な意思決定を行うことを学習し、試行錯誤を通じて改善するアプローチです。 RL はエージェントの改善に役立ちますが、通常、開発者はコードを大幅に書き直す必要があります。これらのエージェントが生成するデータが RL トレーニングを通じてパフォーマンスを大幅に向上させる可能性があるにもかかわらず、これにより導入が妨げられます。

これに対処するために、からの研究チームは、 マイクロソフト リサーチ アジア – 上海 導入しました エージェント ライトニング。これ オープンソース (新しいタブで開きます) このフレームワークは、エージェントがタスクを実行する方法をモデルのトレーニングから分離することで、RL を通じて AI エージェントをトレーニングできるようにし、開発者がコードを実質的に変更せずに RL 機能を追加できるようにします。

トレーニングのためにエージェントの行動をキャプチャする

Agent Lightning は、エージェントの実行を一連の状態とアクションとして扱うことにより、エージェントのエクスペリエンスを RL が使用できる形式に変換します。各状態はエージェントのステータスを取得し、各 LLM 呼び出しはエージェントを新しい状態に移行するアクションです。

このアプローチは、どんなに複雑であっても、どのようなワークフローでも機能します。複数のエージェントの連携や動的なツールの使用に関係なく、Agent Lightning はそれを一連の遷移に分割します。各遷移は、LLM の入力、出力、報酬をキャプチャします (図 1)。この標準化された形式は、追加の手順を行わずにデータをトレーニングに使用できることを意味します。

図 1: 検索拡張生成 (RAG) エージェント用の Agent Lightning の統合データ インターフェイスを示す図。左側の 4 つの状態 (state₀ から state₃) はエージェントの実行フローを示しており、セマンティック変数 (UserInput、Query、Passages、Answer) は各コンポーネント呼び出し (LLM または Search) の後に更新されます。緑色のブロックは値が設定された変数を表します。灰色のブロックは空のブロックを示します。右側では、統合データ インターフェイスがこれらの遷移を、RL トレーニングのプロンプト、生成、および即時報酬を含む軌道形式に変換します。
図 1. 検索拡張生成 (RAG) エージェントを使用した Agent Lightning の標準化フォーマットの図。左: 完全なエージェント ワークフロー。各コンポーネント ステップの後にエージェントの状態が更新されます。緑色のブロックは割り当てられた変数を示し、灰色のブロックは内容のない変数を示します。右: 収集されたトランジションは、RL トレーニング プロセスの標準化された形式に基づいており、各トランジションはプロンプト、結果、即時報酬を含む 1 つの LLM ステップに対応しています。

階層型強化学習

複数の LLM リクエストを行うエージェントに対する従来の RL トレーニングでは、すべてのコンテンツを 1 つの長いシーケンスにつなぎ合わせ、トレーニング中にどの部分を学習する必要があり、どの部分を無視するかを特定する必要があります。このアプローチは実装が難しく、モデルのパフォーマンスを低下させる過度に長いシーケンスが作成される可能性があります。

代わりに、Agent Lightning の LightningRL アルゴリズムは階層的なアプローチを採用しています。タスクが完了すると、クレジット割り当てモジュールが各 LLM リクエストが結果にどの程度貢献したかを判断し、それに対応する報酬を割り当てます。これらの独立したステップは、独自の報酬スコアとペアになっており、近接ポリシー最適化 (PPO) やグループ相対ポリシー最適化 (GRPO) などの既存のシングルステップ RL アルゴリズムで使用できます (図 2)。

図 2: LLM タスクに対する 3 つの強化学習アプローチの比較。 (a) シングルステップ GRPO: モデルは 1 回の呼び出しでタスクを完了し、同じタスクの複数の出力が関連する報酬と比較されます。 (b) 以前のマルチステップ GRPO: タスクは複数の LLM 呼び出しにまたがり、軌道を形成します。非 LLM トークン (灰色のボックス) はトレーニング中に無視され、マルチステップ実行全体が比較されます。 (c) LightningRL: マルチステップの実行を個々の LLM 呼び出しに分割します。各 LLM 呼び出しには、入力、コンテキスト、出力、クレジット割り当てモジュールによって割り当てられた報酬が含まれます。同じタスクからの呼び出しは強化のためにグループ化されます。
図 2. (a) シングルステップ GRPO: LLM は 1 回の呼び出しでタスクを完了します。同じタスクに対する複数の回答を比較して、それぞれをどの程度強化する必要があるかを決定します。 (b) 以前のマルチステップ GRPO: タスクには複数の LLM 呼び出しが含まれます。同じタスクの複数のマルチステップ実行が比較され、LLM 以外で生成されたトークン (灰色のボックス) はトレーニング中に無視されます。 (c) LightningRL: マルチステップの実行は、個々の LLM 呼び出しに分割されます。同じタスクからの呼び出しを比較して、それぞれをどの程度強く強化する必要があるかを決定します。各呼び出しには、クレジット割り当てモジュールによって割り当てられる、その入力、コンテキスト、出力、および報酬が含まれます。

この設計にはいくつかの利点があります。広く使用されているシングルステップ RL アルゴリズムと完全な互換性を維持しているため、既存のトレーニング方法を変更せずに適用できます。データを独立したトランジションのシーケンスとして整理することで、開発者は必要に応じて LLM 入力を柔軟に構築でき、複数のツールを使用するエージェントや他のエージェントと連携するエージェントなどの複雑な動作をサポートできます。さらに、シーケンスを短く保つことで、アプローチが適切に拡張され、トレーニングの効率が維持されます。

ミドルウェアとしての Agent Lightning

Agent Lightning は、RL アルゴリズムとエージェント環境の間のミドルウェアとして機能し、標準化されたプロトコルと明確に定義されたインターフェイスを通じてスケーラブルな RL を可能にするモジュール式コンポーネントを提供します。

アン エージェントランナー タスクを完了するエージェントを管理します。作業を分散し、結果と進捗データを収集して保存します。 LLM とは別に動作するため、LLM を異なるリソース上で実行し、同時に実行される複数のエージェントをサポートするように拡張できます。

アン アルゴリズム モデルをトレーニングし、推論とトレーニングに使用される LLM をホストします。これは、RL サイクル全体を調整し、どのタスクが割り当てられるか、エージェントがタスクを完了する方法、エージェントが学習した内容に基づいてモデルがどのように更新されるかを管理します。通常、GPU リソース上で実行され、共有プロトコルを通じてエージェント ランナーと通信します。

ライトニングストア (新しいタブで開きます) システム内のすべてのデータ交換の中央リポジトリとして機能します。標準化されたインターフェイスと共有フォーマットを提供し、さまざまなコンポーネントが連携して動作できるようにし、アルゴリズムとエージェント ランナーが効果的に通信できるようにします。

図 3: Agent Lightning (AGL) のアーキテクチャを示す図。左側の AGL Algorithm ブロックには、推論エンジン (vLLM など)、アルゴリズム反復ループ、トレーニング可能なデータと重みの更新用のアダプターが含まれています。中央の AGL コアには、タスク、リソース、スパン、LLM コールを管理する LightningStore が含まれています。右側の AGL Agent Runner & Tracer には、OpenAI チャット完了と agl.emit() を使用するユーザー定義エージェントが含まれています。矢印はプロンプト、応答、タスク、リソース、スパン、コンポーネント間のデータセットの流れを示し、アルゴリズム研究者とエージェント開発者の役割が強調表示されています。
図 3. Agent Lightning フレームワーク

すべての RL サイクルは 2 つのステップに従います。(1) Agent Lightning はエージェント実行データ (「スパン」と呼ばれる) を収集し、データ ストアに保存します。 (2) 次に、必要なデータを取得し、トレーニングのためにアルゴリズムに送信します。この設計により、アルゴリズムはタスクを非同期にエージェント ランナーに委任することができ、エージェント ランナーはタスクを完了して結果を報告します (図 4)。

図 4: Agent Lightning のトレーニング ループの図。中心要素は「トレーナー」で、矢印は 3 つのコンポーネント間のサイクルを形成しています。左側がエージェント、右側がアルゴリズム、中央がトレーナーです。 「タスク」というラベルが付いた上の矢印はアルゴリズムからエージェントに流れ、「スパン」というラベルが付いた下の矢印はエージェントからアルゴリズムに流れます。 「プロンプト テンプレート」はサイクルの上に記載されており、タスク生成におけるその役割を示しています。
図 4. Agent Lightning の RL サイクル

このアプローチの重要な利点の 1 つは、アルゴリズムの柔軟性です。このシステムにより、開発者はさまざまな報酬の定義、中間データのキャプチャ、さまざまなトレーニング アプローチの実験など、エージェントの学習方法を簡単にカスタマイズできます。

もう 1 つの利点は、リソース効率です。エージェント RL システムは複雑で、エージェント システム、LLM 推論エンジン、トレーニング フレームワークが統合されています。これらのコンポーネントを分離することで、Agent Lightning はこの複雑さを管理しやすくし、各部分を個別に最適化できるようにします。

分離された設計により、各コンポーネントが最適なハードウェアを使用できるようになります。エージェント ランナーは CPU を使用できますが、モデル トレーニングでは GPU が使用されます。各コンポーネントは個別に拡張することもできるため、効率が向上し、システムの保守が容易になります。実際には、開発者はエージェント コードを変更せずに、既存のエージェント フレームワークを維持し、モデル呼び出しをエージェント Lightning API に切り替えることができます (図 5)。

図 5: Agent Lightning を統合する前と後のエージェント実装を示すコードの並べて比較。左側のパネル (暗い背景) には、LLM 呼び出しのロジック、ツールの使用法、報酬の割り当てなど、開発者によって記述された元のエージェント コードが表示されます。右側のパネル (明るい背景) は、Agent Lightning を使用して変更されたバージョンを示しています。エージェント ロジックの大部分は変更されていませんが、トレーニングとクレジットの割り当てのための agl.PromptTemplate、agl.emit()、agl.Trainer などの Agent Lightning コンポーネントへの追加のインポートと呼び出しが含まれています。様式化された稲妻のアイコンが 2 つのパネルの中央にあります。
図 5. 左側では、開発者がエージェント コードを実装しています。右下には、Agent Lightning に必要なコードがあります。エージェント コードの本体は変更されません。

3 つの現実世界のシナリオにわたる評価

Agent Lightning は 3 つの異なるタスクでテストされ、すべてのシナリオで一貫したパフォーマンスの向上が達成されました (図 6)。

テキストから SQL (LangChain): SQL の生成、チェック、再書き込みを処理する 3 つのエージェントを備えたシステムにおいて、Agent Lightning はそのうちの 2 つを同時に最適化し、自然言語クエリから実行可能な SQL を生成する精度を大幅に向上させました。

取得拡張生成 (OpenAI Agents SDK 実装): 大規模な Wikipedia データベースへのクエリを必要とするマルチホップ質問応答データセット MuSiQue では、エージェント ライトニングは、エージェントがより効果的な検索クエリを生成し、取得したコンテンツからより適切に推論できるように支援しました。

数学的 QA とツールの使用 (AutoGen 実装): 複雑な数学の問題に対して、エージェント ライトニングは LLM をトレーニングして、ツールを呼び出すタイミングと方法をより正確に決定し、その結果を推論に統合して精度を向上させました。

図 6: トレーニングとテストの分割に関する 3 つの評価シナリオ (Spider、MuSiQue、Calculator) にわたる報酬曲線を示す 6 つの折れ線グラフの図。上の行: Spider、MuSiQue、および Calculator での報酬のトレーニング - 各プロットは、ステップごとにノイズの多い上昇傾向を持つ青い線を示し、報酬の増加を示しています。 Spider と Calculator は変動が大きいほど速く上昇しますが、MuSiQue はより緩やかに上昇します。下の行: Spider、MuSiQue、および Calculator でのテスト報酬 - 各プロットは、増加し、より高い報酬で安定する青い線を示しています。 Calculator は最も早くプラトー近くに達しますが、Spider はわずかな変動はありますが安定した増加を示し、MuSiQue はよりゆっくりと改善します。すべてのプロットでは、X 軸に「ステップ」、Y 軸に「報酬」が使用され、凡例には「ours」というラベルが付けられ、明るいグリッド線が付けられます。
図 6. 3 つの評価シナリオにわたる報酬曲線

エージェントの継続的な改善を可能にする

Agent Lightning は RL 統合を簡素化することで、開発者が高性能エージェントを構築、反復、デプロイすることを容易にします。 Agent Lightning の機能を拡張して、自動プロンプト最適化と追加の RL アルゴリズムを含める予定です。

このフレームワークは、AI エージェントが実際の実践を通じて改善できるオープン プラットフォームとして機能するように設計されています。 Agent Lightning は、既存のエージェント システムと強化学習を橋渡しすることで、経験から学習し、時間の経過とともに改善する AI システムの作成を支援することを目指しています。

#Agent #Lightning #コードを書き換えずに #エージェントに強化学習を追加

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。