> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/sravneniya/vector-db-comparison.md).

# Сравнение векторных баз данных

Выберите подходящую векторную базу данных для ваших ИИ-приложений на GPU-серверах Clore.ai.

{% hint style="info" %}
**Векторные базы данных** эффективно хранят и извлекают высокоразмерные эмбеддинги — ключевая инфраструктура для RAG-систем, семантического поиска и рекомендательных систем. В этом руководстве сравниваются четыре самых популярных open-source варианта.
{% endhint %}

***

## Краткая матрица выбора

|                        | ChromaDB                               | Qdrant             | Milvus                       | Weaviate            |
| ---------------------- | -------------------------------------- | ------------------ | ---------------------------- | ------------------- |
| **Лучше всего для**    | Прототипирование, локальная разработка | RAG для продакшена | Поиск на миллиардах векторов | Графы знаний        |
| **Развертывание**      | Встроенный/серверный                   | Сервер/облако      | Сервер/облако                | Сервер/облако       |
| **Масштабируемость**   | Одноузловой                            | Многоузловой       | Распределённый               | Распределённый      |
| **Звёзды GitHub**      | 17K+                                   | 21K+               | 31K+                         | 12 тыс.+            |
| **Лицензия**           | Apache 2.0                             | Apache 2.0         | Apache 2.0                   | BSD 3-Clause        |
| **Управляемое облако** | Нет                                    | Да (Qdrant Cloud)  | Да (Zilliz)                  | Да (Weaviate Cloud) |
| **Язык**               | Python                                 | Rust               | Перейти                      | Перейти             |

***

## Обзор

### ChromaDB

ChromaDB — самая простая векторная база данных, созданная для быстрого прототипирования и приложений малого и среднего масштаба. Она может работать полностью в памяти или сохранять данные на диск.

**Философия**: Нулевая настройка, максимальный комфорт для разработчика.

```python
import chromadb

client = chromadb.PersistentClient(path="/data/chroma")
collection = client.create_collection("my_docs")

collection.add(
    documents=["Машинное обучение — это отлично", "Глубокое обучение использует нейронные сети"],
    ids=["doc1", "doc2"]
)

results = collection.query(
    query_texts=["Что такое ИИ?"],
    n_results=2
)
```

### Qdrant

Qdrant — это производительный векторный поисковый движок, написанный на Rust. Он делает ставку на производительность, фильтрацию и простоту эксплуатации.

**Философия**: Производительность промышленного уровня без операционной сложности.

```python
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct

client = QdrantClient("localhost", port=6333)
client.create_collection(
    collection_name="my_collection",
    vectors_config=VectorParams(size=1536, distance=Distance.COSINE)
)

client.upsert(
    collection_name="my_collection",
    points=[
        PointStruct(id=1, vector=[...], payload={"text": "документ 1"}),
    ]
)

results = client.search(
    collection_name="my_collection",
    query_vector=[...],
    limit=10,
    query_filter=Filter(must=[FieldCondition(key="category", match=MatchValue(value="tech"))])
)
```

### Milvus

Milvus — самая масштабируемая open-source векторная база данных, предназначенная для развёртываний на миллиардах векторов. Она имеет распределённую архитектуру с поддержкой Kubernetes.

**Философия**: Масштабирование до огромных объёмов, cloud-native.

```python
from pymilvus import connections, Collection, FieldSchema, CollectionSchema, DataType

connections.connect("default", host="localhost", port=19530)

fields = [
    FieldSchema(name="id", dtype=DataType.INT64, is_primary=True),
    FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=1536),
    FieldSchema(name="text", dtype=DataType.VARCHAR, max_length=65535),
]
schema = CollectionSchema(fields)
collection = Collection("my_collection", schema)

# Вставка данных
collection.insert([[1, 2], embeddings, texts])
collection.create_index("embedding", {"metric_type": "COSINE", "index_type": "IVF_FLAT"})
collection.load()

results = collection.search(
    data=[query_embedding],
    anns_field="embedding",
    param={"metric_type": "COSINE", "nprobe": 10},
    limit=10
)
```

### Weaviate

Weaviate объединяет векторный поиск с графами знаний и GraphQL API. Он поддерживает мультимодальный поиск (текст, изображения, аудио) из коробки.

