
TinyVLA and SmolVLA put a working VLA under 1 B parameters. Real numbers from both papers, the lerobot defaults, measured latency, and what a run costs on a 24 GB card.
Almost every vision-language-action model that gets written about assumes a datacentre card. OpenVLA is 7 B parameters. GR00T N1.7 and Pi0.5 are around 3 B and want an A100 80 GB to fine-tune. If the card on your desk is a 4090, that class of model is out of reach.
Two papers argue you do not need it. TinyVLA (arXiv 2409.12514, accepted by IEEE Robotics and Automation Letters in February 2025) builds a VLA from a 400 M to 1.3 B backbone plus a diffusion action head. SmolVLA (arXiv 2506.01844, submitted 2 June 2025) ships 450 M parameters with open weights, open data and a script that runs on one consumer card. Here is what both measured, and where the sub-1 B argument stops holding.
What you need to know
- •TinyVLA ships three sizes: 422 M total with 101 M trainable, 740 M with 138 M, 1.3 B with 143 M. Only the first two sit under 1 B.
- •Its Table IV measures 14 ms per action prediction for TinyVLA-1B on one A6000, against 292 ms for OpenVLA-7B and 140 ms for a shrunk OpenVLA-1B.
- •The head holds that speed, not the backbone: swap TinyVLA-H's diffusion head for an ACT head and the five real-robot tasks fall from a 94.0 average into single digits. An MLP head scores 0 everywhere.
- •SmolVLA is 450 M, roughly 100 M of it the action expert, pretrained on 481 community LeRobot datasets and 10.6 M frames. It reports 87.3 on LIBERO against 86.0 for a robotics-pretrained Pi0 at 3.3 B, and 78.3 on three real SO-100 tasks against 61.7 for Pi0 at 3.5 B.
- •Trained single-task without that pretraining, SmolVLA drops to 40.0 on those tasks, below ACT's 48.3. Small is not automatically easy.
- •TinyVLA has no LeRobot integration and pins a CUDA 11.7 wheel stack. SmolVLA is in lerobot and costs roughly 1 to 3 USD per run on the 24 GB tier here.
What actually counts as a small VLA
The parameter count on a model card is not one number. It can mean total weights, weights loaded at inference, or weights that receive gradients during fine-tuning. TinyVLA reports both, and the gap is large: TinyVLA-H is 1.3 B total but 143 M trainable, because the vision tower and most of the language model stay frozen while LoRA adapters and the action head move. The paper puts the trainable share at about 5 percent.
| Model | Params | Backbone | Action head | Source |
|---|---|---|---|---|
| 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 |
Two rows are worth arguing about. ACT at roughly 80 M is smaller than everything else here but has no language model, so it is not a VLA: it learns one task and cannot be told to do another. Octo-Small at 27 M is conditioned through a T5-Base text encoder, not an LLM backbone. Good baselines, neither gives you the instruction following the label implies.
TinyVLA-H, the variant carrying the headline results, is 1.3 B and sits above the line. The better question is whether a model fits in 24 GB during training and hits your control rate at inference. The five policies you can train here are on the policies page; TinyVLA has an arena entry if you want its numbers beside everyone else's.
TinyVLA: the speed comes from the head, not the backbone
The obvious reading is that they made the language model smaller, so it got faster. The paper's ablation says otherwise. Swapping OpenVLA's 7 B backbone for a roughly 1 B one cut per-action prediction from 292 ms to 140 ms, a 2x gain. TinyVLA-H, at a comparable parameter count, runs at 14 ms on the same card. The other 10x is the action head.
| Model | Per-action prediction | Measured on |
|---|---|---|
| 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 emits actions as discretised tokens through the language model head, one per action dimension, autoregressively. TinyVLA attaches a diffusion decoder that produces the whole chunk in one shot. Table V holds the architecture at TinyVLA-H and swaps only the head, on the same five real-robot tasks. It is the cleanest evidence in either paper for the argument flow matching policies make, and the reason Pi0 moved away from token decoding.
| Head on TinyVLA-H | PlaceTennis | FlipMug | StackCubes | CloseDrawer | OpenBox |
|---|---|---|---|---|---|
| Diffusion (droid_diffusion) | 90.0 | 98.3 | 98.3 | 96.7 | 86.7 |
| Action Chunking Transformer | 13.3 | 8.3 | 8.3 | 13.3 | 23.3 |
| Multi-layer perceptron | 0 | 0 | 0 | 0 | 0 |
The 292 / 140 / 14 ms figures are Table IV, all on one A6000. They are per action prediction and exclude camera capture, preprocessing and the serial write to the servos. Treat published latency as a lower bound, never as the control rate. Our own numbers carry the same limit: see inference latency.
What TinyVLA scored
| Benchmark | Protocol | TinyVLA-H | Baselines |
|---|---|---|---|
| MetaWorld, 50 tasks, sim | Multi-task, 50 demos, 3 seeds | 77.6 / 21.5 / 11.4 / 15.8 by difficulty, average 31.6 | Diffusion Policy average 10.5 |
| Real Franka Panda, 5 tasks | 100 trajectories per task, 20 trials | 94.0 average | OpenVLA 68.3, Diffusion Policy 35.3 |
| Bimanual UR5, 3 tasks | Multi-task, 10 trials per task | 76.7 / 36.7 / 30.0 | OpenVLA 0 / 0 / 0, Diffusion Policy 40.3 / 31.3 / 43.0 |
The bimanual row has a boring explanation the paper gives itself: OpenVLA is pretrained on Open X-Embodiment, which consists entirely of single-arm data, so a two-arm action space is out of distribution and it scores zero. The diffusion policy baseline beats TinyVLA-H on two of those three tasks. Background in the Open X-Embodiment write-up.

