跳到主要内容

模型训练


1. ACT

以下是针对 Task 1 使用 ACT 策略、附带完整超参数的训练示例:


# 简洁训练命令
/isaac-sim/python.sh src/lerobot/scripts/lerobot_train.py \
--dataset.repo_id=your_org/your_dataset \
--dataset.video_backend=pyav \
--policy.type=act \
--output_dir=challenge2026_baseline/Part_Sorting/act \
--dataset.root=datasets/Part_Sorting/ \
--job_name=part_sorting_act \
--policy.device=cuda \
--wandb.enable=false \
--policy.repo_id=none \
--policy.push_to_hub=false


# 详细训练命令 task1
/isaac-sim/python.sh src/lerobot/scripts/lerobot_train.py \
--dataset.repo_id=your_org/your_dataset \
--dataset.root=datasets/Part_Sorting/ \
--dataset.video_backend=pyav \
--policy.type=act \
--policy.n_obs_steps=1 \
--policy.chunk_size=50 \
--policy.n_action_steps=50 \
--policy.vision_backbone=resnet18 \
--policy.pretrained_backbone_weights=ResNet18_Weights.IMAGENET1K_V1 \
--policy.dim_model=256 \
--policy.n_heads=4 \
--policy.dim_feedforward=1024 \
--policy.n_encoder_layers=4 \
--policy.n_decoder_layers=1 \
--policy.use_vae=true \
--policy.latent_dim=32 \
--policy.n_vae_encoder_layers=4 \
--policy.dropout=0.1 \
--policy.kl_weight=10.0 \
--policy.optimizer_lr=1e-5 \
--policy.optimizer_weight_decay=1e-4 \
--policy.optimizer_lr_backbone=1e-5 \
--policy.device=cuda \
--policy.use_amp=true \
--policy.push_to_hub=false \
--output_dir=challenge2026_baseline/Part_Sorting/act \
--job_name=part_sorting_act \
--resume=false \
--seed=1000 \
--num_workers=8 \
--batch_size=8 \
--steps=100000 \
--eval_freq=0 \
--log_freq=200 \
--save_checkpoint=true \
--save_freq=5000 \
--wandb.entity=your_wandb_entity

请将 your_org/your_dataset 替换为您自己的数据集 repo ID,将 challenge2026_baseline/Part_Sorting/act 替换为您的保存文件地址,将 your_wandb_entity 替换为您的 WandB 用户名或团队名。若不使用 WandB,可删除 --wandb.entity 参数。训练act会涉及到下载resnet18-f37072fd.pth

数据集与输出参数

参数说明默认值 / 备注
dataset.repo_id数据集 ID(Hugging Face 或本地组织名)必填
dataset.root数据集本地根路径必填
output_dir检查点与日志保存目录必填
job_name任务标识(显示在日志 / WandB 中)可选
resume是否从上次检查点续训false
seed全局随机种子1000

训练循环参数

参数说明默认值 / 备注
steps总训练步数100000
batch_size每步样本数8
num_workersDataLoader 工作进程数8
eval_freq评估间隔步数(0 表示禁用)0
log_freq日志打印间隔步数200
save_checkpoint是否保存检查点true
save_freq检查点保存间隔步数5000

ACT 策略参数

参数说明默认值 / 备注
policy.type策略算法类型act / pi0
policy.device运行设备cuda / cpu
policy.use_amp是否开启混合精度训练true
policy.n_obs_steps观测步数1
policy.chunk_size动作块长度50
policy.n_action_steps每次推理执行的动作步数50
policy.vision_backbone视觉编码器架构resnet18
policy.pretrained_backbone_weights主干网络预训练权重ResNet18_Weights.IMAGENET1K_V1
policy.dim_modelTransformer 模型维度256
policy.n_heads注意力头数4
policy.dim_feedforward前馈网络维度1024
policy.n_encoder_layers编码器层数4

2. Diffusion Policy (DP)

以下是使用 Diffusion Policy 策略、附带完整超参数的训练示例:

