О чём урок
Этот notebook представляет примеры использования кросс-энкодера для переранжирования результатов поиска. Это распространенный сценарий использования среди наших клиентов, когда вы реализовали семантический поиск с использованием embeddings (полученных с помощью bi-encoder), но результаты не так точны, как того требует ваш сценарий использования. Возможная причина заключается в наличии бизнес-правила, которое можно использовать для переранжирования документов, например, по давности или популярности документа. Однако часто существуют тонкие, предметно-ориентированные правила, которые помогают определить релевантность, и именно здесь кросс-энкодер может быть полезен. Кросс-энкодеры точнее, чем bi-encoder'ы, но плохо масштабируются, поэтому их использование для переупорядочивания сокращенного списка, полученного семантическим поиском, является идеальным сценарием использования. Рассмотрим задачу поиска с D документами и Q запросами. Метод полного перебора для вычисления попарной релевантности является дорогостоящим; его стоимость масштабируется как D * Q. Это известно как cross-encoding. Более быстрый подход — это поиск на основе embeddings, при котором embedding вычисляется один раз для каждого документа и запроса, а затем многократно используется для недорогого вычисления попарной релевантности. Поскольку embeddings вычисляются только один раз, их стоимость масштабируется как D + Q. Это известно как bi-encoding. Хотя поиск на основе embeddings быстрее, качество может быть хуже. Чтобы получить лучшее от обоих подходов, один из распространенных подходов — использовать embeddings (или другой bi-encoder) для недорогого выявления лучших кандидатов, а затем использовать GPT (или другой cross-encoder) для дорогостоящего переранжирования этих лучших кандидатов. Стоимость этого гибридного подхода масштабируется как (D + Q) * cost of embedding + (N * Q) * cost of re-ranking, где N — количество переранжированных кандидатов. Чтобы проиллюстрировать этот подход, мы будем использовать text-davinci-003 с включенным logprobs для создания кросс-энкодера на базе GPT. Наши модели GPT обладают глубоким общим пониманием языка, что при fine-tuning с помощью нескольких few-shot примеров может предоставить простой и эффективный вариант cross-encoding. Этот notebook основан на замечательной статье Weaviate и этом превосходном объяснении bi-encoder'ов против кросс-энкодеров от Sentence Transformers.
План урока
- Пример
- Пошаговое руководство
- Поиск
- Кросс-энкодер
- Заключение
- Дальнейшие шаги
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.