LettuceDetect: эффективный инструмент для выявления галлюцинаций в системе RAG
Общее введение
LettuceDetect - это легкий инструмент с открытым исходным кодом, разработанный KRLabsOrg специально для обнаружения иллюзорного контента, создаваемого в системах Retrieval Augmented Generation (RAG). Он помогает разработчикам улучшить контекст, сравнивая контекст, вопрос и ответ, и выявляя части ответа, которые не поддерживаются контекстом. RAG точность системы. Инструмент основан на технологии ModernBERT и поддерживает 4096 жетон LettuceDetect разработан для обеспечения длительной обработки контекста, что более эффективно, чем традиционные модели кодирования, и гораздо менее затратно с вычислительной точки зрения, чем большие языковые модели (LLM). LettuceDetect демонстрирует хорошие результаты на наборе данных RAGTruth, с оценкой F1 79.22% для версии с большой моделью, превосходящей ряд существующих решений. Проект выпущен под лицензией MIT, а код и модель являются бесплатными и открытыми для пользователей, которым необходимо оптимизировать надежность контента, созданного ИИ.

Список функций
- Обнаружение уровня жетонов: Анализируйте ответы слово за словом, точно отмечая раздел галлюцинаций.
- Определение уровня размаха: Определите полные фантомные сегменты в ответе, положение вывода и уровень уверенности.
- длительная обработка контекста: Контексты, поддерживающие 4096 маркеров для сложных задач.
- Эффективное рассуждениеМодель доступна в версиях 150M и 396M и обрабатывает 30-60 образцов в секунду на одном GPU.
- интеграция с открытым исходным кодом: Устанавливается через pip, предоставляет чистый Python API и легко встраивается в систему RAG.
- Несколько форматов вывода: Поддерживает результаты прогнозирования на уровне токенов и на уровне диапазонов для удобства анализа.
- эталон производительности: Подробные данные оценки доступны в наборе данных RAGTruth для облегчения сравнения.
Использование помощи
LettuceDetect - это легкий и эффективный инструмент, который пользователи могут быстро запустить с помощью простой установки. Ниже приведено подробное руководство по установке и использованию, которое поможет вам освоить его возможности с нуля.
Процесс установки
- Подготовка среды Python
Убедитесь, что у вас установлен Python 3.8 или выше, а также утилита pip. Рекомендуется использовать виртуальную среду:python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
- Установка LettuceDetect
Установите последнюю версию из PyPI:pip install lettucedetect
В процессе установки автоматически загружаются основные зависимости, включая модель ModernBERT.
- Проверка установки
Проверьте успех, выполнив следующий код в терминале Python:from lettucedetect.models.inference import HallucinationDetector print("LettuceDetect 安装成功!")
Базовое использование
LettuceDetect предоставляет чистый Python API для обнаружения галлюцинаций с помощью всего нескольких строк кода. Ниже приведен базовый пример:
пример кода (вычисления)
from lettucedetect.models.inference import HallucinationDetector
# 初始化检测器
detector = HallucinationDetector(
method="transformer",
model_path="KRLabsOrg/lettucedect-base-modernbert-en-v1"
)
# 输入数据
contexts = ["France is a country in Europe. The capital of France is Paris. The population of France is 67 million."]
question = "What is the capital of France? What is the population of France?"
answer = "The capital of France is Paris. The population of France is 69 million."
# 执行 span 级检测
predictions = detector.predict(
context=contexts,
question=question,
answer=answer,
output_format="spans"
)
# 输出结果
print("检测结果:", predictions)
Образец вывода::
检测结果: [{'start': 31, 'end': 71, 'confidence': 0.994, 'text': ' The population of France is 69 million.'}]
Результаты показывают, что "население составляет 69 миллионов" - это иллюзия, потому что контекст предполагает население в 67 миллионов.
Основные функции
1. Инициализация детектора
- Описание параметров::
method
: В настоящее время поддерживается только "transformer".model_path
: ДополнительноKRLabsOrg/lettucedect-base-modernbert-en-v1
(150M) илиKRLabsOrg/lettucedect-large-modernbert-en-v1
(396M).
- буровая установкаБазовая версия легкая и быстрая, а большая - более точная.
2. Приготовьтесь к поступлению
- Контекст: Передайте список строк, содержащих справочную информацию, которая должна быть на английском языке.
- Вопрос: Введите конкретные вопросы, которые должны соответствовать контексту.
- Ответить: Введите ответы, сгенерированные системой RAG.
- принимать к сведению: Убедитесь, что общая длина контекста не превышает 4096 лексем.
3. обнаружение во время работы
- вызвать метод: Использование
detector.predict()
. - формат вывода::
"spans"
: Возвращает начальную и конечную позицию, текст и уровень достоверности клипа с галлюцинациями."tokens"
: Возвращает иллюзорную вероятность каждого токена.
- буровая установка: Выберите подходящий формат вывода, уровень span для быстрого просмотра, уровень token для глубокого анализа.
4. анализ
- выходной уровень: Изучите каждый галлюцинаторный фрагмент
text
ответить пениемconfidence
Уровень доверия близок к 1, что говорит о высокой вероятности галлюцинаций. - выход уровня маркера: пословный просмотр
prob
значения, чтобы определить конкретные точки погрешности. - Последующее лечение: Оптимизация системы RAG или регистрация проблем на основе полученных результатов.
Основные функции
Обнаружение уровня жетонов
LettuceDetect поддерживает анализ каждого слова для более точного обнаружения галлюцинаций:
predictions = detector.predict(
context=contexts,
question=question,
answer=answer,
output_format="tokens"
)
print(predictions)
Образец вывода::
检测结果: [{'token': '69', 'pred': 1, 'prob': 0.95}, {'token': 'million', 'pred': 1, 'prob': 0.95}]
Это говорит о том, что "69 миллионов" - это иллюзия, подходящая для сценариев, требующих точной настройки.
Длительная поддержка контекста
Для задач с длинными текстами LettuceDetect может обрабатывать 4096 лексем:
contexts = ["A long context repeated many times..." * 50]
predictions = detector.predict(context=contexts, question="...", answer="...")
Просто убедитесь, что входные данные находятся в пределах допустимого.
Демоверсия Streamlit
LettuceDetect предоставляет интерактивные презентации:
- Установите Streamlit:
pip install streamlit
- Запустите демоверсию:
streamlit run demo/streamlit_demo.py
- Введите контекст, вопросы и ответы в браузере, чтобы просмотреть результаты тестирования в режиме реального времени.
Расширенное использование
Обучение пользовательских моделей
- Загрузите набор данных RAGTruth (ссылка (на веб-сайте)), вставьте
data/ragtruth
Папка. - Предварительная обработка данных:
python lettucedetect/preprocess/preprocess_ragtruth.py --input_dir data/ragtruth --output_dir data/ragtruth
- Модели обучения:
python scripts/train.py --data_path data/ragtruth/ragtruth_data.json --model_name answerdotai/ModernBERT-base --output_dir outputs/hallucination_detector --batch_size 4 --epochs 6 --learning_rate 1e-5
оптимизация производительности
- Ускорение графического процессора: Установите версию PyTorch CUDA для повышения скорости вычислений.
- пакетный файл: Поместите несколько образцов в
contexts
Список одноразовых тестов.
предостережение
- Входные данные должны быть на английском языке, другие языки в настоящее время не поддерживаются.
- Убедитесь, что сеть открыта, чтобы модель можно было загрузить при первом запуске.
Выполнив описанные выше действия, пользователи смогут легко использовать LettuceDetect для обнаружения иллюзий системы RAG и повышения надежности генерируемого контента.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...