Оцениваем RAG-пайплайны
![23e183f936236c711656ce155ead8004.jpg](https://habrastorage.org/getpro/habr/upload_files/23e/183/f93/23e183f936236c711656ce155ead8004.jpg)
Привет, Habr!
Посвященные в мистерии AI уже наверняка встречали три волшебные буквы — RAG. RAG (Retrieval Augmented Generation) — это парадигма, которая усиливает большие языковые модели с помощью пользовательских данных. Метод сочетает в себе извлечение информации из баз данных (как правило векторных) с последующей генерацией текста, что позволяет моделям предоставлять ответы, основанные на данных, которые она никак не могла увидеть в процессе обучения. Однако, как и в любой сложной системе, ключевым аспектом является оценка её эффективности. Важно не только создать мощную систему RAG, но и понять, насколько хорошо она работает. Это включает в себя оценку как качества работы ретривера (извлекателя информации), так и эффективности самой языковой модели.
RAGAS (Retrieval Augmented Generation Automated Scoring) представляет собой метод для автоматизированной оценки эффективности RAG. Он позволяет не только оценить общее качество ответов, но и детально анализировать различные аспекты процесса генерации. Это важно для понимания того, какие элементы RAG работают хорошо и где есть потенциал для улучшения.
Проблемы с оценкой правильности ответов LLM
Одной из основных проблем оценки правильности ответов LLM является наличие галлюцинаций. Кембриджский словарь даже назвал глагол hallucinate главным словом уходящего 2023 года. Галлюцинации — это ситуации, когда модель предоставляет ответы, которые кажутся правдоподобными, но фактически не имеют реальной основы.
Например, вы спрашиваете LLM о составе атмосферы нашей планеты, и модель генерирует следующий ответ: «Атмосфера Земли состоит из 68% азота, 31% кислорода и 1% диоксида углерода». Этот ответ звучит правдоподобно, но на самом деле содержит ошибку.
Разнообразие ответов
Другой важной проблемой является разнообразие ответов, которые может предоставить LLM на один и тот же вопрос. Вы обращаетесь к LLM и задаете вопрос: «Почему у меня оборвалась связь с интернетом?» Модель может предоставить разные варианты ответов:
Возможно, у вас проблема с роутером, попробуйте перезагрузить его.
Обрыв связи может быть связан с провайдером, проверьте, нет ли у них сбоев.
Иногда обрыв связи происходит из-за плохой погоды, это может влиять на работу сигнала.
Оценка, какой из них является наиболее правильным или полезным, может быть сложной задачей.
Оценка фактичности
Как можно оценить фактичность ответов, особенно когда есть несколько версий ответа, и все они звучат правдоподобно? Здесь на помощь приходят различные метрики и стратегии.
Использование вероятностей токенов: Некоторые методы анализируют вероятности, присвоенные отдельным словам в генерируемом тексте. Например, метрика BARTScore оценивает фактичность, анализируя вероятность сгенерированного текста относительно входного.
Использование дополнительных классификаторов: Другой подход предполагает обучение классификаторов для предсказания, является ли утверждение в ответе истинным или ложным. Однако этот метод требует доступа к скрытым состояниям модели и может быть неприменим для систем, использующих LLM через API.
Множественные ответы: Некоторые методы предлагают собирать несколько разных ответов и анализировать их схожесть. Если разные выборки ответов семантически схожи, это может указывать на фактичность.
Чем же хорош RAGAS
RAGAS — это система, разработанная для автоматизированной оценки эффективности RAG. Она представляет собой комплексный инструмент, который позволяет оценивать как качество извлечения информации, так и качество генерации текста. Это достигается за счет использования ряда метрик, которые анализируют различные аспекты ответов, генерируемых языковой моделью.
Генерация синтетических данных
Для оценки работы RAGAS используются специально созданные тестовые данные. Эти данные представляют собой разнообразные сценарии и вопросы, которые помогают оценить, насколько хорошо система справляется с различными задачами. Важно, чтобы эти данные были достаточно разнообразными и охватывали широкий спектр потенциальных вопросов и тем, чтобы оценка была всесторонней.
Характеристики тестовых данных
Тестовые данные должны включать в себя задачи, требующие не только простого извлечения фактов, но и более сложные сценарии, включающие рассуждения, понимание контекста и способность соединять информацию из разных источников. Это позволяет оценить способность модели не только находить информацию, но и адекватно её обрабатывать и представлять в ответе:
Запрос клиента: Как сбросить пароль на своем аккаунте?
Правильный ответ: Для сброса пароля, перейдите на страницу входа, нажмите 'Забыли пароль?' и следуйте инструкциям на экране.
Запрос клиента: Мои письма не отправляются. Что делать?
Правильный ответ: Убедитесь, что у вас есть активное интернет-соединение и правильные настройки сервера исходящей почты. Если проблема не решена, свяжитесь с вашим почтовым провайдером для дополнительной помощи.
Запрос клиента: Мой жесткий диск сломался, как восстановить данные?
Правильный ответ: Для восстановления данных обратитесь к специалистам по восстановлению данных, которые могут провести диагностику и, возможно, восстановление информации с поврежденного диска.
Метрики оценки в RAGAS
Faithfulness
Оценивает, насколько ответы языковой модели точно отражают информацию, содержащуюся в источниках данных. Это важно для обеспечения того, чтобы модель не искажала или не изменяла информацию при её представлении.
Answer Relevancy
Показывает, насколько ответы соответствуют заданным вопросам. Это ключевой аспект, поскольку даже технически правильный ответ может быть бесполезным, если он не отвечает на конкретный вопрос пользователя.
Context Recall и Context Precision
Эти метрики оценивают, насколько хорошо модель использует контекст вопроса при формировании ответа. «Context Recall» оценивает, сколько информации из контекста использовано в ответе, в то время как «Context Precision» оценивает, насколько точно и релевантно контекстная информация использована.
Answer Semantic Similarity
Измеряет, насколько семантически близок ответ модели к эталонному ответу. Это помогает понять, насколько естественно и точно модель может воспроизводить человеческий язык.
Answer Correctness
Оценка правильности ответа. Это финальная проверка на то, предоставляет ли модель точную и достоверную информацию в ответе.
Как использовать
Если вас привлекла данная идея, то следующим важным шагом будет размышление о том, как можно воплотить её в жизнь. И хорошие новости: уже существует фреймворк, который обеспечивает инструменты для реализации данной концепции. Сейчас он уже доступен на github В следующей части расскажу как задействовать его для оценки качества RAG-конвеера.
Пишу про AI и NLP в телеграм.