LettuceDetect: эффективный инструмент для выявления галлюцинаций в системе RAG

Общее введение

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

LettuceDetect:检测RAG系统幻觉的高效工具

 

Список функций

  • Обнаружение уровня жетонов: Анализируйте ответы слово за словом, точно отмечая раздел галлюцинаций.
  • Определение уровня размаха: Определите полные фантомные сегменты в ответе, положение вывода и уровень уверенности.
  • длительная обработка контекста: Контексты, поддерживающие 4096 маркеров для сложных задач.
  • Эффективное рассуждениеМодель доступна в версиях 150M и 396M и обрабатывает 30-60 образцов в секунду на одном GPU.
  • интеграция с открытым исходным кодом: Устанавливается через pip, предоставляет чистый Python API и легко встраивается в систему RAG.
  • Несколько форматов вывода: Поддерживает результаты прогнозирования на уровне токенов и на уровне диапазонов для удобства анализа.
  • эталон производительности: Подробные данные оценки доступны в наборе данных RAGTruth для облегчения сравнения.

 

Использование помощи

LettuceDetect - это легкий и эффективный инструмент, который пользователи могут быстро запустить с помощью простой установки. Ниже приведено подробное руководство по установке и использованию, которое поможет вам освоить его возможности с нуля.

Процесс установки

  1. Подготовка среды Python
    Убедитесь, что у вас установлен Python 3.8 или выше, а также утилита pip. Рекомендуется использовать виртуальную среду:

    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    venv\Scripts\activate     # Windows
  1. Установка LettuceDetect
    Установите последнюю версию из PyPI:

    pip install lettucedetect
    

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

  2. Проверка установки
    Проверьте успех, выполнив следующий код в терминале 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 предоставляет интерактивные презентации:

  1. Установите Streamlit:
    pip install streamlit
    
  2. Запустите демоверсию:
    streamlit run demo/streamlit_demo.py
    
  3. Введите контекст, вопросы и ответы в браузере, чтобы просмотреть результаты тестирования в режиме реального времени.

Расширенное использование

Обучение пользовательских моделей

  1. Загрузите набор данных RAGTruth (ссылка (на веб-сайте)), вставьте data/ragtruth Папка.
  2. Предварительная обработка данных:
    python lettucedetect/preprocess/preprocess_ragtruth.py --input_dir data/ragtruth --output_dir data/ragtruth
    
  3. Модели обучения:
    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 и повышения надежности генерируемого контента.

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...