Skip to content

Add lerobot-lancedb LIBERO example: VLA training with LanceDB as the data layer - #6

Open
AyushExel wants to merge 14 commits into
mainfrom
lerobot-lancedb-libero-example
Open

Add lerobot-lancedb LIBERO example: VLA training with LanceDB as the data layer#6
AyushExel wants to merge 14 commits into
mainfrom
lerobot-lancedb-libero-example

Conversation

@AyushExel

Copy link
Copy Markdown
Contributor

What

End-to-end example (→ blog) training SmolVLA on LIBERO twice — base LeRobot on the official HuggingFaceVLA/libero parquet 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)

  • Dataloader: 2.4× vs parquet+mp4 at every worker count, 45–90× vs the published image-parquet (which is 17× larger on disk precisely to dodge slow mp4 reads)
  • Identical 40k-step multi-GPU finetunes: 2h17m vs 6h05m wall-clock, 1.04 vs 2.01 kWh; GPU power traces show working vs starved GPUs
  • S3 streaming: 2,458 samples/s straight from s3://, no local copy

Training parity (the point): closed-loop eval over all 4 suites, 400 episodes/model —

base lance
LIBERO avg success 80.8% 82.0%

identical loss curves throughout; before-finetuning baseline 0%.

Migration: a 30-line train_lance.py entrypoint on stock lerobot-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 in scripts/.

🤖 Generated with Claude Code

…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>
AyushExel and others added 13 commits July 10, 2026 17:08
…-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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant