Петля времени в пайплайне для уменьшения числа галлюцинаций в LLM

Это — грубая схема работа RAG-пайплайна, который использует одна из ML-команд в YADRO.
Задача команды: улучшить качество выдаваемых ответов на запросы пользователей, исключив галлюцинации.
Что сделали инженеры?
Решили дообучить базовую модель при помощи LoRA на специально собранном датасете для ситуаций, когда в контексте нет ответа на вопрос пользователя. На тот момент в качестве базовой модели LLM использовали saiga_mistral_7b, которая нетребовательна к ресурсам и долгое время была в топе на Russian SuperGLUE. Есть модели лучше, но, как правило, они либо огромные, либо имеют проблемы с лицензией в России, в том числе все, что основаны на LLaMa.
Самое главное: в этом RAG-пайплайне ML-инженеры решили сделать опциональную петлю, в которой проверяли бы каждый найденный фрагмент контекста на релевантность вопросу пользователя. Только те куски контекста, которые пройдут проверку, будут попадать в финальный вопрос для LLM.
Чтобы петля фильтрации работала правильно, нужен некий маркер, который позволяет однозначно определить, что модель считает кусок контекста нерелевантным.
Что это и за маркер? И к каким результатам привела оптимизация работы модели, читайте по ссылке →
Спойлер: Модель DeepSeek-R1-Distill-Qwen-7B уступила saiga_mistral_7b по качеству, несмотря на то, что первая намного новее и вооружена механизмом reasoning.