はじめに
OSWorldは、実際のコンピュータ環境でオープンエンドなタスクを実行するマルチモーダルエージェントのベンチマークです。このリポジトリでは、環境、ベンチマーク、プロジェクトページが提供されています。
主な特徴は以下の通りです:
- 実際のデスクトップ環境でのタスク実行
- スクリーンショットやアクセシビリティツリーなどのマルチモーダル情報の活用
- オープンソースのベンチマーク用データセット
- 簡単に利用できるPythonインターフェース
インストール方法
デスクトップまたは非仮想化プラットフォームの場合
- このリポジトリをクローンし、必要な依存関係をインストールします。
git clone https://github.com/xlang-ai/OSWorld
cd OSWorld
pip install -r requirements.txt
-
VMware Workstation Proをインストールし、
vmrun
コマンドを設定します。 -
必要な仮想マシンをダウンロードし、環境をセットアップするためのスクリプトを実行します。
python setup_vm.py
AWS、Azureなどの仮想化プラットフォームの場合
現在、仮想化プラットフォームのサポートは開発中です。
クイックスタート
以下の最小限の例を実行して、環境と対話することができます:
from desktop_env.envs.desktop_env import DesktopEnv
example = {
"id": "94d95f96-9699-4208-98ba-3c3119edf9c2",
"instruction": "I want to install Spotify on my current system. Could you please help me?",
"config": [
{
"type": "execute",
"parameters": {
"command": [
"python",
"-c",
"import pyautogui; import time; pyautogui.click(960, 540); time.sleep(0.5);"
]
}
}
],
"evaluator": {
"func": "check_include_exclude",
"result": {
"type": "vm_command_line",
"command": "which spotify"
},
"expected": {
"type": "rule",
"rules": {
"include": ["spotify"],
"exclude": ["not found"]
}
}
}
}
env = DesktopEnv(
path_to_vm=r"Ubuntu/DesktopEnv-Ubuntu 64-bit Arm.vmx",
action_space="pyautogui"
)
obs = env.reset(task_config=example)
obs, reward, done, info = env.step("pyautogui.rightClick()")
実験
エージェントのベースライン
論文で使用したベースラインエージェントを、GPT-4Vのpure-screenshot設定で実行するには以下のコマンドを実行します:
python run.py --path_to_vm Ubuntu/Ubuntu.vmx --headless --observation_type screenshot --model gpt-4-vision-preview --result_dir ./results
結果は./results
ディレクトリに保存されます。そして以下のコマンドで結果を確認できます:
python show_result.py
評価
まず、エージェントインターフェースと環境インターフェースについてREADMEを読んでください。そして、カスタムエージェントをrun.py
ファイルにインポートします。その後、前のセクションと同様のコマンドを実行して、エージェントのベンチマークを実行できます。
よくある質問
異なる設定での実行時間とコストは?
設定 | 予想時間* | 予算コスト (全テストセット/小テストセット) |
---|---|---|
GPT-4V (screenshot) | 10時間 | $100 ($10) |
Gemini-ProV (screenshot) | 15時間 | $0 ($0) |
Claude-3 Opus (screenshot) | 15時間 | $150 ($15) |
GPT-4V (a11y tree, SoM, etc.) | 30時間 | $500 ($50) |
*環境並列化なし。2024年4月時点での計算。
はい、OSWorldリポジトリ内のコードについても解説を追加いたします。主要なファイルやディレクトリごとに説明を加えていきます。
リポジトリ構造
OSWorldリポジトリは以下のような構造になっています:
OSWorld/
desktop_env/ # 環境関連のコード
evaluation_examples/ # 評価用のデータセット
mm_agents/ # エージェント関連のコード
lib_run_single.py # 単一のタスク実行用ライブラリ
main.py # メインスクリプト
run.py # ベンチマーク実行用スクリプト
setup_vm.py # 仮想マシンセットアップ用スクリプト
show_result.py # 結果表示用スクリプト
desktop_env
desktop_env
ディレクトリには、デスクトップ環境に関連するコードが含まれています。
-
envs/desktop_env.py
: OpenAI Gym形式のデスクトップ環境のインターフェースを定義しています。reset、step、evaluateなどの主要なメソッドが実装されています。 -
controllers/python.py
: デスクトップ環境を制御するためのPythonコントローラーを定義しています。スクリーンショットの取得、アクセシビリティツリーの取得、アクションの実行などの機能が含まれています。 -
server/main.py
: デスクトップ環境とのやり取りを行うためのFlaskサーバーを定義しています。各種APIエンドポイントが実装されています。
evaluation_examples
evaluation_examples
ディレクトリには、ベンチマークに使用する評価用のデータセットが含まれています。examples
ディレクトリ内に各タスクのJSONファイルが格納されており、タスクの説明や評価方法などが定義されています。
mm_agents
mm_agents
ディレクトリには、マルチモーダルエージェントに関連するコードが含まれています。
-
agent.py
: プロンプトベースのエージェントを定義しています。観測からアクションを生成するpredict
メソッドが実装されています。 -
prompts.py
: エージェントが使用するプロンプトを定義しています。観測の種類やアクション空間に応じて、異なるプロンプトが用意されています。
その他のファイル
-
lib_run_single.py
: 単一のタスクを実行するためのライブラリ関数が定義されています。 -
main.py
: 人間によるデスクトップ操作のデモンストレーションを行うためのメインスクリプトです。 -
run.py
: ベンチマークを実行するためのスクリプトです。コマンドライン引数を指定して、エージェントやタスクを選択できます。 -
setup_vm.py
: 仮想マシンをセットアップするためのスクリプトです。必要なファイルのダウンロードや環境の初期化を行います。 -
show_result.py
: ベンチマークの結果を表示するためのスクリプトです。
以上が、OSWorldリポジトリ内のコードの概要になります。各ファイルやディレクトリには、より詳細なコメントやドキュメントが含まれているので、必要に応じて参照してください。このリポジトリを活用することで、デスクトップ環境でのマルチモーダルエージェントの評価を効果的に行うことができるでしょう。
リポジトリ
参考サイト
以上が、OSWorldリポジトリの解説記事になります。READMEを参照しつつ、インストール方法、使い方、実験の進め方などを日本語で説明しました。章立てや箇条書きを活用し、読みやすい記事になるよう心がけました。OSWorldを使って、実際のデスクトップ環境でマルチモーダルエージェントの評価を行ってみてください。
コメント