Урок 3

Векторные базы данных

Pinecone, Chroma, Weaviate

Проблема: RAG должен быстро находить релевантные документы из миллионов записей. Обычные базы данных ищут по ключевым словам, но нам нужен поиск по смыслу. Как?

Решение: Умная картотека

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

Представьте это как библиотека с каталогом карточек — HNSW-индекс как библиотекарь, знающий короткие пути между секциями:

  • 1. Разбиваем документы на чанки: Разбиваем большие документы на чанки по 200-500 токенов с перекрытием — сохраняем границы абзацев и секций
  • 2. Генерируем эмбеддинги: Пропускаем каждый чанк через модель эмбеддингов (например, text-embedding-3-small) для получения 1536-мерного вектора
  • 3. Сохраняем в векторную БД: Индексируем векторы с помощью HNSW для поиска за доли миллисекунды — храним метаданные (источник, страница, дата) вместе с вектором
  • 4. Эмбеддим запрос: Когда приходит запрос пользователя, конвертируем его в вектор той же моделью эмбеддингов
  • 5. Находим ближайшие чанки: Векторная БД возвращает top-K наиболее похожих чанков (обычно K=3-10) — они становятся контекстом для LLM

Размер чанка важен: слишком маленький = потеря контекста, слишком большой = шум. Обычный оптимум: 200-500 токенов с 10-20% перекрытием между чанками.

Популярные векторные базы данных

  • Pinecone: Полностью управляемая, простая в использовании
  • Weaviate: Open source, богатый функционал
  • Chroma: Лёгкая, дружелюбная к разработчикам
  • pgvector: Расширение Postgres, знакомые инструменты

Интересный факт: Векторный поиск находит релевантные документы даже при нулевом совпадении слов! Поиск "как починить разбитое сердце" в медицинской базе правильно вернёт статьи по кардиологии, а не поэзию — потому что эмбеддинги учитывают контекст домена, а не только сходство слов.

Попробуйте сами!

Используй интерактивный пример ниже, чтобы увидеть, как поиск по векторной похожести находит семантически связанный контент.

Попробуй сам

Интерактивное демо этой техники

Сравнение техник
Демо режим
Предзаписанные ответы
ЗадачаНачинающийАнализ

Найти релевантные документы: ключевой поиск vs семантический поиск

Без техники
Без техники
Промпт
Поиск по ключевому слову "как отменить подписку" в базе FAQ. Результаты SQL LIKE: WHERE text LIKE "%отменить подписку%"
Ответ

Найдено 1 результат:

  • "Как отменить подписку: зайдите в настройки → подписки → отменить"

Пропущено:

  • "Возврат средств за неиспользованный период" (релевантно, но нет слова "отменить")
  • "Приостановить ежемесячный платёж" (синоним, но другие ключевые слова)
  • "Удалить аккаунт и все данные" (связанная тема)
Токены:30/85
Время:45ms
Качество:
С Векторные БД
С техникой
Промпт
Семантический поиск: запрос "как отменить подписку" → embedding → cosine similarity по векторной БД. Найди топ-5 релевантных документов по смыслу, не по ключевым словам.
Ответ

Топ-5 по cosine similarity:

  1. (0.95) "Как отменить подписку: настройки → подписки → отменить"
  2. (0.89) "Возврат средств за неиспользованный период подписки"
  3. (0.85) "Приостановить ежемесячные платежи на время отпуска"
  4. (0.82) "Изменить тариф или перейти на бесплатный план"
  5. (0.78) "Удалить аккаунт и все связанные данные"
👁️Keyword search находит только точные совпадения слов — пропускает синонимы и связанные темы
🧠Vector embedding кодирует СМЫСЛ: "отменить подписку" ≈ "прекратить платежи" ≈ "возврат средств"
Cosine similarity ранжирует по близости смысла → 5 релевантных результатов вместо 1
Токены:35/110
Время:120ms
Качество:
Почему это работает

Векторный поиск находит документы по СМЫСЛУ, а не по словам. "Отменить подписку" находит и "возврат средств", и "приостановить платежи" — потому что embedding кодирует семантику.

1 / 2

Квиз по уроку

1 из 3

1.Какова основная цель векторных баз данных в приложениях на LLM?

Практика

Создайте бесплатный аккаунт для решения челленджей

4 челленджей с AI-проверкой для этого урока

Связанные уроки:RagEmbeddings

Этот урок — часть структурированного курса по LLM.

Мой путь обучения