Словарь ИИ
Что такое би-энкодер
Коротко
Би-энкодер это схема поиска, в которой вопрос и документы превращаются в векторы по отдельности, а потом сравниваются по близости чисел.
Поиск и 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.
Пример
Служба поддержки хранит векторы всех старых обращений. Новое письмо клиента кодируется за миллисекунды, и оператор сразу видит похожие случаи с готовыми решениями.
Связанные термины
Вопросы и ответы
Почему би-энкодер быстрее кросс-энкодера?
Би-энкодер и эмбеддинг-модель это одно и то же?
Источники
Где это применяют в компании
Не уверены, нужно ли это вашей компании?
Карта ИИ-решений