InternLM/InternBootcamp

Official implement on InternBootCamp

InternAgentHarness (InternBootcamp) – 何であるか

InternAgentHarness(別名 InternBootcamp)は、大規模言語モデル(LLM)エージェントの構築、トレーニング、評価を目的とした研究指向のフレームワークです。このフレームワークは、LLMが外部ツールと対話し、状態フィードバックを受け、行動に対して報酬を得られる合成的でプログラム可能な環境を提供します。単に高いベンチマークスコアを得ることではなく、以下のクローズドループパイプラインを構築することを目的としています。

  1. 実行可能なタスクの生成(例:バッテリー設計、ロボット軌道計画、金融予測、ポーカー意思決定)。
  2. モデルが繰り返し呼び出せる検証済みのツールの公開。
  3. モデルと環境間の複数ラウンド対話の管理。
  4. 中間ステップと最終結果から報酬を計算し、強化学習や教師あり微調整を可能にする。
  5. 再現性、データ生成、さらなるトレーニングのために完全な相互作用トレースの記録。

コアコンセプト

コンポーネント 役割
InstructionGenerator タスクのプロンプトと問題を定義する「アイデンティティ」データ(例:解くべき算術式)を生成する。
ToolManager LLMが呼び出せる外部ツール(関数、シミュレータ、API)を登録・実行する。
InteractionManager モデルと環境間の双方向対話(複数ラウンドのツール呼び出し、任意のヒューマンスタイルフィードバックを含む)を処理する。
RewardCalculator 各ステップおよび最終回答を真値またはルールベース基準と比較し、トレーニング用のスカラー報酬を出力する。
Evaluator 複数エピソードをバッチで実行し、トレースを収集し、研究実験用のメトリクスを出力する。

動作方法(概要フロー)

  1. プロンプト設計 – InstructionGeneratorがタスクを説明する自然言語プロンプトを構築する。
  2. モデルロールアウト – LLMがプロンプトを受け取り、ツール呼び出しを決定する。
  3. ツール呼び出し – ToolManagerが要求されたツール(例:物理シミュレータ、電卓、データベースクエリ)を実行し、結果を返す。
  4. 環境フィードバック – InteractionManagerがツール出力に基づいて追加の質問やヒントを追加する可能性がある。
  5. 報酬計算 – 各ステップおよび終了時に、RewardCalculatorがモデルの回答を真値と比較し、報酬信号を発信する。
  6. ループ – 終了条件(最大ラウンド数、完璧スコアなど)が満たされるまで、ステップ2〜5を繰り返す。
  7. ログ記録 – 各ラウンド(モデルメッセージ、ツール要求、ツール応答、報酬)がJSONLファイルに保存され、後続の分析や微調整に利用可能。

これで何ができるか

  • BaseInstructionGenerator の小さなサブクラスを実装し、必要に応じて BaseTool と BaseInteraction を追加することで、新しい合成タスクを作成できる。
  • フレームワークを「ロールアウト」モードで実行し、数千件の複数ラウンド対話ログを生成し、教師あり微調整やRLHFに使用できるトレーニングデータを収集できる。
  • ツール使用能力のベンチマーク:モデルが計画、ツール呼び出し、自己修正を行う能力を、工学、金融、ゲーム、ロボティクスなど多様な分野で評価できる。
  • 分散ツールサーバーの実行:組み込みのマスターワーカー型ツールサーバーにより、重いツールを複数マシンに分散してスケーリング可能。

使い始め方(READMEから)

  1. pip install -e . と requirements-editable.txt を使用して、リポジトリとそのサブモジュール(verl, openevolve)をインストールする。
  2. InstructionGenerator のサブクラスを記述し、生成比率、ランダムシード、データ分割を設定するYAML構成ファイルを用意してタスクを定義する。
  3. (任意)BaseTool をサブクラス化し、LLMに関数定義として送信されるJSONスキーマを提供することで、ツール(例:電卓)を追加する。
  4. internbootcamp.utils.data_generation CLI を使用してデータ生成を実行し、完全なエピソードトレースを含むJSONL(およびオプションのParquet)ファイルを出力する。
  5. internbootcamp.utils.run_evaluation を使用してモデルを評価し、データセット、APIキー、ツール/インタラクション構成を指定する。

対象ユーザー

ツール拡張型推論、人間からの強化学習、シミュレート環境におけるマルチステップ計画などに取り組む研究者や開発者にとって、柔軟なサンドボックスを提供する。


上記のすべての詳細は、プロジェクトのREADMEから直接引用したものであり、追加機能は推測されていない。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト