# SmolVLA微调后动作幅值坍缩且夹爪开合不足

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-10-25-lerobot-5082
> 频道：pitfalls | 更新日期：2026-10-25 | 标签：auto, github-issue, lerobot
> 核心摘要：SmolVLA微调后预测动作幅值严重低于真值，建议优先检查推理时是否加载了微调checkpoint专属的归一化统计量与后处理器。

# SmolVLA微调后动作幅值坍缩且夹爪开合不足

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[SmolVLA fine-tuning on ~100 episodes: policy output collapses toward near-constant actions (gripper span 1.4° vs 32° in demo data)](https://github.com/huggingface/lerobot/issues/5082)（GitHub huggingface/lerobot #5082）

**状态**：有绕过办法

## 问题

在SO-101机器人上使用99条数据微调SmolVLA，闭环部署失败。模型预测动作幅值坍缩（如夹爪仅6.9° vs 数据集32°），且关节角度漂移至演示范围外。已尝试调整n_action_steps、EMA平滑及重训均无效，怀疑是归一化或训练配置问题。

## 环境

LeRobot v0.4.4, PyTorch 2.x, CUDA, RTX 5060 Ti 16GB; SO-101机械臂(6DoF+2相机); SmolVLA策略; batch_size=8, lr=1e-5, steps=90k;

## 解决办法

1. 检查推理代码是否加载了微调checkpoint保存的preprocessor和postprocessor文件，若误用smolvla_base原始统计量或未执行反归一化，近0输出会被还原为均值导致动作坍缩。
2. 确认follower arm的校准JSON（homing_offset, range_min/max）在数据采集与推理阶段完全一致。
3. 验证训练与推理阶段的action normalization stats是否匹配，防止缩放因子不一致。
4. 尝试将freeze_vision_encoder设为false，避免视觉编码器冻结导致特征提取不适配当前环境。
5. 调高optimizer_lr至默认1e-4，当前1e-5配合cosine decay可能在30k步后即降至2.5e-6过低。
6. 确保每个episode开始时调用policy.reset()以清空历史动作队列。

讨论原作者：@bkbk-robot 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub huggingface/lerobot #5082：SmolVLA fine-tuning on ~100 episodes: policy output collapses toward near-constant actions (gripper span 1.4° vs 32° in demo data)](https://github.com/huggingface/lerobot/issues/5082)