The TinyVLA repo, as of August 2026
The paper is good. The code is a research drop. The repository is github.com/liyaxuanliyaxuan/TinyVLA; its README dates the code release to 17 February 2025 and the last commit is 11 March 2025. Fine for reproducing a paper, a problem if you wanted a maintained library.
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 pins torch==2.0.1, transformers==4.37.1, deepspeed==0.9.5, peft==0.4.0, diffusers==0.11.1, numpy==1.24.4, and the CUDA stack to the 11.x wheels: nvidia-cuda-runtime-cu11==11.7.99, nvidia-cudnn-cu11==8.5.0.96, triton==2.0.0. The README asks for Python 3.10; lerobot 0.6.1 requires 3.12 or newer, so the two cannot share an environment. Confirm a torch 2.0.1 build exists for your GPU generation first. If a run dies on VRAM instead, the out-of-memory checklist is faster than guessing.
TinyVLA also does not read LeRobot datasets. Its format is ACT-style HDF5: action, language_raw, and an observations group with multi-view images, joint_positions, qpos and qvel. The repo ships data_utils/rlds_to_h5py.py for RLDS input, and each task is registered by hand in aloha_scripts/constants.py with its dataset_dir, episode_len and camera_names. If your episodes came from lerobot or the desktop client, you own the conversion.
# 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 assumes an eight-card node. Set it to 1 and drop the batch size well below 32. No single-GPU variant ships upstream, so the command cannot be run verbatim on a 4090.
- --deepspeed scripts/zero2.json points at a file that is not in the top-level scripts directory. The DeepSpeed configs ship at llava-pythia/scripts/zero2.json. Fix the path before your first run.
- The README requires the output directory name to contain llava_pythia, plus lora if LoRA is enabled.
- The backbone is a separate download: lesjie/Llava-Pythia-400M, -700M or -1.3B. There is no single base checkpoint you point a policy at the way you point at lerobot/smolvla_base.
SmolVLA: the sub-1 B model you can run this afternoon
SmolVLA makes the same argument inside a maintained library. It is 450 M parameters on a SmolVLM2-500M-Video-Instruct backbone, and the efficiency comes from settings you can read out of configuration_smolvla.py rather than from a claim about being small.
| Setting in configuration_smolvla.py | Default | What it buys |
|---|---|---|
| num_vlm_layers | 16 | Only the first 16 language model layers run |
| expert_width_multiplier | 0.75 | Action expert hidden size is 75 percent of the VLM's |
| self_attn_every_n_layers | 2 | Self-attention interleaved with cross-attention |
| chunk_size / n_action_steps | 50 / 50 | One pass emits 50 actions and all 50 are executed |
| num_steps | 10 | Flow matching denoising fixed at 10 steps |
| tokenizer_max_length | 48 | The instruction is truncated to 48 tokens |
| freeze_vision_encoder / train_expert_only | True / True | Fine-tuning moves the expert, not the vision tower |
| optimizer_lr, warmup, decay | 1e-4, 1000 steps, to 2.5e-6 over 30000 | Not the paper recipe: its pretraining used a 100-step warmup over 200000 steps |
Pretraining used 481 community LeRobot datasets, 22.9 K episodes and 10.6 M frames on 4 GPUs, 200000 steps at a global batch of 256; the paper puts the whole project at about 30 K GPU hours. One number to watch: the Hugging Face launch blog says 487 curated datasets where the paper's table says 481. We use the paper's figure and flag the disagreement.