/isaac-sim/python.sh src/lerobot/scripts/lerobot_train.py \
--dataset.repo_id=your_org/your_dataset \
--dataset.root=datasets/Part_Sorting \
--dataset.video_backend=pyav \
--output_dir=challenge2026_baseline/Part_Sorting/diffusion \
--policy.repo_id=none \
--policy.type=diffusion \
--policy.n_obs_steps=2 \
--policy.horizon=16 \
--policy.n_action_steps=8 \
--policy.vision_backbone=resnet18 \
--policy.pretrained_backbone_weights=null \
--policy.resize_shape=null \
--policy.crop_ratio=1.0 \
--policy.crop_shape=null \
--policy.crop_is_random=true \
--policy.use_group_norm=true \
--policy.spatial_softmax_num_keypoints=32 \
--policy.use_separate_rgb_encoder_per_camera=false \
--policy.down_dims='[512,1024,2048]' \
--policy.kernel_size=5 \
--policy.n_groups=8 \
--policy.diffusion_step_embed_dim=128 \
--policy.use_film_scale_modulation=true \
--policy.noise_scheduler_type=DDPM \
--policy.num_train_timesteps=100 \
--policy.beta_schedule=squaredcos_cap_v2 \
--policy.beta_start=0.0001 \
--policy.beta_end=0.02 \
--policy.prediction_type=epsilon \
--policy.clip_sample=true \
--policy.clip_sample_range=1.0 \
--policy.num_inference_steps=null \
--policy.compile_model=false \
--policy.compile_mode=reduce-overhead \
--policy.do_mask_loss_for_padding=false \
--policy.optimizer_lr=1e-4 \
--policy.optimizer_betas='[0.95,0.999]' \
--policy.optimizer_eps=1e-8 \
--policy.optimizer_weight_decay=1e-6 \
--policy.scheduler_name=cosine \
--policy.scheduler_warmup_steps=500 \
--job_name=part_sorting_diffusion \
--resume=false \
--seed=1000 \
--num_workers=8 \
--batch_size=32 \
--steps=100000 \
--eval_freq=0 \
--log_freq=200 \
--save_checkpoint=true \
--save_freq=5000

请将 your_org/your_dataset 替换为您自己的数据集 repo ID,将 challenge2026_baseline/Part_Sorting/diffusion 替换为您的保存文件地址。

Diffusion Policy 策略参数 - 输入输出结构

参数说明默认值 / 备注
policy.type策略算法类型diffusion
policy.n_obs_steps观测步数2
policy.horizon动作预测 horizon16
policy.n_action_steps每次推理执行的动作步数8

Diffusion Policy 策略参数 - 视觉主干网络

参数说明默认值 / 备注
policy.vision_backbone视觉编码器架构resnet18
policy.pretrained_backbone_weights主干网络预训练权重null
policy.resize_shape图像预处理 resize 尺寸 (H, W)null
policy.crop_ratiocrop 尺寸比例 (0, 1]1.0
policy.crop_shapecrop 尺寸 (H, W)null
policy.crop_is_random是否随机 crop(训练时随机)true
policy.use_group_norm是否使用 GroupNorm 替代 BNtrue
policy.spatial_softmax_num_keypointsSpatialSoftmax 关键点数量32
policy.use_separate_rgb_encoder_per_camera是否为每个相机使用独立编码器false

Diffusion Policy 策略参数 - UNet 架构

参数说明默认值 / 备注
policy.down_dimsUNet 下采样维度[512,1024,2048]
policy.kernel_size卷积核大小5
policy.n_groupsGroupNorm 分组数8
policy.diffusion_step_embed_dimdiffusion 步数嵌入维度128
policy.use_film_scale_modulation是否使用 FiLM scale 调制true

Diffusion Policy 策略参数 - 噪声调度器

