Перейти к основному содержимому

Применение AI-инструментов

В продукте СУБД Pangolin реализована функциональность векторных данных на базе расширения vector, которая предназначена для хранения векторных представлений (эмбеддингов) и выполнения поиска по сходству непосредственно в базе данных, что обеспечивает интеграцию AI-задач — семантического поиска, рекомендательных систем, классификации и других — с гарантиями ACID, репликацией и возможностью восстановления на определенный момент времени.

Векторные данные как основа когнитивных функций

Когнитивные функции СУБД Pangolin — обработка естественного языка и семантический анализ — опираются на векторные типы хранения данных:

  • Хранение эмбеддингов. Векторные типы (vector, halfvec, bit, sparsevec) служат хранилищем численных представлений текста, изображений и аудио, полученных от нейросетевых моделей (например, GigaChat). Это позволяет базе данных работать с семантическим содержанием данных, а не только с их структурным представлением. Различные типы покрывают спектр сценариев — от высокоточных моделей с плавающей запятой до разреженных векторов и двоичных представлений.

  • Семантический поиск и анализ. Поиск по сходству (нахождение ближайших соседей в векторном пространстве) лежит в основе когнитивных возможностей системы:

    • Семантический поиск — понимание намерения пользователя за текстовым запросом и сопоставление его с релевантными объектами базы данных по смыслу, а не по ключевым словам;
    • Классификация и кластеризация — автоматическая группировка схожих запросов, данных или результатов, что позволяет LLM-модулю опираться на исторические паттерны при генерации рекомендаций;
    • Поиск дубликатов и аналогов — выявление семантически эквивалентных запросов, что снижает нагрузку и улучшает качество кэширования ответов.
  • Встроенное векторное хранилище. Векторные типы позволяют размещать эмбеддинги и выполнять поиск по сходству непосредственно внутри Pangolin, без необходимости отдельного векторного хранилища. Это дает когнитивным функциям гарантии ACID, встроенную репликацию и возможность восстановления на точку во времени (PITR), а индексы HNSW и IVFFlat обеспечивают ускоренный поиск даже на миллионах векторов.

к сведению

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

Описание алгоритма работы векторного поиска

  1. Пользователь создает таблицу с векторным полем, указывая тип и размерность векторов (vector, halfvec, bit, sparsevec).
  2. Сервис собирает информацию о текущей конфигурации индексов (HNSW или IVFFlat), метриках расстояния (L2, L1, косинусное, внутреннее произведение, Хэмминг, Жаккард) и параметрах запросов.
  3. На основании выбранного типа индекса и метрики расстояния формируется план выполнения запроса:
  • HNSW — обход многослойного графа с параметром hnsw.ef_search, определяющим размер динамического списка кандидатов;
  • IVFFlat — поиск по инвертированным спискам с параметром ivfflat.probes, определяющим количество проверяемых списков.
  1. Результатом выполнения запроса является набор ближайших соседей, отсортированный по выбранной метрике расстояния, с возможностью фильтрации по дополнительным условиям (WHERE) и ограничения количества результатов (LIMIT).
к сведению

Функциональность не изменяет существующие механизмы хранения и индексирования данных Pangolin. Расширение vector предоставляет дополнительные типы данных, операторы и типы индексов, интегрированные в стандартный планировщик запросов.

Ключевые возможности

Расширение vector имитирует следующие возможности, характерные для специализированных векторных баз данных:

ВозможностьОписание
Хранение векторовПоддержка типов vector (одинарная точность), halfvec (половинная точность), bit (двоичные), sparsevec (разреженные)
Вычисление расстоянийL2, L1, косинусное, внутреннее произведение, Хэмминг (для bit), Жаккард (для bit)
Точный поискПолное сканирование таблицы с вычислением точных расстояний между векторами
Приблизительный поискИндексы HNSW и IVFFlat для ускорения поиска ближайших соседей
ACID-совместимостьВекторные данные участвуют в транзакциях наравне с обычными столбцами
Репликация и PITRИспользование WAL-журнала для репликации и восстановления на точку во времени
Гибридный поискИнтеграция с полнотекстовым поиском PostgreSQL
Агрегатные функцииAVG(), SUM() для вычисления средних и суммарных векторов
МасштабированиеВертикальное — через настройки Pangolin, горизонтальное — через реплики или Citus

Примеры использования СУБД Pangolin при интеграционном подключении генеративного искусственного интеллекта (например GigaChat):

  • Семантический поиск по базам знаний. Понимание намерения пользователя за текстовым запросом и сопоставление его с релевантными объектами базы данных по смыслу, а не по ключевым словам;
  • Системы вопросов и ответов (Q&A) на основе RAG. Извлечение контекста из корпоративной базы знаний и передача его языковой модели для генерации точных и обоснованных ответов;
  • Классификация и маршрутизация запросов. Автоматическая категоризация входящих обращений, запросов поддержки или документов на основе векторного сходства с эталонными образцами;
  • Поиск дубликатов и аналогов. Выявление семантически эквивалентных запросов и записей для устранения дублирования, кэширования результатов и снижения вычислительной нагрузки;
  • Рекомендательные системы. Рекомендация релевантных объектов (товаров, документов, статей) на основе векторной близости профиля пользователя к каталогу объектов;
  • И другие.