ScienceWorld — это текстовая виртуальная среда, ориентированная на выполнение задач из стандартизированной учебной программы по элементарным естественным наукам. Этот код прилагается к статье ScienceWorld: ваш текстовый агент умнее пятиклассника?
Вы можете попробовать ScienceWorld самостоятельно через наше пространство HuggingFace или прочитать некоторые стенограммы прохождения.
@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 --name scienceworld python=3.8 Конда активирует мир науки
Затем установите 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 Конда активирует мир науки pip install scienceworld[веб-сервер]
Запустите веб-сервер:
python examples/scienceworld-web-server-example.py
Направьте свой веб-браузер на: localhost:8080
ScienceWorld написан на Scala (2.12.9) и с помощью sbt
компилируется в JAR-файл, который запускается с помощью Java. Для удобства предоставляется API 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/cognitiveailab/drrn-scienceworld
KG-A2C: https://github.com/cognitiveailab/kga2c-scienceworld
СПОКОЙСТВИЕ: https://github.com/cognitiveailab/calm-scienceworld
Клонирование поведения и преобразователь решений: https://github.com/cognitiveailab/t5-scienceworld