> 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).

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

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

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

***

## Краткая матрица принятия решений

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

***

## Обзор

### ChromaDB

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

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

```python
import chromadb

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

collection.add(
    documents=["Machine learning is great", "Deep learning uses neural networks"],
    ids=["doc1", "doc2"]
)

results = collection.query(
    query_texts=["What is AI?"],
    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": "document 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 — самая масштабируемая опенсорсная векторная база данных, созданная для развертываний в масштабе миллиардов. Имеет распределённую архитектуру с поддержкой Kubernetes.

**Философия**: Огромный масштаб, облачно-нативный.

```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)

# Insert data
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")

# Define schema with classes
client.schema.create_class({
    "class": "Document",
    "vectorizer": "text2vec-transformers",
    "properties": [
        {"name": "content", "dataType": ["text"]},
        {"name": "category", "dataType": ["string"]}
    ]
})

# Insert with auto-vectorization
client.data_object.create(
    {"content": "Machine learning tutorial", "category": "tech"},
    "Document"
)

# Semantic search
result = client.query.get("Document", ["content", "category"])\
    .with_near_text({"concepts": ["artificial intelligence"]})\
    .with_limit(5)\
    .do()
```

***

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

### ANN Benchmarks (ann-benchmarks.com, 2024)

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

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

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

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

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

### Производительность фильтрации (Filtered ANN search)

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

| База данных | Фильтрованный QPS | Предфильтрация                      | Постфильтрация |
| ----------- | ----------------- | ----------------------------------- | -------------- |
| ChromaDB    | \~500             | ❌                                   | ✅              |
| Qdrant      | \~6,000           | ✅ (HNSW + индекс полезной нагрузки) | ✅              |
| 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                       | ❌        | ✅      | ✅      | ❌        |
| GraphQL API                    | ❌        | ❌      | ❌      | ✅        |
| Аутентификация                 | Базовый  | ✅      | ✅      | ✅        |
| RBAC                           | ❌        | ✅      | ✅      | ✅        |
| Горизонтальное масштабирование | ❌        | ✅      | ✅      | ✅        |
| Поддержка Kubernetes           | ❌        | ✅      | ✅      | ✅        |
| Снапшоты/Резервное копирование | ❌        | ✅      | ✅      | ✅        |
| Мониторинг (Prometheus)        | ❌        | ✅      | ✅      | ✅        |

***

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

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

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

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

❌ **Ограниченный масштаб** — испытывает трудности за пределами 1–2M векторов\
❌ **Нет распределённого режима** — только один узел\
❌ **Ограниченная фильтрация** — нет предфильтрации\
❌ **Нет квантизации** — большее потребление памяти\
❌ **Медленнее в масштабе** — операции на 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, <1M векторов

***

## 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–100M векторов

***

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

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

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

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

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

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

```yaml
# docker-compose.yml для Milvus standalone
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 секунд
```

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

***

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

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

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

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

❌ **Больший объём памяти** — схема-ориентированное хранение требует больше места\
❌ **Нет 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

# С векторизатором на трансформерах
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 векторов    → ChromaDB (встроенная)
100K - 10M        → Qdrant (лучший баланс)
10M - 1B          → Milvus или Qdrant (кластер)
1B+               → Milvus (распределённый)
```

### Решение на основе кейса использования

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

***

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

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

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

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

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

### Рекомендуемая конфигурация сервера

| Размер датасета | ChromaDB | Qdrant   | Milvus   | Weaviate |
| --------------- | -------- | -------- | -------- | -------- |
| 1M векторов     | 16ГБ RAM | 8ГБ RAM  | 32ГБ RAM | 16ГБ RAM |
| 10M векторов    | ❌        | 32ГБ RAM | 64ГБ RAM | 48ГБ RAM |
| 100M векторов   | ❌        | 128ГБ+   | 256ГБ+   | 256ГБ+   |

***

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

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

***

## Ценообразование (Self-Hosted на Clore.ai)

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

```
Пример: RAG-система с 1M векторов
- Qdrant: сервер 8GB RAM ~0.10$/ч
- ChromaDB: сервер 16GB RAM ~0.15$/ч  
- Weaviate: сервер 16GB RAM ~0.15$/ч
- Milvus: сервер 32GB RAM ~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 Benchmarks](https://ann-benchmarks.com)
* [Бенчмарк векторных БД от Qdrant](https://qdrant.tech/benchmarks)

***

## Резюме

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

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

***

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

| Сценарий использования  | Рекомендуемый GPU | Примерная стоимость на Clore.ai |
| ----------------------- | ----------------- | ------------------------------- |
| Разработка/Тестирование | RTX 3090 (24GB)   | \~$0.12/gpu/hr                  |
| Продакшн                | RTX 4090 (24GB)   | \~$0.70/gpu/hr                  |
| Крупномасштабно         | A100 80GB         | \~$1.20/gpu/hr                  |

> 💡 Все примеры в этом руководстве можно развернуть на [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.
