
SmolVLA 是一个拥有 4.5 亿参数的 VLA 模型,可以在单张 24 GB 显卡上进行微调。本文包含真实的 lerobot 0.6.1 命令、实际的默认设置、耗时一天的陷阱,以及每次运行的成本。
SmolVLA 一览
- •4.5 亿参数,其中约 1 亿参数是流匹配动作专家。lerobot 仅训练该专家并保持 VLM 冻结,这就是它能在一张卡上运行的原因。
- •LeRobot 的计算指南指出,smolvla 模型组在批处理大小为 8 且使用 AdamW 优化器时,峰值显存约为 10 到 16 GB。因此需要 24 GB 显存。
- •入口点是 lerobot-train。2025 年 6 月的 SmolVLA 博客文章仍然打印 python lerobot/scripts/train.py,但该路径已不存在。以下所有内容均基于 lerobot 0.6.1。
- •余弦调度预设为在 30000 步内衰减。lerobot 0.6.1 会将其按比例缩小以进行更短的运行并记录下来,但从不按比例放大:默认的 100000 步运行在 70000 步时以 2.5e-6 的下限结束。
- •30 个 episode 是 AY-Robots 的最低要求,在 24 GB 显存层级上每次运行成本为 1 到 3 USD,而 80 GB 模型则为 4 到 12 USD。
大多数想要在真实机械臂上使用视觉语言动作模型的人都会止步于硬件要求。GR00T N1.7和Pi0.5各自拥有约 30 亿参数,需要 A100 80 GB 或 H100 显卡。如果你只有一台配备 RTX 4090 的游戏 PC,那这条路就走不通了。SmolVLA是个例外:它拥有 4.5 亿参数,内置于 LeRobot 中,旨在单张消费级显卡上进行微调,并从 CPU 提供服务。
首先是手动路线:安装 lerobot,拉取lerobot/smolvla_base检查点,运行实际命令,并在运行时读取。然后是平台路线,以及它无法提供帮助的地方。
SmolVLA 的具体数据
SmolVLA 是一种流匹配策略,集成到一个小型视觉语言模型中。其骨干网络是 SmolVLM2-500M-Video-Instruct;该论文仅保留其语言模型的前 16 层,将每个摄像头帧限制为 64 个视觉 token,采用像素混洗而非图像平铺,并在每隔一个块中将交叉注意力与自注意力层交错。推理成本是设计约束,而非事后考虑。
| 属性 | 值 | 来源 |
|---|---|---|
| 总参数 | about 450 M | paper |
| 动作专家 | about 100 M, flow matching | paper |
| VLM 骨干网络 | HuggingFaceTB/SmolVLM2-500M-Video-Instruct | vlm_model_name |
| 使用的 VLM 层 | first 16 of the language model | num_vlm_layers = 16 |
| 每帧视觉 token 数 | 64, pixel shuffle, no tiling | paper |
| 预训练 | 481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUs | paper |
这些基准测试是人们关注 450 M 模型的原因。在 LIBERO 上,它平均达到 87.3%,而 7 B 的 OpenVLA 为 76.5%,3.3 B 的机器人预训练 Pi0 为 86.0%;在 Meta-World 上,它为 57.3%,而后者为 47.9%。在真实的 SO-100 硬件上,多任务训练在抓取放置任务上达到 75%,堆叠任务上达到 90%,排序任务上达到 70%,平均 78.3%,而ACT按任务训练的平均为 48.3%。同样的行数据出现在SmolVLA 竞技场条目和ACT 与 SmolVLA 比较中,与每个已发布的 VLA 并列。
SmolVLA 并非在所有方面都优于 3 B 模型。该论文自己的 SO-101 表格说明了一切:在它从未预训练过的平台上,分布内成功率为 90%,分布外为 50%。它确实声称并支持的是,与 Pi0 相比,它在内存使用量减少 6 倍的情况下,训练速度快约 40%。
为什么24 GB显卡是首次运行的正确选择
LeRobot 提供了一份计算规模指南,这是此仓库中最有用的页面。它根据骨干网络大小对策略进行分组,并为每组提供一个VRAM包络,该数据是在批处理大小为8,使用LeRobot默认的AdamW优化器时测量的。仅优化器状态就比单纯的前向和后向传播增加了30%到100%的开销,因此这些并非仅是模型权重的数字。
| 组 | 策略 | 峰值VRAM(批处理大小8,AdamW) | 推荐GPU |
|---|---|---|---|
| 轻量级BC | act, vqbet, tdmpc | 约2到6 GB | RTX 3060, L4 |
| 扩散模型 | diffusion, multi_task_dit | 约8到14 GB | RTX 4070+, L4 |
| 小型VLA | smolvla | 约10到16 GB | RTX 4080+, L4, A10G |
| 大型VLA | pi0, pi0_fast, pi05, xvla, wall_x | 约24到40 GB | A100 40 GB+ |
| 多模态 | groot, eo1 | 约24到40 GB | A100 40 GB+ |
批处理大小为8时,需要10到16 GB的显存:一张24 GB的显卡足以满足这个需求,并能额外容纳数据加载器。AY-Robots 将 SmolVLA 部署在 RTX 4090 或任何24 GB显卡上,至少需要30个episode,LeRobot v3.0数据,每个动作步骤245毫秒。租用的话,每小时0.30到0.60美元,总计2到5小时,大约1到3美元一次微调运行,而GR00T和Pi0.5在80 GB显存层级上需要4到12美元(定价)。一次失败的SmolVLA运行只是一杯咖啡的钱;一次失败的GR00T运行则是一顿午餐的钱。

