ScienceWorld عبارة عن بيئة افتراضية قائمة على النصوص تتمحور حول إنجاز المهام من منهج العلوم الابتدائية الموحد. يرافق هذا الكود الورقة ScienceWorld: هل وكيلك النصي أكثر ذكاءً من طالب الصف الخامس؟.
يمكنك تجربة 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 create --name scienceworld python=3.8 كوندا تفعيل 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 create --name scienceworld python=3.8 كوندا تفعيل Scienceworld تثبيت النقطة Scienceworld[خادم الويب]
تشغيل خادم الويب:
python examples/scienceworld-web-server-example.py
قم بتوجيه متصفح الويب الخاص بك إلى: localhost:8080
تمت كتابة ScienceWorld بلغة Scala (2.12.9)، ويتم تجميعه باستخدام sbt
في ملف JAR يتم تشغيله باستخدام Java. للراحة، يتم توفير واجهة برمجة تطبيقات Python (Python >= 3.8)، والتي تتعامل باستخدام حزمة py4j
.
إذا قمت بتعديل كود Scala، فيمكنك إعادة ترجمة ملف JAR عن طريق تشغيل:
./simulator/package.sh تثبيت النقطة -e .
يتم سرد المهام في الجدول أدناه مع عدد الاختلافات الخاصة بها. يمكن استخدام معرف المهمة أو اسمها لمهمة ذات 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 | نبات مندلي الوراثي المعروف | 120 |
10-2 | نبات مندلي الوراثي غير معروف | 480 |
DRRN: https://github.com/cognitivealab/drrn-scienceworld
KG-A2C: https://github.com/cognitivealab/kga2c-scienceworld
الهدوء: https://github.com/cognitivealab/calm-scienceworld
استنساخ السلوك وتحويل القرار: https://github.com/cognitivealab/t5-scienceworld