| Fact | GR00T N1.7Vision-Language-Action foundation model, diffusion action head | SmolVLACompact Vision-Language-Action model |
|---|---|---|
| Vendor | NVIDIA | Hugging Face |
| Trainer key | groot1.7 | smolvla |
| GPU tier | A100 80 GB or H100 80 GB | RTX 4090 or any card with 24 GB |
| Inference | about 152 ms per action step | about 245 ms per action step |
| Batch size | 32 | 2 |
| Gradient accumulation | 1 | 8 |
| Learning rate | 1e-4 | 1e-4 |
| Default steps | 20,000 | 20,000 |
| Dataset format | LeRobot v2.1 | LeRobot v2.1 |
| Episodes from | 50 | 30 |
| Extra fields in the form | saveSteps | seed, logFreq |
| Where it runs | Rented cloud GPU only | Cloud GPU, or a local 24 GB card |
| Typical run | 3 to 6 hours, about 4 to 12 USD | 2 to 5 hours, about 1 to 3 USD |
Run SmolVLA first at roughly 1 to 3 USD a run, and move to GR00T N1.7 only once you have fifty or more clean episodes and SmolVLA is failing at its ceiling rather than on your data.
The short answer
GR00T N1.7 is the stronger model and SmolVLA is the cheaper one, and if that were the whole story this page would not exist. What makes it interesting is that the strength of the big model is generalization from pretraining, and generalization is the one thing a small dataset cannot show you. So the right order is almost always the cheap run first, with the expensive one held back until a result justifies it. There is also a second axis people get backwards, covered below: the three billion parameter model is the faster one at inference.
Side by side
| Fact | GR00T N1.7 | SmolVLA |
|---|---|---|
| Vendor | NVIDIA | Hugging Face |
| Parameters | About 3 billion, roughly 40 million trained during fine-tuning | About 450 million |
| Pretraining | Large multi-robot corpus | Pretrained compact vision-language-action model |
| GPU tier | A100 80 GB or H100 80 GB | RTX 4090 or any card with 24 GB |
| Estimated run | 3 to 6 hours at 1.20 to 2.00 USD per hour | 2 to 5 hours at 0.30 to 0.60 USD per hour |
| Inference per action step | About 152 ms | About 245 ms |
| Default batch and accumulation | 32, no accumulation | 2 with 8 accumulation steps |
| Default learning rate and steps | 1e-4 over 20 000 steps | 1e-4 over 20 000 steps |
| Seed support | None | seed and logFreq are exposed |
| Minimum useful episodes | About 50 | About 30 |
| Language conditioning | Yes | Yes |
| Runs outside the cloud pool | No | Yes, on a 24 GB card you own |
| Dataset format | LeRobot v2.1 only, v3.0 is rejected | LeRobot v2.1 |
What the two tiers actually cost
GPUs are rented by the hour on a spot market and the pool selects them by VRAM rather than by GPU name. Absolute prices move day to day. The ratio between the tiers barely does, and the ratio is what you plan around.
24 GB tier (SmolVLA) 2 to 5 hours x 0.30 to 0.60 USD/h -> about 1 to 3 USD
80 GB tier (GR00T N1.7) 3 to 6 hours x 1.20 to 2.00 USD/h -> about 4 to 12 USD
Four SmolVLA runs fit inside the price of one GR00T run.That ratio is the whole argument. The first useful thing you learn from a dataset is almost never learned on the first run. You record, you train, you evaluate twenty attempts, you notice most failures happen when the object starts on the left, you record twenty more episodes with the object on the left, and you train again. Three or four rounds of that on the 24 GB tier cost less than one round on the 80 GB tier.
The bigger model is the faster one at runtime
SmolVLA is about 450 million parameters at about 245 ms per action step. GR00T N1.7 is about three billion at about 152 ms. The small model is the slow one, because these figures are measured where each model actually runs: GR00T on the 80 GB tier, SmolVLA on the 24 GB tier. You are comparing a model together with the card it was given. Choosing the small model does not buy a faster policy. It buys a cheaper run, a lower episode threshold, and the option of inference on hardware you own, which GR00T does not offer at all.
Dataset size is the deciding variable
Fine-tuning GR00T adjusts roughly forty million parameters on top of a prior about how arms and objects behave. A prior needs enough task-specific data to be anchored to your task, and it only pays off when the policy meets situations your demonstrations did not contain. Both conditions scale with episode count.
| Episodes you have | What to train | Why |
|---|---|---|
| Fewer than 30 | Keep recording | Below SmolVLA’s threshold. A run here tells you the pipeline works end to end, not whether the data does. |
| 30 to 50 | SmolVLA | SmolVLA is useful from about thirty, GR00T from about fifty. No part of this range makes the 80 GB tier the right purchase. |
| 50 to 100 | SmolVLA first, then GR00T on the same dataset | Both in range. Spend 1 to 3 USD on whether the data is clean before spending 4 to 12 on the same question. |
| More than 100 | GR00T N1.7 | Enough task data for the pretrained backbone to attach to, and the point where SmolVLA’s ceiling on fine positioning becomes the limit rather than your dataset. |
Pick SmolVLA if
- This is your first dataset for the task. Thirty to fifty episodes, some doubt about whether the camera framing survived the session, and you want a verdict today rather than a bill.
- You are iterating weekly. The rounds you can afford are the rounds you get, and on the 24 GB tier that number is roughly four times larger.
- You want the trained policy on hardware you own. SmolVLA is not cloud-only and fits a 24 GB card. GR00T is cloud-only, full stop.
Pick GR00T N1.7 if
- SmolVLA works and then stopped improving. You added fifty more good episodes and the success rate did not move. A ceiling is the one situation where a bigger model is a real answer.
- The task needs fine positioning. SmolVLA’s documented limit is exactly that: a lower ceiling than the three billion parameter models when the gripper has to land within a few millimeters.
- You want language conditioning at the lowest latency available. Both attend to the task string, but 152 ms against 245 ms is visible on a fast cycle.
What SmolVLA still does better
It is seedable. SmolVLA exposes seed and logFreq; GR00T exposes neither. If you need two runs comparable in any stronger sense than "same settings in the form", only the cheap one can give you that.
It is also the better regression check after you upgrade. Once GR00T is your production policy, the question you ask most often is whether this week’s episodes are consistent with last week’s, and a couple of dollars answers it on the same dataset id. And it starts working thirty episodes earlier, which for anyone recording by hand is an evening saved rather than a rounding error.
Both models read v2.1 and the client records v2.1 by default. If that setting was changed, SmolVLA jobs keep working and the first GR00T job rejects the dataset outright. It looks like a platform problem and is a format problem, so check the dataset version before debugging anything else.
The cheap path to the right answer
- 1Record thirty episodes and stop
Vary object placement across the area you want covered, keep the task string identical, and discard failed attempts rather than keeping them for volume.
- 2Train SmolVLA at its defaults
Open Training, pick the dataset, choose SmolVLA, leave batch 2, accumulation 8, 1e-4 and 20 000 steps as they are. Set a seed so the run can be repeated.
- 3Evaluate twenty attempts on the arm
Same placements each time, results written down as they happen. Twenty attempts, not the three that went well.
- 4Classify the failures
Confidently wrong location means data or a moved camera. Correct location with a fumbled grasp means precision. Success only where you demonstrated means a generalization limit.
- 5Only the last two justify the 80 GB tier
If that is what you see, record up to fifty or more episodes and start GR00T against the same dataset id. If it is a data problem, more model will not help.
curl -s https://www.ay-robots.com/api/mcp \
-H "Authorization: Bearer $AY_ROBOTS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
"name":"start_training",
"arguments":{
"dataset_id":"ds_7f31c0a4",
"policy_name":"cube pick, smolvla baseline",
"model_id":"smolvla",
"max_steps":20000,
"confirm_spend":true}}}'
# "model_id":"groot1.7" sends the identical dataset to the 80 GB tier.
# Nothing about the upload changes, only the hourly rate.Switching later is one more job on the same dataset
Your upload is the expensive part of this workflow, measured in your own time rather than in dollars. Both models read LeRobot v2.1, so the dataset id you pass to the second job is the string you passed to the first, and no episode is re-recorded. A checkpoint is disposable by design. Choose the model that answers your current question, not the one you expect to be using in six months.
Where to go next
- /policies/smolvla: defaults, strengths and the documented ceiling
- /policies/groot-n1-7: what the 80 GB tier buys and what it demands
- /train/smolvla-on-so-100: recording through to a running policy on a 24 GB card
- /train/groot-n1-7-on-so-100: the same route on the 80 GB tier
- /learn/record-your-first-dataset if the thirty episodes do not exist yet
Frequently asked questions
Can I fine-tune GR00T N1.7 on an RTX 4090?▾
No. It requests the 80 GB tier and there is no meaningful way to fine-tune it on a consumer card. SmolVLA and ACT are the 24 GB options, and SmolVLA is the one of those two that is pretrained and language conditioned.
Is SmolVLA good enough for real work, or only for testing?▾
It is a real policy. Its documented weakness is fine positioning, not competence: it is language conditioned, pretrained, and useful from about thirty episodes. Plenty of tabletop tasks never reach its ceiling.
If I train SmolVLA now, do I have to re-record to try GR00T later?▾
No. Both take LeRobot v2.1, so the second run is a new job pointed at the same dataset. The only thing that would force a re-record is having saved the dataset as v3.0, which GR00T will not load.
How much does running both cost in total?▾
About 1 to 3 USD for the SmolVLA run plus about 4 to 12 USD for the GR00T run at current spot rates. The estimate moves with the market, so treat it as an order of magnitude rather than a quote.
Does SmolVLA use task strings the same way GR00T does?▾
Both are language conditioned and both attend to the string recorded with each episode, which is why a consistent sentence during recording matters. ACT is the model with no language input at all.
Once the choice is made, the matrix under /train has the guide for your model and your arm.