**Философия**: Богатая схема, мультимодальность, возможности графа знаний.

```python
import weaviate

client = weaviate.Client("http://localhost:8080")

# Определите схему с классами
client.schema.create_class({
    "class": "Document",
    "vectorizer": "text2vec-transformers",
    "properties": [
        {"name": "content", "dataType": ["text"]},
        {"name": "category", "dataType": ["string"]}
    ]
})

# Вставка с авто-векторизацией
client.data_object.create(
    {"content": "Учебник по машинному обучению", "category": "tech"},
    "Document"
)

# Семантический поиск
result = client.query.get("Document", ["content", "category"])\
    .with_near_text({"concepts": ["искусственный интеллект"]})\
    .with_limit(5)\
    .do()
```

***

## Тесты производительности

### Бенчмарки ANN (ann-benchmarks.com, 2024)

#### 1 млн векторов, 768 измерений, косинусное сходство

| База данных     | QPS (1 поток) | Полнота@10 | Время построения | Размер индекса |
| --------------- | ------------- | ---------- | ---------------- | -------------- |
| ChromaDB (HNSW) | \~2,000       | 98.5%      | 45с              | 2.1GB          |
| Qdrant (HNSW)   | \~8,500       | 99.1%      | 32с              | 1.8GB          |
| Milvus (HNSW)   | \~12,000      | 98.9%      | 28с              | 1.9GB          |
| Weaviate (HNSW) | \~6,000       | 98.7%      | 38с              | 2.0GB          |

#### 10 млн векторов (тест на масштабируемость)

| База данных | QPS     | Использование RAM    | Примечания                             |
| ----------- | ------- | -------------------- | -------------------------------------- |
| ChromaDB    | \~800   | 22GB                 | Плохо справляется на больших масштабах |
| Qdrant      | \~5,200 | 18GB                 | Хорошо с квантизацией                  |
| Milvus      | \~9,800 | 15GB (индексировано) | Лучше всего на больших масштабах       |
| Weaviate    | \~3,500 | 21GB                 | Умеренная                              |

{% hint style="info" %}
**Бенчмарки — это ориентиры, а не истина в последней инстанции.** Производительность сильно зависит от типа индекса, оборудования, размерности векторов и шаблонов запросов. Всегда проводите бенчмарки на своих данных.
{% endhint %}

### Производительность фильтрации (фильтрованный ANN-поиск)

Фильтрованный поиск (векторное сходство + фильтр по метаданным) критически важен для production RAG:

| База данных | QPS при фильтрации | Предварительная фильтрация | Постфильтрация |
| ----------- | ------------------ | -------------------------- | -------------- |
| ChromaDB    | \~500              | ❌                          | ✅              |
| Qdrant      | \~6,000            | ✅ (HNSW + индекс payload)  | ✅              |
| Milvus      | \~8,000            | ✅                          | ✅              |
| Weaviate    | \~3,000            | ✅ (инвертированный индекс) | ✅              |

**Победитель в фильтрованном поиске**: Qdrant и Milvus, которые поддерживают настоящую предварительную фильтрацию без потери производительности из-за постфильтрации.

***

## Сравнение возможностей

### Хранение и индексирование

| Функция                 | ChromaDB | Qdrant | Milvus | Weaviate |
| ----------------------- | -------- | ------ | ------ | -------- |
| Индекс HNSW             | ✅        | ✅      | ✅      | ✅        |
| Индекс IVF              | ❌        | ❌      | ✅      | ❌        |
| DiskANN                 | ❌        | ✅      | ✅      | ❌        |
| Скалярная квантизация   | ❌        | ✅      | ✅      | ✅        |
| Продуктовая квантизация | ❌        | ✅      | ✅      | ❌        |
| Бинарная квантизация    | ❌        | ✅      | ✅      | ✅        |
| Хранение на диске       | ✅        | ✅      | ✅      | ✅        |
| Mmap                    | ❌        | ✅      | ✅      | ✅        |

### Возможности запросов

