Enterprise Generative Search — Azure and Open Source · View 24 of 41 · Runtime
Decisions
- Reciprocal rank fusion with k=60 rather than score normalisation. Scores from BM25, a dense index and a graph walk are not on a common scale, and pretending they are is the commonest fusion mistake.
- Reranking depth is 50, not 200. Above 50 the measured nDCG gain on the golden set was inside the noise band and the latency was not.
- Diversity is applied after reranking, not before. Removing near-duplicates first would discard the strongest passage when a document is genuinely the best source.
Numbers
- Recall@50: lexical only 0.78, dense only 0.71, hybrid fused 0.92, hybrid plus cross-encoder nDCG@10 0.68 against 0.61 for fusion alone.
- Retrieval budget 450 ms P95 for all four backends in parallel; reranking 110 ms for 50 candidates on an A10.
- Two-passage cap per document; median evidence set spans 5 distinct documents.
Assumptions and risks
- The 0.32 score floor is tuned on the golden set and re-tuned when the reranker changes. A floor that is too high abstains on answerable questions; too low and the model is handed noise.
- Fusion weights per source are a policy decision recorded in the source register, not a tuning knob an engineer changes at will.