Векторные базы данных — специализированные БД, хранящие и ищущие данные по "близости" (semantic similarity), а не по точному совпадению. Взлетели с эрой больших языковых моделей.
Что такое embedding
- Любой объект (слово, предложение, картинка) можно превратить в вектор чисел
- Векторы близких по смыслу объектов — близки в пространстве
- "Собака" и "пёс" — векторы рядом
- "Собака" и "автомобиль" — далеко
- Размерность обычно 128–1536 чисел
Как получают embedding
- OpenAI: text-embedding-3-small, -large
- Cohere: embed-english-v3
- Open-source: sentence-transformers (MiniLM, BGE)
- Русский: multilingual модели, или специализированные (RuBERT, SBER BigBird)
Задача поиска
Есть миллион текстов, преобразованных в векторы. Пришёл запрос, превращён в вектор. Найти топ-10 ближайших.
Наивно: считать расстояние до каждого — O(N). Миллион — возможно, миллиард — нет.
ANN-индексы
Approximate Nearest Neighbor — приближённый поиск ближайших. Быстро (миллисекунды), но может пропустить топ-1.
- HNSW (Hierarchical Navigable Small World): самый популярный. Граф, где ближайшие связаны
- IVF (Inverted File Index): кластеры
- LSH (Locality Sensitive Hashing)
- FAISS от Facebook — библиотека
Векторные БД
- Pinecone: облачная managed БД
- Weaviate: open-source, с фильтрацией
- Milvus: open-source, масштабируемый
- Qdrant: Rust-based, быстрый
- Chroma: для dev/prototype
- PostgreSQL + pgvector: добавляет векторные операции в обычный Postgres
- Elasticsearch/OpenSearch: тоже умеют
RAG
Retrieval-Augmented Generation — главный случай использования.
- У пользователя вопрос
- Получаем embedding вопроса
- Ищем в векторной БД релевантные документы
- Эти документы + вопрос отправляем в LLM
- LLM отвечает с учётом найденной информации
Зачем RAG
- LLM "знает" только тренировочные данные — устаревают
- Компании хотят, чтобы LLM отвечал на основе их документов
- Снижает галлюцинации
- Дешевле, чем fine-tuning
Чанкинг
Перед embedding большие документы делят на чанки (фрагменты) 200-1000 токенов. Каждый чанк — свой вектор.
- Фиксированный размер
- По смысловым границам (параграфы, предложения)
- С overlap для непрерывности
Проблемы
- Качество поиска: embeddings не всегда попадают в смысл
- Обновления: переиндексация большая
- Синонимы и контекст: "банк" — финансовый или берег реки?
- Гибридный поиск: комбинация векторного и лексического (BM25) часто лучше
Метрики качества
- Recall@K: процент релевантных документов в топ-K
- MRR (Mean Reciprocal Rank)
- NDCG
- Human evaluation — самое надёжное
Применения
- Поиск документации
- Чатботы с корпоративными знаниями
- Рекомендации: "похожие товары/песни/видео"
- Модерация контента
- Детекция дубликатов
- Перевод (вектора одного языка близки вектору другого)
- Анти-fraud: нахождение похожих мошеннических паттернов
Стоимость
- Embedding через OpenAI: $0,02–0,13 за 1M токенов
- Собственный: GPU или CPU-модели
- Хранение: 1536 float32 = 6KB на вектор. Миллион — 6GB
- Запросы: тысячи в секунду на типовой инфраструктуре
Тренды
- Мультимодальные embeddings: текст + картинки (CLIP, SigLIP)
- Учат сразу с графом знаний
- Долговременная память для LLM-агентов
- Оптимизация хранения (квантизация до int8)
Есть вопрос?
Вопросы и ответы · 0
Не поняли что-то?
Зарегистрируйтесь — и сможете задать вопрос автору объяснения.
Загрузка комментариев…