VibeCoderzVibeCoderz
Все статьи
2026/09/049 мин чтения

Weaviate и Chroma DB: лёгкие альтернативы Qdrant для прототипа

Если вам нужно быстро поднять векторную базу для RAG-прототипа, у вас по сути два разных пути. Chroma DB — это pip install и рабочая база через пять строк кода без единого сервера. Weaviate — это уже настоящая распределенная система со схемой, GraphQ…

Содержание (12)+

Если вам нужно быстро поднять векторную базу для RAG-прототипа, у вас по сути два разных пути. Chroma DB — это pip install и рабочая база через пять строк кода без единого сервера. Weaviate — это уже настоящая распределенная система со схемой, GraphQL-запросами и встроенной генерацией эмбеддингов. В статье разберем архитектуру обеих баз, честно сравним их с Qdrant и покажем, какую выбрать под конкретный сценарий.

Chroma DB — встраиваемая векторная база без сервера, идеальна для локальных прототипов и Jupyter-ноутбуков. Weaviate — распределенная база со схемой, GraphQL и гибридным поиском из коробки. Обе проще Qdrant в старте, но Weaviate ближе к продакшену. В статье — архитектура, цены на сентябрь 2026 и таблица выбора.

Изображение

Что вообще делает векторная база данных

Векторная база хранит эмбеддинги, строит по ним индекс для быстрого поиска и возвращает ближайших соседей к запросу. Разница между базами — в том, как именно устроены индекс и фильтрация.

На 10 тысячах векторов подойдет любой брутфорс-перебор. На 10 миллионах при 1536 измерениях (стандарт для OpenAI-эмбеддингов) прямой перебор занимает секунды на запрос, и это уже неюзабельно. Поэтому все три базы, о которых пойдет речь, используют приближенный поиск ближайших соседей — чаще всего алгоритм HNSW.

HNSW — это многослойный граф. Поиск стартует на разреженном верхнем слое, спускается к нужному региону, а на нижнем плотном слое уточняет результат. У параметра recall есть цена: чем выше точность, тем выше задержка ответа. Это компромисс, который встроен в саму архитектуру, и от него никуда не деться ни в Chroma, ни в Weaviate, ни в Qdrant.

Изображение

Weaviate GraphQL или REST что использовать

Weaviate работает через GraphQL-интерфейс вместо привычного REST API. Это дает гибкие запросы с фильтрами и вложенными связями в одном вызове, но требует привыкания, если ваша команда раньше работала только с REST.

GraphQL-запрос в Weaviate позволяет за один вызов получить объект, применить фильтр по свойствам и запросить связанные объекты — то, что в REST потребовало бы нескольких запросов подряд. Для команд, которые уже работают с GraphQL в других частях стека, это снижает порог входа почти до нуля.

Но есть нюанс. Weaviate хранит объекты и векторы вместе: у каждого объекта есть свойства, инвертированный индекс для keyword-поиска и HNSW-индекс для векторного поиска в одной системе. Это не случайное архитектурное решение — именно оно и позволяет Weaviate делать гибридный поиск, о котором дальше.

Максим: «Мы в VibeCoderz тестировали три векторные базы для одного из внутренних RAG-пайплайнов. Weaviate заняла на настройку схемы часа два, зато потом гибридный поиск сразу поймал точные совпадения по артикулам инструментов, которые обычный векторный поиск пропускал».
Изображение

Встроенная генерация эмбеддингов зачем она нужна

Weaviate умеет сама считать эмбеддинги через модули-векторайзеры прямо внутри базы, без отдельного вызова API модели эмбеддингов. Это упрощает пайплайн, но привязывает вас к конкретному провайдеру эмбеддингов на уровне конфигурации.

Обычно процесс выглядит так: вызвать API модели эмбеддингов, получить вектор, загрузить его в базу отдельным шагом. Weaviate убирает средний шаг. Настраиваете модуль-векторайзер один раз, а дальше просто загружаете текст — база сама считает embedding и сохраняет его. Меньше кода, меньше точек отказа в пайплайне.

