Annax: Approximate Nearest Neighbor Search with JAX
Annax is a high-performance Approximate Nearest Neighbor (ANN) library built on top of the JAX framework. It provides fast and memory-efficient search for high-dimensional data in various applications, such as large-scale machine learning, computer vision, and natural language processing. Annax leverages the power of GPU acceleration to deliver outstanding performance and includes a wide range of indexing structures and distance metrics to cater to different use cases. The easy-to-use API makes it accessible to both beginners and experts in the field.
Features
- Fast and memory-efficient approximate nearest neighbor search
- GPU acceleration for high-performance computing
- Supports a wide range of indexing structures and distance metrics
- Easy-to-use API for seamless integration with existing projects
- Applicable to various domains, including machine learning, computer vision, and natural language processing
- Built on top of the JAX framework for enhanced flexibility and extensibility
Installation
To install Annax, simply run the following command in your terminal:
pip install annax
Quick Start
Here's a simple example of using Annax to find the nearest neighbors in a dataset:
import numpy as np
import annax
# Generate some random high-dimensional data
data = np.random.random((1000, 128))
# Create an Annax index with the default configuration
index = annax.Index(data)
# Query for the 10 nearest neighbors of a random vector
query = np.random.random(128)
neighbors, distances = index.search(query, k=10)
Index Types
annax.Index: Flat Indexannax.IndexIVF: Inverted File Indexannax.IndexPQ: Product Quantization Indexannax.IndexIVFPQ: Inverted File Index with Product Quantization
Development
To install Annax for development, run the following commands in your terminal:
python -m pip install -e '.[dev]'
pre-commit install
License
Annax is released under the MIT License.
Metadata
Release files for annax 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| annax-0.0.1.tar.gz | 13.5 kB | Without provenance | Details for annax-0.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| annax-0.0.1-py3-none-any.whl | Python 3 | none | any | Details for annax-0.0.1-py3-none-any.whl |
Total release size: 25.8 kB
Release files / annax-0.0.1.tar.gz
| Download URL | annax-0.0.1.tar.gz |
|---|---|
| Size | 13.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8fc2bfc832404d8a596daa485e5bdce3003e9ce9f756e795533ebcaa97c16670
|
|
BLAKE2b-256 checksum How to use checksums |
5c40386479c008750000e79f8d828c83fd336032522cb3d22c42a25a8018fe5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.3
|
Release files / annax-0.0.1-py3-none-any.whl
| Download URL | annax-0.0.1-py3-none-any.whl |
|---|---|
| Size | 12.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a0ee37539dab61b739b909b39817251f7eca1f636b8d8199c2c3b37e1b469e4b
|
|
BLAKE2b-256 checksum How to use checksums |
73d233108305487360cfd2ce0da2705ca1648ae64d08fbf368fc109dc627a804
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.3
|
Security for annax 0.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.