跳到主要内容

SmolVLA 模型微调

SmolVLA 是 Hugging Face 的视觉-语言-动作(Vision-Language-Action,VLA)策略,基座权重为 lerobot/smolvla_base,输入为多视角图像、机器人状态与可选语言指令,输出为连续动作。平台以模型标识 smolvla 注册,使用 lerobot 训练框架,支持 LeRobot v2 与 v3 数据集。

适用角色与前提​

适用角色​

角色是否可创建训练任务说明
管理员是不受模块权限限制
项目经理需授权由管理员在模块权限中授予 「创建训练任务」
标注员需授权同上
审核员需授权同上
采集员需授权同上

仅查看训练任务与指标需「查看训练」。

前置条件​

项要求
数据集版本LeRobot v2、v3。训练服务按数据集 meta/info.json 的 codebase_version 识别版本并选择训练镜像
框架lerobot
显存无固定下限;由 batch_size、图像分辨率与冻结策略决定。默认冻结视觉编码器
依赖平台的模型训练服务已启用并配置至少一个训练位置;训练镜像需包含 LeRobot 训练入口 lerobot-train 与视频解码依赖
数据集结构目录内包含 meta/info.json、data/ 与 videos/;各 episode 的图像字段一致,observation.state 与 action 维度固定
权限创建需「创建训练任务」,查看需「查看训练」

创建训练任务与参数​

操作步骤​

  1. 进入「模型」→「训练」,点击「创建训练任务」。
  2. 选择训练位置,可选本机 GPU 或管理员已启用的云训练位置。
  3. 在「选择模型」中选中 smolvla。
  4. 在「训练数据集」中选择数据来源:导出记录、已上传 LeRobot 数据集、下载链接或 HuggingFace。
  5. 在「训练参数」中设置参数,含义与默认值见下表。
  6. 填写备注(可选)。
  7. 点击「创建训练任务」。

训练参数​

lerobot 框架先应用通用训练参数:

参数说明默认值取值范围
batch_size批次大小1整数,≥ 1
steps训练步数10000整数,≥ 1
seed随机种子1000整数
num_workersDataLoader 进程数4整数,≥ 1
eval_freq评估间隔1000整数,≥ 1,且不大于 steps
log_freq日志间隔100整数,≥ 1,且不大于 steps
save_freqcheckpoint 保存间隔5000整数,≥ 1,且不大于 steps
save_checkpoint是否保存 checkpointtruetrue / false

再追加 policy. 前缀的模型参数:

参数说明默认值取值范围
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.resize_imgs_with_padding图像预处理尺寸[512, 512]二元组
policy.empty_cameras空相机占位数量0整数
policy.tokenizer_max_length分词最大长度48整数
policy.num_steps解码步数10整数
policy.use_cache是否使用注意力缓存truetrue / false
policy.freeze_vision_encoder是否冻结视觉编码器truetrue / false
policy.train_expert_only是否仅训练动作专家truetrue / false
policy.train_state_proj是否训练状态投影层truetrue / false
policy.vlm_model_name视觉语言骨干模型HuggingFaceTB/SmolVLM2-500M-Video-Instruct字符串
policy.attention_mode注意力模式cross_attncross_attn、self_attn
policy.pad_language_to语言填充方式longestlongest、max_length
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_grad_clip_norm梯度裁剪阈值1.0浮点数
policy.scheduler_decay_steps学习率衰减步数100000整数
policy.scheduler_decay_lr衰减后的最终学习率1e-5浮点数

结果校验​

训练监控​

训练详情页按 LeRobot 日志格式解析指标并绘制曲线:

指标含义判断标准
step已完成训练步数逐步递增至设定的 steps
sample已处理样本数随 step 递增
episode已处理 episode 数随 step 递增
epoch已训练轮次随 step 递增
loss训练损失总体下降
gradient_norm梯度范数无持续增大
learning_rate当前学习率按调度策略变化
update_time_s单步更新时间稳定,无持续增大
data_time_s数据加载时间稳定

离线 loss 只反映模型在训练分布上的拟合程度。评估策略效果时,以固定初始状态与不同物体位置、光照条件下的实机成功率为准。

校验清单​

训练服务按容器退出码判定任务终态:退出码为 0 记为成功,非 0 记为失败。

校验项通过标准
任务状态训练详情页状态为「成功」,容器退出码为 0
产物目录输出目录下的 checkpoints/
检查点「模型输出」列出 checkpoint,内容含 pretrained_model/;last 指向的条目类型为「最终」,其余为「步骤」
指标曲线「训练指标」绘制 step、loss、gradient_norm、learning_rate
日志「实时日志」可读取,无持续报错

「模型输出」中的 checkpoint 可下载、同步到对象存储,或用于创建推理服务;推理侧说明见模型推理。

异常处置​

现象可能原因处置责任方
训练立即失败,提示找不到数据集数据集缺少 meta/info.json,或所选来源路径错误重新选择正确的导出记录或已上传数据集项目经理
视频解码失败训练镜像缺少 ffmpeg 或视频解码依赖使用平台训练镜像;或改用导出的 MP4 视频数据算法工程师
显存不足batch_size 或图像分辨过大降低 batch_size;检查 policy.resize_imgs_with_padding算法工程师
loss 下降但实机效果差数据覆盖不足、任务文本与动作不一致补充物体位置、光照与初始姿态样本;核对任务文本算法工程师
提示保存间隔大于训练步数save_freq 大于 steps将 save_freq 调小至不超过 steps算法工程师
loss 长时间不下降学习率不合适、数据量过小检查数据集 episode 数量;调整 policy.optimizer_lr算法工程师
训练位置不可用平台未启用该训练位置,或该位置 GPU 不可用更换训练位置;联系管理员检查训练服务管理员

相关页面​

页面用途
模型训练训练任务的创建、监控与配额
LeRobot 数据集与训练数据导出与训练总览
LeRobot v2 与 v3 格式差异两种数据格式的差异与迁移
数据导出生成 LeRobot 训练包