Когда RAG на горе свистнет: архитектура, метрики оценки и практика тестирования в ПСБ. rag.. rag. RAG система.. rag. RAG система. RAG Техники.. rag. RAG система. RAG Техники. ragas.. rag. RAG система. RAG Техники. ragas. оценка rag.. rag. RAG система. RAG Техники. ragas. оценка rag. оценка качества.

Одна из ключевых проблем ИИ — склонность к «галлюцинациям», то есть к генерации убедительно звучащих, но ложных ответов. Яркий пример на картинке :) Как это можно исправить или улучшить? Есть разные способы. Одно из самых простых решений, позволяющих значительно повысить точность и достоверность ответов, — RAG (Retrieval Augmented Generation). Это генерация с дополненной выборкой. 

Меня зовут Михаил Костецкий, я управляющий эксперт отдела обеспечения качества в ПСБ. Мы в коллегами сейчас тоже пробуем использовать технологию RAG в разных задачах — в своей статье я хочу поделиться этим опытом. Буду рад, если моя статья станет полезна тем, кому предстоит работать с методом. 

Когда RAG на горе свистнет: архитектура, метрики оценки и практика тестирования в ПСБ - 1

Зачем нужен RAG?

Как мы видим, на картинке выше ИИ пытается определить то, что ему даже пока не показали :) Выглядит забавно, и такие галлюцинации — как раз причина, по которой ИИ пока не подходит для повсеместного использования. Особенно в таких серьёзных сферах, как финтех. ​​Галлюцинации возникают, потому что ИИ-модели обучены на ограниченном наборе данных и иногда «додумывают» ответ, когда не знают точных фактов.

Чем здесь нам может помочь RAG? Он заставляет модель искать информацию в вашей собственной базе знаний (в документах, базах данных и так далее), а уже затем составлять ответ на основе этих проверенных источников. 

Когда RAG на горе свистнет: архитектура, метрики оценки и практика тестирования в ПСБ - 2

Как устроен RAG? По сути, он выполняет три действия:

  • поиск — находит документы;

  • дополнение — обогащает ответ фактами из базы знаний;

  • генерация — формулирует ответ.

Как я уже говорил, источником информации для RAG становится ваш собственный массив данных — будь то база данных, хранилище документов или сайт, из которого вы можете выгрузить содержимое в файлы. Но чтобы быстро извлекать информацию из этого массива, данные нужно подвергнуть векторизации.

Архитектура RAG

Итак, у вас есть набор данных — они могут быть структурированные (например, база данных, для которой прописали «ключ-значение») или неструктурированные (массив из книги и тому подобное). 

Этот массив данных нужно разделить на чанки — сегменты текста, разбитого на токены в соответствии с определённым алгоритмом. Важный момент: под токеном мы понимаем не букву. Токен — единица разбиения, зависящая от токенизатора модели; в разных языках соотношение символов/слов к токенам различается, и для нелатинских скриптов часто требуется больше токенов.

Способ разбиения текста на фрагменты определяется его структурой. Для html-документов или художественных текстов подходит разделение по абзацам. Структурированные материалы с пунктами логично делить по знакам пунктуации (точка, точка с запятой). В случае сложноорганизованных документов рекомендуется использовать разбиение по количеству токенов.

Когда данные разделены на чанки, их передают в векторную базу данных с помощью эмбеддинг-модели. Система извлекает релевантные фрагменты (чанки) из векторного индекса и добавляет их в контекст генерации ответа. 

Как оценивать качество работы RAG?

По каким критериям судить о качестве RAG? Выделю три критерия.

1. Качество поиска — нашла ли модель нужные документы. Здесь важны две метрики:

  • Hit Rate — показывает, извлекает ли система релевантные документы в принципе.

  • Mean Reciprocal Rank (MRR) — оценивает, насколько высоко в результатах поиска находится самый подходящий документ. Чем он выше, тем больше вероятность получить точный ответ.

Вместе эти метрики показывают, как хорошо система находит информацию и насколько правильно её ранжирует.

Бывает, что LLM, которую вы используете, вас полностью устраивает, но вот при работе с RAG она чудит в плане понимания документов. Тогда стоит обратить внимание то, как разделили документы на чанки, а затем — на качество поиска.

Что касается расчётов, то мы применяем автоматический расчёт и сравнение с золотым стандартом. То есть здесь тоже, как это часто бывает, лучший референс — то, что написал человек.

2. Точность ответа — правильно ли модель поняла документы. 

Ключевые критерии:

Factual Accuracy — процент фактически верных утверждений в ответе.

