VDBBench/multimodal-embedding-10M
Multimodal Embedding 10M Benchmark Dataset A large-scale vector search benchmark dataset containing 10M base vectors and 10K query vectors with pre-computed ground truth (top-100 nearest neighbors by Inner Product), generated from multimodal (image + text) inputs. Dataset Summary Property Value Base Vectors 10,000,000 Query Vectors 10,000 Dimension 4,096 Distance Metric Inner Product (IP) Top-K Ground Truth 100 Vector dtype float32 Embedding… See the full description on the dataset page: https://huggingface.co/datasets/VDBBench/multimodal-embedding-10M.
Multimodal Embedding 10M Benchmark Dataset
A large-scale vector search benchmark dataset containing 10M base vectors and 10K query vectors with pre-computed ground truth (top-100 nearest neighbors by Inner Product), generated from multimodal (image + text) inputs.
Dataset Summary
Splits
Schema
train / test: | Column | Type | Description | |--------|------|-------------| | id | int64 | Sequential identifier (0-indexed) | | emb | list\<float32\> | 4096-dim L2-normalized embedding |
neighbors: | Column | Type | Description | |--------|------|-------------| | id | int64 | Query ID (matches test split) | | neighbors | list\<int64\> | Top-100 base vector IDs by IP score (descending) |
Usage
from datasets import load_dataset
import numpy as np
ds = load_dataset("WenxingZhu/multimodal-embedding-10M")
# Base and query embeddings
base_emb = np.array(ds["train"]["emb"]) # (10_000_000, 4096) - streams from 20 shards
query_emb = np.array(ds["test"]["emb"]) # (10_000, 4096)
# Ground truth neighbors
neighbors = ds["neighbors"]["neighbors"] # list of 10K lists, each 100 int64 IDsStreaming (recommended for 10M)
from datasets import load_dataset
ds = load_dataset("WenxingZhu/multimodal-embedding-10M", split="train", streaming=True)
for row in ds:
emb = row["emb"] # list of 4096 floats
breakGeneration Details
- Model: Qwen3-VL-Embedding-8B via vLLM (pooling runner, bfloat16)
- Input: Image-text pairs from cc12m-wds WebDataset shards, streamed from HuggingFace
- Normalization: L2 normalized post-embedding
- Hardware: 6x NVIDIA A100-80GB (DGX)
- Throughput: ~25 samples/sec per GPU
- Total Generation Time: ~3 days for 10M embeddings
- Ground Truth: Brute-force inner product, chunked numpy computation
Related
- multimodal-embedding-1M — 1M version from cc3m-wds
License
Apache 2.0