| Benchmark | SmolVLA 0.45 B | SmolVLA 2.25 B | Pi0 | ACT |
|---|---|---|---|---|
| LIBERO average, multi-task | 87.3 | 88.75 | 86.0 (3.3 B, robotics-pretrained) | - |
| Meta-World average, multi-task | 57.3 | 68.24 | 47.9 (3.5 B, robotics-pretrained) | - |
| Real SO-100, 3 tasks, multi-task training | 78.3 | - | 61.7 (3.5 B) | - |
| Real SO-100, 3 tasks, single-task, no robotics pretraining | 40.0 | - | - | 48.3 |
| SO-101 lego pick-place, single-task, in distribution | 90 | - | - | 70 |
| SO-101 lego pick-place, single-task, out of distribution | 50 | - | - | 40 |
LIBERO is simulation and everything competent scores in the eighties there now. The real SO-100 row, where a 450 M model beats a 3.5 B one by 16.6 points, is the interesting one; the row under it is the counterweight. Strip the community pretraining and the multi-task training and the same model drops to 40.0, under ACT. The defensible claim is that a small model is not automatically worse, not that it is better.
One accident helps: the SmolVLA paper's Meta-World table carries TinyVLA's own published numbers as a baseline, so for once both models sit in one table, SmolVLA-0.45B at 57.3 against TinyVLA-H at 31.6. It also reports SmolVLA training around 40 percent faster than Pi0 on 6x less memory. All of it comes from the SmolVLA authors; the arena entry links each value to its source.
Where SmolVLA spends its time
AY-Robots lists SmolVLA at 245 ms per action step and ACT at 20 ms in the policy catalog. TinyVLA reports 14 ms per action prediction. Those numbers are not comparable, and treating them as if they were is the most common mistake in this topic: some time one forward pass, some divide that pass across a chunk once action chunking amortises it.
- SmolVLA emits 50 actions per forward pass and executes all 50. At the 30 fps the paper uses on real robots, one inference covers about 1.7 seconds of motion.
- Asynchronous inference computes the next chunk while the current one still executes: 9.7 s average task completion against 13.75 s synchronous, roughly 30 percent faster, and 19 pick-and-place cycles in a fixed 60-second window against 9.
- Success rates were comparable rather than better, 78.3 synchronous against 73.3 asynchronous. Async buys throughput, not accuracy.
- Chunking hides compute latency, not network latency, and it makes the policy less reactive because it is committed to 50 actions.
AY-Robots can auto-provision a cloud GPU pod that serves your policy while the local robot client talks to that endpoint, and the pod carries an idle watchdog so it destroys itself rather than billing silently. What it does not do is remove the public-internet round trip. The control loop across the five policies here is 20 to 485 ms per action step before any network at all, so remote inference is viable for slow pick-and-place, not for fast reactive motion.

