Dino10B: Nearest-Neighbor Search Dataset at 10 Billion Scale
Dino10B is a benchmark for clustering and nearest-neighbor search at ten-billion-vector scale: deduplicated, shuffled, byte-quantized DINOv3 [1] patch descriptors from Creative Commons images, released as nested subsets from 100k up to 10B vectors.

How DINO embedding vectors are made.
Dataset characteristics
- 10,000,000,000 vectors, 1024-d, uint8, L2 distance
- 16 nested subsets from 100k to 10B, each a prefix of the next: 100k / 200k / 500k / 1M / 2M / 5M / 10M / 20M / 50M / 100M / 200M / 500M / 1B / 2B / 5B / 10B
- 100k held-out queries (
queries_clean.bvecs) with exact top-10 ground truth at every subset size - 99M training queries (
train_queries_99M.bvecs), held out separately
Using it
We provide instructions below for using Dino10B. More detailed instructions are in the dataset's README.md, which you can read in the README tab of this site.
Downloading and loading are two separate steps: the data must be on disk before anything can read it.
Step 1 — download:
- Install axel from its official repository, github.com/axel-download-accelerator/axel. It is much faster than a single connection.
- Copy our download script and run it with
bashfrom inside adata/folder in your working directory. It fetchesfile_list.txt, then every file it lists, intodata/dino_vitl_10B/. By default we set 16 connections for axel. You may want to change it. - Without axel, use the wget version just below it in the README. That works, but expect days rather than hours for the full 10.3 TB.
- To download only part of the dataset: download
file_list.txton its own and delete the lines you don't need, then run the script without its first line, which would download the full list again. The base vectors are 50 chunks of 200M vectors each (chunk_0000.bvecs...chunk_0049.bvecs).
Step 2 — load it, only once step 1 has finished:
- Via faiss. Its
DatasetDINO10B(nb=...)constructor requires you to have the data in adata/folder in your current working directory, so run your script from the directory that containsdata/(or symlinkdata/there):from faiss.contrib.datasets import DatasetDINO10B ds = DatasetDINO10B(nb=10_000_000_000) # any of the sizes listed above - Standalone, without faiss — a separate loader script,
code_dataset_dino.py, does take an explicitpath=. This script is itself one of the files listed infile_list.txt; see the README tab.from code_dataset_dino import DatasetDINO10B ds = DatasetDINO10B(nb=1_000_000, path="path/to/dino_vitl_10B") - Neither loader downloads anything itself — both just read what step 1 already put on disk.
One gotcha: each chunk holds exactly 200,000,000 vectors. A batch size that doesn't divide 200M straddles two chunks and pays a real concatenation cost — pick a divisor of 200M. We use 1,000,000 (faiss doesn't impose a default).
The case for 10-billion-scale datasets
Billion-scale datasets have been the standard for over a decade. One billion was a pragmatic ceiling: big enough to matter, small enough for one machine. That ceiling no longer matches the hardware. A modern server holds hundreds of gigabytes of RAM and terabytes of SSD, so ten billion vectors on one machine is now realistic.
Dino10B isn't the only dataset at that scale — Qdrant's FineWeb-10B [2] also reaches ten billion vectors, in text. Dino10B is built from images instead.
How we built the dataset
We run a DINOv3 [1] ViT-L/16 over images from YFCC100M [3], a Creative-Commons Flickr collection. Each image becomes a 14×14 grid of patches, each patch a 1024-dimensional vector — one feature per patch, nothing hand-crafted. Roughly 60M images get us past 11.7B raw vectors, with margin for what gets dropped next.

Raw patches from the same image are highly correlated, so a plain scan drifts over time. We quantize each vector to one byte per dimension, then deduplicate (hash every quantized vector, keep one copy) and shuffle block-by-block, since the whole corpus is too big to hold twice in RAM. What's left: 10B vectors, i.i.d., no duplicates, ~10.3 TB on disk.
Citing it
Until our paper is public, cite the dataset via faiss PR #4686 (faiss 1.13.1, Dec. 2025).
References
1. Siméoni, O., Vo, H.V., Seitzer, M., et al. DINOv3. 2025. arXiv:2508.10104
2. Qdrant Labs. Qdrant-FineWeb-10B. Hugging Face dataset, 2026. huggingface.co/datasets/Qdrant/FineWeb-10B
3. Thomee, B., Shamma, D.A., Friedland, G., et al. YFCC100M: The New Data in Multimedia Research. Communications of the ACM, 59(2), 64–73, 2016.