参数说明默认值 / 备注
policy.noise_scheduler_type噪声调度器类型DDPM / DDIM
policy.num_train_timesteps训练时 diffusion 步数100
policy.beta_schedulebeta 调度squaredcos_cap_v2
policy.beta_startbeta 起始值0.0001
policy.beta_endbeta 结束值0.02
policy.prediction_type预测类型epsilon / sample
policy.clip_sample是否裁剪样本true
policy.clip_sample_range裁剪范围1.0
policy.num_inference_steps推理步数null(等同训练步数)

Diffusion Policy 策略参数 - 优化器与调度器

参数说明默认值 / 备注
policy.optimizer_lr学习率1e-4
policy.optimizer_betasAdam betas[0.95,0.999]
policy.optimizer_epsAdam eps1e-8
policy.optimizer_weight_decay权重衰减1e-6
policy.scheduler_name学习率调度器cosine
policy.scheduler_warmup_stepswarmup 步数500

Diffusion Policy 策略参数 - 其他

参数说明默认值 / 备注
policy.compile_model是否编译模型false
policy.compile_mode编译模式reduce-overhead
policy.do_mask_loss_for_padding是否 mask padding 损失false

3. π₀ (PI0)

下载 预训练权重

# 下载预训练权重
hf download \
lerobot/pi0_base \
--local-dir pretrained/pi0_base

hf download \
lerobot/pi05_base \
--local-dir pretrained/pi05_base

hf download google/paligemma-3b-pt-224 \
--local-dir pretrained/paligemma-3b-pt-224

/workspace/GlobalHumanoidRobotChallenge_2026_Baseline/src/lerobot/processor/tokenizer_processor.py 中搜索,将代码部分改为:

if self.tokenizer is not None:
# Use provided tokenizer object directly
self.input_tokenizer = self.tokenizer
elif self.tokenizer_name is not None:
if AutoTokenizer is None:
raise ImportError("AutoTokenizer is not available")

# 如果 tokenizer_name 包含 paligemma,说明是 pi0 模型,强制走本地离线路径
if "paligemma" in self.tokenizer_name.lower():
self.input_tokenizer = AutoTokenizer.from_pretrained(
"/root/.cache/huggingface/hub/models--google--paligemma-3b-pt-224/snapshots/35e4f46485b4d07967e7e9935bc3786aad50687c",
local_files_only=True
)
else:
# 否则(如 act\smolvla),正常使用传进来的 tokenizer_name 路径进行加载
self.input_tokenizer = AutoTokenizer.from_pretrained(self.tokenizer_name)

else:
raise ValueError(
"Either 'tokenizer' or 'tokenizer_name' must be provided. "
"Pass a tokenizer object directly or a tokenizer name to auto-load."
)

以下是使用 π₀ (PI0) 策略、附带完整超参数的训练示例:

# 简洁训练命令
/isaac-sim/python.sh src/lerobot/scripts/lerobot_train.py \
--policy.path=lerobot/pi0_base \
--dataset.repo_id=your_org/your_dataset \
--batch_size=64 \
--steps=20000 \
--output_dir=challenge2026_baseline/Part_Sorting/pi0 \
--job_name=part_sorting_pi0 \
--policy.device=cuda \
--wandb.enable=true

