Skip to content

ScienceWorld

GPU Model Controller Mode Trainer Mode Code
8× A100 40GB Qwen/Qwen2.5-7B-Instruct Local Async only Source

ScienceWorld trains an agent with verl and Agent Lightning >=v1.0 to solve text-based science tasks from AllenAI's ScienceWorld.

This example uses the local controller in asynchronous trainer mode. Each rollout runs as a local process that interacts with a ScienceWorld environment, calls the model through the AGL Gateway, and reports the final reward. It does not require K8s, Docker, or Minikube.

Environment Preparation

Install Java and the example dependencies:

sudo apt-get install -y default-jre
uv pip install scienceworld openai

ScienceWorld starts a JVM for each rollout, so Java 1.8 or later is required.

Training

Start local training from the repository root:

examples/science_world/run_local.sh

run_local.sh starts agl-server, the local agl-controller, and the verl trainer. The controller launches each rollout as a local process, and the script cleans up the server, controller, and Ray processes when it exits.

The training dataset is generated automatically from ScienceWorld task names and variation indices. To train on selected tasks or change the number of variations per task:

examples/science_world/run_local.sh \
    --task-names find-non-living-thing,find-living-thing \
    --variations-per-task 50

Available runtime settings include:

Setting Default Description
--task-names all Comma-separated task names, or all ScienceWorld tasks
--variations-per-task 50 Maximum variations per task
--simplification easy ScienceWorld simplification preset
SW_MAX_STEPS 30 Maximum model turns per rollout
SW_ENV_STEP_LIMIT 100 ScienceWorld environment step limit
AGL_MAX_TOKENS 256 Maximum tokens per model completion