Phase 13.3 — CuriosityModule configuration Q&A #376
Unanswered
web3guru888
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
CuriosityModule — Configuration Q&A
Frequently asked questions about configuring and integrating
CuriosityModule(Phase 13.3).Q1: Which normalisation strategy should I use for a new environment?
Start with the default
RUNNING(Welford online mean/variance). It requires no hyperparameters and adapts automatically as the world model improves. Switch toPERCENTILEif your surprise distribution is heavy-tailed (outlier transitions dominate the running std). UseTANHif you need a guaranteed bounded output for policy-gradient methods.RUNNINGPERCENTILEpercentile_lo/percentile_hiTANHNONEQ2: How fast does the intrinsic weight decay?
With the default
EXPONENTIALschedule atdecay_rate=1e-5andintrinsic_weight_init=0.1:intrinsic_weight_min, floor kicks in)Use
COSINEif you want a smoother ramp-down over a fixed training budget.Q3: What happens when
reset()is called?reset()clears all Welford accumulators (_n,_mean,_M2) and the percentile buffer, and resets_weighttointrinsic_weight_init. Call it at the start of each episode for episodic novelty tracking. Omitreset()entirely for life-long curiosity that treats all past experience.Q4: How do I wire CuriosityModule into CognitiveCycle?
Q5: Can CuriosityModule be disabled in production?
Yes — set
enabled=FalseinCuriosityConfig. The module then returns aSurpriseEventwithbonus=0.0without callingWorldModel.surprise(), so there is zero runtime overhead.Q6: How does
batch_bonus()interact with the asyncio lock?Each
compute_bonus()call acquires_lockonly for the short stat-update section (not during theWorldModel.surprise()await). This means multiple concurrentbatch_bonus()calls can issue allsurprise()requests in parallel — the lock is only held long enough to update Welford accumulators, which is microseconds.Q7: How do I add a Grafana panel for curiosity weight decay?
Recommended panel layout:
asi_curiosity_weight(Gauge, time-series) — watch the exponential decayhistogram_quantile(0.95, rate(asi_curiosity_bonus_bucket[5m]))— p95 bonushistogram_quantile(0.50, rate(asi_curiosity_raw_surprise_bucket[5m]))— median raw MSEasi_curiosity_resets_total(counter) — episode resetsBeta Was this translation helpful? Give feedback.
All reactions