# 详细训练命令
/isaac-sim/python.sh src/lerobot/scripts/lerobot_train.py \
--dataset.repo_id=your_org/your_dataset \
--dataset.root=datasets/Part_Sorting \
--policy.type=pi0 \
--policy.paligemma_variant=gemma_2b \
--policy.action_expert_variant=gemma_300m \
--policy.dtype=float32 \
--policy.n_obs_steps=1 \
--policy.chunk_size=50 \
--policy.n_action_steps=50 \
--policy.max_state_dim=32 \
--policy.max_action_dim=32 \
--policy.num_inference_steps=10 \
--policy.time_sampling_beta_alpha=1.5 \
--policy.time_sampling_beta_beta=1.0 \
--policy.time_sampling_scale=0.999 \
--policy.time_sampling_offset=0.001 \
--policy.min_period=0.004 \
--policy.max_period=4.0 \
--policy.image_resolution='[224,224]' \
--policy.empty_cameras=0 \
--policy.gradient_checkpointing=false \
--policy.compile_model=false \
--policy.compile_mode=max-autotune \
--policy.freeze_vision_encoder=false \
--policy.train_expert_only=false \
--policy.optimizer_lr=2.5e-5 \
--policy.optimizer_betas='[0.9,0.95]' \
--policy.optimizer_eps=1e-8 \
--policy.optimizer_weight_decay=0.01 \
--policy.optimizer_grad_clip_norm=1.0 \
--policy.scheduler_warmup_steps=1000 \
--policy.scheduler_decay_steps=30000 \
--policy.scheduler_decay_lr=2.5e-6 \
--policy.tokenizer_max_length=48 \
--output_dir=challenge2026_baseline/Part_Sorting/pi0 \
--job_name=part_sorting_pi0 \
--resume=false \
--seed=1000 \
--num_workers=8 \
--batch_size=8 \
--steps=100000 \
--eval_freq=0 \
--log_freq=200 \
--save_checkpoint=true \
--save_freq=5000 \
--wandb.entity=your_wandb_entity

请将 your_org/your_dataset 替换为您自己的数据集 repo ID,将 challenge2026_baseline/Part_Sorting/pi0 替换为您的保存文件地址,将 your_wandb_entity 替换为您的 WandB 用户名或团队名。若不使用 WandB,可删除 --wandb.entity 参数。

π₀ 策略参数 - 模型架构

参数说明默认值 / 备注
policy.type策略算法类型pi0
policy.paligemma_variantPaliGemma 模型变体gemma_2b
policy.action_expert_variantAction Expert 变体gemma_300m
policy.dtype数据类型float32

π₀ 策略参数 - 输入输出结构

参数说明默认值 / 备注
policy.n_obs_steps观测步数1
policy.chunk_size动作块大小50
policy.n_action_steps执行动作步数50
policy.max_state_dim状态维度上限(填充至)32
policy.max_action_dim动作维度上限(填充至)32

π₀ 策略参数 - Flow Matching

参数说明默认值 / 备注
policy.num_inference_steps推理去噪步数10
policy.time_sampling_beta_alpha时间采样 beta α1.5
policy.time_sampling_beta_beta时间采样 beta β1.0
policy.time_sampling_scale时间采样 scale0.999
policy.time_sampling_offset时间采样 offset0.001
policy.min_period最小周期0.004
policy.max_period最大周期4.0

π₀ 策略参数 - 图像与相机

参数说明默认值 / 备注
policy.image_resolution图像分辨率 (H, W)[224,224]
policy.empty_cameras空相机数量(补充空相机)0

π₀ 策略参数 - 训练设置

参数说明默认值 / 备注
policy.gradient_checkpointing是否启用梯度检查点false
policy.compile_model是否编译模型false
policy.compile_mode编译模式max-autotune

π₀ 策略参数 - 微调设置

参数说明默认值 / 备注
policy.freeze_vision_encoder是否冻结视觉编码器false
policy.train_expert_only是否仅训练 Action Expertfalse

π₀ 策略参数 - 优化器

参数说明默认值 / 备注
policy.optimizer_lr学习率2.5e-5
policy.optimizer_betasAdamW betas[0.9,0.95]
policy.optimizer_epsAdamW eps1e-8
policy.optimizer_weight_decay权重衰减0.01
policy.optimizer_grad_clip_norm梯度裁剪范数1.0

π₀ 策略参数 - 学习率调度器

参数说明默认值 / 备注
policy.scheduler_warmup_stepswarmup 步数1000
policy.scheduler_decay_stepsdecay 步数30000
policy.scheduler_decay_lrdecay 学习率2.5e-6

π₀ 策略参数 - Tokenizer

参数说明默认值 / 备注
policy.tokenizer_max_lengthtokenizer 最大长度48

4. π₀.₅ (PI05)

