Bi-encoder архитектура в retrieval системах

Термин глоссария

Bi-encoder


Bi-encoder — архитектура retrieval-моделей, в которой запрос и документ кодируются независимо в плотные векторы, а поиск выполняется по их семантической близости.

Определение

Bi-encoder — это архитектурный паттерн в задачах информационного поиска и семантического сопоставления, при котором используются два независимых энкодера: один для запроса, другой для документа (или объекта поиска). Каждый энкодер преобразует вход в вектор фиксированной размерности, после чего релевантность оценивается через метрику близости (косинусное сходство или dot-product). Bi-encoder является базовой архитектурой для dense retrieval, semantic search и большинства RAG-систем.

Как работает

1. Раздельное кодирование

Ключевая особенность bi-encoder — отсутствие прямого взаимодействия между запросом и документом на этапе кодирования:

  • Query encoder получает только текст запроса.
  • Document encoder получает только текст документа или его фрагмента.

Оба энкодера могут быть:

  • идентичными по архитектуре (siamese setup);
  • или разными, если запрос и документы имеют разную природу.

2. Формирование embedding space

Цель обучения — создать общее векторное пространство, где:

  • релевантные пары (запрос–документ) расположены близко;
  • нерелевантные пары — далеко.

Для этого используются:

  • contrastive loss (InfoNCE);
  • in-batch negatives;
  • hard negatives (из BM25, sparse retrieval или предыдущих моделей).

3. Поиск и масштабирование

После обучения:

  • все документы кодируются заранее;
  • векторы сохраняются в ANN-индексе (HNSW, IVF, PQ);
  • запрос кодируется в реальном времени;
  • поиск выполняется как nearest neighbor search.

Именно независимость кодирования делает bi-encoder масштабируемым до миллионов и миллиардов документов.

Где применяется

  • Dense retrieval и semantic search.
  • Retrieval-augmented generation (RAG).
  • Поиск по документации, FAQ, knowledge base.
  • Мультимодальный retrieval (текст–изображение, текст–видео).
  • Candidate generation в многоступенчатых поисковых системах.

Практические примеры использования

Классический пример — DPR (Dense Passage Retrieval), где bi-encoder обучается находить релевантные абзацы для вопросов. Современные модели E5, BGE, Contriever, GTR используют bi-encoder архитектуру как основу. В RAG-системах bi-encoder отвечает за быстрый отбор кандидатов, которые затем переранжируются cross-encoder или LLM.

В мультимодальных системах bi-encoder применяется для cross-modal retrieval: текст и изображение кодируются разными энкодерами, но проецируются в общее embedding-пространство (CLIP-подобная схема).

Ключевые свойства

  • Независимое кодирование запросов и документов.
  • Высокая скорость и масштабируемость.
  • Совместимость с ANN-индексами.
  • Подходит для предварительного отбора кандидатов.
  • Простота деплоя и обновления индекса.

Проблемы и ограничения

  • Отсутствие взаимодействия запроса и документа на уровне токенов.
  • Более низкая точность по сравнению с cross-encoder.
  • Трудности с длинными и сложными запросами.
  • Потеря тонких контекстных соответствий.
  • Зависимость качества от negative sampling.

Преимущества и ограничения

  • Плюс: высокая производительность и масштабируемость.
  • Минус: ограниченная точность без дополнительного re-ranking.

Связанные термины

  • Cross-encoder
  • Dense retrieval
  • ANN search
  • Hybrid search
  • RAG

Категория термина

Работа с данными и векторами