ScienceWorld は、標準化された初等科学カリキュラムのタスクを達成することを中心としたテキストベースの仮想環境です。 このコードは、論文「ScienceWorld: Is your Textual Agent Smarter than a 5th Grader?」に付属しています。
HuggingFace Space を通じて ScienceWorld を自分で試したり、プレイスルーのトランスクリプトを読んだりすることができます。
@misc{scienceworld2022, title={ScienceWorld: Is your Agent Smarter than a 5th Grader?}, author={Ruoyao Wang and Peter Jansen and Marc-Alexandre C{^o}t{'e} and Prithviraj Ammanabrolu}, year={2022}, eprint={2203.07540}, archivePrefix={arXiv}, primaryClass={cs.CL}, url={https://arxiv.org/abs/2203.07540} }
実行する前に:システムにJava 1.8+
以降 (ほとんどの Linux ディストリビューションに同梱) とPython 3.8+
以降がインストールされている必要があります。次のような conda 環境を作成することをお勧めします。
conda create --namescienceworld python=3.8 conda はサイエンスワールドをアクティベートします
次に、PyPi から ScienceWorld をインストールします。
pip install scienceworld
または開発モードのソースから:
git clone https://github.com/allenai/ScienceWorld.git cd ScienceWorld pip install .
タスク 13 (分類: 無生物を箱に入れる) でサンプルのランダム エージェントを 5 つのエピソードで実行します。
python examples/random_agent.py --task-num=13 --num-episodes=5 --simplifications-preset easy
タスク 3 (状態の変化: 融解) で、環境と対話できるユーザー コンソールを実行します。
python examples/human.py --task-num=3 --num-episodes=5
Web ブラウザで操作できる ScienceWorld ユーザー コンソールを実行できる Web サーバーのデモも利用できます。
Web サーバーのデモを実行するには:
conda create --namescienceworld python=3.8 conda はサイエンスワールドをアクティベートします pip インストールサイエンスワールド[ウェブサーバー]
Web サーバーを実行します。
python examples/scienceworld-web-server-example.py
Web ブラウザで次の場所を指定します: localhost:8080
ScienceWorld は Scala (2.12.9) で書かれており、 sbt
使用して Java で実行される JAR ファイルにコンパイルされます。 便宜上、 py4j
パッケージを使用してインターフェースをとる Python API (Python >= 3.8) が提供されています。
Scala コードを変更した場合は、以下を実行して JAR ファイルを再コンパイルできます。
./シミュレータ/パッケージ.sh pip install -e 。
タスクとそのバリエーションの数を以下の表に示します。 env.load()
では、タスク ID またはその名前のいずれかをタスクに使用できます。
タスクID | タスク名 | # バリエーション |
---|---|---|
1-1 | 沸騰させる | 30 |
1-2 | 溶ける | 30 |
1-3 | フリーズする | 30 |
1-4 | 事態の変化 | 30 |
2-1 | 使用温度計 | 540 |
2-2 | 既知の物質の融点を測定する | 436 |
2-3 | 未知の物質の融点を測定する | 300 |
3-1 | パワーコンポーネント | 20 |
3-2 | 電力コンポーネントの再生可能エネルギーと非再生可能エネルギー | 20 |
3-3 | テスト導電率 | 900 |
3-4 | 未知の物質の導電性試験 | 600 |
4-1 | 生き物を見つける | 300 |
4-2 | 無生物を見つける | 300 |
4-3 | 植物を見つける | 300 |
4-4 | 動物を見つける | 300 |
5-1 | 植物を育てる | 126 |
5-2 | フルーツを育てる | 126 |
6-1 | ケミストリーミックス | 32 |
6-2 | 化学混合ペイント二次色 | 36 |
6-3 | 化学-混合-ペイント-三次色 | 36 |
7-1 | 寿命 - 最も長生きした | 125 |
7-2 | 寿命が最も短い | 125 |
7-3 | 寿命 - 最も長生きした - 次に最も短命だった | 125 |
8-1 | ライフステージの特定-1 | 14 |
8-2 | ライフステージの特定-2 | 10 |
9-1 | 傾斜面の角度を決定する | 168 |
9-2 | 傾斜面摩擦名付き面 | 1386 |
9-3 | 傾斜面摩擦名前のない表面 | 162 |
10-1 | メンデル遺伝学で知られている植物 | 120 |
10-2 | メンデル遺伝学-未知の植物 | 480 |
DRRN: https://github.com/cognitiveailab/drrn-scienceworld
KG-A2C: https://github.com/cognitiveailab/kga2c-scienceworld
CALM: https://github.com/cognitiveailab/calm-scienceworld
行動クローニングと意思決定トランスフォーマー: https://github.com/cognitiveailab/t5-scienceworld