Установка Milvus Server Docker и зависимости для упаковки
Milvus — популярная векторная база данных с открытым исходным кодом, получившая значительное распространение в сценариях использования Generative AI и RAG (Retrieval Augmented Generation). Как организация, вы можете рассматривать интеграцию Milvus в свой технологический стек, и важно понимать ключевые зависимости и требования.
Milvus предлагает гибкие варианты развертывания своего сервера:
Локально: Запустите Milvus как один Docker-контейнер на своей машине. Для крупномасштабных потребностей разверните Milvus в кластере Kubernetes.
Облако (Zilliz): Zilliz предлагает Milvus как управляемый облачный сервис на AWS, GCP или Azure, предоставляя дополнительные расширенные функции и удобство без лишних хлопот.
Остальная часть этого блога будет посвящена локальной установке Milvus. Обратите внимание, что это относится к версии Milvus 2.4 и выше.
Обзор зависимостей
Предполагая чистую установку, основные зависимости для автономного сервера Milvus включают:
FAISS: Библиотека для эффективного поиска сходства и кластеризации плотных векторов.
etcd: Распределенное хранилище ключ-значение, используемое для хранения метаданных Milvus.
Pulsar/Kafka: Распределенная система обмена сообщениями pub-sub для обработки приема данных в реальном времени, обработки и взаимодействия между компонентами.
Tantivy: Библиотека полнотекстового поискового движка, написанная на Rust, для возможностей текстового поиска.
RocksDB: Постоянный движок хранения.
Minio/S3/GCS/Azure Blob Storage: Совместимость с различными решениями объектного хранения.
Kubernetes: Распределенная платформа развертывания контейнеризованных приложений.
StorageClass и Persistent Volumes: Ресурсы Kubernetes используются для управления требованиями к хранилищу etcd и Pulsar.
Prometheus и Grafana: Визуализация для мониторинга Milvus, которая позволяет пользователям отслеживать производительность и устранять проблемы.
Размер Docker-образа ~500MB
Размер Docker-образа для автономного контейнера Milvus составляет около 500MB. Вы можете найти последние релизы на странице Milvus Docker Hub по адресу https://hub.docker.com/r/milvusdb/milvus/tags.
Частота обновлений ~1x в месяц (много небольших релизов и 1 закрепленный релиз в месяц)
У Milvus довольно частый цикл релизов, примерно один крупный релиз в месяц. Небольшие релизы включают улучшения и исправления ошибок. Обычно в месяц выходит один «закрепленный» релиз.
Мы не рекомендуем использовать последний минорный релиз для production. Zilliz cloud всегда работает на последнем стабильном релизе, который обычно на одну версию отстает от последнего. Например, прямо сейчас последняя версия — 2.4, но последний релиз, который мы рекомендуем для production, — 2.3.x.
SDK
Мы предлагаем шесть SDK (наборов для разработки программного обеспечения) на: Python, Node, Go, C#, Java, Ruby
Чтобы установить Python SDK, просто выполните pip install pymilvus.
Важно убедиться, что выбранные вами версии SDK и сервера Milvus совпадают по номерам мажорной и минорной версий. Например, Pymilvus версии 2.4.0 совместим с локальным сервером Milvus версии 2.4.0-rc.1-dev. Аналогично, Pymilvus версии 2.3.6 совместим с Zilliz версии 2.3.x.
Установка
Установить Milvus standalone Docker просто. Главное — скачать последний docker-compose.yml либо со страницы документации, либо напрямую с GitHub. Ниже я показываю команду wget. Вы можете изменить команду wget на любую версию, которую используете. Также вам потребуется установленный Docker.
Ниже приведен пример кода Python для установки и подключения.
import pymilvus
from pymilvus import (connections, MilvusClient, utility)
print(f"Pymilvus: {pymilvus.__version__}")
###########################################################################################
# Download the latest .yaml file: https://milvus.io/docs/install_standalone-docker.md
# Or download manually from milvus github:
# !wget https://github.com/milvus-io/milvus/releases/download/v2.4.0-rc.1/milvus-standalone-docker-compose.yml -O docker-compose.yml
############################################################################################
# Start Docker
!docker compose up -d
# Verify which local port the Milvus server is listening on
!docker ps -a #19530/tcp
# Connect to the local server.
connection = connections.connect(
alias="default",
host='localhost', # or '0.0.0.0' or 'localhost'
port='19530'
)
# Print server version.
print(utility.get_server_version())
# Use no-schema Milvus client (flexible json key:value format).
mc = MilvusClient(connections=connection)
# Check if a collection already exists.
collection_name = "movies"
has = utility.has_collection(collection_name)
print(f"Collection '{collection_name}' exists in Milvus?")
print(f"Answer --> {has}!")
# Stop the local Milvus server.
!docker compose down
Резюме
Это ключевые зависимости и частота обновления релизов для развертывания сервера Milvus в standalone Docker. Понимание этих деталей поможет вам лучше спланировать и подготовиться к интеграции Milvus в технологический стек вашей организации.
Читать далее

How to Improve Retrieval Quality for Japanese Text with Sudachi, Milvus/Zilliz, and AWS Bedrock
Learn how Sudachi normalization and Milvus/Zilliz hybrid search improve Japanese RAG accuracy with BM25 + vector fusion, AWS Bedrock embeddings, and practical code examples.

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.

OpenAI o1: What Developers Need to Know
In this article, we will talk about the o1 series from a developer's perspective, exploring how these models can be implemented for sophisticated use cases.



