Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Smile | 5,688 | 121 | 30 | 24 days ago | 30 | December 05, 2020 | 9 | other | Java | |
Statistical Machine Intelligence & Learning Engine | ||||||||||
Qdrant | 5,218 | 8 hours ago | 61 | apache-2.0 | Rust | |||||
Qdrant - Vector Search Engine and Database for the next generation of AI applications. Also available in the cloud https://cloud.qdrant.io/ | ||||||||||
Mlpack | 4,331 | 1 | 2 days ago | 12 | October 28, 2020 | 53 | other | C++ | ||
mlpack: a fast, header-only C++ machine learning library | ||||||||||
Similarity | 931 | 5 days ago | 148 | June 15, 2022 | 50 | apache-2.0 | Python | |||
TensorFlow Similarity is a python package focused on making similarity learning quick and easy. | ||||||||||
Awesome Vector Search | 604 | 5 days ago | 4 | mit | ||||||
Collections of vector search related libraries, service and research papers | ||||||||||
N2 | 473 | 2 years ago | 2 | March 24, 2020 | 7 | apache-2.0 | Jupyter Notebook | |||
TOROS N2 - lightweight approximate Nearest Neighbor library which runs fast even with large datasets | ||||||||||
Quaterion | 435 | 18 days ago | 27 | July 06, 2022 | 10 | apache-2.0 | Python | |||
Blazing fast framework for fine-tuning similarity learning models | ||||||||||
Gann | 57 | 4 years ago | April 19, 2019 | 4 | mit | Go | ||||
gann(go-approximate-nearest-neighbor) is a library for Approximate Nearest Neighbor Search written in Go | ||||||||||
Superinsight Db | 46 | 16 hours ago | 1 | other | Python | |||||
Relational Database for Unstructured Data | ||||||||||
Jann | 34 | 2 years ago | mit | Python | ||||||
Hi. I am jann. I am text input - text output chatbot model that is JUST approximate nearest neighbour. |
Lightweight approximate Nearest Neighbor algorithm library written in C++ (with Python/Go bindings).
N2 stands for two N's, which comes from 'Approximate N
earest
N
eighbor Algorithm'.
Before N2, there has been other great approximate nearest neighbor libraries such as Annoy and NMSLIB. However, each of them had different strengths and weaknesses regarding usability, performance, and etc. So, N2 has been developed aiming to bring the strengths of existing aKNN libraries and supplement their weaknesses.
N2 supports three distance metrics. For "angular" and "L2", d (distance) is defined such that the closer the vectors are, the smaller d is. However for "dot", d is defined such that the closer the vectors are, the larger d is. You may be wondering why we defined and implemented "dot" metric as plain dot product and not as (1 - dot product). The rationale for this decision was to allow users to directly interpret the d value returned from Hnsw search function as a dot product value.
$ pip install n2
import numpy as np
from n2 import HnswIndex
N, dim = 10240, 20
samples = np.arange(N * dim).reshape(N, dim)
index = HnswIndex(dim)
for sample in samples:
index.add_data(sample)
index.build(m=5, n_threads=4)
print(index.search_by_id(0, 10))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Visit n2.readthedocs.io for full documentation. The documentation site explains the following contents in detail.
This software is licensed under the Apache 2 license, quoted below.
Copyright 2017 Kakao Corp. http://www.kakaocorp.com
Licensed under the Apache License, Version 2.0 (the License); you may not use this project except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.