Прикручивая ризонинг к RAGу (retrieval-augmented generation - генерации по внешним источникам информации/ответы по документам)
Попробовали просто раг поверх
QwQ (на ней весь ризонинговый ресерч стоит) + еще сделали так назвываемый
o1-search (тоже работает поверх QwQ), который состоит из двух модулей:
"Агентный RAG-механизм":
* Модель сама решает, когда искать внешние данные.
* Запросы для поиска формируются автоматически в процессе рассуждения
* Многократное использование поиска в одной задаче.
Моделька рассуждает, когда она считает что ей нехватает знаний, то сама вызывает поиск, получает документы, дальше рассуждает уже с новой информацией.
Модуль Reason-in-Documents (ризонит по релевантным документам):
*анализирует полученные документы (по текущему запросу, полученным релевантным документам и по предыдущей цепочке рассуждений)
*выделяет только полезную информацию
Как это все в целом работает на инференсе:
На вход получаем вопросы пользователя + инструкция по задаче;
*генерим по каждому (вопросу + инструкция) цепочку рассуждений которую нужно будет завершить.
*Начинаем генерить цепочку. Модель может захотеть поискать инфу - и сгенерит запрос в <|begin_search_query|> запрос <|end_search_query|> - идем ищем в документе, получаем релевантные чанки;
* (вопрос + инструкция) + найденные релевантные части документов + текущая цепочка рассуждений -> в Reason-in-Documents модуль, из которого нам уже возвращается хорошо подготовленная информация (формируется результат поиска) в <|begin_search_result|> результаты <|end_search_result|> тегах, вставляем это в текущую цепочку рассуждений;
* продолжаем рассуждать
И так пока все сформированные изначально цепочки не сгенерим.
Так понял, результы на скринах (RAgent и o1-search).
Search-o1: Agentic Search-Enhanced
Large Reasoning Models
https://arxiv.org/abs/2501.05366https://github.com/sunnynexus/Search-o1Ризонинговый дождь
☔️