{"repo":"ejaasaari/lorann","free":true,"listed":false,"github":"https://github.com/ejaasaari/lorann","clone":"git clone https://github.com/ejaasaari/lorann.git","description":"[NeurIPS'24] Approximate Nearest Neighbor search using reduced-rank regression, with extremely fast queries, tiny memory usage, and rapid indexing on modern vector embeddings.","language":"C++","stars":52,"topics":["approximate-nearest-neighbor-search","cpp","machine-learning","nearest-neighbor-search","python","vector-search","embeddings","vector-database","vector-index","nearest-neighbors"],"license":"MIT","category":"machine-learning","readme_excerpt":"LoRANN Approximate nearest neighbor search library implementing reduced-rank regression (NeurIPS '24), a technique enabling extremely fast queries, tiny memory usage, and rapid indexing on modern embedding datasets. --- - Header-only C++17 library with Python bindings - Query speed matching state-of-the-art graph methods but with tiny memory usage - Optimized for modern high-dimensional (d 100) embedding data sets - Optimized for modern CPU architectures with acceleration for AVX2, AVX-512, and ARM NEON - State-of-the-art query speed for GPU batch queries (experimental) - Supported data types: float32, float16, bfloat16, uint8, binary - Supported distances: (negative) inner product, Euclidean distance, cosine distance - Support for index serialization Getting started Python Install the module with pip install lorann [!TIP] On macOS, it is recommended to use the Homebrew version of Clang as the compiler: A minimal example for indexing and querying a dataset using LoRANN is provided below: The data matrix should have type float32 , float16 , uint8 , or uint16 (for bfloat16). For binary data (packed into uint8 bytes using e.g. numpy.packbits ), use LorannBinaryIndex . The distance should be either lorann.L2 (for squared Euclidean distance), lorann.IP (for inner product), or lorann.HAMMING (only for binary data). For cosine distance, normalize vectors to unit norm and use lorann.IP . For a more detailed example, see examples/example.py. Python documentation C++ LoRANN is a header","default_branch":null,"files":null,"tree":[],"storefront":"/r/ejaasaari","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ejaasaari/lorann/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}