以下是使用 π₀.₅ (PI05) 策略、附带完整超参数的训练示例。π₀.₅ 是 π₀ 的增强版本,支持开放世界泛化,主要差异包括使用 QUANTILES 归一化、更长的 tokenizer 长度以及 AdaRMS conditioning。

# 简洁训练命令
/isaac-sim/python.sh src/lerobot/scripts/lerobot_train.py \
--dataset.repo_id=your_org/your_dataset \
--policy.type=pi05 \
--output_dir=challenge2026_baseline/Part_Sorting/pi05 \
--job_name=part_sorting_pi05 \
--policy.repo_id=your_repo_id \
--policy.pretrained_path=lerobot/pi05_base \
--policy.compile_model=true \
--policy.gradient_checkpointing=true \
--wandb.enable=true \
--policy.dtype=bfloat16 \
--policy.freeze_vision_encoder=false \
--policy.train_expert_only=false \
--steps=3000 \
--policy.device=cuda \
--batch_size=32

# 详细训练命令
/isaac-sim/python.sh src/lerobot/scripts/lerobot_train.py \
--dataset.repo_id=your_org/your_dataset \
--dataset.root=datasets/Part_Sorting/ \
--policy.type=pi05 \
--policy.paligemma_variant=gemma_2b \
--policy.action_expert_variant=gemma_300m \
--policy.dtype=float32 \
--policy.n_obs_steps=1 \
--policy.chunk_size=50 \
--policy.n_action_steps=50 \
--policy.max_state_dim=32 \
--policy.max_action_dim=32 \
--policy.num_inference_steps=10 \
--policy.time_sampling_beta_alpha=1.5 \
--policy.time_sampling_beta_beta=1.0 \
--policy.time_sampling_scale=0.999 \
--policy.time_sampling_offset=0.001 \
--policy.min_period=0.004 \
--policy.max_period=4.0 \
--policy.image_resolution='[224,224]' \
--policy.empty_cameras=0 \
--policy.gradient_checkpointing=false \
--policy.compile_model=false \
--policy.compile_mode=max-autotune \
--policy.freeze_vision_encoder=false \
--policy.train_expert_only=false \
--policy.optimizer_lr=2.5e-5 \
--policy.optimizer_betas='[0.9,0.95]' \
--policy.optimizer_eps=1e-8 \
--policy.optimizer_weight_decay=0.01 \
--policy.optimizer_grad_clip_norm=1.0 \
--policy.scheduler_warmup_steps=1000 \
--policy.scheduler_decay_steps=30000 \
--policy.scheduler_decay_lr=2.5e-6 \
--policy.tokenizer_max_length=200 \
--output_dir=challenge2026_baseline/Part_Sorting/pi05 \
--job_name=part_sorting_pi05 \
--resume=false \
--seed=1000 \
--num_workers=8 \
--batch_size=8 \
--steps=100000 \
--eval_freq=0 \
--log_freq=200 \
--save_checkpoint=true \
--save_freq=5000 \
--wandb.entity=your_wandb_entity

请将 your_org/your_dataset 替换为您自己的数据集 repo ID,将 challenge2026_baseline/Part_Sorting/pi05 替换为您的保存文件地址,将 your_wandb_entity 替换为您的 WandB 用户名或团队名。若不使用 WandB,可删除 --wandb.entity 参数。

π₀.₅ 策略参数 - 模型架构

参数说明默认值 / 备注
policy.type策略算法类型pi05
policy.paligemma_variantPaliGemma 模型变体gemma_2b
policy.action_expert_variantAction Expert 变体gemma_300m
policy.dtype数据类型float32

π₀.₅ 策略参数 - 输入输出结构

参数说明默认值 / 备注
policy.n_obs_steps观测步数1
policy.chunk_size动作块大小50
policy.n_action_steps执行动作步数50
policy.max_state_dim状态维度上限(填充至)32
policy.max_action_dim动作维度上限(填充至)32

π₀.₅ 策略参数 - Flow Matching