Обратная сторона: вы завязываетесь на конкретный векторайзер на уровне схемы. Смена модели эмбеддингов означает пересчет всей коллекции заново, и это стоит учитывать заранее, если вы планируете экспериментировать с разными моделями.

Изображение

Что такое Chroma DB и чем она отличается от обычной СУБД

Chroma DB — минималистичная встраиваемая база: HNSW-индекс плюс SQLite для метаданных, обернутые в Python-дружелюбный API. В простейшем случае работает прямо в процессе приложения, без отдельного сервера вообще.

Установка — pip install chromadb. Дальше пять строк кода, и у вас есть работающее векторное хранилище. Для локальных экспериментов, jupyter-ноутбуков и небольших прототипов это ровно то, что нужно: не нужно поднимать инфраструктуру, настраивать сеть, следить за отдельным процессом.

Именно с Chroma DB стартует подавляющее большинство RAG-проектов, и не просто так. Простота здесь работает как суперсила на этапе прототипирования. Но у той же простоты есть предел масштабирования, к которому мы вернемся ниже.

Изображение

Фильтрация в Chroma DB и Weaviate в чем разница

Weaviate использует single-stage фильтрацию через инвертированный индекс на основе roaring bitmap — фильтр и поиск идут одновременно внутри обхода графа. Chroma исторически применяла post-filtering: сначала находит похожие векторы, потом отбрасывает несовпавшие по фильтру.

Разница звучит технически, но на практике бьет по продакшену жестко. Реальные RAG-запросы почти никогда не выглядят как «найди похожие векторы» — обычно это «найди похожие векторы, где user_id равен такому-то и дата документа позже января». Если фильтр селективный (скажем, отбирает 1% документов), а база сначала достает top-K векторов и только потом фильтрует, можно получить ноль релевантных результатов после отсева.

Weaviate решает это иначе: инвертированный индекс пересекается с обходом HNSW-графа прямо во время поиска, поэтому селективные фильтры остаются быстрыми без потери recall. У Chroma новые распределенные версии эту слабость подтягивают, но исторически это была её самая уязвимая точка. Если ваш продакшен-сценарий строится вокруг фильтров по пользователю, дате или тенанту, разница в архитектуре фильтрации перевешивает разницу в скорости на unfiltered-запросах.

Изображение

Weaviate или Chroma что выбрать для прототипа

Для чистого прототипа без сложной фильтрации Chroma DB быстрее в старте: ноль инфраструктуры, пять строк кода. Weaviate оправдана, когда прототип сразу включает гибридный поиск или сложные фильтры по метаданным — тогда проще сразу строить на правильной архитектуре.

ПараметрChroma DBWeaviate
Стартpip install, без сервераDocker-контейнер или облако
ИндексHNSW + SQLiteHNSW + инвертированный индекс
ФильтрацияPost-filtering (историческая слабость)Single-stage, лучшая в классе
Гибридный поискОграниченBM25 + вектор, встроен
Генерация эмбеддинговНет из коробкиВстроенные модули-векторайзеры
КвантизацияОграничена, float32 по умолчаниюРасширенная: product, binary с re-ranking
Цена (сентябрь 2026)Self-host бесплатно, облако до $250/месSelf-host бесплатно, облако $45–400/мес
Лучше всего дляЛокальный прототип, ноутбукиГибридный поиск, продакшен со схемой

Данные по ценам актуальны на сентябрь 2026 и могут измениться — Chroma уже дважды меняла тарифы в апреле 2026, снизив верхний план с $500 до $250 в месяц.

Изображение

Гибридный поиск в Weaviate когда он реально нужен

Гибридный поиск объединяет BM25 (keyword) и векторный поиск в одном запросе через reciprocal rank fusion. Это сигнатурная фича Weaviate — критична для документов с точными терминами вроде артикулов или названий функций, которые чистый векторный поиск пропускает.

Чистый векторный поиск отлично находит смысловые совпадения, но проваливается на точных совпадениях — модель артикула, код ошибки, редкое имя функции просто не имеют устойчивого семантического соседства. BM25 наоборот: ловит точные термины, но упускает смысловые связи. Weaviate запускает оба поиска одновременно и сливает результаты через reciprocal rank fusion.

