
TinyVLA和SmolVLA将可用的VLA模型参数量控制在10亿以下。本文提供了来自两篇论文的真实数据、LeRobot的默认设置、测量的延迟,以及在24 GB显卡上运行的成本。
几乎所有视觉-语言-动作模型在文献中提及的都假设使用数据中心显卡。OpenVLA 拥有 70 亿参数。GR00T N1.7和Pi0.5大约有 30 亿参数,需要 A100 80 GB 显卡进行微调。如果你的桌面显卡是 4090,那么这类模型就遥不可及了。
有两篇论文指出你可能不需要它。TinyVLA (arXiv 2409.12514,于 2025 年 2 月被 IEEE Robotics and Automation Letters 接受) 通过 4 亿至 13 亿参数的主干网络加上一个扩散动作头构建了一个 VLA。SmolVLA (arXiv 2506.01844,于 2025 年 6 月 2 日提交) 拥有 4.5 亿参数,并提供开放权重、开放数据以及一个可在单张消费级显卡上运行的脚本。以下是两者测量的结果,以及低于 10 亿参数的论点不再成立的地方。
你需要了解什么
- •TinyVLA 提供三种尺寸:总计 4.22 亿参数,其中 1.01 亿可训练;7.4 亿参数,其中 1.38 亿可训练;13 亿参数,其中 1.43 亿可训练。只有前两种低于 10 亿参数。
- •其表 IV 测量显示,在单张 A6000 显卡上,TinyVLA-1B 的每次动作预测耗时 14 毫秒,而 OpenVLA-7B 为 292 毫秒,缩小版 OpenVLA-1B 为 140 毫秒。
- •保持这种速度的是头部,而非主干网络:将 TinyVLA-H 的扩散头替换为 ACT 头后,五项真实机器人任务的平均成功率从 94.0 下降到个位数。MLP 头的得分处处为 0。
- •SmolVLA 拥有 4.5 亿参数,其中约 1 亿是动作专家部分,在 481 个社区 LeRobot 数据集和 1060 万帧数据上进行了预训练。它在 LIBERO 上报告的成功率为 87.3,而经过机器人学预训练的 33 亿参数 Pi0 为 86.0;在三项真实 SO-100 任务上为 78.3,而 35 亿参数 Pi0 为 61.7。
- •如果未经预训练而进行单任务训练,SmolVLA 在这些任务上的成功率降至 40.0,低于 ACT 的 48.3。小模型并非自动简单。
- •TinyVLA 没有集成 LeRobot,并固定使用 CUDA 11.7 wheel 栈。SmolVLA 已集成到 lerobot 中,在此处的 24 GB 层级上每次运行成本约为 1 到 3 美元。
什么才算真正的小型 VLA
模型卡上的参数数量并非单一数字。它可以指总权重、推理时加载的权重,或在期间接收梯度的权重。TinyVLA 同时报告了这两者,并且差距很大:TinyVLA-H 总参数为 1.3 B,但可训练参数为 143 M,因为视觉塔和大部分语言模型保持冻结,而 LoRA 适配器和动作头则会移动。该论文指出可训练部分的占比约为 5%。
| 模型 | 参数 | 骨干网络 | 动作头 | 来源 |
|---|---|---|---|---|
| TinyVLA-S | 422 M total, 101 M trainable | Llava-Pythia ~400 M | Diffusion (droid_diffusion U-Net) | arXiv 2409.12514 |
| TinyVLA-B | 740 M total, 138 M trainable | Llava-Pythia ~700 M | Diffusion | arXiv 2409.12514 |
| TinyVLA-H | 1.3 B total, 143 M trainable | Llava-Pythia ~1.3 B | Diffusion | arXiv 2409.12514 |
| SmolVLA | 450 M, ~100 M action expert | SmolVLM2-500M-Video-Instruct | Flow matching expert | arXiv 2506.01844 |
| Octo-Small | 27 M | ViT-S scale, T5-Base text encoder | Diffusion | octo-small-1.5 card |
| ACT | ~80 M | ResNet, no language model | Direct chunk regression | AY-Robots catalog |
| OpenVLA | 7 B | Llama 2 7 B, DINOv2 and SigLIP encoders | Autoregressive action tokens | arXiv 2406.09246 |
有两行值得讨论。大约 80 M,比这里的所有其他模型都小,但它没有语言模型,因此它不是 VLA:它学习一个任务,不能被告知执行另一个任务。27 M,通过 T5-Base 文本编码器进行条件化,而不是 LLM 骨干网络。它们都是很好的基线模型,但都无法提供标签所暗示的指令遵循能力。
TinyVLA-H 是带来头条结果的变体,它有 1.3 B 参数,并位于该阈值之上。更好的问题是,模型在训练期间是否能适应 24 GB 内存并在推理时达到您的控制速率。您可以在策略页面上训练这里的五种策略;如果您想将 TinyVLA 的数据与其他模型的数据进行比较,TinyVLA 有一个竞技场条目。
TinyVLA:速度源于头部,而非骨干网络
显而易见的解读是,他们将语言模型做得更小,从而使其更快。但论文的消融实验结果却并非如此。将OpenVLA的7B骨干网络替换为大约1B的骨干网络,每次动作预测时间从292毫秒缩短到140毫秒,提升了2倍。TinyVLA-H在参数量相当的情况下,在同一张显卡上运行时间为14毫秒。另外10倍的提升则来自动作头部。
| 模型 | 每次动作预测时间 | 测量平台 |
|---|---|---|
| OpenVLA-7B | 292 ms | single A6000 |
| OpenVLA-1B, backbone swapped for TinyVLA's | 140 ms | single A6000 |
| TinyVLA-1B (TinyVLA-H) | 14 ms | single A6000 |
OpenVLA通过语言模型头部,以自回归方式,为每个动作维度生成离散化的动作token。TinyVLA则附加了一个扩散解码器,可以一次性生成整个动作块。表V展示了TinyVLA-H的架构,并在相同的五个真实机器人任务上仅替换了头部。这是两篇论文中关于流匹配策略所提出的论点最清晰的证据,也是Pi0放弃token解码的原因。
| TinyVLA-H 上的头部 | 放置网球 | 翻转马克杯 | 堆叠方块 | 关闭抽屉 | 打开盒子 |
|---|---|---|---|---|---|
| 扩散 (droid_diffusion) | 90.0 | 98.3 | 98.3 | 96.7 | 86.7 |
| 动作分块Transformer | 13.3 | 8.3 | 8.3 | 13.3 | 23.3 |
| 多层感知器 | 0 | 0 | 0 | 0 | 0 |
292 / 140 / 14 毫秒的数据来自表 IV,均在一台 A6000 上测得。这些数据是每次动作预测的,不包括摄像头捕获、预处理以及向伺服系统的串行写入。应将公布的延迟视为下限,绝不能视为控制速率。我们自己的数据也存在同样的限制:请参阅推理延迟。
TinyVLA 的得分
| 基准 | 协议 | TinyVLA-H | 基线 |
|---|---|---|---|
| MetaWorld,50 项任务,模拟 | 多任务,50 个演示,3 个随机种子 | 按难度分别为 77.6 / 21.5 / 11.4 / 15.8,平均 31.6 | Diffusion Policy 平均 10.5 |
| 真实 Franka Panda,5 项任务 | 每项任务 100 条轨迹,20 次试验 | 平均 94.0 | OpenVLA 68.3,Diffusion Policy 35.3 |
| 双臂 UR5,3 项任务 | 多任务,每项任务 10 次试验 | 76.7 / 36.7 / 30.0 | OpenVLA 0 / 0 / 0,Diffusion Policy 40.3 / 31.3 / 43.0 |
双臂行有一个论文本身给出的无聊解释:OpenVLA 在 Open X-Embodiment 上进行了预训练,该数据集完全由单臂数据组成,因此双臂动作空间超出了分布范围,得分也为零。扩散策略基线在三项任务中的两项上击败了 TinyVLA-H。背景信息请参见Open X-Embodiment 综述.

