Об этом проекте
Milvus — это распределенная векторная база данных, написанная на Go и C++, которая обеспечивает эффективную организацию и поиск огромных объемов неструктурированных данных, включая текст, изображения и мультимодальную информацию. Она разработана для высокой масштабируемости и доступности, используя K8s-native архитектуру, которая разделяет вычисления и хранение для обеспечения независимого горизонтального масштабирования.
Ключевые возможности включают:
- Векторный поиск и индексация: поддержка нескольких типов индексов, таких как HNSW, IVF, FLAT, SCANN и DiskANN, с аппаратным ускорением для CPU и GPU (включая NVIDIA CAGRA).
- Гибридный поиск: нативная поддержка как плотных векторов для семантического поиска, так и разреженных векторов для полнотекстового поиска (BM25, SPLADE, BGE-M3), что позволяет получать переранжированные гибридные результаты.
- Управление данными: функции изоляции многоарендности (multi-tenancy), механизмы горячего и холодного хранения для оптимизации затрат, а также поддержка скалярных типов данных (целые числа, строки, JSON) для фильтрации метаданных.
- Безопасность: обязательная аутентификация пользователей, шифрование TLS и управление доступом на основе ролей (RBAC).
- Варианты развертывания: доступна в виде распределенного кластера, автономного развертывания Docker или облегченной Python-версии (Milvus Lite).
Milvus интегрируется с популярными ИИ-фреймворками, такими как LangChain, LlamaIndex, OpenAI и HuggingFace, и предоставляет Python SDK (pymilvus) для загрузки и запроса данных.