参数说明默认值 / 备注
policy.num_inference_steps推理去噪步数10
policy.time_sampling_beta_alpha时间采样 beta α1.5
policy.time_sampling_beta_beta时间采样 beta β1.0
policy.time_sampling_scale时间采样 scale0.999
policy.time_sampling_offset时间采样 offset0.001
policy.min_period最小周期0.004
policy.max_period最大周期4.0

π₀.₅ 策略参数 - 图像与相机

参数说明默认值 / 备注
policy.image_resolution图像分辨率 (H, W)[224,224]
policy.empty_cameras空相机数量(补充空相机)0

π₀.₅ 策略参数 - 训练设置

参数说明默认值 / 备注
policy.gradient_checkpointing是否启用梯度检查点false
policy.compile_model是否编译模型false
policy.compile_mode编译模式max-autotune

π₀.₅ 策略参数 - 微调设置

参数说明默认值 / 备注
policy.freeze_vision_encoder是否冻结视觉编码器false
policy.train_expert_only是否仅训练 Action Expertfalse

π₀.₅ 策略参数 - 优化器

参数说明默认值 / 备注
policy.optimizer_lr学习率2.5e-5
policy.optimizer_betasAdamW betas[0.9,0.95]
policy.optimizer_epsAdamW eps1e-8
policy.optimizer_weight_decay权重衰减0.01
policy.optimizer_grad_clip_norm梯度裁剪范数1.0

π₀.₅ 策略参数 - 学习率调度器

参数说明默认值 / 备注
policy.scheduler_warmup_stepswarmup 步数1000
policy.scheduler_decay_stepsdecay 步数30000
policy.scheduler_decay_lrdecay 学习率2.5e-6

π₀.₅ 策略参数 - Tokenizer

