Skip to content
This repository has been archived by the owner on May 6, 2024. It is now read-only.

Some fixes to NLE and the competition task #173

Merged
merged 6 commits into from
Jun 22, 2021
Merged

Conversation

heiner
Copy link
Contributor

@heiner heiner commented Jun 19, 2021

This PR fixes our C++ lint test (which apparently never really worked and at any rate was broken for months now) and flat-out disables seeding in NLE. The seeding commit is rather defensive for purposes of the NLE competition. Afterwards, we can #define NLE_ALLOW_SEEDING 1 to turn on the old behaviour.

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jun 19, 2021
@heiner heiner force-pushed the heiner/fixcompenv branch from 5f5e10f to 2bd281c Compare June 19, 2021 13:12
@heiner heiner requested review from cdmatters and tscmoo June 19, 2021 13:15
Copy link
Contributor

@cdmatters cdmatters left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code all looks fine except I wouldnt mark this for release yet. Some discussion points listed. The only think I'm thinking about is: do we whole hog overhaul action space or make an incremental change? Another option (crazy) is to provide mapping to old action space in some way?

@@ -341,6 +341,13 @@ def __init__(
# If the in-game turn count doesn't change for 10_000 steps, we abort
self.no_progress_timeout = no_progress_timeout

def f(*args, **kwargs):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given the discussions previously: do we need this monkey-patching? And should it happen here? I think given the AICrowd set up we probably dont NEED to prevent this here, and the trade off is: "being precautionary" vs preventing people from using seeds some how in training (Prioritised Level Replay?).

However, I'm pretty precautionary kinda guy, and would opt for keeping this. I guess the main thing I'm interested in is: how is this meant to work with the other compilation changes? If seeding is switched off, are these exceptions just signposting? If so: why do we only do that here, and not in all the environments?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah i have seen below now that the compilation changes result in thrown exceptions in pynethack.cc so this really is window dressing, presumably to be extra clear to competitors?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

History of this change: I wanted to remove the Python functions that do seed setting, but unfortunately the pybind11 object's attributes are read-only so they cannot be changed this way.

I guess we could not do this now.

@heiner heiner force-pushed the heiner/fixcompenv branch from 1cd9ab9 to 67182a4 Compare June 21, 2021 15:48
Heinrich Kuttler added 3 commits June 22, 2021 13:35
This commit is rather defensive for purposes of the NLE competition.
Afterwards, we can #define NLE_ALLOW_SEEDING 1 to turn on the old
behaviour.
@heiner heiner force-pushed the heiner/fixcompenv branch from 67182a4 to e830174 Compare June 22, 2021 11:35
@heiner
Copy link
Contributor Author

heiner commented Jun 22, 2021

Updated PR to not touch actions for now.

@heiner heiner merged commit 60a784d into master Jun 22, 2021
@heiner heiner deleted the heiner/fixcompenv branch June 22, 2021 13:47
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants