ScienceWorld เป็นสภาพแวดล้อมเสมือนแบบข้อความที่มีศูนย์กลางอยู่ที่การทำงานให้สำเร็จจากหลักสูตรวิทยาศาสตร์ขั้นพื้นฐานที่ได้มาตรฐาน รหัสนี้มาพร้อมกับเอกสาร ScienceWorld: Is your Textual Agent Smarter than a 5th grader หรือไม่?
คุณสามารถลอง ScienceWorld ด้วยตัวเองผ่านทาง HuggingFace Space ของเรา หรืออ่านบทถอดเสียงการเล่นบางส่วน
@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 สร้าง --name scienceworld python=3.8 conda เปิดใช้งาน scienceworld
จากนั้นติดตั้ง ScienceWorld จาก PyPi:
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
นอกจากนี้ยังมีการสาธิตเว็บเซิร์ฟเวอร์ ซึ่งอนุญาตให้เรียกใช้คอนโซลผู้ใช้ ScienceWorld ที่สามารถโต้ตอบกับเว็บเบราว์เซอร์ได้
เพื่อรันการสาธิตเว็บเซิร์ฟเวอร์:
conda สร้าง --name scienceworld python=3.8 conda เปิดใช้งาน scienceworld pip ติดตั้ง scienceworld [เว็บเซิร์ฟเวอร์]
เรียกใช้เว็บเซิร์ฟเวอร์:
python examples/scienceworld-web-server-example.py
ชี้เว็บเบราว์เซอร์ของคุณไปที่: localhost:8080
ScienceWorld เขียนด้วย Scala (2.12.9) และคอมไพล์โดยใช้ sbt
ลงในไฟล์ JAR ที่รันด้วย Java เพื่อความสะดวก มีการจัดเตรียม Python API (Python >= 3.8) ซึ่งอินเทอร์เฟซโดยใช้แพ็คเกจ py4j
หากคุณแก้ไขโค้ด Scala คุณสามารถคอมไพล์ไฟล์ JAR ใหม่ได้โดยการรัน:
./simulator/package.sh pip ติดตั้ง -e
งานต่างๆ จะแสดงอยู่ในตารางด้านล่างพร้อมกับจำนวนรูปแบบต่างๆ สามารถใช้ ID งานหรือชื่อกับงานด้วย env.load()
ได้
รหัสงาน | ชื่องาน | # รูปแบบต่างๆ |
---|---|---|
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 | Mendelian-พันธุศาสตร์-รู้จักพืช | 120 |
10-2 | Mendelian-พันธุศาสตร์-ไม่ทราบ-พืช | 480 |
DRRN: https://github.com/cognitiveailab/drrn-scienceworld
KG-A2C: https://github.com/cognitiveailab/kga2c-scienceworld
ความสงบ: https://github.com/cognitiveailab/calm-scienceworld
การโคลนพฤติกรรมและหม้อแปลงการตัดสินใจ: https://github.com/cognitiveailab/t5-scienceworld