ScienceWorld adalah lingkungan virtual berbasis teks yang berpusat pada penyelesaian tugas-tugas dari kurikulum sains dasar standar. Kode ini menyertai makalah ScienceWorld: Apakah Agen Tekstual Anda Lebih Cerdas dari Siswa Kelas 5?.
Anda dapat mencoba ScienceWorld sendiri melalui HuggingFace Space kami atau membaca beberapa transkrip permainan.
@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} }
Sebelum menjalankan: Anda harus menginstal Java 1.8+
di sistem Anda (disertakan dengan sebagian besar distribusi linux) dan Python 3.8+
. Kami merekomendasikan untuk membuat lingkungan conda seperti ini:
conda buat --nama scienceworld python=3.8 conda mengaktifkan scienceworld
Kemudian, instal ScienceWorld dari PyPi:
pip install scienceworld
atau dari sumber dalam mode pengembangan:
git clone https://github.com/allenai/ScienceWorld.git cd ScienceWorld pip install .
Jalankan contoh agen acak, pada tugas 13 (klasifikasi: menempatkan benda mati di dalam kotak), untuk 5 episode:
python examples/random_agent.py --task-num=13 --num-episodes=5 --simplifications-preset easy
Jalankan konsol pengguna tempat Anda dapat berinteraksi dengan lingkungan, pada tugas 3 (perubahan status: peleburan):
python examples/human.py --task-num=3 --num-episodes=5
Demo server web juga tersedia, yang memungkinkan menjalankan konsol pengguna ScienceWorld yang dapat berinteraksi di browser web.
Untuk menjalankan demo server web:
conda buat --nama scienceworld python=3.8 conda mengaktifkan scienceworld pip instal scienceworld[server web]
Jalankan server web:
python examples/scienceworld-web-server-example.py
Arahkan browser web Anda ke: localhost:8080
ScienceWorld ditulis dalam Scala (2.12.9), dan dikompilasi menggunakan sbt
menjadi file JAR yang dijalankan dengan Java. Untuk kenyamanan, API Python disediakan (Python >= 3.8), yang berinteraksi menggunakan paket py4j
.
Jika Anda mengubah kode Scala, Anda dapat mengkompilasi ulang file JAR dengan menjalankan:
./simulator/package.sh instalasi pip -e .
Tugas-tugas tersebut tercantum dalam tabel di bawah beserta jumlah variasinya. ID tugas atau namanya dapat digunakan untuk tugas dengan env.load()
.
ID Tugas | Nama Tugas | # Variasi |
---|---|---|
1-1 | mendidihkan | 30 |
1-2 | meleleh | 30 |
1-3 | membekukan | 30 |
1-4 | mengubah keadaan | 30 |
2-1 | penggunaan-termometer | 540 |
2-2 | mengukur-titik lebur-zat yang diketahui | 436 |
2-3 | mengukur-titik lebur-zat yang tidak diketahui | 300 |
3-1 | komponen daya | 20 |
3-2 | komponen-daya-energi-terbarukan-vs-energi-tak-terbarukan | 20 |
3-3 | konduktivitas uji | 900 |
3-4 | uji-konduktivitas-zat-yang-tidak diketahui | 600 |
4-1 | temukan-makhluk-hidup | 300 |
4-2 | menemukan-benda mati | 300 |
4-3 | temukan tanaman | 300 |
4-4 | temukan-hewan | 300 |
5-1 | menanam tanaman | 126 |
5-2 | tumbuh-buah | 126 |
6-1 | campuran kimia | 32 |
6-2 | kimia-campuran-cat-warna sekunder | 36 |
6-3 | kimia-campuran-cat-warna tersier | 36 |
7-1 | umur-umur paling lama | 125 |
7-2 | umur-umur terpendek | 125 |
7-3 | umur-umur terpanjang-kemudian-umur terpendek | 125 |
8-1 | identifikasi-tahapan-kehidupan-1 | 14 |
8-2 | mengidentifikasi-tahap-kehidupan-2 | 10 |
9-1 | bidang miring-menentukan-sudut | 168 |
9-2 | permukaan yang diberi nama gesekan bidang miring | 1386 |
9-3 | permukaan-bidang-gesekan-yang tidak disebutkan namanya | 162 |
10-1 | mendelian-genetika-dikenal-tanaman | 120 |
10-2 | mendelian-genetika-tanaman-tidak diketahui | 480 |
DRRN: https://github.com/cognitiveailab/drrn-scienceworld
KG-A2C: https://github.com/cognitiveailab/kga2c-scienceworld
TENANG: https://github.com/cognitiveailab/calm-scienceworld
Kloning Perilaku dan Transformator Keputusan: https://github.com/cognitiveailab/t5-scienceworld