LettuceDetect: una herramienta eficaz para detectar alucinaciones en el sistema RAG

堆友AI

Introducción general

LettuceDetect es una herramienta ligera de código abierto desarrollada por KRLabsOrg y diseñada específicamente para detectar contenidos ilusorios generados en sistemas de Generación Aumentada de Recuperación (RAG). Ayuda a los desarrolladores a mejorar el contexto comparando el contexto, la pregunta y la respuesta, e identificando las partes de la respuesta que no están respaldadas por el contexto. RAG precisión del sistema. La herramienta se basa en la tecnología ModernBERT y admite 4096 ficha LettuceDetect está diseñado para procesar contextos largos, lo que resulta más eficaz que los modelos de codificación tradicionales y mucho menos costoso desde el punto de vista computacional que los modelos lingüísticos amplios (LLM). LettuceDetect obtiene buenos resultados en el conjunto de datos RAGTruth, con una puntuación F1 de 79,22% para la versión de modelo amplio, superando a varias soluciones existentes. El proyecto se publica bajo licencia MIT, y el código y el modelo son gratuitos y abiertos para los usuarios que necesiten optimizar la fiabilidad de los contenidos generados por IA.

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

 

Lista de funciones

  • Detección del nivel de fichasAnaliza las respuestas palabra por palabra, marcando con precisión la sección de alucinaciones.
  • Detección de nivel: Identifica segmentos fantasma completos en una respuesta, posición de salida y nivel de confianza.
  • procesamiento de contexto largo: Contextos que admiten 4096 fichas para tareas complejas.
  • Razonamiento eficienteEstá disponible en modelos de 150M y 396M y procesa entre 30 y 60 muestras por segundo en una sola GPU.
  • integración del código abiertoSe instala mediante pip, proporciona una API Python limpia y es fácil de integrar en un sistema RAG.
  • Múltiples formatos de salida: Admite la probabilidad a nivel de token y los resultados de predicción a nivel de span para facilitar el análisis.
  • referencia de rendimiento: Los datos de evaluación detallados están disponibles en el conjunto de datos RAGTruth para facilitar las comparaciones.

 

Utilizar la ayuda

LettuceDetect es una herramienta ligera y eficaz que los usuarios pueden poner en marcha rápidamente con una sencilla instalación. A continuación encontrarás una guía detallada de instalación y uso que te ayudará a dominar sus funciones desde cero.

Proceso de instalación

  1. Preparación del entorno Python
    Asegúrese de tener instalado Python 3.8 o superior y de disponer de la utilidad pip. Se recomienda un entorno virtual:

    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    venv\Scripts\activate     # Windows
  1. Instalación de LettuceDetect
    Instala la última versión desde PyPI:

    pip install lettucedetect
    

    El proceso de instalación descarga automáticamente las dependencias básicas, incluido el modelo ModernBERT.

  2. Verificar la instalación
    Compruebe el éxito ejecutando el siguiente código en un terminal Python:

    from lettucedetect.models.inference import HallucinationDetector
    print("LettuceDetect 安装成功!")
    

Uso básico

LettuceDetect proporciona una API Python limpia para detectar alucinaciones con sólo unas pocas líneas de código. A continuación se muestra un ejemplo básico:

código de ejemplo (informática)

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)

Muestra de resultados::

检测结果: [{'start': 31, 'end': 71, 'confidence': 0.994, 'text': ' The population of France is 69 million.'}]

Los resultados muestran que "la población es de 69 millones" se califica de ilusión porque el contexto sugiere una población de 67 millones.

Funciones principales

1. Inicialización del detector

  • Descripción de los parámetros::
    • method: Actualmente sólo se admite "transformer".
    • model_pathOpcional KRLabsOrg/lettucedect-base-modernbert-en-v1(150M) o KRLabsOrg/lettucedect-large-modernbert-en-v1(396M).
  • plataformaLa versión básica es ligera y rápida, mientras que la versión grande es más precisa.

2. Prepárese para entrar

  • Contexto: Pasa una lista de cadenas que contienen información de fondo, que debe estar en inglés.
  • PreguntaIntroduzca preguntas específicas que deben ser relevantes para el contexto.
  • Respuesta: Introduzca las respuestas generadas por el sistema RAG.
  • tenga en cuenta: Asegúrese de que la longitud total del contexto no supera los 4096 tokens.

3. detección en tiempo de ejecución

  • invocar un método: Uso detector.predict().
  • formato de salida::
    • "spans": Devuelve la posición inicial y final, el texto y el nivel de confianza del clip de alucinación.
    • "tokens": Devuelve la probabilidad ilusoria de cada ficha.
  • plataformaElija el formato de salida adecuado: nivel de span para un vistazo rápido, nivel de token para un análisis en profundidad.

4. análisis

  • salida de nivel de span: Examina cada fragmento alucinatorio del text responder cantando confidenceEl nivel de confianza se aproxima a 1, lo que indica una alta probabilidad de alucinación.
  • salida de nivel de testigoVista palabra por palabra prob para determinar puntos concretos de error.
  • Tratamiento de seguimiento: Optimice el sistema RAG o registre los problemas en función de los resultados.

Funciones destacadas

Detección del nivel de fichas

LettuceDetect permite el análisis palabra por palabra para detectar alucinaciones con precisión:

predictions = detector.predict(
context=contexts,
question=question,
answer=answer,
output_format="tokens"
)
print(predictions)

Muestra de resultados::

检测结果: [{'token': '69', 'pred': 1, 'prob': 0.95}, {'token': 'million', 'pred': 1, 'prob': 0.95}]

Esto sugiere que "69 millones" se etiqueta como una ilusión, adecuada para escenarios que requieren un ajuste preciso.

Ayuda a largo plazo

Para tareas de texto largo, LettuceDetect puede procesar 4096 tokens:

contexts = ["A long context repeated many times..." * 50]
predictions = detector.predict(context=contexts, question="...", answer="...")

Sólo tienes que asegurarte de que la entrada está dentro de los límites.

Demostración de Streamlit

LettuceDetect ofrece presentaciones interactivas:

  1. Instala Streamlit:
    pip install streamlit
    
  2. Ejecuta la demo:
    streamlit run demo/streamlit_demo.py
    
  3. Introduzca el contexto, las preguntas y las respuestas en su navegador para ver los resultados de las pruebas en tiempo real.

Uso avanzado

Formación de modelos personalizados

  1. Descargar el conjunto de datos RAGTruth (enlace (en un sitio web)), introduzca el data/ragtruth Carpeta.
  2. Preprocesamiento de datos:
    python lettucedetect/preprocess/preprocess_ragtruth.py --input_dir data/ragtruth --output_dir data/ragtruth
    
  3. Modelos de formación:
    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
    

optimización del rendimiento

  • Aceleración GPUInstalar la versión PyTorch CUDA para mejorar la velocidad de inferencia.
  • archivo por lotes: Coloque varias muestras en el contexts Lista de pruebas únicas.

advertencia

  • Las entradas deben estar en inglés, por el momento no se admiten otros idiomas.
  • Asegúrese de que la red está abierta para que el modelo pueda descargarse en la primera ejecución.

Con los pasos anteriores, los usuarios pueden utilizar fácilmente LettuceDetect para detectar las ilusiones del sistema RAG y mejorar la fiabilidad de los contenidos generados.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...