| Функция                       | ChromaDB    | Qdrant      | Milvus      | Weaviate    |
| ----------------------------- | ----------- | ----------- | ----------- | ----------- |
| Векторное сходство            | ✅           | ✅           | ✅           | ✅           |
| Гибридный поиск (BM25+вектор) | ❌           | ✅           | ✅           | ✅           |
| Фильтрация по метаданным      | ✅ (базовая) | ✅ (богатая) | ✅ (богатая) | ✅ (GraphQL) |
| Поиск по ключевым словам      | ❌           | ✅           | ✅           | ✅           |
| Многовекторный поиск          | ❌           | ✅           | ✅           | ✅           |
| Разреженные векторы (SPLADE)  | ❌           | ✅           | ✅           | ✅           |
| Именованные векторы           | ❌           | ✅           | ✅           | ✅           |

### Операционные возможности

| Функция                        | ChromaDB | Qdrant | Milvus | Weaviate |
| ------------------------------ | -------- | ------ | ------ | -------- |
| REST API                       | ✅        | ✅      | ✅      | ✅        |
| gRPC API                       | ❌        | ✅      | ✅      | ❌        |
| API GraphQL                    | ❌        | ❌      | ❌      | ✅        |
| Аутентификация                 | Базовый  | ✅      | ✅      | ✅        |
| RBAC                           | ❌        | ✅      | ✅      | ✅        |
| Горизонтальное масштабирование | ❌        | ✅      | ✅      | ✅        |
| Поддержка Kubernetes           | ❌        | ✅      | ✅      | ✅        |
| Снимки/резервное копирование   | ❌        | ✅      | ✅      | ✅        |
| Мониторинг (Prometheus)        | ❌        | ✅      | ✅      | ✅        |

***

## ChromaDB: подробный разбор

### Сильные стороны

✅ **Простейшая настройка** — `pip install chromadb` и всё готово\
✅ **Встроенный режим** — без отдельного серверного процесса\
✅ **Авто-эмбеддинг** — встроенные модели эмбеддингов\
✅ **LangChain/LlamaIndex** нативная интеграция\
✅ **Нулевая конфигурация** — отлично подходит для прототипирования

### Слабые стороны

❌ **Ограниченный масштаб** — плохо справляется свыше 1–2 млн векторов\
❌ **Нет распределённого режима** — только один узел\
❌ **Ограниченная фильтрация** — нет предварительной фильтрации\
❌ **Нет квантизации** — более высокое потребление памяти\
❌ **Медленная работа на больших масштабах** — операции на основе Python

### Развертывание на Clore.ai

```bash
# Режим клиент/сервер
docker run -d \
  --name chromadb \\
  -p 8000:8000 \\
  -v $(pwd)/chroma-data:/chroma/chroma \\
  chromadb/chroma:latest

# Проверка
curl http://localhost:8000/api/v1/heartbeat
```

**Лучше всего для**: Jupyter notebooks, быстрые прототипы RAG, <1 млн векторов

***

## Qdrant: подробный разбор

### Сильные стороны

✅ **Лучшая фильтрация** — настоящий векторный поиск с предварительной фильтрацией\
✅ **Производительность Rust** — чрезвычайно быстро, с низкой задержкой\
✅ **Квантование** — бинарная/скалярная квантизация уменьшает память в 4–32 раза\
✅ **Разреженные векторы** — гибридный поиск по плотным и разреженным векторам\
✅ **Простота эксплуатации** — один бинарный файл, без зависимостей\
✅ **Хорошая документация** — отличные руководства и примеры

### Слабые стороны

❌ **Один пишущий узел** в бесплатном тарифе (без распределённой записи)\
❌ **Меньшая экосистема** чем у Milvus\
❌ **Нет GraphQL** — только REST/gRPC

### Развертывание на Clore.ai

```bash
# Простое развертывание
docker run -d \
  --name qdrant \\
  -p 6333:6333 \\
  -p 6334:6334 \\
  -v $(pwd)/qdrant-storage:/qdrant/storage \\
  qdrant/qdrant:latest

# С аутентификацией
docker run -d \
  --name qdrant \\
  -p 6333:6333 \\
  -e QDRANT__SERVICE__API_KEY=your-secret-key \\
  -v $(pwd)/qdrant-storage:/qdrant/storage \\
  qdrant/qdrant:latest

# Проверка
curl http://localhost:6333/health
```

**Лучше всего для**: RAG для промышленного использования, фильтрованный поиск, 1–100 млн векторов

***

## Milvus: подробный разбор

### Сильные стороны