- 适用于你可能已有的硬件:批次 8 时大约 10 到 16 GB。
- 一次失败的运行会花费数小时和个位数美元,因此你可以承担数据集出错的风险。
- 在 lerobot 标签下共享的社区数据集上进行预训练,具有真实的 SO-100 和 SO-101 结果。
- 它存在于 lerobot 本身:没有供应商仓库,并且 smolvla_base 没有受限。
- 450 M 仍然是 450 M:在论文的 SO-101 表中,分布外成功率从 90% 下降到 50%。
- 它需要 LeRobot v3.0 数据;v2.1 录制必须进行转换 (数据集被拒绝 v3)。
- 每个动作步骤 245 毫秒是一个称职的抓取放置控制器,而不是一个反应式控制器。
- 文档示例在 A100 上运行批次 64;在 24 GB 上,你用批次换取实际运行时间。
步骤 0:数据集决定运行,而非标志
如果录制质量不佳,下面的内容都无关紧要。LeRobot SmolVLA 页面直言不讳:参考数据集是 5 个立方体位置的 50 个回合,每个位置 10 个,而 25 个回合的相同任务表现不佳。每个变体的重复有助于泛化,原始回合数则不然。从未录制过?请从录制你的第一个数据集,使用桌面客户端,它会从一个远程操作会话中写入 LeRobot 格式,或者从数据集目录中借用一个。
- AY-Robots上至少30个episode,LeRobot参考配方大约50个。
- 在部署时预期的每种变体,重复多次。
- 一个任务字符串,在录制和部署时拼写完全一致。模型以此文本为条件。
- 固定摄像头。在录制和部署之间移动摄像头是导致干净的损失曲线却得到静止机械臂的最常见原因。
- 一个从未训练过的保留变体,以便进行公正的测试。
SmolVLA、Pi0.5和ACT需要LeRobot v3.0。GR00T N1.7和N1.5需要v2.0或v2.1,它们的加载器在v3.0上会崩溃。录制一次,计划稍后比较模型,你将不得不进行转换:数据集拒绝v3。
# v2.1 -> v3.0: aggregates per-episode files into shards and writes the episode offsets
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=${HF_USER}/so100_pick_place更多内容请参见如何收集高质量的VLA训练数据。简而言之:30到50个具有刻意变化的单一任务的干净episode,其效果优于200个包含三个任务的粗糙episode,这种差距是任何超参数都无法弥补的。
安装 lerobot 0.6.1
# LeRobot needs Python 3.12 or newer as of 0.6.x
conda create -y -n lerobot python=3.12
conda activate lerobot
# TorchCodec decodes the dataset videos and wants ffmpeg
conda install ffmpeg -c conda-forge
# Base package is deliberately thin; extras pull the rest
pip install 'lerobot[smolvla,training,core_scripts]'
# Sanity check: prints the lerobot version, the GPU torch sees, and the console scripts you got
lerobot-info基础 lerobot 安装包很精简,并通过额外组件来管理重度依赖项:smolvla 添加了 transformers、num2words 和 accelerate,training 添加了数据集堆栈和 wandb,core_scripts 添加了硬件和可视化依赖项。在 Linux 上,安装路径还会决定您的 CUDA wheel 版本:PyPI 默认是 cu130 wheel,要求驱动版本不低于 580.65,因此如果驱动较旧,请先从 cu128 索引安装 torch,然后再安装 lerobot。
--policy.path=lerobot/smolvla_base 加载预训练的 450 M 检查点并进行微调。--policy.type=smolvla 构建一个新的 SmolVLA,并且配置默认值 load_vlm_weights = False 意味着除非您明确要求,否则它甚至不会拉取 SmolVLM2 骨干网络的权重。如果操作不当,运行会顺利进行,成本相同,但学不到任何可迁移的知识。
训练运行,逐条命令
- 1对 Hub 进行身份验证
基础检查点来自 Hub,您的数据集可能也来自 Hub。
bashhf auth login - 2阅读一次选项
管道和策略配置的每个字段都是一个标志。在深入研究源代码之前,请先浏览一下。
bashlerobot-train --help - 3开始微调
文档示例在单个 A100 上运行批次 64;计算指南自己的 A100 40 GB 锚点是批次 16,而 8 是 24 GB 的等效值。这里故意没有调度器标志,详见下文。
bashlerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=${HF_USER}/so100_pick_place \ --batch_size=8 \ --steps=20000 \ --save_freq=2000 \ --log_freq=200 \ --seed=1000 \ --output_dir=outputs/train/smolvla_pick_place \ --job_name=smolvla_pick_place \ --policy.device=cuda \ --wandb.enable=true - 4阅读日志行,而不仅仅是损失
每隔 --log_freq 步,lerobot 就会打印 loss、grdn、lr、updt_s、data_s、smp/s,在 CUDA 上还会打印 mem_gb。mem_gb 表示批次是否适合,lr 表示调度是否衰减,而 data_s 接近 updt_s 则意味着数据加载器是瓶颈,而不是 GPU。
bash# if data_s creeps toward updt_s lerobot-train ... --num_workers=8 - 5收集可供比较的检查点
save_freq 默认为 20000,因此 20000 步的运行只会留下一个检查点,没有可供比较的对象。设置为 2000。推送到 Hub 需要 --policy.repo_id。
bash--save_freq=2000 \ --policy.repo_id=${HF_USER}/smolvla_pick_place \ --save_checkpoint_to_hub=true - 6如果机器宕机则恢复
将 --config_path 指向检查点旁边的 train_config.json。lerobot 拒绝启动到现有的 output_dir 中,除非您正在恢复,因此您不会意外覆盖运行。
bashlerobot-train \ --config_path=<path to the saved train_config.json> \ --resume=true
实际改变结果的标志
| 标志 | 作用 | 在 24 GB 上 |
|---|---|---|
| --batch_size | 每步样本数,大致与 VRAM 呈线性关系 | 4 到 8 |
| --steps | 总优化器步数 | 首次运行 20000 |
| --policy.scheduler_decay_steps | 余弦衰减长度,预设 30000 | 仅在 30000 以上生效 |
| --policy.use_amp | 混合精度;SmolVLA 没有 dtype 字段 | 内存紧张时设为 true |
| --num_workers | 数据加载器进程数,默认为 4 | 增加直到 data_s 停止上升 |
| --dataset.eval_split | 每个任务保留的片段比例 | 0.1,配合 --eval_steps |
| --policy.freeze_vision_encoder | 保持视觉编码器冻结 | 在 24 GB 上设为 true |
| --policy.train_expert_only | 只有约 1 亿参数的专家模型获得梯度 | 首次设为 true |
SmolVLA 预设了一个余弦调度:`scheduler_warmup_steps = 1000`,`scheduler_decay_steps = 30000`,`scheduler_decay_lr = 2.5e-6`。旧的建议认为,20000 步的运行会在衰减中期停滞。在 0.6.1 中则不会:`CosineDecayWithWarmupSchedulerConfig.build()` 会接收 `--steps` 参数,并在 `num_decay_steps` 以下对两者进行重新缩放,将预热步数从 1000 缩放到 666,衰减步数从 30000 缩放到 20000,同时打印 Auto-scaling LR scheduler。它从不向上重新缩放:衰减通过 `min(current_step, decay_steps)` 进行钳制,因此默认的 `--steps=100000` 会在第 30000 步到结束期间(占运行时间的 70%)保持在最低点。只有那段长尾部分仍然需要 `--policy.scheduler_decay_steps`。您可以在 `lr` 列中查看。
如果您不进行任何更改,您将继承的默认值
一个 策略 配置在 lerobot 中带有自己的优化器和调度器预设,除非您设置 use_policy_training_preset=false,否则这些预设将生效。人们关于 SmolVLA 训练提出的一半问题,都可以通过他们不知道存在的默认值来解答。
| 设置 | lerobot 0.6.1 中的默认值 | 定义于 |
|---|---|---|
| 块大小 / 动作步数 | 50 / 50 | SmolVLAConfig |
| 步数(流匹配去噪) | 10 | SmolVLAConfig |
| 优化器学习率 | 1e-4 | SmolVLAConfig |
| 调度器预热步数 | 1000 | SmolVLAConfig |
| 调度器衰减步数 | 30000 | SmolVLAConfig |
| 调度器衰减学习率 | 2.5e-6 | SmolVLAConfig |
| 冻结视觉编码器 | true | SmolVLAConfig |
| 仅训练专家 | true | SmolVLAConfig |
| 批大小 / 步数 | 8 / 100000 | TrainPipelineConfig |
| 种子 / 保存频率 / 工作器数量 | 1000 / 20000 / 4 | TrainPipelineConfig |
令人惊讶的两行是 freeze_vision_encoder 和 train_expert_only,两者都为 true。开箱即用时,您训练的参数大约是 100 M,而不是 450 M,这就是它能适应 24 GB 的原因。LeRobot 在四 GPU H100 集群上的参考运行将两者都设置为 false;在单张 24 GB 显卡上,这会将原本可行的运行变成 。
当您受内存限制时,指南的建议是减小批次大小并使用梯度累积来恢复有效批次。lerobot 0.6.1 中没有梯度累积:TrainPipelineConfig 没有此字段,并且该字符串未出现在发布的包中。AY-Robots 表单显示 SmolVLA 的梯度累积值为 8,但也没有应用它。您在 24 GB 上的控制手段是 --batch_size、两个冻结默认值和 --policy.use_amp。
运行需要多长时间,以及多少步才足够
LeRobot 发布了针对大约 50 个 episode 数据集进行五个 epoch 的实际运行时间锚点,大约是 45000 帧,30 fps。文档称这些是数量级数字,但它们代表了预期一小时和一天之间的差异。
| 设置 | 策略 | 批次 | 实际运行时间 |
|---|---|---|---|
| 单张 L4 / A10G (24 GB) | smolvla | 4 | 约 3 到 6 小时 |
| 单张 A100 40 GB | smolvla | 16 | 约 1 到 2 小时 |
| 4 张 H100 80 GB (带 accelerate) | smolvla | 32 | 约 1 到 2 小时 |
| 单张 RTX 4090 / RTX 3090 (24 GB) | act | 8 | 约 30 到 60 分钟 |
规则是在数据集上进行 5 到 10 个 epoch,而不是固定的步数:steps_per_epoch = ceil(total_frames / (num_gpus x batch_size))。文档中提到的参考数据集,lerobot/svla_so100_pickplace,其元数据报告有 50 个 episode 和 19631 帧:批次大小为 8 时,每个 epoch 大约有 2454 步,因此 20000 步大约是 8 个 epoch。将批次大小减半,相同的预算只能获得一半的 epoch,因此每当您更改 --batch_size 时,请重新进行此计算。
在机械臂上运行微调后的策略
lerobot-rollout \
--strategy.type=base \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower_arm \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
--task="Grasp the cube and put it in the box." \
--policy.path=${HF_USER}/smolvla_pick_place每动作步 245 毫秒很容易被误解:策略在每次前向传播中发出 chunk_size = 50 个动作,并执行其中的 n_action_steps = 50 个动作。因此,你支付该成本的频率是由这些参数决定的,而不是由伺服电机接收命令的频率决定的。这就是 动作分块 的作用,也是为什么一个 245 毫秒的模型可以驱动一个 30 赫兹的机械臂。剩下的就是 推理延迟 在分块结束时。
| 测量 (SmolVLA, 真实 SO-100) | 同步 | 异步 |
|---|---|---|
| 完成时间,抓取放置,10 次试验 | 13.75 s | 9.70 s |
| 固定时间窗口内的抓取放置循环次数 | 9 | 19 |
| 三项任务的平均成功率 | 78.3 % | 73.3 % |
第三行是大多数报告会跳过的内容。异步推理速度快约 30%,在固定时间窗口内吞吐量大约翻倍,论文称成功率相当,平均来看确实如此。在此之下,排序任务从 70% 下降到 50%,而抓取放置任务增加了 5%。lerobot 0.6.1 在同一个二进制文件中提供了另一个控制杆:--inference.type=rtc 将策略执行切换到实时分块,脚本自己的使用说明块推荐将其用于慢速 VLA,如 Pi0、Pi0.5 和 SmolVLA。
控制循环每动作步 20 到 485 毫秒,具体取决于模型,而公共互联网往返延迟会使一个有效的策略变得犹豫不决。远程推理适用于慢速抓取放置任务,不适用于快速反应运动:如果任务需要快速纠正,GPU 应该与机械臂位于同一局域网内。
通往同一检查点的两条路径
您拥有机器、环境和调试权限。唯一的云依赖是 Hub 下载的基础检查点。如果您想修改策略、数据不能离开您的网络,或者显卡处于空闲状态,这是正确的选择。
- 您控制 CUDA 轮子、驱动程序、ffmpeg 构建和数据加载器。
- 您可以在当天下午修补 configuration_smolvla.py 并重新训练。
- 您支付的是电费和时间,而不是每次运行的费用,并且自行调试 TorchCodec。
pip install 'lerobot[smolvla,training,core_scripts]'
hf auth login
lerobot-train \
--policy.path=lerobot/smolvla_base \
--dataset.repo_id=${HF_USER}/so100_pick_place \
--batch_size=8 --steps=20000 \
--save_freq=2000 --seed=1000 \
--output_dir=outputs/train/smolvla_pick_place \
--job_name=smolvla_pick_place \
--policy.device=cuda --wandb.enable=true通过表单进行相同的运行:您选择模型和数据集,后端根据所需的 VRAM 租用 GPU,运行训练器并将 检查点 写入对象存储。数据集可以来自 Hugging Face repo id、公共 目录,或您的机器。从 SO-100 上的 SmolVLA 开始,或查看 训练页面 上的矩阵。
| 字段 | 平台为 SmolVLA 发送的默认值 | 备注 |
|---|---|---|
| 批处理大小 | 2 | 对于 24 GB 层级来说比较保守 |
| 学习率 | 1e-4 | lerobot 预设值 |
| 最大步数 | 20000 | LeRobot 文档中的参考运行 |
| 梯度累积 | 8 | 在表单中显示,但未应用 |
| 额外参数 | seed, logFreq | 种子使运行可重复 |
何时 SmolVLA 是错误的选择
衡量SmolVLA是否是正确的首次运行,不是看它是否成功,而是看失败是否为你提供了信息。如果达到60%或70%的成功率,那么投入更大的模型是合理的下一步:数据中包含信号。如果只达到10%的成功率,那么一个3B模型很可能也只能达到10%,而你只花了三美元而不是十二美元就学到了这一点。

