GR00T N1.7 vs GR00T N1.5: which version to select

There is not much to weigh here, and pretending otherwise would waste your time. N1.7 is the version to select for anything new. N1.5 stays in the training form so older experiment series can be continued, and that is the whole of its job.

Last updated 2026-08-09

GR00T N1.7 and GR00T N1.5 side by side
FactGR00T N1.7Vision-Language-Action foundation model, diffusion action headGR00T N1.5Vision-Language-Action foundation model, predecessor of N1.7
VendorNVIDIANVIDIA
Trainer keygroot1.7groot1.5
GPU tierA100 80 GB or H100 80 GBA100 80 GB or H100 80 GB
Inferenceabout 152 ms per action stepabout 165 ms per action step
Batch size321
Gradient accumulation116
Learning rate1e-41e-5
Default steps20,0002,000
Dataset formatLeRobot v2.1LeRobot v2.1
Episodes from5050
Extra fields in the formsaveStepssaveSteps
Where it runsRented cloud GPU onlyRented cloud GPU only
Typical run3 to 6 hours, about 4 to 12 USD3 to 6 hours, about 4 to 12 USD
Verdict

Select GR00T N1.7 for every new project; the only reason to pick N1.5 is to continue or reproduce the configuration of an experiment that was started before N1.7 existed.

The short version

N1.5 is kept available so a project started on it can be finished on it. Same family, same dataset format, same 80 GB tier, same workflow, and behind its successor on the things you would actually choose a model for. If you are here to decide what to train tomorrow, the answer is N1.7. The rest of this page is for two situations: you inherited an N1.5 run and have to decide whether to port it, or you tried both and got a result that made N1.7 look implausibly far ahead. The second case is almost always the defaults trap below.

Side by side

FactGR00T N1.7GR00T N1.5
ParametersAbout 3 billion, roughly 40 million trained during fine-tuningAbout 3 billion
GPU tierA100 80 GB or H100 80 GBA100 80 GB or H100 80 GB
Estimated run3 to 6 hours at 1.20 to 2.00 USD per hour3 to 6 hours at 1.20 to 2.00 USD per hour
Inference per action stepAbout 152 msAbout 165 ms
Default batch and accumulation32, no accumulation1 with 16 accumulation steps
Effective batch3216
Default learning rate1e-41e-5
Default steps20 0002000
Exposed knobssaveStepssaveSteps
Seed supportNoneNone
Minimum useful episodesAbout 50About 50
Language conditioningYesYes
Dataset formatLeRobot v2.1 only, v3.0 is rejectedLeRobot v2.1 only, v3.0 is rejected

The defaults are the real difference on this page

Multiply the two recipes out before comparing anything. N1.7 defaults to batch 32 with no accumulation over 20 000 steps, about 640 000 sample views. N1.5 defaults to batch 1 with 16 accumulation steps over 2000 steps, about 32 000. That is a factor of twenty in how much data the optimizer ever sees.

text
N1.7  batch 32 x accum 1  = effective 32  x 20 000 steps = ~640 000 sample views
N1.5  batch 1  x accum 16 = effective 16  x  2 000 steps = ~ 32 000 sample views

Ratio: about 20 to 1, before either architecture has been considered.

For a comparison that means something, raise the N1.5 step count until the
sample budgets are in the same range, and keep everything else identical.
Why a naive comparison of the two defaults measures the wrong thing.

So if you run both at their defaults and conclude N1.7 is dramatically stronger, you have mostly measured schedule length. The architectures may differ too, but that experiment cannot tell you by how much.

Do not read the N1.5 defaults as a recommendation

A default of 2000 steps at effective batch 16 is a conservative starting point that exists for compatibility, not a claim that 2000 steps is enough for your dataset. If you select N1.5 for a real run, set the step count deliberately rather than accepting the number the form offers.

When N1.5 is the right selection

  • You are extending an experiment series that began on N1.5 and the comparison across runs has to hold. Changing the model mid-series invalidates every earlier data point.
  • A report or thesis chapter already states N1.5 results and you need another checkpoint under the same configuration rather than a better one under a different model.
  • You are bisecting a regression. Running the older model on the same dataset is a legitimate way to work out whether the model or the data changed underneath you.

All three are about consistency with the past. There is no forward-looking reason to start something new on N1.5: it is superseded on every axis that matters, and it carries none of the improvements that came with the newer version.

What N1.5 still does better

