Функции
- Крошечный : Это в имени. Это буквально просто сервер Axum. Чрезвычайно легко настраивать, около 600 строк кода.
- Быстрый : TinyVector должен иметь сопоставимую скорость с расширенными векторными базами данных, когда он поступает на наборах данных с небольшими и средними наборами и немного лучшей точностью.
- Вертикальные шкалы : крошечный вектор хранит все индексы в памяти для быстрого запроса. Очень легко масштабировать до 100 миллионов+ векторных измерений без проблем.
- Открытый исходный код : MIT лицензирован, бесплатно навсегда.
Скоро
- Мощные запросы : разрешить фильтрацию с помощью предоставленных векторных метаданных, не замедляя поиск вниз.
- Интегрированные модели : Вскоре вам не придется приносить свои собственные векторы, просто генерируйте их на сервере. Цель поддержки поддержки Sbert, модели обнимающего лица, Openai, Cohere и т. Д.
- Библиотеки TypeScript/Python : должны иметь возможность автоматически генерировать довольно хорошие клиенты, используя прилагаемую схему OpenAPI.
Начиная
? Докер
Мы предоставляем легкий контейнер Docker, который вы можете запустить где угодно. Требуется только одна команда, чтобы встать и работать с последними изменениями:
docker run
-p 8000:8000
ghcr.io/m1guelpf/tinyvector:edge
Примечание при запуске через Docker Compose или Kubernetes, обязательно свяжите объем с /tinyvector/storage для стойкости. Это обрабатывается автоматически в команде выше.
Здание с нуля
Вы можете построить TinyVector из последнего выпуска Tagged, используя cargo install tinyvector (вам, возможно, потребуется сначала установить Rust). Затем запустите tinyvector , чтобы запустить сервер.
Вы также можете построить его из последней коммиты, клонируя репо и запустив cargo build --release -и запустить его с ./target/release/tinyvector .
Зачем использовать TinyVector?
Большинство векторных баз данных являются избыточными для простых настройков. Например:
- Использование встраиваний для общения с вашими документами. Большинство поисков документов не близко к тому, что вам нужно, чтобы оправдать ускорение скорости поиска с HNSW или Faiss.
- Выполнять поиск вашего сайта или магазина. Если вы не продаете 1 000 000 предметов, вам не нужна Pinecone.
? Встраиваемые?
Встроения - это способ сравнить подобные вещи, так же, как люди сравнивают похожие вещи, преобразуя текст в небольшой список чисел. Подобные части текста будут иметь похожие числа, разные имеют очень разные числа.
Прочитайте объяснение Openai.
Благодарности
- Will Depue's Tinyvector (Python+SQLite+Numpy) вдохновил меня на создание векторной базы данных с нуля (и одолжила имя). Также внесет множество идей для оптимизации производительности.
? Лицензия
Этот проект открыт по лицензии MIT. См. Файл лицензии для получения дополнительной информации.