Fine-tuning SmolVLA on one consumer card
The manual path, on lerobot 0.6.1, the current PyPI release as of 23 August 2026. Everything below comes from the Hugging Face lerobot SmolVLA documentation, fetched the same day; the guided version is gentler.
- 1Install lerobot with the smolvla extra
The SmolVLA dependencies are an optional extra, not part of the base install. Installing without it and then wondering why the policy type is unknown is a common half hour lost.
bashgit clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e ".[smolvla]" - 2Get a dataset with enough episodes
The docs recommend around 50 episodes and state that the same task with 25 was not enough. AY-Robots sets the minimum at 30. Record your own, or start from the dataset directory.
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 - 3Start the fine-tune
The command from the lerobot guide, unmodified. The docs put 20000 steps at roughly 4 hours on one A100. On a 24 GB card, expect longer and measure it.
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 - 4Drop the batch size until it fits
batch_size=64 is a documented example, not a promise about your card. The docs advise starting small and increasing while loading times stay short.
bashlerobot-train --help - 5Roll the checkpoint out on the arm
Same library, one command. The real-time chunking flags are commented out in the docs and are the ones to reach for on low-power hardware.
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
Whatever path you take, you end up with a checkpoint plus the config that produced it. Keep the dataset revision, the step count and the seed beside it. lerobot defaults to seed 1000; GR00T's fine-tuning entry point exposes no seed at all, so those runs are not bit-for-bit reproducible. Mechanics in the training docs.
Two ways to get a small VLA onto an arm
You own the machine and the failure modes. For SmolVLA that is reasonable: one pip extra, one train command, one rollout command. For TinyVLA it is a research reproduction with frozen pins, a broken DeepSpeed path and a data conversion you write yourself.
- Get a 24 GB card, record 30 to 50 episodes, verify the camera streams frame by frame.
- pip install -e ".[smolvla]", lerobot-train against lerobot/smolvla_base, then serve the checkpoint on the machine the arm is plugged into.
- For TinyVLA: separate conda env, convert data to HDF5, register the task in constants.py, fix the zero2.json path, cut train.sh from eight GPUs to one.
- No per-hour billing once the card is paid for.
- Inference sits next to the servos, the only way to get a fast control loop.
- You can patch the policy code, and TinyVLA is only available this way.
- A 4090 rules out every ~3 B policy, so no local comparison against GR00T N1.7 or Pi0.5.
- Environment setup is the real work. TinyVLA's pins alone can cost a day.
- No queue, no retry, no checkpoint storage. A reboot at step 14000 means starting again.
SmolVLA is one of the five policies here. You pick model and dataset in a form, the backend rents a GPU by required VRAM, runs the trainer and writes checkpoints to object storage. Step by step: SmolVLA on the SO-100, or the full matrix on the training page.
| What the platform sends for SmolVLA | Value |
|---|---|
| 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 |
First, the default batch size here is 2, not the 64 in the lerobot documentation example, and the gradient accumulation setting is sent but has no effect for SmolVLA, so the effective batch really is 2. Raise it deliberately rather than assuming the default matches upstream. Second, TinyVLA is not trainable here at all.
A run on the 24 GB tier takes 2 to 5 hours at 0.30 to 0.60 USD per hour, roughly 1 to 3 USD. On the A100 tier a ~3 B policy is 3 to 6 hours at 1.20 to 2.00 USD per hour, roughly 4 to 12 USD. See pricing, and the same operations from the CLI and the MCP server.
When a small model is the wrong choice
Both papers are more careful here than the summaries are. TinyVLA's failure analysis is specific: the 0.4 B variant failed three times by misreading the instruction, which the authors attribute to limited language comprehension in the smaller VLM, and that mode disappeared at 1.3 B. SmolVLA shows the same curve from the other end: the 2.25 B version of the identical architecture scores 88.75 on LIBERO and 68.24 on Meta-World against 87.3 and 57.3 for the 0.45 B model.
- Fits a 24 GB card, which drops an experiment from tens of dollars to a couple.
- Fast enough to run next to the arm, so no network hop in the control loop.
- Fine-tunes on the data one person can record, tens of episodes rather than thousands.
- SmolVLA's weights, data list and code are public, so a bad result is debuggable.
- Weaker instruction following: fewer language parameters, less ability to separate similar referring expressions.
- Less spatial and visual generalisation to setups you did not record.
- More sensitive to dataset defects, with less pretraining prior to fall back on.
- Multi-task and long-horizon work still favours larger models, including SmolVLA's own 2.25 B variant.
The comparison worth running is not TinyVLA against SmolVLA. It is SmolVLA against ACT on your own task, and the SmolVLA paper is the argument for why. Trained single-task with no robotics pretraining, SmolVLA averaged 40.0 across three SO-100 tasks where single-task ACT managed 48.3. What lifts it to 78.3 is community pretraining plus multi-task training, not the architecture alone. On the SO-101 lego task, both single-task, SmolVLA does win: 90 against 70 in distribution. Then SmolVLA against Pi0.5 if the budget allows.
There is less pretraining prior to cover for bad data, so a clean loss curve on a defective dataset gives you a policy that reproduces the defect confidently. The lerobot docs are blunt about structure: 50 episodes across 5 cube positions, 10 per position, worked; 25 did not. If loss looks fine and the arm does nothing useful, start at loss falls, policy does nothing, policy only works in one setup or collecting VLA training data that is actually usable.
Five policies, one comparison table
GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA and ACT with real parameter counts, inference latency per action step, the GPU tier each needs and the minimum episode count before it does anything useful.
Compare the policiesA decision table you can act on
| Your situation | Start with | Why |
|---|---|---|
| One task, good demonstrations, no language | ACT | ~80 M, 20 ms, 24 GB card, no base model to download |
| A few related tasks, one instruction each | SmolVLA | 450 M, in lerobot, 30 episode minimum, 1 to 3 USD per run |
| Reproducing the TinyVLA result specifically | TinyVLA-B or TinyVLA-H | The repo is the only route: isolated env, converted data |
| Multi-task, varied instructions, A100 budget | GR00T N1.7 or Pi0.5 | ~3 B, 152 ms and 485 ms per step, 4 to 12 USD per run |
| No robot yet | Drive a real arm | The queue-based live arm needs no signup and no hardware |
For the last row, the live arm streams a physical SO-100 you can drive from the browser without an account, and the three ways to start covers the rest. The SO-100 is the reference arm here, roughly 110 to 150 EUR in parts, with a full setup guide.
What comes after the sub-1 B models
Shrinking the parameter count is one way to make a VLA cheap and not obviously the winning one. OpenVLA-OFT (arXiv 2502.19645) keeps the 7 B backbone and changes only how actions are decoded, reporting a 26x increase in action generation throughput and LIBERO rising from 76.5 to 97.1 percent. BitVLA (arXiv 2506.07530) makes every weight of a 1-bit BitNet b1.58 2B4T backbone ternary, reporting 11.0x less memory and 4.4x lower end-to-end latency while matching full-precision OpenVLA-OFT. X-VLA-0.9B (arXiv 2510.10274) sits on the 1 B line with flow matching.
The common thread: the action decoder, not the language model, is where the latency lives. Ask how a policy emits actions before you ask how many parameters it has. The arena has 85 models and 332 results, each linked to its source; there is a broader overview in our VLA introduction.
Can I fine-tune SmolVLA on an RTX 4090?▾
Yes. SmolVLA is 450 M parameters and AY-Robots runs it on the RTX 4090 / 24 GB tier. The lerobot example uses --batch_size=64, which is an example rather than a guarantee for your card; the docs advise starting small and increasing while loading times stay short. Expect longer than the roughly 4 hours the docs quote for 20000 steps on an A100.
Is TinyVLA available in lerobot or on AY-Robots?▾
No to both. TinyVLA lives only in its research repository, last commit 11 March 2025, and its format is ACT-style HDF5 rather than LeRobot. AY-Robots trains GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA and ACT. If you want TinyVLA you build it yourself, and you will have to fix the DeepSpeed config path in scripts/train.sh first.
Is a 450 M model really competitive with a 3 B one?▾
On the authors' own benchmarks, yes: 87.3 against 86.0 on LIBERO versus a robotics-pretrained Pi0 at 3.3 B, and 78.3 against 61.7 on three real SO-100 tasks where the same paper labels Pi0 at 3.5 B. The limit is in the same paper: single-task without robotics pretraining, SmolVLA falls to 40.0, below ACT's 48.3.
How many episodes do I need before a small VLA does anything?▾
AY-Robots sets the SmolVLA minimum at 30 episodes and the ACT minimum at 50. The lerobot docs recommend around 50 and report that 25 was not enough for the same task. Structure matters as much as count: the paper's set used 5 cube positions with 10 episodes each.
Why do published latency numbers disagree so much?▾
They measure different things. TinyVLA reports 14 ms per action prediction on an A6000; AY-Robots lists SmolVLA at 245 ms and ACT at 20 ms per action step. Some figures cover one forward pass, some divide a pass across a 50-action chunk, and almost none include camera capture or the write to the servos.
Does cloud inference solve the GPU problem?▾
Partly. AY-Robots auto-provisions a pod that serves the policy while the local client talks to that endpoint, with an idle watchdog so it destroys itself rather than billing silently. It cannot remove the public-internet round trip, and the control loop is already 20 to 485 ms per action step. Fine for slow pick-and-place, not for fast reactive motion.
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)
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