TinyVLA 仓库,截至 2026 年 8 月
这篇论文写得很好。代码是一个研究成果的发布。该仓库是 github.com/liyaxuanliyaxuan/TinyVLA;其 README 显示代码发布日期为 2025 年 2 月 17 日,最后一次提交是 2025 年 3 月 11 日。对于重现论文来说没问题,但如果您想要一个维护良好的库,那就有问题了。
git clone https://github.com/liyaxuanliyaxuan/TinyVLA
conda create -n tinyvla python=3.10 -y
conda activate tinyvla
pip install --upgrade pip
pip install -r requirements.txt
cd policy_heads && pip install -e .
cd ../llava-pythia && pip install -e .requirements.txt 将 torch==2.0.1、transformers==4.37.1、deepspeed==0.9.5、peft==0.4.0、diffusers==0.11.1、numpy==1.24.4 以及 CUDA 堆栈固定到 11.x 轮子:nvidia-cuda-runtime-cu11==11.7.99、nvidia-cudnn-cu11==8.5.0.96、triton==2.0.0。README 要求 Python 3.10;lerobot 0.6.1 需要 3.12 或更高版本,因此两者不能共享环境。首先确认您的 GPU 代次存在 torch 2.0.1 构建。如果运行因 VRAM 而失败,内存不足检查清单比猜测更快。
TinyVLA 也不读取 LeRobot 数据集。其格式是 ACT 风格的 HDF5:action、language_raw,以及一个包含多视角图像、joint_positions、qpos 和 qvel 的 observations 组。该仓库提供了用于 RLDS 输入的 data_utils/rlds_to_h5py.py,并且每个任务都在 aloha_scripts/constants.py 中手动注册,包含其 dataset_dir、episode_len 和 camera_names。如果您的 剧集 来自 lerobot 或 桌面客户端,则您需要自行完成转换。
# scripts/train.sh, the real flags from the repository
ACTION_HEAD=droid_diffusion
deepspeed --master_port 29600 --num_gpus=8 --num_nodes=1 ./train_tinyvla.py \
--deepspeed scripts/zero2.json \
--lora_enable True \
--lora_module 'vit llm' \
--lora_r 64 \
--lora_alpha 256 \
--non_lora_lr 2e-5 \
--task_name "example_task_config" \
--model_name_or_path /path/to/pretrained_vlm \
--freeze_vision_tower True \
--freeze_backbone True \
--bf16 True \
--max_steps 10000 \
--per_device_train_batch_size 32 \
--gradient_accumulation_steps 1 \
--learning_rate 2e-4 \
--lr_scheduler_type "cosine" \
--warmup_ratio 0.005 \
--save_steps 1000 \
--action_head_type $ACTION_HEAD \
--use_state True \
--window_size 6- --num_gpus=8 假定一个八卡节点。将其设置为 1 并将批处理大小远低于 32。上游不提供单 GPU 变体,因此该命令无法在 4090 上原样运行。
- --deepspeed scripts/zero2.json 指向一个不在顶级 scripts 目录中的文件。DeepSpeed 配置位于 llava-pythia/scripts/zero2.json。在首次运行前修正路径。
- README 要求输出目录名称包含 llava_pythia,如果启用了 LoRA,则还需包含 lora。
- 骨干网络需要单独下载:lesjie/Llava-Pythia-400M、-700M 或 -1.3B。没有一个单一的基础检查点可以像指向 lerobot/smolvla_base 那样指向 一个策略。
SmolVLA:今天下午即可运行的亚十亿参数模型
SmolVLA 在一个维护的库中提出了相同的论点。它基于 SmolVLM2-500M-Video-Instruct 骨干网络,拥有 450 M 参数,其效率来源于可以从 configuration_smolvla.py 中读取的设置,而非其“小巧”的宣称。
| configuration_smolvla.py 中的设置 | 默认值 | 作用 |
|---|---|---|
| num_vlm_layers | 16 | 仅运行前 16 个语言模型层 |
| expert_width_multiplier | 0.75 | 动作专家隐藏层大小是 VLM 的 75% |
| self_attn_every_n_layers | 2 | 自注意力与交叉注意力交错 |
| chunk_size / n_action_steps | 50 / 50 | 一次通过发出 50 个动作,所有 50 个动作都被执行 |
| num_steps | 10 | 流匹配去噪固定为 10 步 |
| tokenizer_max_length | 48 | 指令被截断为 48 个 token |
| freeze_vision_encoder / train_expert_only | True / True | 微调移动的是专家,而非视觉塔 |
| optimizer_lr, warmup, decay | 1e-4, 1000 steps, to 2.5e-6 over 30000 | 并非论文中的配方:其预训练使用了 200000 步中的 100 步预热 |
预训练使用了 481 个社区 LeRobot 数据集,22.9 K 幕和 10.6 M 帧,在 4 块 GPU 上运行,200000 步,全局批次大小为 256;论文指出整个项目大约耗费 30 K GPU 小时。一个值得注意的数字是:Hugging Face 的发布博客称有 487 个精选数据集,而论文的表格则显示 481 个。我们采用论文中的数字并指出这一差异。

