MuSiQue Multi-Hop GraphRAG Benchmark & Parity Evaluation¶
This document details the official results and methodology from the MuSiQue multi-hop GraphRAG benchmark:
Engine-Native Passage-Level Retrieval (Headline): BenoStreamDB’s in-engine retrieval, with no hosted LLM in the loop, clears Zilliz’s published Naive RAG baseline (0.5943 vs. 0.5803 Micro Recall@5).
Entity-Level Vector Graph RAG (Architecture Demo): Demonstrates BenoStreamDB natively serving the three-collection Passages/Entities/Relations/Mentions layout directly over Apache Iceberg tables without requiring external vector or graph databases.
Both benchmarks utilize the exact upstream inputs published by Zilliz and HippoRAG, ensuring a like-for-like empirical comparison on the corpus, the knowledge graph, and the 1,000-question evaluation manifest.
1. Hardware & Resource Envelope¶
Hardware & Memory Distinction (MuSiQue vs. NeurIPS BigANN):
MuSiQue GraphRAG: Constrained to 8 vCPUs / 32 GiB RAM (
--memory=32ginbenchmarks/docker-compose.musique.ymlandbenchmarks/run_musique_docker.sh). The 32 GiB memory budget is strictly required because the runner hosts the local in-memory PyTorch runtime forbge-large-en-v1.5dense embeddings and the BGE cross-encoder reranker, alongside four active Iceberg tables.NeurIPS BigANN: Constrained to 8 vCPUs / 16 GiB RAM (Azure
Standard_D8lds_v5). BigANN exercises raw columnar Parquet streaming and HNSW/IVF vector indexing without hosted transformer models.
Parameter |
MuSiQue GraphRAG Specification |
|---|---|
Reference Envelope |
8 vCPUs, 32 GiB RAM ( |
Embedding Model |
|
Reranker Model |
|
Storage Tables |
Native Apache Iceberg (V2/V3) Parquet |
Index Overlays |
HNSW ( |
Host Execution |
Linux x86_64 / NVIDIA CUDA or Apple Silicon Metal |
2. Engine-Native Passage-Level Retrieval (Headline)¶
Evaluated on the official Zilliz manifest sample of 1,000 multi-hop questions using bge-large-en-v1.5 (1,024 dimensions), Float32 vectors, and BGE cross-encoder reranking. Zero hosted LLMs, zero outbound API calls, zero per-token cost.
Retrieval Strategy |
Micro Recall@5 |
Description |
|---|---|---|
Hop-1 Vector Search |
0.5600 |
Direct top-$k$ dense vector search on passage embeddings. |
Native Personalized PageRank ( |
0.5520 |
In-engine PPR traversal across passage co-occurrence graph. |
Two-Stage + BGE Cross-Encoder |
0.5943 |
Vector search + DataFusion graph expansion + local cross-encoder. |
Comparison Baseline:
Zilliz’s published Naive RAG baseline (BGE-large-en-v1.5) is 0.5803.
BenoStreamDB’s two-stage pipeline scores 0.5943 Micro Recall@5 (+1.40 points) with the entire retrieval cycle executing in-process inside the database engine.
3. Entity-Level Vector Graph RAG (Architecture Demo)¶
The same 1,000-question manifest evaluated across four native Apache Iceberg tables rather than passage-level co-occurrence:
Table Name |
Contents & Schema |
Index Type |
|---|---|---|
|
11,656 passages ( |
HNSW vector embedding |
|
64,982 deduplicated OpenIE entities ( |
HNSW vector embedding |
|
108,594 entity↔entity edges ( |
CSR graph index |
|
108,709 entity→passage edges ( |
CSR graph index |
Retrieval Traversal Pipeline¶
Vector-search the Entities table for query entity seeds.
Breadth-First Search (BFS) the Relations edge table to discover related entities.
Follow Mentions edges from discovered entities to candidate passages.
Cross-encoder rerank the candidate passages.
Strategy |
Micro R@5 |
Hit@5 |
All-hit@5 |
Precision@5 |
Latency (p50) |
|---|---|---|---|---|---|
|
0.5597 |
0.9310 |
0.2260 |
0.2774 |
1.34 ms |
|
0.3228 |
0.6770 |
0.0520 |
0.3342 |
7.05 ms |
|
0.1348 |
0.2740 |
0.0270 |
0.0884 |
19.49 ms |
|
0.2140 |
0.4140 |
0.0590 |
0.1265 |
103.10 ms |
Systems & Algorithmic Findings¶
Passage Baseline Verification: The
vectorrow reproduces the passage baseline (0.5597 ≈ 0.5600), verifying the underlying Iceberg table build, Arrow FFI, and HNSW vector index paths.The LLM Upper-Band Trade-off: Naive OpenIE triple traversal without relationship pruning does not match HippoRAG/Zilliz’s ~73% upper band. Entity-name embeddings are short and noisy, and untyped edges cause hub-entity flooding. The upper band reported by HippoRAG requires an application-layer LLM relationship-selection filter—workflow logic that lives above the storage engine, not inside the database.
4. Upstream Data Sources¶
All inputs are identical to the published Zilliz and HippoRAG artifacts:
Artifact |
Source Repository / Path |
Volume |
|---|---|---|
|
11,656 passages |
|
|
64,982 entities |
|
|
1,000 questions |
Download commands:
curl -L https://raw.githubusercontent.com/zilliztech/vector-graph-rag/main/evaluation/data/musique_corpus.json \
-o benchmarks/musique_corpus.json
curl -L https://raw.githubusercontent.com/OSU-NLP-Group/HippoRAG/5ddedf0f516c7bbed777ba54da680c8bb8fb8f84/output/openie_musique_results_ner_gpt-3.5-turbo-1106_11656.json \
-o benchmarks/hippo_openie.json
curl -L https://raw.githubusercontent.com/zilliztech/vector-graph-rag/main/evaluation/jev/two-stage/manifest.json \
-o benchmarks/zilliz_manifest.json
5. Reproduction Harness¶
1. Engine-Native Passage-Level Retrieval (Headline, 0.5943)¶
python3 benchmarks/run_musique_parity.py --mode f32 --reranker bge --rebuild \
--corpus-json benchmarks/musique_corpus.json \
--triplets-json benchmarks/hippo_openie.json \
--sample-manifest benchmarks/zilliz_manifest.json
2. Entity-Level Architecture Demo¶
python3 benchmarks/run_musique_entity_rag.py --mode f32 --reranker bge --rebuild \
--corpus-json benchmarks/musique_corpus.json \
--triplets-json benchmarks/hippo_openie.json \
--sample-manifest benchmarks/zilliz_manifest.json
3. Docker Containerized Reproduction (32 GiB Enforced)¶
# Build the benchmark image
docker build -f benchmarks/Dockerfile.musique -t bsdb-musique .
# Execute under strict cgroup limits (32G memory)
docker compose -f benchmarks/docker-compose.musique.yml run --rm musique