Отсутствие галлюцинаций — проверка, не добавила ли модель вымышленной или несоответствующей информации.

Основной подход для оценки точности — LLM-арбитр. Для этого другая языковая модель проверяет и оценивает сгенерированный ответ. Хотя этот подход тоже неидеален (арбитр тоже может ошибаться), он хорошо работает в сочетании с автоматическим подсчётом метрик и последующей ручной верификацией.

3. Качество изложения — насколько понятен и адекватен ответ.

Важные критерии:

  • ясность и структура — ответ должен быть читаемым и логично подложенным;

  • релевантность — ответ должен соответствовать вопросу без отклонений;

  • полезность — тут мы оцениваем, решил ли ответ проблему пользователя.

В части оценки качества изложения конечной информации мы в ПСБ пока тоже прибегаем к ручной оценке. Но можно ли здесь что-то автоматизировать? Да — например, создать набор «вопрос-ответ» с разметкой, из какой области документа извлекать нужную информацию, и по этому шаблону прогонять.

Когда RAG на горе свистнет: архитектура, метрики оценки и практика тестирования в ПСБ - 3

Оцениваем RAG: метрики для компонентов архитектуры

Для каждого компонента RAG есть свои методы оценки. Например, посмотрим на метрики для чанков:

  • Размер чанка — оптимизация между контекстом и шумом.

  • Смысловая цельность — зависит от способа разделения на чанки. Здесь нет идеального подхода, алгоритмы могут быть разными.

Один из самых дорогих и ресурсоёмких подходов — семантическое разделение, когда кусочки текста делит по смыслу LLM, установленная в контур. Другой подход — «скользящее окно». Здесь чанки создаются с перекрытием: например, первый содержит токены с 1-го по 200-й, следующий — с 150-го по 250-й. За счёт этого пересечения система захватывает больше контекста, что повышает точность поиска. Можно применить и структурное разделение текста (по знакам препинания) или вовсе поделить тексты на фрагменты фиксированного размера.

  • Перекрытие контекста — анализ границ между чанками.

Для работы с чанками есть разные инструменты — например, LlamaIndex и LangChain.

Метрики для эмбеддингов:

  • семантическое сходство — косинусная близость векторов;

  • разрешающая способность — различение моделью тонких смысловых оттенков;

  • качество кластеризации.

Есть алгоритмы, такие как TF-IDF или BM25, которые дают лексическую релевантность (по терминам) и в гибридном поиске хорошо дополняют векторный поиск.

Уверенность системы 

Итак, у вас есть LLM. Вы хотите понять, где и как она сама, без RAG, галлюцинирует. А также — как её настроить, выбрать оптимальную температуру и так далее. Можно использовать Logprobs как один из сигналов (например, для выбора из фиксированного набора ответов или как эвристику), но это не гарантия истинности. Для фраз корректно сравнивать суммарный/средний logprobs по токенам при фиксированных кандидатах.

Покажу, как это работает, на простом примере. Вы задаёте вопрос: «Небо какое?» И далее вы видите в логах — это очень удобно с точки зрения тестирования — ту вероятность, с какой модель может предсказать тот или иной ответ. Так, вероятность ответа «Небо чистое» — –1,6 , а «Небо голубое» — –0,96. То есть наиболее вероятный ответ — «Небо голубое».

Когда RAG на горе свистнет: архитектура, метрики оценки и практика тестирования в ПСБ - 4

Ещё полезны такие проверки: вы задаёте LLM вопрос о данных, на которых она не была обучена. Узнать, что модель даёт ответы по данным, на которых её не обучали, не так сложно: в описании на HuggingFace обычно указаны все датасеты. Если модель выдумывает, то её нужно настроить. Например, снижение температуры уменьшит вариативность. Ещё лучше бороться с галлюцинациями через улучшение retrieval (recall/precision), grounded prompting, цитирование и проверку источников, а также правила отказа (abstain) при недостаточном контексте.

Инструменты для оценки RAG

Я уже упоминал некоторые, но здесь коротко повторюсь и расскажу, для чего они нужны:

  • RAGAS — позволяет проводить автоматическую оценку без эталонов;

  • TruLens — обеспечивает мониторинг и трассировку LLM-приложений;

  • LangSmith — отлаживает и оценивает цепочки LangChain;

  • собственные решения — различные Python-скрипты, дашборды, CI/CD интеграции.

Мы в ПСБ сейчас работаем с RAGAS. Выбрали его, потому что нам понравился набор предустановленных метрик, удобный интерфейс и работа с LаngChain. В будущем планируем использовать и собственное решение, потому что ряд библиотек не отвечает нашим стандартам. 

