ММООЗЗГГ.ru

Словарь ИИ

Что такое би-энкодер

Коротко

Би-энкодер это схема поиска, в которой вопрос и документы превращаются в векторы по отдельности, а потом сравниваются по близости чисел.

Поиск и RAG · bi-encoder

Михаил МозгПроверено: 1 минута чтения

Ребенку

У каждого ученика в классе есть карточка с любимыми занятиями. Учитель заполнил карточки заранее, еще в сентябре. Когда новенький приходит в класс, ему тоже дают карточку, и сразу видно, с кем у него похожие увлечения. Не надо знакомить его с каждым по очереди. Би-энкодер так же заранее делает карточки всем документам.

Простыми словами

Представьте библиотеку из огромного числа статей. Если внимательно сравнивать вопрос с каждой, ответа придется ждать долго. Би-энкодер решает это иначе. Все статьи заранее, один раз, переводятся в наборы чисел и складываются в базу. Когда приходит вопрос, в числа переводят только его и ищут в базе ближайшие наборы. Это занимает доли секунды. Плата за скорость: вопрос и статья ни разу не встречаются внутри модели, поэтому тонкие различия по смыслу она иногда пропускает. Например, «как отменить заказ» и «как оформить заказ» могут оказаться рядом.

Для бизнеса

На этой схеме держится почти любой поиск по смыслу в корпоративных ассистентах. Основные расходы разовые: посчитать векторы для всех документов и хранить их в векторной базе. Каждый вопрос потом стоит дешево, поэтому схема выдерживает большие базы и много пользователей. Подводные камни: при смене модели всю базу пересчитывают, а модель, обученная на общих текстах, может плохо различать термины вашей отрасли. Точность добирают вторым шагом, переранжированием найденного. Объем базы и число пользователей определяют, хватит ли одного сервера, и это считают при выборе оборудования.

Для специалиста

Би-энкодер (bi-encoder, dual encoder) кодирует запрос и документ независимо, часто одной сетью с общими весами (сиамская архитектура), а релевантность считает простой функцией двух векторов: скалярным произведением или косинусом. Преимущество в том, что представления корпуса вычисляются заранее и индексируются для приближенного поиска ближайших соседей. Humeau и др. (2019) противопоставили такую схему кросс-энкодеру: би-энкодер быстрее, но уступает в точности, поскольку не видит взаимодействия токенов запроса и документа. Dense Passage Retrieval (Karpukhin и др., 2020) показал, что двойной энкодер, обученный на небольшом числе пар «вопрос и фрагмент», опережает Lucene-BM25 на 9-19 пунктов по точности top-20. Обучают такие модели контрастно, с отрицательными примерами из того же батча (in-batch negatives) и трудными отрицательными. Промежуточные решения между двумя схемами: поли-энкодер и позднее взаимодействие в ColBERT.

Пример

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

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

Вопросы и ответы

Почему би-энкодер быстрее кросс-энкодера?

Векторы всех документов считают заранее, один раз. На вопрос модель кодирует только сам вопрос, а дальше идет быстрое сравнение чисел.

Би-энкодер и эмбеддинг-модель это одно и то же?

Почти. Эмбеддинг-модель для поиска обычно и работает как би-энкодер: одна сеть кодирует и вопросы, и документы. Слово «би-энкодер» подчеркивает схему сравнения, а «эмбеддинг-модель» называет сам инструмент.

Источники

Где это применяют в компании

Не уверены, нужно ли это вашей компании?

Карта ИИ-решений
Написать в Telegram