Google придумала, как учить поиск думать подзапросами — без сотен промежуточных рассуждений
В блоге Google вышла интересная работа про Retrieve for Train — подход, который помогает делать multi-hop RAG и расширять поисковый запрос без явной генерации длинной цепочки подзапросов.
Проблема знакомая: хорошая поисковая система должна выдавать не одну «лучшую ссылку», а связный набор результатов, которые вместе закрывают исходный запрос.
Например, на запрос «походное снаряжение» хочется получить не десять одинаковых страниц про палатки, а нормальный набор: палатка, спальник, горелка, фонарь, посуда, еда и всё остальное, без чего поход быстро превращается в эксперимент на выживание.
Для этого используют query fan-out — широкий запрос разбивается на несколько подзапросов, которые собирают разные части ответа.
Но у LLM здесь две беды:
— коллапс парафраз: модель генерирует почти одинаковые подзапросы разными словами
— задержка авторегрессии: чтобы спланировать разбиение, модель долго пишет промежуточные рассуждения и разгоняет latency
И вот здесь появляется R4T.
Идея такая: сначала обучить модель через RL генерировать хорошие подзапросы, а затем сдистиллировать её поведение в лёгкую диффузионную модель, которая работает уже не с текстом, а с эмбеддингами — и выдаёт результат за один проход.
На первом этапе берут FOLM на базе Qwen3 4B или Gemma3 похожего размера. Модель генерирует текстовые подзапросы и получает награду по трём осям:
— Groundedness — подзапрос должен соответствовать реальному объекту в поисковой базе
— Diversity — подзапросы должны быть разными по смыслу, а не синонимами друг друга
— Alignment — подзапросы должны оставаться связанными с исходным запросом, без семантического побега в соседнюю вселенную
Интересный момент: отдельная модель-судья не нужна. Награды считаются через эмбеддер самой векторной базы, при этом его не дообучают и не меняют.
После RL-обучения FOLM генерирует несколько траекторий подзапросов. Их превращают в эмбеддинги и используют для обучения маленькой диффузионной модели на 53,9 млн параметров.
Она учится отображать:
исходный эмбеддинг запроса → набор целевых эмбеддингов подзапросов.
В проде это даёт главное преимущество: вместо того чтобы заставлять LLM долго писать текстовые подзапросы и рассуждения, система сразу получает K эмбеддингов подзапросов и отправляет их в поиск.
Результат выглядит бодро:
— ускорение в 12–20 раз
— авторегрессионные подходы могут занимать до 50 секунд
— R4T укладывается в доли секунды или несколько секунд
— качество выше, чем у zero-shot и Best-of-N
Post #5862
142