前言

smolVLA是一款轻量级的VLA,已集成在lerobot上。

一、准备lerobot环境

如果还未安装lerobot,请安装lerobot:

# 克隆lerobot源码
git clone https://github.com/huggingface/lerobot.git
cd lerobot
# 使用conda创建Python 3.10环境
conda create -y -n lerobot python=3.10
conda activate lerobot
# 安装ffmpeg
conda install ffmpeg -c conda-forge
# 安装lerobot
pip install -e .

如果在安装过程中有任何问题,请依照lerobot官方指南解决。

二、准备smolVLA

安装smolVLA包需在lerobot代码根目录运行:

pip install -e ".[smolvla]"

smolVLA开发者提供了数据集供使用。若想自己采集数据集,请参考smolVLA官方采集数据指南。

lerobot具有一个policy.repo_id参数,该参数是lerobot在训练过程中上传到hub的id。如果不需要上传,需修改lerobot/src/lerobot/configs/policies.py中:

push_to_hub: bool = False

微调smolVLA

在lerobot/src目录下运行:

python lerobot/scripts/train.py \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=lerobot/svla_so100_stacking \
  --batch_size=64 \
  --steps=200000

执行以上代码,将会自动采集数据、下载预训练模型等,待数据及预训练模型参数准备完成,即自动开始微调。

如gpu内存不够,出现OOM,可减小batch_size。

如果想查看可调整的参数:

# 查看所有可调整的微调参数
python -m lerobot.scripts.train --help

如果想基于架构 (预训练的 VLM + 动作专家) 进行训练,而不是从预训练的检查点开始:

python lerobot/scripts/train.py \
  --policy.type=smolvla \
  --dataset.repo_id=lerobot/svla_so100_stacking \
  --batch_size=64 \
  --steps=200000

还可以直接加载 SmolVLAPolicy :

policy = SmolVLAPolicy.from_pretrained("lerobot/smolvla_base")

实机评估微调后的smolVLA 

python -m lerobot.record \
  --robot.type=so101_follower \
  --robot.port=/dev/ttyACM0 \ # <- Use your port
  --robot.id=my_blue_follower_arm \ # <- Use your robot id
  --robot.cameras="{ front: {type: opencv, index_or_path: 8, width: 640, height: 480, fps: 30}}" \ # <- Use your cameras
  --dataset.single_task="Grasp a lego block and put it in the bin." \ # <- Use the same task description you used in your dataset recording
  --dataset.repo_id=${HF_USER}/eval_DATASET_NAME_test \  # <- This will be the dataset name on HF Hub
  --dataset.episode_time_s=50 \
  --dataset.num_episodes=10 \
  # <- Teleop optional if you want to teleoperate in between episodes \
  # --teleop.type=so100_leader \
  # --teleop.port=/dev/ttyACM0 \
  # --teleop.id=my_red_leader_arm \
  --policy.path=HF_USER/FINETUNE_MODEL_NAME # <- Use your fine-tuned model

 

 参考资料:

  1. SmolVLA: 让机器人更懂 “看听说做” 的轻量化解决方案
  2. Finetune SmolVLA
  3. Install LeRobot
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