Vettore.Encoding.Muvera (Vettore v0.3.2)

Copy Markdown View Source

MUVERA-style fixed dimensional encodings for multi-vector retrieval.

This implements the public FDE boundary: query encodings sum vectors in each partition, document encodings average vectors in each partition, and both use the same deterministic partition configuration.

Summary

Functions

Encodes document vectors by averaging projected vectors in each partition.

Encodes query vectors by summing projected vectors in each partition.

Types

config()

@type config() :: keyword()

normalized_config()

@type normalized_config() :: %{
  dimension: pos_integer(),
  num_repetitions: pos_integer(),
  num_simhash_projections: non_neg_integer(),
  seed: non_neg_integer(),
  projection_dimension: pos_integer(),
  final_projection_dimension: pos_integer() | nil
}

vector()

@type vector() :: [number()]

Functions

encode_document(vectors, config \\ [])

@spec encode_document([vector()], config()) :: {:ok, [float()]} | {:error, term()}

Encodes document vectors by averaging projected vectors in each partition.

encode_query(vectors, config \\ [])

@spec encode_query([vector()], config()) :: {:ok, [float()]} | {:error, term()}

Encodes query vectors by summing projected vectors in each partition.