core-ai
Словарь ↗Расширение запроса
Расширение запроса — это приём поиска, при котором исходный запрос пользователя преобразуется в один или несколько обогащённых запросов до обращения к индексу, чтобы документы, выражающие ту же мысль другими словами, всё же находились. Приём существует потому, что запрос, который человек набирает, и фрагмент, который на него отвечает, редко написаны одним словарём: пользователь спрашивает «почему у меня неправильный счёт», а в документации написано «пропорциональный пересчёт при смене тарифа в середине цикла», и одиночный поиск как по лексическому, так и по векторному индексу может вовсе не найти совпадения. Расширение сокращает этот разрыв со стороны запроса, а не со стороны корпуса. Форм несколько, и они сочетаются. Синонимическое и терминологическое расширение добавляет лексические варианты и отраслевую лексику, что в основном помогает ключевому поиску. Мультизапросное расширение просит языковую модель сгенерировать несколько перефразировок вопроса, выполняет поиск по каждой и объединяет результаты — обычно с помощью reciprocal rank fusion, чтобы документ, умеренно высоко оценённый многими вариантами, обошёл документ, высоко оценённый одним выбросом. Декомпозиция разбивает составной вопрос на части и ищет по каждой отдельно; именно она делает многошаговые вопросы отвечаемыми в принципе. Расширение «шаг назад» порождает более общую версию вопроса, чтобы подтянуть фоновый контекст, который конкретная формулировка никогда бы не достала. Расширение через гипотетический документ работает в обратную сторону: генерируется правдоподобный ответ, и эмбеддинг берётся с него, а не с вопроса, исходя из того, что ответы ближе к ответам, чем вопросы. Издержки реальны, и о них стоит сказать прямо. Каждый дополнительный запрос — это ещё один круг обращения к поиску, а там, где переписыванием занимается модель, ещё и вызов инференса до того, как пользователь увидит хоть что-то: расширение покупает полноту ценой задержки и расходов. Оно может и навредить точности: модель-переписчик, неверно понявшая двусмысленный запрос, уверенно вытянет нерелевантный материал, и в отличие от простого промаха этот материал дойдёт до этапа генерации и будет использован. Поэтому расширение обычно сочетают с реранкером, который восстанавливает точность на увеличенном и более шумном множестве кандидатов. Практическое замечание: измеряйте полноту до и после на фиксированном оценочном наборе, а не судите по ощущениям, и кэшируйте сами расширения — пользовательские запросы повторяются, и переписывать один и тот же вопрос моделью на каждом обращении — самая легко устранимая статья расходов в поисковом конвейере.
Похожие термины