Тестирование RAG

Когда RAG на горе свистнет: архитектура, метрики оценки и практика тестирования в ПСБ - 5

Возьмите любую архитектуру, информационную систему — всё это можно переложить на пирамиду тестирования.

Внизу пирамиды — unit-тесты. При этом для RAG в unit-тестах в качестве unit выступают не кусочки кода: здесь речь идёт о компонентном тестировании. Всю архитектуру мы делим на компоненты и можем их протестировать: отдельно посмотреть LLM или векторную базу данных и настройки её извлечения.
Выше — API-тесты, можно проверить нагрузку, посмотреть ответы и количества чанков и токенов, которые возвращаются в ответе.
Далее — E2E тесты — можно и нужно проверять пользовательские сценарии.

И, конечно же, без ручного тестирования тоже не обойтись.

Оценка качества RAG

Цикл оценки RAG можно разделить на такие этапы:

  • Подготовка тестового датасета — с помощью LLM вы генерите от сотни до тысячи различных вопросов.

  • Запуск RAG на тестовых вопросах и сбор ответов и найденных документов.

  • Сбор и расчёт метрик — можно применять автоматические и ручные метрики.

  • Анализ результатов — выявление проблем и узких мест.

  • Улучшение системы.

Этот цикл нужно постоянно повторять.

Метрики: автоматические или ручные?

Нет единственно верного ответа.

Автоматические метрики — быстрые и масштабируемые, а также объективные. Ручные — медленные, но зато более точные и позволяют учитывать контекст. Ручные метрики лучше оценивают качество изложения в ответах. Идеально — использовать гибридный подход, где автоматика позволяет масштабироваться, а эксперты помогают с оценкой в сложных случаях.

Однако добавлю, что автоматика подходит не для каждой отрасли. В финтехе её можно использовать с ограничениями. У нас повышенные требования к защите персональных данных — их нужно вычищать из базы знаний, чтобы они никуда не утекли из контура. А автоматика, увы, не всегда понимает, какие данные перед ней — персональные или нет. Да, есть некоторые инструменты, которые умеют распознавать персональные данные, но 100%-ную точность в их работе гарантировать невозможно. Так что ручная проверка в подобных случаях даёт лучший результат.

Визуализация результатов

Когда у вас есть результаты тестирования и оценки качества RAG, вы можете их визуализировать. Что здесь можно использовать?

  • Вести дашборды с ключевыми метриками — обеспечивают трекинг качества в реальном времени.

  • Отслеживать тренды качества over time — помогают выявлять улучшения и регрессии.

  • Сравнивать разные версии системы — A/B тесты улучшений.

  • Составлять Heat Maps проблемных зон.

Можем оценивать, но зачем?

Ещё расскажу главное — в чём бизнес-ценность оценки качества RAG.

Когда RAG на горе свистнет: архитектура, метрики оценки и практика тестирования в ПСБ - 6

Тут есть несколько аспектов:

  • Доверие. Да, RAG повышает доверие бизнеса к информации, которую представляет модель из коробки.

  • Эффективность. Поиск с применением RAG экономит время сотрудников.

  • Безопасность. RAG позволяет снизить риск ошибки за счёт использования собственных данных при поиске.

  • Масштабируемость. Систему поиска с RAG легко внедрять в новые отделы.

Добавлю, что сегодня немногие компании могут себе позволить дообучение моделей. Файнтюнинг — это дорого и затратно по времени, для него нужно собрать много датасетов. В то же время RAG позволяет бизнесу что-то улучшить здесь и сейчас. Допустим, прокачать чат-бот контактного центра, чтобы пользователи быстрее получали ответы, и эти ответы были точны и корректны. 

Напоследок покажу, как может выглядеть результат оценки на конкретном примере вопроса и полученного ответа:

Когда RAG на горе свистнет: архитектура, метрики оценки и практика тестирования в ПСБ - 7

Как видно, по двум параметрам система справилась, но по части точности есть ошибка.

Подытожим

Краткий пересказ всего, что я написал выше:

  • RAG — технология, а не магия. Её качество можно и нужно систематически оценивать.

  • При оценке важно учитывать поиск, точность и качество изложения.

  • Автоматические и ручные метрики дополняют друг друга.

  • Оценка RAG — не разовое событие, а непрерывный процесс с циклом улучшений.

Сейчас во многих компаниях RAG ещё только начинают внедрять, это новая земля для айтишников. Если вам есть что рассказать о своём опыте работы с методом — пишите в комментариях. Думаю, другим читателям это тоже будет интересно. 

Автор: kostetskiim

Источник

Rambler's Top100