在投入更多之前值得一读:Pi0.5 对比 SmolVLA 以在相同理念下获得更大容量,以及GR00T N1.7 对比 SmolVLA 走 NVIDIA 路线,两者都是 80 GB 级别,每次运行 4 到 12 美元。另一方面,ACT 是更便宜的基线:80 M 参数,每动作步 20 毫秒,无语言条件。这五种策略都位于策略页面;竞技场 拥有 85 个模型和 332 个基准测试结果。

在扩展任何内容之前的检查清单
- `lr` 是否达到了其 2.5e-6 的下限?在 30000 步以下,lerobot 会重新调整衰减并在启动时说明;超过此步数,请自行设置 `--policy.scheduler_decay_steps`。
- 不止一个检查点,并且使用 `--dataset.eval_split` 留出了评估回合,这样评估损失才有意义。
- 策略是否移动了?损失下降但机械臂不动有特定原因:损失下降,策略无动作。
- 它能否在场景变化后继续工作?如果不能:策略仅在一个设置中有效。
- 你是否记下了随机种子?lerobot 默认为 1000,因此两次未修改的运行保持可比性。
- 只有在那之后:更多回合、更多变化,或更大的模型。按此顺序。
关于这些模型为何存在以及它们如何处理语言输入, 是背景; 运行装配,从 到第一次 运行。对于已完成的检查点,;如果机械臂从未出现,。
我真的可以在 RTX 4090 上微调 SmolVLA 吗?▾
是的。LeRobot 的计算指南指出,SmolVLA 在 batch 8 和 AdamW 的情况下,峰值 VRAM 大约在 10 到 16 GB 之间,并列出 24 GB 消费级显卡足以应对。文档示例中的 batch 64 是与单个 A100 搭配使用的。内存大致与 batch 线性扩展,因此使用 4 或 8 并观察 mem_gb。
我到底需要多少个 episode?▾
AY-Robots 将最低数量设为 30。LeRobot 文档建议大约 50 个,并报告说 25 个相同任务的 episode 表现不佳。结构胜于数量:参考数据集是 5 个立方体位置,每个位置有 10 个 episode,正是这种重复性实现了泛化。
文档说 batch 64,平台发送 batch 2。哪个是对的?▾
两者都对,适用于不同的硬件。文档示例使用 batch 64,并引用单个 A100 上 20000 步大约需要 4 小时;计算指南中 A100 40 GB 的基准是 batch 16。Batch 2 是 AY-Robots 在 24 GB 级别上发送的。本地使用 4 到 8 是中间值,并且 epoch 算术会随之改变。
在 SO-100 上首次运行时,选择 SmolVLA 还是 ACT?▾
如果任务是单一重复运动且您想要最快的循环,则选择 ACT:每个动作步 20 ms,80 M 参数,无语言条件。如果您想要语言条件、一个检查点中包含多个任务字符串以及一个预训练基础模型,则选择 SmolVLA。两者都适用于 24 GB 级别,因此选择取决于任务,而非预算。
我必须设置 --policy.scheduler_decay_steps 吗?▾
仅当 --steps 超过 30000 时。SmolVLA 将余弦衰减预设为 30000 步,lerobot 0.6.1 会在较短的运行中自行将其按比例缩小,并在执行时记录“Auto-scaling LR scheduler”。它从不按比例放大,因此默认的 --steps=100000 会将最后 70000 步留在 2.5e-6 的下限。
Sources
- SmolVLA:一种经济高效的机器人视觉-语言-动作模型
- SmolVLA:高效的视觉-语言-动作模型 (Hugging Face 博客)
- lerobot/smolvla_base 模型卡
- LeRobot 文档:SmolVLA
- LeRobot 文档:LeRobot 训练的计算硬件指南
- LeRobot 文档:安装
- LeRobot 文档:LeRobotDataset v3.0 和 v2.1 转换器
- LeRobot 文档:异步推理
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py(策略和 RTC 推理)
- lerobot v0.6.1: pyproject.toml(附加功能和控制台入口点)
- PyPI 上的 lerobot
- lerobot/svla_so100_pickplace 数据集(50 个 episode,19631 帧,v3.0)
Sources
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot/smolvla_base model card
- LeRobot docs: SmolVLA
- LeRobot docs: Compute HW Guide for LeRobot Training
- LeRobot docs: Installation
- LeRobot docs: LeRobotDataset v3.0 and the v2.1 converter
- LeRobot docs: Asynchronous Inference
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (strategies and RTC inference)
- lerobot v0.6.1: pyproject.toml (extras and console entry points)
- lerobot on PyPI
- lerobot/svla_so100_pickplace dataset (50 episodes, 19631 frames, v3.0)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started