
Cегодня для всех пользователей GigaChat Web мы выпустили новую фичу — ссылки на источник. Самым сложным при реализации этой функции было обучить GigaChat генерировать специальные маркеры, указывая таким образом, на основе какого источника сгенерирована та или другая часть ответа.
Кому интересно, как мы это сделали, добро пожаловать под кат.
Что такое GigaSearch?
GigaSearch — это система генерации ответа на основе поисковой выдачи, она бесшовно включается для пользователя, когда необходимо дать фактологически точный ответ. Кстати, рекомендуем к прочтению нашу недавнюю статью про эту технологию. Такой подход в англоязычной литературе называется RAG (Retrieval-Augmented Generation), он позволяет LLM использовать внешние данные. Про использование подхода также недавно рассказывали в OpenAI.
Зачем давать ссылки на источники?
Есть несколько целей, которые мы преследовали при реализации этой функциональности. Во-первых, теперь пользователь может проверить корректность ответа, кликнув по ссылке и перейдя на первоисточник, если его по той или иной причине смущает ответ LLM.

Во-вторых, это позволяет пользователю получить больше информации, при желании воспользовавшись ссылками.
Согласитесь — приятный бонус по сравнению с чисто текстовым ответом.
Дообучаем GigaChat возвращать источники
Теперь о самом интересном. Напоминаю, что GigaSearch работает по простой схеме: мы подкладываем в промпт GigaChat-а документы, которые релевантны запросу пользователя.
Дальше нам предстояло научить GigaChat сообщать, какие из предоставленных документов он использовал в ответе, а какие нет. Для этого мы собрали датасет пар запросов и ответов, к тому же в каждом ответе специальными маркерами SOURCES[X] указаны использованные источники. Пример такой пары ниже:


Каждая пара была провалидирована с помощью разметчиков на корректность ответа и ссылок. Далее, все корректные пары были добавлены в SFT (Supervised Fine-Tuning) датасет GigaChat-а. Напомню, SFT — это второй этап обучения LLM, первый — предобучение (pretrain). На втором этапе модель обучают следовать инструкциям.
После обучения GigaChat-а осталось лишь написать простой парсер, который будет вырезать из ответа спецстроки SOURCES[X] и передавать их позиции и индекс X в UI.
Попробуем?
Кому интересно — можно самим попробовать GigaSearch со ссылками в GigaChat Web. Чтобы появились ссылки, нужно задать фактологический вопрос, например:

Что дальше?
Мы планируем улучшать формат и качество работы ссылок на источники, а также GigaSearch в целом. В этой задаче нам максимально поможет ваше мнение, идеи и отзывы! Пообщаться с нами можно в комментариях Telegram-канала Salute AI или напрямую в нашем сообществе Salute AI Community.