Dreamer-v3
17 memberslucid.models.generative.dreamer_v3DreamerV3 family — Hafner et al., Nature 640 (2025).
Hafner, Danijar, et al. "Mastering Diverse Domains through World Models." Nature, vol. 640, 2025, pp. 647-653.
DreamerV3's contribution is that its hyperparameters stop mattering. Its predecessors needed a different divergence scale for Atari than for continuous control, a different entropy bonus, a different discount; this one setting spans them, and the paper's headline result — collecting diamonds in Minecraft from scratch — is run with the same numbers as everything else.
Four changes buy that, and each removes a scale the practitioner was otherwise forced to supply.
Symlog. Rewards differ by orders of magnitude between domains, and a network fitted to one range is wrong on another. Compressing them through leaves small values alone and folds large ones in, so the same head covers both.
Two-hot regression. Reward and value heads predict a distribution over exponentially spaced bins rather than a number. A squared error's gradient scales with the error, which is precisely the coupling to reward magnitude the paper is trying to break; a cross-entropy's does not. It also lets a prediction be bimodal, which the mean of a squared-error head cannot represent.
Free bits. The divergence is clipped below at one nat per variable:
weighted and . Below one nat the term is flat, so no gradient is spent closing a gap that is already small — which is what stopped the posterior collapsing and made the KL scale a tuning knob in the first place. The categoricals are also mixed with 1% uniform, so no class can reach probability zero and strand its gradient.
Normalised returns. The actor divides its objective by the spread of its own recent returns,
dividing by so that small returns are left alone rather than amplified into noise. A fixed entropy bonus then means the same thing in every domain, because the thing it is traded against has been made scale-free.
Classes
DreamerV3Config3 methodsFrozen configuration for the DreamerV3 family.
DreamerV3BehaviorOutput1 methodsWhat the imagination pass produces.
DreamerV3ForWorldModeling7 methodsDreamerV3 with its world-model, actor and critic objectives.
DreamerV3Model10 methodsDreamerV2's architecture with distributional heads and a slow critic.
DreamerV3Output1 methodsWhat DreamerV3Model returns after filtering a trajectory.
Functions
dreamer_v3_12m→ DreamerV3Model12MConstruct the smallest rung — no objectives, just the model.
dreamer_v3_12m_world_model→ DreamerV3ForWorldModeling12MThe smallest rung with all three objectives.
dreamer_v3_25m→ DreamerV3Model25MConstruct the second rung — no objectives, just the model.
dreamer_v3_25m_world_model→ DreamerV3ForWorldModeling25MThe second rung with all three objectives.
dreamer_v3_50m→ DreamerV3Model50MConstruct the middle rung — no objectives, just the model.
dreamer_v3_50m_world_model→ DreamerV3ForWorldModeling50MThe middle rung with all three objectives.
dreamer_v3_100m→ DreamerV3Model100MConstruct the fourth rung — no objectives, just the model.
dreamer_v3_100m_world_model→ DreamerV3ForWorldModeling100MThe fourth rung with all three objectives.
dreamer_v3_200m→ DreamerV3Model200MConstruct the paper's default rung — no objectives, just the model.
dreamer_v3_200m_world_model→ DreamerV3ForWorldModeling200MThe paper's default rung with all three objectives.
dreamer_v3_400m→ DreamerV3Model400MConstruct the largest rung — no objectives, just the model.
dreamer_v3_400m_world_model→ DreamerV3ForWorldModeling400MThe largest rung with all three objectives.