smolvladataset
Simple, reliable loader for SmolVLA robotics datasets with built‑in train/val/test splits and caching.
This library accompanies the SmolVLA paper to help the community inspect how the training dataset is composed, rebuild it from source repositories, and customize the composition or split policy. It can either download a precompiled bundle from the Hugging Face Hub or rebuild locally from a CSV list of dataset repositories.
Features
- Reproducible train/val/test splits (deterministic seed)
- LeRobot‑compatible splits (
LeRobotDatasetinterface) - Automatic download and local caching (Hugging Face Hub)
- Optional precompiled dataset for fast startup
- Efficient Parquet storage with light schema normalization
Installation
pip install smolvladataset
# or using uv
uv add smolvladataset
Requirements
- Python 3.11+
- Core deps:
pandas,pyarrow,huggingface-hub,lerobot,datasets
Quick Start
from smolvladataset import SmolVLADataset
# Returns (train, val, test) as LeRobot‑compatible datasets
train, val, test = SmolVLADataset()
print(len(train), len(val), len(test))
# Access a row (dict of columns)
sample = train[0]
API
-
SmolVLADataset(csv_list=None, *, force_download=False, force_build=False, split_config=None)- Loads a precompiled bundle (default) or builds from a CSV of source repos and returns a tuple
(train, val, test). csv_list: Path to CSV whose first column lists HF dataset repo IDs (e.g.org/name). If omitted, a packaged default is used.force_download: With a customcsv_list, rebuild from sources even if cached; otherwise re‑download the precompiled bundle.force_build: Only whencsv_listis omitted: build from the default list instead of downloading the precompiled bundle.split_config: OptionalSplitConfig(train=..., val=..., test=..., seed=...).
- Loads a precompiled bundle (default) or builds from a CSV of source repos and returns a tuple
-
SplitConfig(train=0.8, val=0.1, test=0.1, seed=<int>)- Proportions must sum to 1.0. The seed controls deterministic shuffling.
- If no
split_configis provided, the default configuration matches the splits published on Hugging Face.
Advanced Usage
Custom Dataset List
# Use a CSV file with Hugging Face dataset repo IDs (a packaged default is used if omitted)
train, val, test = SmolVLADataset(csv_list="path/to/datasets.csv")
Custom Split Configuration
from smolvladataset import SmolVLADataset, SplitConfig
config = SplitConfig(train=0.7, val=0.15, test=0.15, seed=123)
train, val, test = SmolVLADataset(split_config=config)
Force Rebuild or Re‑download
# With a custom CSV, forces rebuild from sources
train, val, test = SmolVLADataset(csv_list="data/datasets.csv", force_download=True)
# With the default list, re‑download the precompiled bundle
train, val, test = SmolVLADataset(force_download=True)
# Build from default list instead of using the precompiled bundle
train, val, test = SmolVLADataset(force_build=True)
Cache Directory
Artifacts are cached under ~/.cache/smolvladataset/<hash>/ by default, where <hash> depends on the dataset list.
Dataset List Format
The library expects a CSV file whose first column contains Hugging Face dataset repository IDs:
dataset_repo_id
org/dataset-1
org/dataset-2
Lines beginning with # are ignored.
Cache Layout
merged.parquet— Combined dataset from all sources (includes adatasetcolumn)stats.parquet— Basic per‑source statisticstrain.parquet,validation.parquet,test.parquet— Split files (optional, for HF viewer convenience)
See LICENSE for details.
Metadata
Release files for smolvladataset 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| smolvladataset-0.1.1.tar.gz | 18.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| smolvladataset-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.8 kB
Release files / smolvladataset-0.1.1.tar.gz
| Download URL | smolvladataset-0.1.1.tar.gz |
|---|---|
| Size | 18.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
858a4d6ddadd22d13908d3f33f242cf4a07d3d0f2875251b9bd5dd93ef733e99
|
|
BLAKE2b-256 checksum How to use checksums |
7b03f14a4c2a7049c6b919ca9a092ce5e13b08f1617301fcc91506d85b627f13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.5
|
Release files / smolvladataset-0.1.1-py3-none-any.whl
| Download URL | smolvladataset-0.1.1-py3-none-any.whl |
|---|---|
| Size | 17.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d73fdfa3e98781a1b2e1eec7b3d4cc980980b7a8c142c0aabe02053bc28fc44
|
|
BLAKE2b-256 checksum How to use checksums |
cd5bb7c7f654563f5377ee88f9859649e9d1b18ec007db9ec48139ba5d4c508d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.5
|