训练配置(Training Configuration)

一句话定位

汇总世界模型训练中的关键超参数配置策略,包括学习率调度、KL权重管理、batch size选择和优化器配置,提供经验性默认值和调参建议。

前置依赖

核心思想

世界模型训练的挑战

世界模型训练涉及多个目标的平衡:

  1. 观察重建:确保潜在状态包含足够视觉信息
  2. Dynamics学习:确保transition model准确
  3. Reward预测:确保value function可靠
  4. KL正则化:防止后验崩溃

核心矛盾

  • KL weight 过高:压缩潜在表示,限制表示能力
  • KL weight 过低:先验-后验脱节,post. collapse
  • 多个 loss 的 scale 差异大:训练不稳定

配置设计原则

从论文中提取默认值,但理解其敏感性

参数类别典型范围调参优先级
学习率1e-5 ~ 1e-3
KL weight0.01 ~ 0.5
Batch size16 ~ 256
Sequence length16 ~ 128

数学推导

KL权重调度

固定KL权重的局限性

固定 在训练早期可能导致 posterior collapse,晚期可能限制表示学习。

KLannealing(KL退火)

线性预热到目标值。

KL砍断(KL clipping)

防止极端KL值影响训练。

损失函数归一化

Observation loss 归一化

是观察维度, 是序列长度。

Reward loss 归一化

使用 reward variance 归一化。

优化器配置

Adam vs AdamW

标准Adam

AdamW(带weight decay)

世界模型推荐使用AdamW

  • 潜在状态的L2正则化有助于表示学习
  • 防止权重膨胀导致的数值不稳定

学习率配置

经验性学习率范围

组件推荐范围说明
视觉编码器1e-6 ~ 5e-5较小避免破坏预训练权重
Dynamics模型5e-5 ~ 1e-4中等
Reward预测器5e-5 ~ 1e-4中等
策略梯度1e-6 ~ 1e-5较小避免策略崩溃

分层学习率(Layer-wise LR Decay)

其中

学习率调度

Cosine Annealing

适用于长期训练(>500k steps)。

Warmup + Cosine

推荐 warmup 5000~10000 steps。

KL权重配置

典型配置方案

方案A:固定KL weight

kl_weight: 0.1
kl_free_nats: 0.0

适用于:训练稳定、数据充足

方案B:KL退火

kl_weight_start: 0.001
kl_weight_end: 0.5
kl_anneal_steps: 100000

适用于:避免 posterior collapse

方案C:KL砍断

kl_free_nats: 0.1
kl_clip: 1.0

适用于:控制 KL 量级

KL weight 敏感性分析

KL weight效果适用场景
< 0.01潜在表示过分散,post. collapse不推荐
0.05 ~ 0.1平衡表示学习与重建DM Control
0.1 ~ 0.5强正则化,更结构化表示复杂任务
> 0.5表示过度压缩不推荐

Batch Size配置

显存估算

影响因子

  • 模型参数量
  • Sequence length
  • 观察维度(图像尺寸)
  • 优化器状态(Adam: 4 bytes per param × 2 moments)

估算公式

其中 是参数量, batch size, 序列长度, 观察维度, 动作维度。

经验值

GPUbatch_sizeseq_len典型任务
RTX 309032-6432DMC 84×84
A100128-25664DMC 84×84
V10064-12832Atari 84×84

梯度累积

当显存不足时使用梯度累积:

batch_size: 8
grad_accum_steps: 4
effective_batch_size: 32

完整配置示例

DreamerV3风格配置

# world_model_training.yaml
model:
  name: dreamerv3
  stochastic_channels: 32
  deterministic_hidden: 512
  action_channels: 256
 
  encoder:
    cnn_channels: [48, 96, 192, 192]
    kernel_size: 4
    stride: 2
 
  dynamics:
    hidden_dim: 512
    num_layers: 1
 
  decoder:
    deconv_channels: [192, 96, 48, 48]
    output_activation: sigmoid
 
training:
  # 优化器
  optimizer:
    type: AdamW
    lr: 1e-4
    weight_decay: 0.0001
    betas: [0.9, 0.999]
    eps: 1e-5
 
  # 学习率调度
  lr_schedule:
    type: cosine
    warmup_steps: 5000
    min_lr: 1e-6
 
  # Batch配置
  batch_size: 64
  sequence_length: 32
  num_envs: 16
 
  # 损失权重
  losses:
    kl_weight: 0.1
    kl_free_nats: 0.0
    kl_balance: 0.5  # posterior vs prior weight ratio
 
    obs_weight: 1.0
    reward_weight: 1.0
    cont_weight: 0.1
 
  # 正则化
  grad_clip: 100.0
  ema_decay: 0.999
 
  # 动作采样
  action_sample_type: gaussian
  action_std_schedule: linear  # 从1.0降到0.1
 
environment:
  env_name: DM Control Suite
  num_eval_envs: 10
  num_train_envs: 16
 
  obs_spec:
    render: rgb_array
    size: [84, 84]
 
  action_spec:
    type: continuous
    max_abs_value: 1.0
 
evaluation:
  interval: 10000
  num_episodes: 10
  eval_max_steps: 1000

Transformer世界模型配置

# transformer_world_model.yaml
model:
  name: transformer_wm
  hidden_dim: 512
  num_layers: 6
  num_heads: 8
  seq_len: 64
  dropout: 0.1
 
  # 编码器
  encoder:
    type: vit
    patch_size: 16
    image_size: 224
 
  # 动作嵌入
  action_embed:
    dim: 64
    type: linear
 
training:
  optimizer:
    type: AdamW
    lr: 1e-4
    weight_decay: 0.01
    betas: [0.9, 0.999]
 
  lr_schedule:
    type: cosine
    warmup_steps: 10000
    min_lr: 1e-6
 
  batch_size: 32
  sequence_length: 64
 
  losses:
    obs_weight: 1.0
    action_weight: 0.5
    kl_weight: 0.05

章节摘要

本章提供了世界模型训练配置的完整指南:

  1. 优化器配置:AdamW优先,分层学习率策略
  2. 学习率调度:Cosine annealing + warmup是经验最优
  3. KL权重管理:三种方案(固定/退火/砍断)及适用场景
  4. Batch size选择:显存估算与梯度累积策略
  5. 完整配置示例:DreamerV3和TransformerWM的参考配置

正确的超参数配置是训练稳定收敛的关键,建议从标准配置开始,根据实验结果微调。

关键词

训练配置 超参数 AdamW 学习率调度 KL权重 KL退火 Batch Size 梯度累积 分层学习率 损失权重