RAG обещает "модель отвечает только по вашим документам", но на практике галлюцинации никуда не деваются. Разбираем причины по порядку частоты.
1. Плохое чанкование документов
Слишком крупные чанки размывают релевантность эмбеддинга, слишком мелкие — рвут контекст посреди мысли. Начинайте с 300–500 токенов с перекрытием в 10–15%.
2. Несовпадение эмбеддинг-модели и домена
Универсальные эмбеддинги плохо различают близкие по смыслу, но разные по сути технические термины. Для узкого домена почти всегда выгоднее fine-tune или подбор модели под язык/тематику.
3. Топ-k без reranking
Простой top-k по косинусному сходству регулярно поднимает нерелевантные, но "похожие по словам" куски. Добавление reranker-слоя обычно даёт больше прироста качества, чем смена базовой LLM.
4. Отсутствие явного отказа "не знаю"
Промпт должен явно разрешать модели сказать, что ответа нет в контексте, — иначе модель предпочтёт придумать правдоподобный ответ.
5. Устаревший индекс
Самая банальная причина — индекс просто не переиндексирован после обновления документов. Добавьте мониторинг возраста последней переиндексации.
