Выпущена Hora 0.1.0, вероятно, самая быстрая библиотека алгоритмов поиска подобия AI

машинное обучение
Выпущена Hora 0.1.0, вероятно, самая быстрая библиотека алгоритмов поиска подобия AI

brand

В заголовке есть заголовки, ха-ха ?, я не знаю, почему больше людей видят это так

Hora — приближенный алгоритм поиска ближайшего соседа (wiki) библиотека

Horaполностью основано наРжавчина ?добиться, оказывается,RustДействительно очень, очень быстро, полностью сопоставимо сC++HoraиспользоватьSIMDУскоренный, скорость очень высокая ⚡️⚡️⚡️, конкретная скорость может относиться к тесту ниже.

Hora, на японском「ほら」, читать как[hōlə], значениеWow, You see! , Look at that!. Название было вдохновлено известной японской песней.「小さな爱のうた」.

гитхаб:GitHub.com/hora-search…

Домашняя страница:horasearch.com/

Библиотека Python:GitHub.com/hora-search…

Библиотека Javascript:GitHub.com/hora-search…

Хора позиционируется какRustРеализованная библиотека алгоритмов ANN надеется предоставить несколько безопасных языковых библиотек, основанных на преимуществах самого Rust, и может быть развернута где угодно. В настоящее время доступно вLinux, macOSиWindowsа такжеWebAssemblyразвертывание и будет поддерживать в будущемAndroidиIOSа такжеВстроенное устройство


Demo

Вот онлайн-демонстрация Hora (ее можно найти здесь, настоятельно рекомендуем попробовать скорость!!horasearch.com/)

? Фейсматч [online demo], have a try! demo3

? Вино мечты поиск комментариев [online demo], have a try! demo3

benchmark

Хора очень быстрая, скамейка (по сравнению с Файсом и Анноем)

demo3

Usage

Установка предельно проста:Rust

[dependencies]
hora = "0.1.1"

Python

$ pip install horapy

Javascript (WebAssembly)

$ npm i horajs

Building from source

$ git clone https://github.com/hora-search/hora
$ cargo build

Использование вышеуказанного API также очень просто:

Python example [more info]

import numpy as np
from horapy import HNSWIndex

dimension = 50
n = 1000

# init index instance
index = HNSWIndex(dimension, "usize")

samples = np.float32(np.random.rand(n, dimension))
for i in range(0, len(samples)):
    # add node
    index.add(np.float32(samples[i]), i)

index.build("euclidean")  # build index

target = np.random.randint(0, n)
# 410 in Hora ANNIndex <HNSWIndexUsize> (dimension: 50, dtype: usize, max_item: 1000000, n_neigh: 32, n_neigh0: 64, ef_build: 20, ef_search: 500, has_deletion: False)
# has neighbors: [410, 736, 65, 36, 631, 83, 111, 254, 990, 161]
print("{} in {} \nhas neighbors: {}".format(
    target, index, index.search(samples[target], 10)))  # search

Мы приветствуем любое участие и приветствуем любой вклад, включая документацию и тестирование. Мы используем проблемы GitHub для отслеживания проблем и ошибок, вы можете делать запросы на вытягивание, проблемы на github.

Наконец, если вы считаете, что у этого проекта все хорошо, или вы больше заинтересованы, или хотите его использовать, добро пожаловать на звездочку на github или отправьте нам сообщение.

гитхаб:GitHub.com/hora-search…

Библиотека Python:GitHub.com/hora-search…

Библиотека Javascript:GitHub.com/hora-search…