microsoft / microsoft/DiskANN

RFC: Multi-Vector Distance Function Architecture

Open
#985 0 comments 0 reactions 1 assignee View on GitHub

@suri-kumkaran is already working on this.

Since Apr 28, 2026.

  • #731 by @suri-kumkaran — open
enhancement
Dominant language
Rust
Stars
1.9k
Forks
454
Avg merge
3d 22h
Merged PRs (30d)
35

Description

RFC: Multi-Vector Distance Function Architecture

Description

This RFC proposes the architectural design for introducing multi-vector support (e.g., ColBERT/MaxSim, Chamfer distance) into the DiskANN ecosystem. This design must balance high-performance, specialized distance evaluations with strict API compatibility and standalone usability.

Goals

  • Define the core mathematical operations required for multi-vector distances, starting with Chamfer and MaxSim.
  • Maintain strict compatibility with DiskANN's DistanceFunctionMut trait.
  • Provide a clean API that enables standalone distance function usage without requiring full index integration.
  • Establish the strategy for supporting various datatypes (f32 initially, with future f16 and u8 support) and subsequent quantizations.
  • Outline proposed memory layouts specifically optimized to achieve a 2x+ speedup over baseline SIMD.

Action Item: Solicit feedback from maintainers on the DistanceFunctionMut implementation and standalone API boundaries before committing to implementation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.