ScienceWorld icon indicating copy to clipboard operation
ScienceWorld copied to clipboard

Heat transfer is stochastic

Open MarcCote opened this issue 3 years ago • 2 comments

Some times running the same sequence of commands in ScienceWorld leads to different outcome (here making steam or not).

Steps to reproduce:

  • Load a ScienceWorld game with taskName=task-1-boil, variationIdx=0, and simplificationStr='teleportAction'.
  • Enter the commands: teleport to kitchen, pour counter into sink, activate sink, use lighter on drawer, and look around
  • Expect to see "a sink, which is turned on. In the sink is: a bowl (containing a red apple, a banana, an orange, a potato, a substance called water), a burned drawer, a substance called steam."

Running that procedure 8 times in a given Python instance, I got

6/8 runs that are missing steam!

Doing it a second time, I got

4/8 runs that are missing steam!

0/8 runs was expected.

@aphedges I'd love to see your changes to fix non determinism in the Scala code.

MarcCote avatar Nov 04 '22 19:11 MarcCote

Hmm, given that EnvObject uses a Set() instead of an Array() for a storage class for objects (and most of the downstream functions in the e.g. object parser, etc., assume Sets() instead of ordered arrays), it would likely be a significant refactor to switch everything over to Arrays. I think the previous patch for determinism was limited to just showing the objects in the same order in the description text, which was solved with a call to sort the objects by name or object ID in the object description function.

PeterAJansen avatar Nov 04 '22 19:11 PeterAJansen

@MarcCote, as @PeterAJansen stated, removing all non-determinism would be a large refactor, so I didn't attempt to fix most of it. I would have tried to fix a non-deterministic action if I were aware of it, but the only remaining non-determinism that I knew about was in gold path generation. For that, I only fixed a single task, and the fix interferes with our generation of training data, so I never tried to upstream my patch.

aphedges avatar Nov 04 '22 22:11 aphedges