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:
ScienceWorld starts a JVM for each rollout, so Java 1.8 or later is required.
Training¶
Start local training from the repository root:
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 |