Retrieval Fallback Hierarchies в 2026: как деградировать поиск без ложной уверенности
Retrieval fallback hierarchies в 2026: как строить каскад между primary retriever, reranker, trusted corpora и abstain mode, чтобы RAG не выдавал слабый поиск за уверенный answer.
Retrieval fallback hierarchies в 2026 нужны потому, что retrieval редко ломается как один явный outage. Гораздо чаще падает один кусок каскада: reranker недоступен, индекс отстаёт, metadata filters работают неполно, trusted corpus пуст для конкретного tenant-а. Если в этот момент система просто "ищет как получится" и продолжает отвечать с той же уверенностью, пользователь получает не graceful degradation, а скрытое снижение качества.
Fallback hierarchy — это заранее спроектированная лестница вариантов: что делать, если основной retrieval path не дал достаточно хорошего результата. Хорошая иерархия не только ищет запасной путь, но и меняет confidence, citation policy и иногда вообще переводит систему в abstain mode.
Самый вредный anti-pattern - иметь fallback только как "если не сработал reranker, просто покажем top-k из всего индекса". Без trust и confidence-поправок это делает ответ хуже, но не честнее.
fallback должен зависеть от failure mode, а не быть одним общим запасным поиском;
weaker retrieval path должен менять policy ответа;
trusted internal corpus и external search нельзя считать равнозначными fallback-ами;
fallback hierarchy полезна только вместе с eval-метриками по каждому уровню.
Без техники
При недоступности reranker система сразу отвечает по сырым vector results, сохраняя тот же UI confidence и policy для citations.
С техникой
Pipeline переходит в заранее описанный fallback tier: сокращает допустимые claims, понижает confidence, ужесточает citation rules и может выбрать abstain для risky questions.
ПромптFallback intuition
Если основной retrieval path недоступен, всегда ли нужно отвечать из запасного индекса?
Ответ модели
Нет. Сначала нужно понять, какой trust и quality даёт fallback. Иногда правильнее ограничить scope ответа или честно отказаться, чем скрыть деградацию слабым retrieval.
def choose_retrieval_tier(state):
if state["tenant_reranker_ok"] and state["tenant_hits"] > 0:
return "tenant_corpus_reranked"
if state["tenant_hits"] > 0:
return "tenant_corpus_raw"
if state["trusted_global_hits"] > 0:
return "trusted_global_faq"
return "abstain"
Практический совет: проектируйте fallback hierarchy не как способ "всё равно дать ответ", а как способ честно ограничить систему, когда evidence path ослаблен.
Проверьте себя
1. Почему fallback hierarchy должна зависеть от типа retrieval failure?
2. Что особенно важно при переходе на более слабый retrieval tier?