参数说明默认值 / 备注
policy.tokenizer_max_lengthtokenizer 最大长度200(π₀ 为 48

π₀ 与 π₀.₅ 主要差异说明

特性π₀π₀.₅
时间条件注入通过 action_time_mlp_* 将时间与动作拼接通过 time_mlp_* 使用 AdaRMS conditioning
AdaRMS不使用在 Action Expert 中使用
Tokenizer 长度48 tokens200 tokens
离散状态输入False(使用 state_proj 层)True
参数量较高(包含状态嵌入层)较低(无状态嵌入层)
状态归一化MEAN_STDQUANTILES
动作归一化MEAN_STDQUANTILES

5. SmolVLA

以下是使用 SmolVLA 策略进行微调的训练示例。SmolVLA 基于 SmolVLM2-500M-Video-Instruct 视觉语言模型构建,支持开放世界泛化。

# 简洁训练命令
/isaac-sim/python.sh src/lerobot/scripts/lerobot_train.py \
--policy.path=lerobot/smolvla_base \
--dataset.repo_id=your_org/your_dataset \
--batch_size=64 \
--steps=20000 \
--output_dir=challenge2026_baseline/Part_Sorting/smolvla \
--job_name=part_sorting_smolvla \
--policy.device=cuda \
--wandb.enable=true

# 详细训练命令
/isaac-sim/python.sh src/lerobot/scripts/lerobot_train.py \
--dataset.repo_id=your_org/your_dataset \
--dataset.root=datasets/Part_Sorting/ \
--policy.type=smolvla \
--policy.vlm_model_name=HuggingFaceTB/SmolVLM2-500M-Video-Instruct \
--policy.load_vlm_weights=true \
--policy.dtype=float32 \
--policy.n_obs_steps=1 \
--policy.chunk_size=50 \
--policy.n_action_steps=50 \
--policy.max_state_dim=32 \
--policy.max_action_dim=32 \
--policy.num_steps=10 \
--policy.tokenizer_max_length=48 \
--policy.image_resolution='[224,224]' \
--policy.empty_cameras=0 \
--policy.freeze_vision_encoder=true \
--policy.train_expert_only=true \
--policy.train_state_proj=true \
--policy.gradient_checkpointing=false \
--policy.compile_model=false \
--policy.compile_mode=max-autotune \
--policy.attention_mode=cross_attn \
--policy.num_vlm_layers=16 \
--policy.self_attn_every_n_layers=2 \
--policy.expert_width_multiplier=0.75 \
--policy.optimizer_lr=1e-4 \
--policy.optimizer_betas='[0.9,0.95]' \
--policy.optimizer_eps=1e-8 \
--policy.optimizer_weight_decay=1e-10 \
--policy.optimizer_grad_clip_norm=10.0 \
--policy.scheduler_warmup_steps=1000 \
--policy.scheduler_decay_steps=30000 \
--policy.scheduler_decay_lr=2.5e-6 \
--policy.min_period=0.004 \
--policy.max_period=4.0 \
--output_dir=challenge2026_baseline/Part_Sorting/smolvla \
--job_name=part_sorting_smolvla \
--resume=false \
--seed=1000 \
--num_workers=8 \
--batch_size=8 \
--steps=100000 \
--eval_freq=0 \
--log_freq=200 \
--save_checkpoint=true \
--save_freq=5000 \
--wandb.entity=your_wandb_entity

请将 your_org/your_dataset 替换为您自己的数据集 repo ID,将 challenge2026_baseline/Part_Sorting/smolvla 替换为您的保存文件地址,将 your_wandb_entity 替换为您的 WandB 用户名或团队名。若不使用 WandB,可删除 --wandb.entity 参数。

SmolVLA 策略参数 - 模型架构

参数说明默认值 / 备注
policy.type策略算法类型smolvla
policy.vlm_model_nameVLM 骨干模型HuggingFaceTB/SmolVLM2-500M-Video-Instruct
policy.load_vlm_weights是否加载预训练 VLM 权重true
policy.dtype数据类型float32

SmolVLA 策略参数 - 输入输出结构

参数说明默认值 / 备注
policy.n_obs_steps观测步数1
policy.chunk_size动作块大小50
policy.n_action_steps执行动作步数50
policy.max_state_dim状态维度上限(填充至)32
policy.max_action_dim动作维度上限(填充至)32

SmolVLA 策略参数 - 解码与 Tokenizer

参数说明默认值 / 备注
policy.num_steps推理去噪步数10
policy.tokenizer_max_lengthTokenizer 最大长度48
policy.use_cache是否使用注意力缓存true

SmolVLA 策略参数 - 图像与相机

参数说明默认值 / 备注
policy.image_resolution图像预处理分辨率 (H, W)[224,224]
policy.empty_cameras空相机数量(补充空相机)0
policy.add_image_special_tokens是否使用图像特殊 tokenfalse

SmolVLA 策略参数 - 微调设置

参数说明默认值 / 备注
policy.freeze_vision_encoder是否冻结视觉编码器true
policy.train_expert_only是否仅训练 Action Experttrue
policy.train_state_proj是否训练状态投影层true

SmolVLA 策略参数 - Transformer 架构

参数说明默认值 / 备注
policy.attention_mode注意力模式cross_attn
policy.num_vlm_layersVLM 使用层数16
policy.self_attn_every_n_layers每隔 N 层插入自注意力层2
policy.expert_width_multiplierAction Expert 隐藏层宽度比例0.75

SmolVLA 策略参数 - 优化器

参数说明默认值 / 备注
policy.optimizer_lr学习率1e-4
policy.optimizer_betasAdamW betas[0.9,0.95]
policy.optimizer_epsAdamW eps1e-8
policy.optimizer_weight_decay权重衰减1e-10
policy.optimizer_grad_clip_norm梯度裁剪范数10.0

SmolVLA 策略参数 - 学习率调度器

参数说明默认值 / 备注
policy.scheduler_warmup_stepswarmup 步数1000
policy.scheduler_decay_stepsdecay 步数30000
policy.scheduler_decay_lrdecay 学习率2.5e-6

SmolVLA 策略参数 - 训练设置

参数说明默认值 / 备注
policy.gradient_checkpointing是否启用梯度检查点false
policy.compile_model是否编译模型false
policy.compile_mode编译模式max-autotune