Add lerobot-lancedb LIBERO example: VLA training with LanceDB as the data layer - #6
Open
AyushExel wants to merge 14 commits into
Open
Add lerobot-lancedb LIBERO example: VLA training with LanceDB as the data layer#6AyushExel wants to merge 14 commits into
AyushExel wants to merge 14 commits into
Conversation
…data layer End-to-end SmolVLA/LIBERO comparison of base LeRobot (official parquet dataset) vs the lerobot-lancedb Lance video format (blob v2, bit-exact): - dataloader throughput: 2.4x vs parquet+mp4, 45-90x vs image-parquet - identical 40k-step 4-GPU finetunes: 82.0% vs 80.8% avg LIBERO success (parity), 2h17m vs 6h05m wall-clock, half the energy - S3 streaming benchmark (2,458 smp/s at 16 workers) - 30-line migration entrypoint (train_lance.py) on stock lerobot-train - Geneva stateful GPU UDF embedding backfill + vector/FTS/btree indexes, 13 ms semantic search over 273k frames, curation-driven training subset - before/after rollout videos + all reproduction scripts Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-lancedb#4) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…fore/after evals, H200 runbook Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tion matter-of-fact Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… + html Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ery pattern Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ger rows; add provenance footnote Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… runs Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
End-to-end example (→ blog) training SmolVLA on LIBERO twice — base LeRobot on the official
HuggingFaceVLA/liberoparquet dataset vs the lerobot-lancedb video format (mp4 bytes in a Lance blob v2 column, bit-exact pixels) — plus everything the Lance table can do that parquet+mp4 can't.Highlights
Performance (4×H100, SmolVLA read pattern: 2 cams + 50-step action chunk)
s3://, no local copyTraining parity (the point): closed-loop eval over all 4 suites, 400 episodes/model —
identical loss curves throughout; before-finetuning baseline 0%.
Migration: a 30-line
train_lance.pyentrypoint on stocklerobot-train— same CLI, same accelerate multi-GPU path.Curation on the same table: Geneva stateful GPU UDF backfills SigLIP2 embeddings (273k frames, ~10 min, zero-copy schema evolution); IVF-PQ + FTS + btree indexes; 13 ms text→frame semantic search; SQL task filter → episode list →
--dataset.episodes(curated finetune: 0→77% on libero_object).Before/after rollout videos in
assets/, all reproduction scripts inscripts/.🤖 Generated with Claude Code