Add Hugging Face dataset support - #868
Conversation
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: jamesgao-jpg The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
857a853 to
0d45298
Compare
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
jamesgao-jpg
left a comment
There was a problem hiding this comment.
Reviewed the effective diff at 2ca947f. The focused dataset, HDF5, Parquet, registry, and compatibility tests passed (40 passed, 6 deselected). Two findings below: a reproduced cross-dataset result collision and the current CI lint failure. No live backend benchmark was run.
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
XuanYang-cn
left a comment
There was a problem hiding this comment.
One finding on timeout defaults in the generic Performance case.
Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
37782c3 to
e5d1028
Compare
Summary
DatasetManager,ParquetDatasetManager, andHdf5DatasetManagerimplementationsPerformancecase and--dataset-namePerformancecasePublic interface
Dataset source and file format are internal registration details. There is no VIBE-, Hugging-Face-, HDF5-, or Parquet-specific case type or public dataset flag.
Architecture change
Before: Original VDBBench
After: Source and format are independent
Hugging Face Parquet roles
Each registered Parquet dataset declares its corpus, query, and ground-truth selectors plus column mappings and expected query/GT sizes.
HuggingFaceReaderacquires exact files withhf_hub_downloadand repositories containing wildcard selectors withsnapshot_download(..., allow_patterns=...), following the Hugging Face download API.ParquetDatasetManager.prepare()then:Existing S3/OSS datasets continue to use their exact artifact names.
Registered VDBBench multimodal datasets
multimodal-embedding-1mVDBBench/multimodal-embedding-1Mtrain.parquettest.parquetneighbors.parquetmultimodal-embedding-10mVDBBench/multimodal-embedding-10Mdata/train-*.parquetdata/test-*.parquetdata/neighbors.parquetmultimodal-embedding-100mVDBBench/multimodal-embedding-100Mtrain/shard-*/*.parquettest/*.parquetneighbors/neighbors.parquetAll three registrations use 4096-dimensional normalized vectors, inner-product search, 10,000 queries, and GT width 100. Repository revisions are pinned.
Compatibility
ParquetDatasetManagerhf_hub_downloadpathDependencies
h5pyfor native HDF5 readshuggingface_hubfor revision-pinned dataset downloads and cachingNo additional dependency was introduced for the Parquet registrations.
Verification
Development checks
nullprovenance keysgit diff --checkpassed for the modified implementationMilvus functional smoke
Tested at
2ca947f9with thePerformancecase against a standalone Milvus deployment. Each case loaded the full corpus with four workers and batch size 1,000, built HNSW withM=16andefConstruction=200, and ran serial Recall@100 withefSearch=200. Concurrent search and filtering were intentionally disabled.yi-128-ipyahoo-minilm-384-normalizedglove-200-cosinemultimodal-embedding-1mmilvus/v1run contexts passed validationmultimodal-embedding-1mstreamed 1M × 4,096 training vectors without client OOM and evaluated all 10,000 queries2ca947f9; later changes are scoped to registered-result naming, CLI linting, documentation, and dataset timeout registration, and the smoke run has not been repeated at the current head