Раньше вопросно-ответные системы на базе RAG были "только для чтения".
Один раз загрузили документы — и дальше ассистент лишь вытаскивает фрагменты и отвечает.
А теперь появляется более интересная идея: ассистент может становиться умнее после запуска — не через переобучение модели, а через аккуратное пополнение базы знаний тем, что он сам сгенерировал в ходе работы.
Но тут же ловушка: если просто “дописывать всё подряд”, база очень быстро засорится выдумками и начнётся самоподкрепляющаяся деградация — ассистент будет находить и подтверждать собственные ошибки.
В статье предложена архитектура, которая решает эту проблему: двунаправленный RAG — RAG с безопасной обратной записью в базу знаний через многоступенчатую проверку качества.
Почему обычный RAG "не учится" и теряет ценность после внедрения
Классический RAG решает сразу несколько задач:
- обходит ограничение “знания модели заканчиваются на момент обучения”
- добавляет предметные знания без переобучения
- снижает риск выдумок, потому что ответ строится на внешних источниках
Но у него есть фундаментальный минус: корпус (база знаний) статичен.
Система устроена так, что поток идёт в одну сторону: запрос → поиск по базе → генерация ответа
И всё.
А теперь важная мысль: во время реальной эксплуатации ассистент постоянно генерирует очень ценные “артефакты знаний” — пояснения, выжимки, синтез информации из разных фрагментов. Часто это даже полезнее, чем исходные куски документов.
Но мы эти артефакты… просто выбрасываем после каждого ответа.
Отсюда естественный вопрос: а почему бы не сохранять лучшие ответы, чтобы потом находить их поиском и отвечать быстрее и точнее?
Почему “дописывать всё подряд” убивает систему
Кажется, что решение простое:
- ответили на вопрос
- добавили ответ в базу
- в следующий раз будет лучше
Но есть главная угроза: наивная запись всех ответов обратно быстро загрязняет базу выдумками, и дальше запускается цикл деградации — система начинает подтверждать собственные ошибки и ухудшается итерация за итерацией.
Это важная управленческая мысль:
- ошибки в ответах не просто “случаются”
- они могут стать частью базы знаний
- а значит — превратиться в “официальную правду” для самой же системы
И вот почему это особенно опасно: загрязнение базы трудно откатить, поэтому лучше иногда “недобавить полезное”, чем один раз добавить вредное. Ложные отказы лучше ложных допусков.
Что такое двунаправленный RAG и где тут “обучение после запуска”
Предлагается схема, в которой поток становится двусторонним:
Прямой путь (как в обычном RAG)
- запрос
- поиск в базе
- генерация ответа на основе найденных фрагментов
Обратный путь (новое)
- проверка качества ответа
- если ответ прошёл проверки — добавить его в базу
- если не прошёл — не добавлять, но сохранить причины отказа
То есть система “учится” не через переобучение модели, а через управляемое расширение базы знаний.
“Приёмочный шлюз”: три проверки перед записью в базу
Ключевая часть — многоступенчатый слой принятия, который решает задачу безопасности: что можно записывать, а что нельзя.
Проверки идут последовательно:
Проверка 1. Опора на источники
Смысл: каждое предложение ответа должно следовать из найденных документов.
Используются модель проверки “следует / не следует” между фрагментом источника и предложением ответа.
И вводят порог: средняя оценка опоры должна быть не ниже 0,65, иначе ответ не принимается.
Проверка 2. Проверка ссылок на источники
Смысл: если ответ содержит ссылки на документы, они должны ссылаться на то, что реально было найдено поиском.
Иначе — отказ.
Проверка 3. Проверка новизны
Смысл: не плодим дубликаты и почти-дубликаты.
Если новый ответ слишком похож на то, что уже есть в базе, то добавлять его бессмысленно и даже вредно (раздувает базу).
Порог новизны в статье: не ниже 0,10.
И вот после трёх проверок происходит простое решение: принять и записать / отклонить и не записывать.
Почему журнал отказов важен не меньше, чем “принятые ответы”
Одна из сильных идей статьи: кроме “принятых” ответов, авторы предлагают хранить журнал причин отказов — то есть объяснения, почему ответы не прошли проверку.
И использовать этот журнал при будущих запросах: подмешивать прошлые предупреждения и ошибки, чтобы ассистент не повторял те же провалы.
Это очень практичный подход:
- даже если мы не записали ответ в базу знаний
- мы всё равно получили пользу
- потому что система “помнит”, где она ошибалась
Независимые исследователи называют это “обучением без загрязнения базы”.
Что показали эксперименты: рост покрытия против риска и нагрузки
Авторы сравнили три системы:
- обычный RAG (статичный корпус)
- наивная запись обратно (пишем всё без проверки)
- двунаправленный RAG (пишем только после проверок)
Покрытие поиска
Покрытие — это доля запросов, для которых поиск находит релевантные материалы.
- обычный RAG: 20,33%
- наивная запись обратно: 70,50%
- двунаправленный RAG: 40,58%
То есть двунаправленный вариант почти вдвое лучше обычного RAG по покрытию, но при этом не “срывается в неконтролируемый рост”, как наивный вариант.
Рост корпуса
- наивная запись обратно добавила 500 документов
- двунаправленный RAG добавил 140 документов.
То есть на 72% меньше, чем наивный подход.
Качество ссылок
Тут очень показательно:
- обычный RAG: 58,26
- наивная запись обратно: 16,75
- двунаправленный RAG: 33,03
Наивный подход сильно “ломает доверие” к ссылкам — потому что база пополняется некачественными материалами и ссылки перестают быть точной опорой.
Двунаправленный RAG удерживает качество ссылок заметно лучше, потому что есть проверка и отбраковка.
Задержка
Да, проверки увеличивают время:
- обычный RAG: 31,9 секунды
- двунаправленный: 71,0
Исследования отмечают важный контекст: такой режим особенно разумен для офлайн-пополнения базы, где качество важнее скорости.
Как это выглядит “в компании”: перевод на практику
Если перевести идею статьи на реальный бизнес-процесс, получается понятная картина:
- ассистент работает с пользователями (поддержка, продажи, операционка)
- часть ответов потенциально годится как “готовое решение”
- эти ответы не сразу идут в базу, а проходят “приёмку”
- принятые — становятся частью базы знаний
- отклонённые — оставляют след в журнале отказов
В итоге база знаний становится живой, но не теряет управляемость.
По сути, вы получаете слой “управления знаниями” поверх RAG:
- не просто храните документы
- а накапливаете проверенные “решения” из реальной эксплуатации
Ограничения и честные выводы из статьи
Исследователи сами проговаривают ограничения:
- пороги проверок могут требовать настройки под предметную область
- подход консервативный: лучше отклонить лишнее, чем принять плохое
- испытания короткие (по 500 запросов на набор), долгосрочный дрейф базы ещё не изучен
И это, на самом деле, плюс: статья не продаёт “магическую таблетку”, а показывает инженерную дисциплину.
Итог: почему это важнее, чем кажется
Главный вывод статьи простой:
Самоулучшающийся RAG возможен, если есть строгая приёмка.
Обычный RAG — безопасный, но не развивается. \
Наивная запись — развивается быстро, но разрушает доверие и засоряет базу.
Двунаправленный РАГ — середина: растёт, но под контролем.
И вот что для меня тут самое интересное: это шаг к системам, которые реально “учатся после запуска” без переобучения модели — через дисциплину работы с знаниями.