# Query Transformation в RAG: Как научить ИИ понимать вас с полуслова

> **Трансформация запросов (Query Transformation) в системах RAG (Retrieval-Augmented Generation)** — это процесс автоматического изменения, переписывания или расширения исходного запроса пользователя перед его отправкой в векторную базу данных. Главная цель этого механизма — улучшить качество поиска релевантной информации, чтобы большая языковая модель (LLM) смогла сгенерировать максимально точный, полный и полезный ответ.

## Зачем нужна трансформация запросов?

Архитектура RAG работает по относительно простому базовому принципу: пользователь задает вопрос, система ищет семантически похожие тексты в базе знаний, а затем LLM формирует итоговый ответ на основе найденного контекста. Но именно на этапе поиска кроется главная уязвимость всей системы: **люди крайне редко формулируют свои вопросы идеально**.

Пользователи могут использовать специфический сленг, допускать опечатки, формулировать запросы слишком коротко или, наоборот, вписывать в одно предложение сразу несколько сложных мыслей. Векторный поиск, основанный на математической близости смыслов, может не справиться с таким «сырым» текстом. Проблема заключается в том, что формулировка повседневного вопроса часто кардинально отличается от того академического или технического стиля, которым написан правильный ответ в документации.

Трансформация запроса эффективно решает эту проблему. Она выступает в роли интеллектуального «переводчика» с путаного человеческого языка на структурированный язык, понятный поисковому алгоритму.

## Основные методы Query Transformation

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

- **Переписывание запроса (Query Rewriting):** LLM берет исходный текст и переформулирует его, исправляя ошибки, удаляя лишнюю информацию и добавляя важные ключевые слова. Например, невнятное *«почему не работает кнопка»* превращается в *«причины неисправности кнопки оплаты на сайте, ошибки интерфейса, сбой скрипта»*.
- **Декомпозиция (Sub-querying):** Сложный, многосоставный вопрос разбивается на несколько простых подзапросов. Если спросить *«Кто победил в битве при Ватерлоо и как это повлияло на экономику Франции?»*, система создаст два отдельных запроса: один про исторического победителя, второй про экономические последствия. Это позволяет найти более точные фрагменты текста для каждой части вопроса и дать комплексный ответ.
- **Step-back Prompting (Шаг назад):** Система генерирует более абстрактный, высокоуровневый запрос. Если пользователь спрашивает *«Почему вчера упали акции компании X?»*, трансформированный запрос может звучать как *«Общие макроэкономические факторы, влияющие на падение акций технологических компаний»*. Это помогает LLM получить широкий контекст для более глубокого анализа.
- **HyDE (Hypothetical Document Embeddings):** Вместо поиска по самому вопросу, LLM сначала генерирует гипотетический (выдуманный) ответ на него. Затем система ищет в базе данных реальные документы, которые семантически похожи на эту «галлюцинацию».

## Примеры использования в реальных задачах

Трансформация запросов активно и успешно применяется в современных корпоративных базах знаний, поисковиках и системах автоматизированной поддержки клиентов.

Представьте службу поддержки крупного интернет-провайдера. Раздраженный клиент пишет в чат-бот: *«инет отвалился горит красная лампа че делать»*. Если отправить эту фразу напрямую в базу знаний, векторный поиск может выдать статьи о том, как купить новую лампочку для офиса или как оплатить интернет банковской картой. Но благодаря Query Transformation система сначала перехватит и перепишет запрос: *«отсутствует подключение к интернету, на роутере горит красный индикатор LOS, диагностика неисправности сети»*. По такому структурированному запросу база данных мгновенно найдет нужную техническую инструкцию по перезагрузке роутера или проверке оптоволоконного кабеля.

## Интересный факт: Парадокс метода HyDE

Метод HyDE (Hypothetical Document Embeddings), представленный группой исследователей в 2022 году, на практике доказал удивительную вещь: **иногда «галлюцинации» нейросетей могут быть крайне полезными и даже необходимыми**.

Долгое время разработчики ИИ боролись с тем, что языковые модели выдумывают несуществующие факты. Но авторы HyDE решили использовать эту особенность во благо поиска. Они осознали, что векторное пространство документов гораздо лучше совпадает с другими документами (пусть и сгенерированными с фактическими ошибками), чем с короткими вопросами пользователей. Сгенерировав правдоподобный, но выдуманный ответ, система использует его как идеальный структурный шаблон для поиска реальных, достоверных фактов в базе знаний. Этот парадоксальный подход позволил кардинально повысить релевантность и точность поиска в RAG-системах без необходимости дополнительного дообучения моделей.
