Odeinjul/deep-10m-batch-update-eval
deep-10m-batch-update-eval Batch-update evaluation workload package generated from deep-10m-static-search-eval. Dataset Source static dataset: deep-10m-static-search-eval Vector count: 10,000,000 Dimension: 96 Dtype: float32 Metric: l2 Initial update index: 8,000,000 vectors with external labels equal to A = P[0:8M] Update order: update_order.u32, a seed-42 permutation of source IDs [0, 10M) Insert vector source: base_permuted.fbin, where row j equals… See the full description on the dataset page: https://huggingface.co/datasets/Odeinjul/deep-10m-batch-update-eval.
deep-10m-batch-update-eval
Batch-update evaluation workload package generated from deep-10m-static-search-eval.
Dataset
- Source static dataset:
deep-10m-static-search-eval - Vector count:
10,000,000 - Dimension:
96 - Dtype:
float32 - Metric:
l2 - Initial update index:
8,000,000vectors with external labels equal toA = P[0:8M] - Update order:
update_order.u32, a seed-42permutation of source IDs[0, 10M) - Insert vector source:
base_permuted.fbin, where rowjequalsbase.fbin[P[j]]
Traces
insert-20: starts fromA, then insertsP[8M:10M]in twenty100,000-vector batches.delete-20: starts from the static10Mstate, then deletesP[8M:10M]in twenty100,000-vector batches.mixed-replace-100: keeps8Mlive vectors for 100 rounds; each round deletes a cyclic100,000source-ID slice and insertsbase_permuted.fbinrow ranges: batches 1-20 use rows8M:10M, then batches 21-100 use rows0:8M. Insert external IDs use existingP[8M:10M]labels for the first20rounds, then new labels in[10,000,000, 18,000,000).
Batch JSON files use compact descriptors (range, u32_slice, and u32_cyclic_slice) instead of inline million-ID arrays. Insert external_ids continue to express user-visible source IDs. Insert vector_refs are row ranges in the reordered insert source and must be read from base_permuted.fbin.
Ground Truth
Checkpoint ground truth is produced by filtering the static source ground truth in source-distance order through the checkpoint owner map. Files are exact top-10 only when every query retains at least 10 active candidates from the static source GT depth. If a checkpoint cannot provide top-10 for every query, the package writes a matching .invalid.json marker instead of padding.
Files
workload.json: workload contract.static-workload-reference.json: immutable static-search-eval references.source_manifest.json: generation manifest.update_order.u32: seed-42 source-ID permutation.initial/index_8m_m32_efc500: HNSW index built frombase[A]with labelsA.groundtruth/active_8m.bin: initial8Mcheckpoint GT, oractive_8m.invalid.json.initial/layout-sidecar/index_8m_m32_efc500.*: optional runtime layout sidecar for the initial HNSW index.initial/pq/pq_m<M>.*: initial8MPQ artifacts reordered forinitial/index_8m_m32_efc500internal IDs.initial_pq_manifest.json: source static PQ files and validation samples for the reordered initial PQ artifacts.base_permuted.fbin: reordered insert vector source, present when insertvector_refsare row ranges.reordered_insert_manifest.json: source, formula, size, and sample-check manifest forbase_permuted.fbin.traces/*/trace.json: trace metadata.traces/*/batches/*.json: compact batch descriptors.traces/*/groundtruth/*: checkpoint GT or invalid markers.checksums.sha256: checksums for generated package files.
Static PQ codebooks and metadata are reused. initial/pq/pq_m<M>.pqcodes contains only 8,000,000 rows and is ordered by the initial HNSW internal ID, so it can be used directly with initial/index_8m_m32_efc500.