| 基准 | SmolVLA 0.45 B | SmolVLA 2.25 B | Pi0 | ACT |
|---|---|---|---|---|
| LIBERO 平均,多任务 | 87.3 | 88.75 | 86.0 (3.3 B, robotics-pretrained) | - |
| Meta-World 平均,多任务 | 57.3 | 68.24 | 47.9 (3.5 B, robotics-pretrained) | - |
| 真实 SO-100,3 个任务,多任务训练 | 78.3 | - | 61.7 (3.5 B) | - |
| 真实 SO-100,3 个任务,单任务,无机器人预训练 | 40.0 | - | - | 48.3 |
| SO-101 乐高抓取放置,单任务,分布内 | 90 | - | - | 70 |
| SO-101 乐高抓取放置,单任务,分布外 | 50 | - | - | 40 |
LIBERO 是模拟环境,目前所有有竞争力的模型都在八十分左右。真实的 SO-100 行,一个 450 M 的模型以 16.6 分的优势击败了 3.5 B 的模型,这很有趣;它下面的一行是其反证。如果剥离社区预训练和多任务训练,同一个模型会降至 40.0 分,低于 ACT。可以站得住脚的说法是,小模型并非自动更差,而不是说它更好。
一个巧合有所帮助:SmolVLA 论文的 Meta-World 表格将 TinyVLA 自己的发布数据作为基线,因此两个模型首次出现在同一张表格中,SmolVLA-0.45B 为 57.3,而 TinyVLA-H 为 31.6。它还报告 SmolVLA 的训练速度比 Pi0 快约 40%,且内存使用量减少 6 倍。所有这些都来自 SmolVLA 的作者;竞技场条目将每个值链接到其来源。
SmolVLA 的时间开销
AY-Robots 在策略目录中列出 SmolVLA 的每个动作步骤为 245 毫秒,而 ACT 为 20 毫秒。TinyVLA 报告每个动作预测为 14 毫秒。这些数字不可比较,将它们视为可比较是此主题中最常见的错误:有些是单次前向传播的时间,有些则在动作分块摊销后将该传播时间分摊到块中。
- SmolVLA 每次前向传播发出 50 个动作并执行所有 50 个。在论文中用于真实机器人的 30 fps 下,一次推理大约覆盖 1.7 秒的运动。
- 异步推理在当前块仍在执行时计算下一个块:平均任务完成时间为 9.7 秒,而同步为 13.75 秒,大约快 30%,并且在固定的 60 秒窗口内完成 19 次抓取放置循环,而同步为 9 次。
- 成功率是可比的,而不是更好,同步为 78.3%,异步为 73.3%。异步提高了吞吐量,而不是准确性。
- 分块隐藏了计算延迟,而不是网络延迟,并且它使策略的反应性降低,因为它已提交执行 50 个动作。
AY-Robots可以自动配置一个云端GPU Pod来服务您的策略,同时本地机器人客户端与该端点通信。该Pod带有一个空闲看门狗,因此它会在空闲时自行销毁,而不是默默地产生费用。它无法消除公共互联网的往返延迟。这里五种策略的控制循环在没有任何网络延迟的情况下,每个动作步骤需要20到485毫秒,因此远程推理适用于慢速的抓取放置任务,而不适用于快速的反应式运动。