✅ **Огромный масштаб** — протестировано на 10+ млрд векторов\
✅ **Распределённый** — cloud-native архитектура Kubernetes\
✅ **Большинство типов индексов** — IVF, HNSW, DiskANN, ScaNN\
✅ **Ускорение на GPU** — построение индексов с использованием GPU\
✅ **Корпоративные возможности** — RBAC, журналы аудита, шифрование\
✅ **Zilliz Cloud** — полностью управляемый вариант

### Слабые стороны

❌ **Сложное развертывание** — требует etcd, MinIO и Pulsar/Kafka\
❌ **Требует много ресурсов** — рекомендуется минимум 3 узла\
❌ **Более крутая кривая обучения** — больше концепций для изучения\
❌ **Избыточно для небольшого масштаба** — не используйте для <1 млн векторов

### Развертывание на Clore.ai (автономно)

```yaml
# docker-compose.yml для автономного Milvus
version: "3.8"
services:
  etcd:
    image: quay.io/coreos/etcd:v3.5.5
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
    command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls=http://0.0.0.0:2379

  minio:
    image: minio/minio:RELEASE.2023-03-13T19-46-17Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    command: minio server /minio_data --console-address ":9001"

  milvus:
    image: milvusdb/milvus:v2.4.0
    command: ["milvus", "run", "standalone"]
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - etcd
      - minio
```

```bash
docker compose up -d
# Полный запуск занимает ~60 секунд
```

**Лучше всего для**: Крупномасштабное производство, 100+ млн векторов, корпоративные развёртывания

***

## Weaviate: подробный разбор

### Сильные стороны

✅ **Мультимодальный** — текст, изображения, аудио, видео\
✅ **Автовекторизация** — встроенные интеграции моделей\
✅ **API GraphQL** — богатые запросы с обходом графа\
✅ **Система модулей** — подключаемые векторизаторы и считыватели\
✅ **Гибридный поиск** — BM25 + вектор из коробки\
✅ **Генеративный поиск** — встроенный RAG с модулем generate

### Слабые стороны

❌ **Больше памяти** — хранилище с учётом схемы занимает больше места\
❌ **Нет gRPC** — только GraphQL (медленнее при высоком QPS)\
❌ **Сложная схема** — требует предварительного определения класса\
❌ **Медленнее на экстремальных масштабах** чем Milvus

### Развертывание на Clore.ai

```bash
# Простое развертывание
docker run -d \
  --name weaviate \
  -p 8080:8080 \
  -p 50051:50051 \
  -e AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true \
  -e PERSISTENCE_DATA_PATH=/var/lib/weaviate \
  -e DEFAULT_VECTORIZER_MODULE=none \
  -e CLUSTER_HOSTNAME=node1 \
  -v $(pwd)/weaviate-data:/var/lib/weaviate \\
  cr.weaviate.io/semitechnologies/weaviate:1.25.0

# С transformer-векторизатором
docker run -d \
  --name weaviate \
  -p 8080:8080 \
  -e DEFAULT_VECTORIZER_MODULE=text2vec-transformers \\
  -e TRANSFORMERS_INFERENCE_API=http://t2v-transformers:8080 \\
  cr.weaviate.io/semitechnologies/weaviate:1.25.0
```

**Лучше всего для**: Мультимодальный поиск, графы знаний, генеративный поиск

***

## Когда что использовать

### Выбор в зависимости от масштаба

```
< 100K vectors    → ChromaDB (встроенный)
100K - 10M        → Qdrant (лучший баланс)
10M - 1B          → Milvus или Qdrant (кластерный)
1B+               → Milvus (распределённый)
```

### Выбор в зависимости от сценария использования

| Сценарий использования | Лучший выбор        | Почему                                   |
| ---------------------- | ------------------- | ---------------------------------------- |
| Прототип RAG           | ChromaDB            | Нулевая настройка, простой API           |
| RAG для продакшена     | Qdrant              | Быстрая фильтрация, простая эксплуатация |
| Семантический поиск    | Qdrant или Milvus   | Лучшая производительность                |
| Мультимодальный        | Weaviate            | Встроенная поддержка изображений и аудио |
| Граф знаний            | Weaviate            | Запросы с обходом графа                  |
| Масштаб миллиардов     | Milvus              | Распределённая архитектура               |
| Гибридный поиск        | Qdrant или Weaviate | BM25 + вектор                            |
| Корпоративный уровень  | Milvus или Weaviate | RBAC, журналы аудита                     |