Для каталогов продуктов, технической документации или RAG над кодовой базой это реальное преимущество, а не маркетинговая формулировка. Chroma DB подобного из коробки не предлагает — нужно собирать гибридную схему вручную поверх базового API.

Изображение

Chroma DB или Qdrant для быстрого локального теста

Для чистого локального прототипа без production-нагрузки Chroma DB стартует быстрее Qdrant: не нужен даже Docker. Qdrant при этом дает более серьезную фильтрацию и легче переносится в продакшен без переписывания логики.

Qdrant написан на Rust и архитектурно ближе к Weaviate: тоже single-stage фильтрация через payload-индекс, но легче и быстрее на чистых векторных нагрузках. У Qdrant нет встроенного гибридного BM25-поиска в том виде, что у Weaviate, зато self-host обычно обходится дешевле при сравнимой производительности.

Лиза: «Прикинь, для нашего внутреннего поиска по конспектам мы сначала подняли Chroma просто чтобы проверить гипотезу за вечер. Работало. Но когда пошли реальные фильтры по категориям, стало понятно, что дальше нужен либо Weaviate, либо Qdrant — разница именно в фильтрации, не в скорости поиска как таковой».

Квантизация в Weaviate и Chroma DB кому она нужна раньше

Weaviate поддерживает продвинутую квантизацию — product и binary с re-ranking, что экономит память в разы. Chroma по умолчанию хранит векторы как float32, поддержка квантизации там новее и менее зрелая.

Один эмбеддинг на 1536 измерений занимает около 6 КБ при float32. На 100 миллионах векторов это уже 600 ГБ оперативной памяти — дорого при любом хостинге. Scalar-квантизация до int8 сокращает объем в 4 раза почти без потерь recall. Binary-квантизация режет память в 32 раза, но требует re-ranking, чтобы вернуть точность.

Если ваш прототип с самого начала рассчитан на миллионы записей, зрелая квантизация Weaviate экономит реальные деньги на инфраструктуре. Для прототипа на тысячах или десятках тысяч векторов эта разница пока не критична — там выигрывает простота Chroma.

Изображение

Кому подходит Weaviate а кому Chroma DB

Chroma DB подходит для прототипа, локальной разработки и небольших нагрузок без сложной фильтрации. Weaviate — выбор, когда сразу нужен гибридный поиск, схема и путь в продакшен без миграции на другую базу.

  • Берите Chroma DB, если: вы тестируете гипотезу, работаете в ноутбуке, у вас нет времени поднимать инфраструктуру, объем данных — тысячи или десятки тысяч векторов.
  • Берите Weaviate, если: нужен гибридный поиск по точным терминам, фильтры селективные и по нескольким полям, вы планируете расти в продакшен без переписывания архитектуры.
  • Берите Qdrant вместо обеих, если: нужна максимальная скорость на чистых векторных запросах без гибридного поиска и хочется дешевый self-host.

Подробнее про установку и первый поиск в Qdrant — в отдельном гайде Qdrant: установка и первый поиск на Python. А общее сравнение трех главных игроков рынка — в статье Векторные базы: Pinecone vs Qdrant vs pgvector.

Изображение

Глоссарий

  • HNSW (Hierarchical Navigable Small World) — алгоритм приближенного поиска ближайших соседей через многослойный граф.
  • Embedding (эмбеддинг) — числовой вектор, представляющий смысл текста или изображения.
  • Recall@10 — метрика: сколько из истинных 10 ближайших соседей попало в реальную топ-10 выдачу.
  • Post-filtering — сначала поиск похожих векторов, потом отсев по фильтру.
  • Single-stage filtering — фильтр и поиск применяются одновременно внутри обхода индекса.
  • Гибридный поиск (hybrid search) — объединение keyword-поиска (BM25) и векторного поиска в одном запросе.
  • Квантизация — сжатие векторов для экономии памяти ценой части точности.

