Как улучшить качество RAG, если он отвечает плохо?
- Что такое реранкер?
- Почему RAG не находит нужный документ?
- Как диагностировать проблемы RAG?
Сначала понять, где ломается: не нашли нужное (поиск) или нашли, но ответили плохо (генерация) — и чинить соответствующий этап.
- Поиск: гибридный поиск, переформулировка запроса, реранкер, фрагментация, метаданные и фильтры
- Генерация: промпт «только по контексту», порядок фрагментов, меньше шума, ссылки на источник
А ещё Всё проверять на наборе вопросов с метриками, а не на паре примеров
Подробно
Диагностика. Для набора вопросов смотрим: был ли нужный фрагмент среди найденных (recall@k)? Если нет — проблема в поиске. Если был, а ответ неверный — в генерации.
Улучшение поиска:
- фрагментация — по структуре, с заголовками и перекрытием;
- гибридный поиск — векторный плюс BM25 для точных терминов и кодов;
- переформулировка запроса — переписать вопрос с учётом истории диалога, разбить сложный на подвопросы, сгенерировать гипотетический ответ и искать по нему (HyDE);
- реранкер — модель (обычно cross-encoder), которая оценивает пару «вопрос — фрагмент» точнее, чем сходство эмбеддингов: берём top-50 из поиска, переранжируем, оставляем top-5;
- метаданные и фильтры — раздел, версия продукта, дата;
- модель эмбеддингов — проверить на своём языке и домене.
Улучшение генерации:
- инструкция отвечать только по контексту и признавать нехватку данных;
- меньше, но точнее фрагменты — шум мешает;
- важное — в начало или конец контекста;
- требование ссылаться на источник у каждого утверждения.
Измерение — отдельно метрики поиска (recall@k, MRR) и ответа (соответствие контексту, полнота, правильность), регулярно, при каждом изменении.
Что хотят услышать
- Разделение проблем поиска и генерации и способ их различить.
- Конкретные техники для каждого этапа, включая реранкер и гибридный поиск.
- Решения по метрикам.
Частые ошибки
- Сразу менять модель генерации, когда проблема в поиске.
- Улучшать «на глаз» без набора тестовых вопросов.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Сразу заменить модель генерации на более мощную и дорогую версию
- ✗Увеличить число фрагментов в контексте до максимума окна модели
- ✓Найти, где ломается — поиск или генерация, и чинить этот этап
- ✗Перейти на дообучение вместо RAG, раз поиск не справляется с вопросами
Что спросят дальше
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.