***

## Требования к памяти на Clore.ai

### Формула оценки RAM

```
Необходимая RAM ≈ (векторы × размерность × 4 байта) × 1.5 (накладные расходы)

Пример: 1 млн векторов × 1536 измерений × 4 байта × 1.5 = 9.2 ГБ RAM

С квантизацией (бинарный Qdrant):
1 млн × 1536 / 8 × 1.5 = 0.29 ГБ RAM (сжатие в 32 раза!)
```

### Рекомендуемые характеристики сервера

| Размер набора данных | ChromaDB | Qdrant   | Milvus   | Weaviate |
| -------------------- | -------- | -------- | -------- | -------- |
| 1 млн векторов       | 16GB RAM | 8GB RAM  | 32GB RAM | 16GB RAM |
| 10 млн векторов      | ❌        | 32GB RAM | 64GB RAM | 48GB RAM |
| 100 млн векторов     | ❌        | 128GB+   | 256GB+   | 256GB+   |

***

## Быстрое сравнение: время настройки Docker

| База данных | `docker run` до готовности | Зависимости    |
| ----------- | -------------------------- | -------------- |
| ChromaDB    | \~5 секунд                 | Нет            |
| Qdrant      | \~3 секунды                | Нет            |
| Milvus      | \~60 секунд                | etcd + MinIO   |
| Weaviate    | \~15 секунд                | Нет (отдельно) |

***

## Цены (самостоятельное размещение на Clore.ai)

Все четыре базы данных **бесплатны** для самостоятельного размещения. Стоимость — только аренда сервера Clore.ai:

```
Пример: RAG-система на 1 млн векторов
- Qdrant: сервер с 8 ГБ ОЗУ, ~$0.10/ч
- ChromaDB: сервер с 16 ГБ ОЗУ, ~$0.15/ч  
- Weaviate: сервер с 16 ГБ ОЗУ, ~$0.15/ч
- Milvus: сервер с 32 ГБ ОЗУ, ~$0.30/ч (+ накладные расходы на etcd/minio)
```

***

## Полезные ссылки

* [Документация ChromaDB](https://docs.trychroma.com)
* [Документация Qdrant](https://qdrant.tech/documentation)
* [Документация Milvus](https://milvus.io/docs)
* [Документация Weaviate](https://weaviate.io/developers/weaviate)
* [Бенчмарки ANN](https://ann-benchmarks.com)
* [Бенчмарк векторных БД от Qdrant](https://qdrant.tech/benchmarks)

***

## Итог

| Начните с... | Если вам нужно...                                                       |
| ------------ | ----------------------------------------------------------------------- |
| **ChromaDB** | Быстрый прототип, <1 млн векторов, минимальная настройка                |
| **Qdrant**   | RAG в продакшене, отличная фильтрация, простота эксплуатации            |
| **Milvus**   | Масштаб на миллиарды, корпоративный уровень, распределённая архитектура |
| **Weaviate** | Мультимодальность, графы знаний, запросы GraphQL                        |

Для большинства production-RAG приложений на Clore.ai, **Qdrant** обеспечивает лучший баланс производительности, функций и простоты эксплуатации. Для задач крупного масштаба или корпоративных нужд, **Milvus** является отраслевым стандартом.

***

## Рекомендации по GPU для Clore.ai

| Сценарий использования  | Рекомендуемый GPU | Оценочная стоимость на Clore.ai             |
| ----------------------- | ----------------- | ------------------------------------------- |
| Разработка/тестирование | RTX 3090 (24 ГБ)  | $0.07–0.21/гпу/ч                            |
| Продакшен               | RTX 4090 (24 ГБ)  | $0.14–0.42/гпу/ч                            |
| Масштабирование         | A100 80 ГБ        | [голое железо](https://clore.ai/bare-metal) |

> 💡 Все примеры в этом руководстве можно развернуть на [Clore.ai](https://clore.ai/marketplace) GPU-серверах. Просматривайте доступные GPU и арендуйте по часам — без обязательств, с полным root-доступом.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/sravneniya/vector-db-comparison.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
