Semantic Gatekeeper: как улучшить ответы LLM на больших документах
Большие контексты часто снижают точность LLM. В статье от OTUS объясняют причины и предлагают новый подход Semantic Gatekeeper, который готовит релевантный контекст перед основной моделью.
Что происходит, когда LLM «перегружается»
При работе с объёмными документами (10 К+ токенов) модели часто начинают «тупеть»: теряются детали, ухудшается поиск фактов и растёт количество «галлюцинаций». Это связано с тем, что Full‑Context и классический RAG (Retrieval‑Augmented Generation) используют один‑единственный контекстный блок, который быстро заполняет лимит токенов и заставляет модель «сжимать» информацию.
Почему традиционный RAG не спасает
- Ограниченный размер окна – даже самые большие LLM (GPT‑4‑Turbo, Claude‑3) имеют контекст до 128 К токенов, а реальная полезная часть часто меньше из‑за системных токенов.
- Неоднородный релевантный материал – поиск возвращает куски, которые могут дублировать друг друга или содержать нерелевантные фрагменты.
- Отсутствие предварительной фильтрации – модель получает «сырой» набор, где важные факты теряются в шуме.
Semantic Gatekeeper – новый подход
Авторское решение Semantic Gatekeeper (SG) добавляет промежуточный слой перед основной LLM:
- Семантическая фильтрация: с помощью небольших эмбеддинг‑моделей (например, MiniLM‑v2) оценивается релевантность каждого фрагмента к запросу.
- Иерархический ранжинг: фрагменты сортируются по семантической близости, а затем отбираются только топ‑N (обычно 3‑5) для передачи в LLM.
- Контекст‑препроцессинг: выбранные куски конкатенируются, при необходимости сокращаются через summarization‑модель, чтобы уложиться в лимит токенов.
В результате SG уменьшает количество токенов, подаваемых в LLM, на 30‑50 %, при этом повышает точность ответов на 15‑25 % (по метрикам EM и F1 в тестах на наборе юридических документов).
Как внедрить
- Выбрать лёгкую эмбеддинг‑модель (OpenAI
text-embedding-3-smallилиsentence‑transformers/all‑MiniLM-L6‑v2). - Интегрировать ранжинг в pipeline RAG (пример кода в статье).
- Настроить порог отбора и количество фрагментов в зависимости от задачи.
Полный разбор и код‑пример доступны в статье OTUS: https://habr.com/ru/companies/otus/articles/1079804/.
Для разработчиков AI‑систем и студентов это значит: вместо «запихнуть всё в контекст» лучше добавить семантическую предобработку. Semantic Gatekeeper экономит токены, ускоряет отклик и повышает надёжность ответов, особенно в юридических, медицинских и академических проектах.


