standardized → LeRobot, converted on Vertexlog out
Not signed in — sign in with Google, or paste the admin token in the
box above and press load.
Standardized datasets
LeRobot datasets
0 datasets selected
Partner labels
Jobs
Scheduled
Releases
A view says how many of the release’s members it already holds. build
queues the work for the rest — one step per member per press, so a
224-clean gets its 224 first and the clean on the next press. It is
safe to press twice: a member already in flight is skipped, not queued again.
export to pi appears on 448 views only — the one prep Pi’s
delivery takes. It queues one upload per member not yet completely delivered to Pi,
including partial uploads that need a retry. A green ✓ delivered to pi replaces it once the inventory refresh
verifies every expected upload-eligible episode in the view is present and finalized at Pi.
Pi dataset filter
The immutable query Pi's Finetuning API selects training data with. Its
episode ids are read back from Pi rather than reconstructed — they
namespace them, and each id embeds the git sha of the build that
delivered it. Their filter schema has no field naming a dataset, and
sourceDatasetPath records the delivering job's scratch
directory, so a list of ids is the only exact selector.
Data
A run trains on a release and one of its views — never a
hand-picked list, so “what was this model trained on” outlives the
browser tab that launched it. Cut a release on the
releases tab. A view
that is not fully built is refused rather than trained on in part: a run
silently short of a third of its data still produces a checkpoint.
Only the release’s LeRobot views at the pipeline’s own frame size
(224 for pi0.5) are offered: a 448 view is the prep partner delivery takes
and a SARM view is embeddings, neither of which this tab can launch on.
no release selected
Select saved Pi filters, then switch releases to add more. Selections are kept across releases. Create filters on the
releases tab.
For a split filter, select all its numbered parts to train on the whole set.
Training jobs
Other runs in our Pi org
Finetunes Pi report for our organization that no dataprep job launched —
started by Pi or another client. Read-only here.
Pi-hosted inference endpoints, grouped by training job. Jobs and checkpoints
are newest first by checkpoint creation date; unknown dates appear last.
Availability is reported by Pi, without running inference.
SARM datasets
Everything under the SARM root, for reference. What a run trains on is the view
picked above, not a selection here.
Trained models
Jobs
filter
Usable training data per task
Hours a training launch would accept, judged by the train tab's own selector
— a loadable LeRobot dataset at the required resolution, carrying applied
partner labels, whose recordings state nothing that conflicts with the required
rig profile. Counted on those recordings, because a LeRobot dataset states neither
a task nor a duration; a recording converted into several eligible datasets counts
once. The trace is per dataset, not per episode, so episodes appended to a
recording after it was converted are counted with it.
Recording rate per dataset share of recorded time at each measured rate
Measured from each episode's own timestamps, never from meta.yaml's
fps — that field is written once per dataset directory and a
session appending at another rate inherits it. A row flagged
declared N holds data the declaration does not describe.
Hours by robot
Hours per day
Time of day rig-local, from the recorded UTC offset
Episode duration
Runtime build hours per commit
Label coverage
Labels this service has applied, traced back through each LeRobot
dataset's manifest to the standardized episodes it was built from. A partner
may hold labels that have not been applied yet; those are in the Partner
labels table on the prepare tab.
Episodes
Tasks
Every distinct task the LeRobot datasets carry — the coarse
instruction the recorder wrote and the one Pi receive on their own episode.
Pi’s delivery normally refuses a dataset with no sub-task labels, because an
episode they already hold cannot be re-sent and would sit there missing its
language_segment spans forever. That reasoning is about a task whose
episode runs through eighteen sub-tasks; for one that is a single motion end to
end there is nothing for a span to add, so ruling it
no sub-task labels here lets its unlabelled 448 preps be delivered.
Silence means the labels are still required. A task nobody has ruled on
keeps the gate, and so does one whose datasets mix it with a task that needs
them — a delivery is one decision over the whole dataset. Rulings are
recorded against the task string, so they cover data converted later too.
The contract is per task for the same reason. Pi validate every episode
against a platform contract — the exact topics, dtypes and shapes they
accept — and ours differ by what the task records: a counting task carries
a pick_count_abs column and 15-dim state, a task that counts nothing
carries neither, and one contract cannot describe both. A task naming none is
delivered against the default .
Contract assignments are fixed for each task and shown below.