Datasets and Large Payloads
Kaggle kernels have strict code size limits (approximately 5 MB for the main script and inline payload). kagglex provides built-in mechanisms to attach existing datasets, create datasets, and automatically offload large payloads.
Attaching Existing Kaggle Datasets
Attach public or private Kaggle datasets to your run using --dataset:
kagglex run \
--file train.py \
--dataset "username/imdb-reviews" \
--dataset "stanford/stanford-sentiment-treebank"
Attached datasets are mounted read-only at /kaggle/input/<dataset-slug>/.
Creating and Updating Datasets
You can create or update Kaggle datasets using kagglex dataset push:
kagglex dataset push \
--dir ./data/processed \
--title "Processed Tokenized Corpus" \
--slug "processed-tokenized-corpus"
By default, datasets are created as private. Pass --public to make them public:
Automated Large Payload Offloading
When your project repository or bundled local data exceeds Kaggle's inline size limit, use the --auto-dataset flag:
How Auto-Dataset Works
kagglexdetects the total packaged size of your project and local data.- If
--auto-datasetis enabled,kagglexpublishes a private Kaggle dataset containing your packaged source code and data files under the slugkagglex-payload-<run-slug>. - The dataset is automatically attached to the kernel's metadata.
- During execution, the remote bootstrap script mounts the dataset payload from
/kaggle/input/and unpacks it into/kaggle/working. - Subsequent runs with the same slug version the payload dataset seamlessly.