Часто задаваемые вопросы

Можно ли использовать Chroma DB в продакшене?
Да, через Chroma Cloud или распределенную open-source версию, но исторически архитектура заточена под single-node сценарии. Для высокой нагрузки с селективной фильтрацией лучше присмотреться к Weaviate или Qdrant.

Нужен ли Docker для запуска Weaviate?
Для локальной разработки да, обычно через Docker-контейнер. Есть управляемое облако Weaviate Cloud, где Docker не нужен вообще — от $45 в месяц на тарифе Flex.

Chroma DB бесплатна?
Open-source версия полностью бесплатна под лицензией Apache 2.0. Managed Chroma Cloud — от бесплатного стартового уровня до $250 в месяц на тарифе Team по состоянию на сентябрь 2026.

Поддерживает ли Chroma DB гибридный поиск?
Из коробки — ограниченно. Базовый гибридный поиск можно собрать вручную поверх API, но нативной BM25+vector fusion, как в Weaviate, там нет.

Что проще для новичка без опыта в бэкенде: Weaviate или Chroma?
Chroma DB проще на порядок для первого запуска — не нужна схема, не нужен отдельный сервер. Weaviate требует понимания схемы классов и свойств с самого начала.

Стоит ли сразу выбирать Weaviate, если планирую расти в продакшен?
Разумный подход — начать с Chroma для проверки гипотезы за один вечер, а после превышения примерно миллиона векторов или устойчивой нагрузки оценить реальную селективность фильтров в проекте и при необходимости мигрировать на Weaviate или Qdrant.

Есть ли встроенная генерация эмбеддингов в Chroma DB?
Нет, эмбеддинги нужно считать отдельным вызовом модели и передавать в базу. Weaviate умеет считать их сама через модули-векторайзеры.


Если разбираетесь, какая векторная база подойдет под ваш проект, посмотрите каталог обзоров AI-инструментов на vibecoderz.ru/ide или запишитесь на консультацию к Максиму — разберем архитектуру конкретно под вашу задачу.

Обновлено: сентябрь 2026

All Posts

Автор

Максим Наговицын
Максим Наговицын

Маркетинг-стратег, IT-предприниматель, ментор по вайбкодингу

2026/09/04

10+ лет в маркетинге, 300+ клиентских проектов: сайты, реклама, боты. Создатель GoBanana (228K+ пользователей, 11.6 млн ₽ выручки) и VibeCoderz. Делаю AI-продукты сам через Claude Code, Cursor, Windsurf и консультирую тех, кто хочет так же.

Об авторе →

Читать далее

📢 Новость

Claude Code: новый CLI-агент от Anthropic

Anthropic выпустила Claude Code — терминальный AI-агент для разработчиков. Инструмент работает прямо в командной строке и умеет писать, редактировать и запускать код.

2026/02/27
📝 Конспект

Zcode AI: Полный гид по визуальному интерфейсу для Claude Code и AI-агентов

Узнайте, как использовать Zcode для управления Claude Code, Gemini и Codex в едином GUI. Настройка провайдеров, MCP-серверов и визуальный вайбкодинг.

2026/02/28
📝 Конспект

YouTube-канал с монетизацией из любой точки мира: Пошаговый гайд 2026

Инструкция по созданию YouTube-канала: обход блокировок SMS, настройка расширенных функций через виртуальные номера и правила безопасности для монетизации.

2026/02/28
📝 Конспект

Windsurf Code Maps: Как глубоко понимать архитектуру проекта перед написанием кода

Полный гайд по Windsurf Code Maps, модели Sway 1.5 и Sway Grep. Узнайте, как визуализировать архитектуру кода и ускорить разработку в 13 раз.

2026/02/28
📝 Конспект

Vk Fast Cash Strategy

Аудитория ВКонтакте — это те же люди, что и в Instagram, но 'социальный контракт' площадки другой. Если Instagram — это 'дорогой ресторан' с демонстрацией успеха, то VK — это 'душевная шашлычная'. Здесь не работает глянцевый 'успешный успех

2026/02/28