One thing, and it is narrower than it sounds: its default recipe is the memory-lightest shape in the GR00T family. Batch 1 with 16 accumulation steps holds far less in VRAM at any moment than batch 32, at the cost of sixteen sequential passes per optimizer step. Both versions request the same 80 GB tier, so this is not a way to escape the tier, but it is the shape to copy if you ever need to shrink an N1.7 run: lower the batch, raise the accumulation by the same factor, and the optimizer still sees the same effective batch. Beyond that, N1.5 matches its own history and nothing else.

Neither version gives you a seed

This bounds what reproducing an older run can mean. The GR00T fine-tuning entry point has no seed field on either version, so two runs launched with identical settings on identical data are not guaranteed to produce identical weights. What you can reproduce is a configuration and an evaluation, which is usually what a report needs. Write down at least:

  1. The dataset id and its version, so the second run reads exactly the same episodes
  2. The model version, N1.7 or N1.5, exactly as selected in the form
  3. Batch size, gradient accumulation, learning rate and the step count you actually used
  4. The saveSteps value and the checkpoint step you evaluated, not just the last one
  5. The evaluation protocol: how many attempts, which placements, what lighting

If you need genuine seeded determinism, the GR00T family cannot provide it. Pi0.5 sits on the same 80 GB tier and exposes seed and logFreq, which is the practical alternative when reproducibility is a hard requirement.

Migrating an N1.5 project to N1.7

  1. 1
    Keep the dataset exactly as it is

    Both versions read LeRobot v2.1 and reject v3.0, so nothing needs re-recording or converting. The dataset id stays the same across the migration.

  2. 2
    Do not port the old hyperparameters

    Start N1.7 at its own defaults. Copying batch 1, 16 accumulation steps and 2000 steps across gives it a twentieth of the exposure it expects, and the run will look like a failure of the new version.

  3. 3
    Set saveSteps so the checkpoints line up

    Choose a value that produces checkpoints at points comparable to the ones you evaluated on N1.5. Comparing a final checkpoint against a mid-training one is a common way to draw the wrong conclusion.

  4. 4
    Re-run the old evaluation protocol unchanged

    Same placements, same count, same lighting, same person doing the reset. A migration is informative only if the measurement stays still while the model moves.

  5. 5
    Keep the N1.5 checkpoint until the new one wins on hardware

    Loss curves do not settle this. Retire the old policy when the new one beats it on the arm, and not before.

bash
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, n1.5 series continuation",
          "model_id":"groot1.5",
          "max_steps":20000,
          "confirm_spend":true}}}'

# max_steps is set explicitly rather than accepting the N1.5 default of
# 2000, so the exposure is comparable to an N1.7 run.
# For anything new, use "model_id":"groot1.7".
Selecting the older version deliberately, with a step count you chose.

Switching versions changes nothing on disk

Of all the choices on this site, this is the cheapest one to get wrong. The two versions share a dataset format, a GPU tier, a workflow and a set of exposed knobs, so moving between them is a field in the training form and one more rented run. Your episodes, camera positions and task strings are untouched by any of it. Train N1.7, keep the old checkpoint while you compare, and delete it once the comparison is settled.

A one-line policy for teams

New work goes on N1.7. Existing experiment series stay on the version they started on until the series is finished. Write the model version into the policy name so nobody has to open a job to find out which one produced a checkpoint.

Where to go next

Frequently asked questions

Is GR00T N1.5 deprecated?

It is superseded, not removed. The trainer still supports it and it stays selectable in the form specifically so older projects can be reproduced. New projects have no reason to select it.

Can I resume an N1.5 run under N1.7?

Treat it as a new run. They are different models, so a checkpoint does not carry across. The dataset does carry across unchanged, which is the part that would have cost you time.

Is 165 ms against 152 ms noticeable on the arm?

No. Thirteen milliseconds is inside the noise of everything else in the loop, and both give you roughly six action steps a second. Latency is not the reason to prefer N1.7; the training recipe and the newer model are.

Why is the N1.5 default only 2000 steps?

It is a conservative default paired with batch 1 and 16 accumulation steps, which together make a short, cautious schedule. It is a compatibility starting point, not a recommendation for your dataset, so set the step count yourself.

Do I need a different dataset for the two versions?

No. Both accept LeRobot v2.1 and both reject v3.0, so a single upload feeds either version. If a GR00T job of any version refuses your dataset, check the format version before anything else.