На датазавтраке обсуждали способы оценки качества RAG
Варианты: * как понравится пользователям - так и хорошо (ненадежно, трудно использовать для итеративного улучшения) * LLM арена между несколькими вариантами (медленная оценка, в остальном норм, если на это есть ресурсы и время) * LLM как судья (нужен размеченный датасет, трудно добиться совпадения оценки с человеческой, постоянное переобучение под датасет) * Измерение каждого отдельного этапа (ретривел, суммаризация, переформулировка) - красиво но обычно непонятно как сделать
Предлагал заменить бинарную оценку "нравится-не нравится" на оценку по нескольким критериям (полнота извлечения и что там еще конечный пользователь может оценить) + сохранять для всех неидеально оцененных запросов лог - что происходило в системе и с промптами на каждом этапе. Затем разметчиком вручную размечать, на каком именно этапе произошла ошибка (с предположением что первая ошибка в пайплайне определяющая) И затем выучить простую модель, которая по оценке из нескольких критериев подсвечивает ошибочный этап RAG И так отлаживаться, по мере необходимости доразмечая логи исполнения запросов
Цель - связать оценочные критерии с этапами, чтобы постоянно улучшать и подкручивать систему