在单张消费级显卡上微调SmolVLA
手动路径,基于lerobot 0.6.1,截至2026年8月23日的当前PyPI版本。以下所有内容均来自Hugging Face lerobot SmolVLA文档,于同日获取;引导版本更易上手。
- 1安装带有 SmolVLA 附加项的 lerobot
SmolVLA 依赖项是可选的附加项,不属于基本安装。不安装它然后疑惑策略类型未知是常见的半小时浪费。
bashgit clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e ".[smolvla]" - 2获取足够 episode 的数据集
文档建议大约 50 个 episode,并指出相同任务的 25 个 episode 不够。AY-Robots 将最低数量设置为 30。记录您自己的,或者从数据集目录开始。
bash# any LeRobotDataset on the Hub works as --dataset.repo_id # lerobot/svla_so100_pickplace is the paper's own 50-episode set: # 5 cube positions, 10 episodes each - 3开始微调
来自 lerobot 指南的命令,未修改。文档指出在单个 A100 上,20000 步大约需要 4 小时。在 24 GB 显卡上,预计时间会更长,请自行测量。
bashcd lerobot && lerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=${HF_USER}/mydataset \ --batch_size=64 \ --steps=20000 \ --output_dir=outputs/train/my_smolvla \ --job_name=my_smolvla_training \ --policy.device=cuda \ --wandb.enable=true - 4减小批量大小直到适应
batch_size=64 是一个文档示例,并非对您的显卡的承诺。文档建议从小批量开始,并在加载时间保持较短的情况下逐渐增加。
bashlerobot-train --help - 5在机械臂上部署检查点
相同的库,一个命令。实时分块标志在文档中被注释掉,它们是低功耗硬件的首选。
bashlerobot-rollout \ --strategy.type=base \ --robot.type=so101_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_blue_follower_arm \ --robot.cameras="{ front: {type: opencv, index_or_path: 8, width: 640, height: 480, fps: 30}}" \ --task="Grasp a lego block and put it in the bin." \ --policy.path=HF_USER/FINETUNE_MODEL_NAME
将小型 VLA 部署到机械臂上的两种方法
您拥有机器和故障模式。对于 SmolVLA 来说,这很合理:一个 pip 附加项,一个训练命令,一个部署命令。对于 TinyVLA,它是一个研究复现,带有冻结的引脚、损坏的 DeepSpeed 路径以及您自己编写的数据转换。
- 获取一张 24 GB 显卡,记录 30 到 50 个 episode,逐帧验证摄像头流。
- pip install -e ".[smolvla]”,针对 lerobot/smolvla_base 运行 lerobot-train,然后在连接机械臂的机器上部署检查点。
- 对于 TinyVLA:单独的 conda 环境,将数据转换为 HDF5,在 constants.py 中注册任务,修复 zero2.json 路径,将 train.sh 从八个 GPU 削减到一个。
- 一旦显卡付款,就没有按小时计费。
- 推理位于伺服电机旁边,这是获得快速控制循环的唯一方法。
- 您可以修补策略代码,并且 TinyVLA 只能通过这种方式获得。
- 4090 显卡排除了所有约 3 B 的策略,因此无法与 GR00T N1.7 或 Pi0.5 进行本地比较。
- 环境设置才是真正的工作。仅 TinyVLA 的引脚就可能花费一天时间。
- 没有队列,没有重试,没有检查点存储。在第 14000 步重启意味着重新开始。
SmolVLA 是这里的五种策略之一。您在表单中选择模型和数据集,后端根据所需的显存租用 GPU,运行训练器并将检查点写入对象存储。分步操作:SO-100 上的 SmolVLA,或在训练页面上查看完整矩阵。
| 平台为 SmolVLA 发送的内容 | 值 |
|---|---|
| batch size | 2 |
| learning rate | 1e-4 |
| max steps | 20000 |
| gradient accumulation | 8, and it does not reach the trainer |
| extra knobs in the form | seed, logFreq |
| GPU tier | RTX 4090 or any 24 GB card |
| dataset format | LeRobot v3.0 |
| minimum episodes | 30 |
首先,这里的默认批量大小是 2,而不是 lerobot 文档示例中的 64,并且梯度累积设置已发送但对 SmolVLA 无效,因此有效批量实际上是 2。请有意提高它,而不是假设默认值与上游匹配。其次,TinyVLA 在这里根本无法训练。
在 24 GB 层级上运行需要 2 到 5 小时,每小时 0.30 到 0.60 美元,大约 1 到 3 美元。在 A100 层级上,一个约 3 B 的策略需要 3 到 6 小时,每小时 1.20 到 2.00 美元,大约 4 到 12 美元。请参阅定价,以及来自CLI和MCP 服务器的相同操作。
小型模型何时是错误的选择
两篇论文在此处都比摘要更为谨慎。TinyVLA 的故障分析很具体:0.4 B 变体因误读指令而失败了三次,作者将其归因于较小 VLM 的语言理解能力有限,并且该模式在 1.3 B 版本中消失了。SmolVLA 从另一方面展示了相同的曲线:相同架构的 2.25 B 版本在 LIBERO 上得分 88.75,在 Meta-World 上得分 68.24,而 0.45 B 模型则分别为 87.3 和 57.3。
- 适用于 24 GB 显卡,可将实验成本从几十美元降至几美元。
- 速度足够快,可在机械臂旁运行,控制回路中无需网络跳跃。
- 可在一个人记录的数据上进行微调,几十个片段而非数千个。
- SmolVLA 的权重、数据列表和代码都是公开的,因此不良结果可调试。
- 指令遵循能力较弱:语言参数较少,区分相似指代表达的能力较差。
- 对未记录的设置,空间和视觉泛化能力较差。
- 对数据集缺陷更敏感,可依赖的预训练基础较少。
- 多任务和长周期工作仍然偏爱大型模型,包括 SmolVLA 自身的 2.25 B 变体。
值得进行的比较不是 TinyVLA 与 SmolVLA 之间的比较。而是 SmolVLA 与 ACT 在你自己的任务上进行比较,SmolVLA 论文解释了原因。在没有机器人预训练的情况下进行单任务训练,SmolVLA 在三个 SO-100 任务中平均得分为 40.0,而单任务 ACT 取得了 48.3。将其提升到 78.3 的是社区预训练加上多任务训练,而不仅仅是架构本身。在 SO-101 乐高任务中,两者都是单任务,SmolVLA 确实获胜:分布内得分为 90 对 70。然后是 SmolVLA 与 Pi0.5 如果预算允许。
由于预训练较少,无法弥补不良数据,因此,在有缺陷的数据集上获得干净的损失曲线,会使您得到一个自信地重现缺陷的策略。lerobot 文档对结构直言不讳:5 个立方体位置,每个位置 10 个,共 50 个 episode,有效;25 个则无效。如果损失看起来正常但机械臂没有做任何有用的事情,请从损失下降,策略无效、策略仅在一种设置下有效或收集真正可用的VLA训练数据开始。
五种策略,一张对比表
GR00T N1.7、GR00T N1.5、Pi0.5、SmolVLA 和 ACT,包含实际参数数量、每个动作步骤的推理延迟、所需的 GPU 层级以及在执行任何有用操作之前的最小 episode 数量。
对比策略一份可供您采取行动的决策表
| 您的情况 | 从…开始 | 原因 |
|---|---|---|
| 一项任务,良好演示,无语言 | ACT | ~80 M,20 毫秒,24 GB 显卡,无需下载基础模型 |
| 少量相关任务,每项一个指令 | SmolVLA | 450 M,在 lerobot 中,最少 30 个 episode,每次运行 1 到 3 美元 |
| 专门复现 TinyVLA 结果 | TinyVLA-B or TinyVLA-H | 仓库是唯一途径:隔离环境,转换数据 |
| 多任务,多样指令,A100 预算 | GR00T N1.7 or Pi0.5 | ~3 B,每步 152 毫秒和 485 毫秒,每次运行 4 到 12 美元 |
| 尚无机器人 | 操作真实机械臂 | 基于队列的实时机械臂无需注册,也无需硬件 |
对于最后一行,实时机械臂 流式传输一个物理SO-100,您无需账户即可从浏览器驱动它,并且三种启动方式 涵盖了其余部分。此SO-100 是这里的参考机械臂,零件成本大约在110到150欧元之间,并附有完整的设置指南。
10亿参数以下模型之后的发展
缩小参数数量是使VLA变得廉价的一种方式,但这并非是显而易见的制胜法宝。OpenVLA-OFT (arXiv 2502.19645) 保留了70亿参数的主干网络,仅改变了动作的解码方式,报告称动作生成吞吐量增加了26倍,LIBERO从76.5%上升到97.1%。BitVLA (arXiv 2506.07530) 将1比特BitNet b1.58 2B4T主干网络的每个权重都变为三元,报告称内存减少了11.0倍,端到端延迟降低了4.4倍,同时与全精度OpenVLA-OFT性能相当。X-VLA-0.9B (arXiv 2510.10274) 通过流匹配技术,处于10亿参数的水平。
共同点是:延迟存在于动作解码器而非语言模型中。在询问策略有多少参数之前,请先了解它是如何发出动作的。此竞技场 拥有85个模型和332个结果,每个都链接到其来源;在我们的VLA介绍中可以找到更广泛的概述。
我可以在 RTX 4090 上微调 SmolVLA 吗?▾
可以。SmolVLA 拥有 450 M 参数,AY-Robots 在 RTX 4090 / 24 GB 级别上运行它。lerobot 示例使用 --batch_size=64,这只是一个示例,不能保证适用于您的显卡;文档建议从小批量开始,并在加载时间保持较短的情况下逐渐增加。预计时间会比文档中引用的 A100 上 20000 步大约 4 小时更长。
TinyVLA 在 lerobot 或 AY-Robots 上可用吗?▾
两者都不可用。TinyVLA 仅存在于其研究存储库中,最后一次提交是 2025 年 3 月 11 日,其格式是 ACT 风格的 HDF5,而不是 LeRobot。AY-Robots 训练 GR00T N1.7、GR00T N1.5、Pi0.5、SmolVLA 和 ACT。如果您想要 TinyVLA,需要自行构建,并且必须首先修复 scripts/train.sh 中的 DeepSpeed 配置路径。
一个 450 M 的模型真的能与 3 B 的模型竞争吗?▾
根据作者自己的基准测试,是的:在 LIBERO 上,它以 87.3 对 86.0 领先于经过机器人预训练的 3.3 B 的 Pi0;在三个真实的 SO-100 任务上,它以 78.3 对 61.7 领先于同一论文中标记为 3.5 B 的 Pi0。局限性也在这篇论文中指出:在没有机器人预训练的单任务情况下,SmolVLA 降至 40.0,低于 ACT 的 48.3。
在小型 VLA 开始工作之前,我需要多少个 episode?▾
AY-Robots 将 SmolVLA 的最低要求设置为 30 个 episode,ACT 的最低要求设置为 50 个。lerobot 文档建议大约 50 个,并报告 25 个对于同一任务来说不够。结构与数量同样重要:论文中的数据集使用了 5 个立方体位置,每个位置 10 个 episode。
为什么公布的延迟数字差异如此之大?▾
它们衡量的是不同的东西。TinyVLA 报告在 A6000 上每次动作预测为 14 ms;AY-Robots 列出 SmolVLA 每次动作步长为 245 ms,ACT 为 20 ms。有些数字涵盖一次前向传播,有些将一次传播分摊到 50 个动作块中,几乎没有一个包含摄像头捕获或写入伺服电机的时间。
云端推理能解决 GPU 问题吗?▾
部分可以。AY-Robots 自动配置一个 pod 来提供策略服务,同时本地客户端与该端点通信,并带有一个空闲看门狗,使其在空闲时自行销毁,而不是默默地计费。它无法消除公共互联网往返的延迟,而且控制循环本身每次动作步长就已达 20 到 485 ms。这对于慢速的抓取放置任务来说没问题,但对于快速响应的运动则不行。
Sources
- TinyVLA:迈向快速、数据高效的机器人操作视觉-语言-动作模型
- TinyVLA 官方代码库 (README, requirements.txt, scripts/train.sh)
- TinyVLA 项目页面
- lesjie/Llava-Pythia-1.3B,TinyVLA-H 的骨干网络权重
- SmolVLA:一种经济高效的机器人视觉-语言-动作模型
- lerobot 文档:微调 SmolVLA
- lerobot:configuration_smolvla.py,SmolVLA 的默认配置
- lerobot/smolvla_base 模型卡
- SmolVLA:高效视觉-语言-动作模型 (Hugging Face 博客)
- PyPI 上的 lerobot (0.6.1,需要 Python 3.12 或更高版本)
- OpenVLA:一个开源的视觉-语言-动作模型
- 微调视觉-语言-动作模型:优化速度和成功率 (OpenVLA-OFT)
- BitVLA:用于机器人操作的 1 比特视觉-语言-动作模型
- X-VLA:作为可扩展跨具身视觉-语言-动作模型的软提示 Transformer
- rail-berkeley/octo-small-1.5 模型卡 (27 M 参数)
Sources
- TinyVLA: Towards Fast, Data-Efficient Vision-Language-Action Models for Robotic Manipulation
- TinyVLA official code repository (README, requirements.txt, scripts/train.sh)
- TinyVLA project page
- lesjie/Llava-Pythia-1.3B, the TinyVLA-H backbone weights
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- lerobot documentation: fine-tuning SmolVLA
- lerobot: configuration_smolvla.py, the SmolVLA defaults
- lerobot/smolvla_base model card
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot on PyPI (0.6.1, requires Python 3.12 or newer)
- OpenVLA: An Open-Source Vision-Language-Action Model
- Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success (OpenVLA-OFT)
- BitVLA: 1-bit Vision-Language-Action Models for Robotics Manipulation
- X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model
- rail-berkeley/octo-small-1.5 model card (27 M parameters)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started