LettuceDetect : un outil efficace pour détecter les hallucinations dans le système RAG

Introduction générale

LettuceDetect est un outil open-source léger développé par KRLabsOrg spécifiquement conçu pour détecter le contenu illusoire généré dans les systèmes de Génération Augmentée de Récupération (RAG). Il aide les développeurs à améliorer le contexte en comparant le contexte, la question et la réponse, et en identifiant les parties de la réponse qui ne sont pas soutenues par le contexte. RAG la précision du système. L'outil est basé sur la technologie ModernBERT et prend en charge 4096 jeton LettuceDetect est conçu pour fournir un traitement du contexte long, qui est plus efficace que les modèles d'encodage traditionnels tout en étant beaucoup moins coûteux en termes de calcul que les grands modèles de langage (LLM). LettuceDetect donne de bons résultats sur l'ensemble de données RAGTruth, avec un score F1 de 79,22% pour la version à grand modèle, surclassant un certain nombre de solutions existantes. Le projet est publié sous licence MIT, et le code et le modèle sont libres et ouverts aux utilisateurs qui souhaitent optimiser la fiabilité du contenu généré par l'IA.

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

 

Liste des fonctions

  • Détection du niveau des jetonsLes réponses sont analysées mot par mot, en notant précisément la section sur l'hallucination.
  • Détection du niveau de la plage de mesureIdentifier les segments fantômes complets dans une réponse, la position de sortie et le niveau de confiance.
  • traitement contextuel de longue duréeLes tâches complexes : des contextes qui prennent en charge 4096 jetons pour les tâches complexes.
  • Raisonnement efficaceLe modèle est disponible en 150M et 396M et traite 30 à 60 échantillons par seconde sur un seul GPU.
  • intégration des logiciels libres: s'installe via pip, fournit une API Python propre et est facile à intégrer dans un système RAG.
  • Plusieurs formats de sortieLe système d'information sur les langues : il prend en charge les probabilités au niveau du jeton et les résultats de prédiction au niveau de l'étendue pour faciliter l'analyse.
  • critères de performanceLes données d'évaluation détaillées sont disponibles sur le jeu de données RAGTruth pour faciliter les comparaisons.

 

Utiliser l'aide

LettuceDetect est un outil léger et efficace que les utilisateurs peuvent démarrer rapidement avec une simple installation. Vous trouverez ci-dessous un guide d'installation et d'utilisation détaillé pour vous aider à maîtriser ses fonctionnalités à partir de zéro.

Processus d'installation

  1. Préparation de l'environnement Python
    Assurez-vous que Python 3.8 ou une version plus récente est installé et que vous disposez de l'utilitaire pip. Un environnement virtuel est recommandé :

    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    venv\Scripts\activate     # Windows
  1. Installation de LettuceDetect
    Installez la dernière version depuis PyPI :

    pip install lettucedetect
    

    Le processus d'installation télécharge automatiquement les dépendances principales, y compris le modèle ModernBERT.

  2. Vérifier l'installation
    Vérifiez la réussite en exécutant le code suivant dans un terminal Python :

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

Utilisation de base

LettuceDetect fournit une API Python propre pour détecter les hallucinations avec seulement quelques lignes de code. Voici un exemple de base :

exemple de code (informatique)

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)

Exemple de sortie: :

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

Les résultats montrent que "la population est de 69 millions d'habitants" est considéré comme une illusion car le contexte suggère une population de 67 millions d'habitants.

Principales fonctions

1. Initialisation du détecteur

  • Description des paramètres: :
    • method: Seul le terme "transformateur" est actuellement pris en charge.
    • model_path: Facultatif KRLabsOrg/lettucedect-base-modernbert-en-v1(150M) ou KRLabsOrg/lettucedect-large-modernbert-en-v1(396M).
  • gréementLa version de base est légère et rapide, tandis que la version large est plus précise.

2. Se préparer à entrer

  • Contexte: Passer une liste de chaînes de caractères contenant des informations de base, qui doivent être rédigées en anglais.
  • QuestionLes questions spécifiques doivent être pertinentes par rapport au contexte.
  • RéponseLes réponses générées par le système RAG : Saisissez les réponses générées par le système RAG.
  • prendre noteLe contexte de l'opération doit être défini de manière à ce que la longueur totale du contexte n'excède pas 4096 tokens.

3. détection en cours d'exécution

  • invoquer une méthode: Utilisation detector.predict().
  • format de sortie: :
    • "spans": Renvoie la position de départ et de fin, le texte et le niveau de confiance du clip d'hallucination.
    • "tokens": renvoie la probabilité illusoire de chaque jeton.
  • gréementChoisir le format de sortie approprié, le niveau de l'étendue pour un examen rapide, le niveau du jeton pour une analyse approfondie.

4. l'analyse

  • niveau de sortie spanLa Commission : Examinez chaque fragment hallucinatoire de l'histoire de l'art et de la culture. text répondre en chantant confidenceLe niveau de confiance est proche de 1, ce qui indique une forte probabilité d'hallucination.
  • sortie au niveau du jeton: vue d'ensemble mot par mot prob pour déterminer les points d'erreur spécifiques.
  • Traitement de suiviOptimiser le système RAG ou enregistrer les problèmes en fonction des résultats.

Fonctions vedettes

Détection du niveau des jetons

LettuceDetect prend en charge l'analyse mot par mot pour permettre une détection fine des hallucinations :

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

Exemple de sortie: :

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

Cela suggère que "69 millions" est considéré comme une illusion, adaptée aux scénarios qui nécessitent un réglage précis.

Soutien à long terme

Pour les textes longs, LettuceDetect peut traiter 4096 tokens :

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

Il suffit de s'assurer que l'entrée se fait dans les limites prévues.

Démonstration de Streamlit

LettuceDetect propose des présentations interactives :

  1. Installer Streamlit :
    pip install streamlit
    
  2. Lancer la démo :
    streamlit run demo/streamlit_demo.py
    
  3. Saisissez le contexte, les questions et les réponses dans votre navigateur pour afficher les résultats des tests en temps réel.

Utilisation avancée

Formation de modèles personnalisés

  1. Télécharger le jeu de données RAGTruth (lien (sur un site web)), insérer le data/ragtruth Dossier.
  2. Prétraitement des données :
    python lettucedetect/preprocess/preprocess_ragtruth.py --input_dir data/ragtruth --output_dir data/ragtruth
    
  3. Modèles de formation :
    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
    

l'optimisation des performances

  • Accélération par le GPU: Installez la version CUDA de PyTorch pour améliorer la vitesse d'inférence.
  • fichier de lot: Placez plusieurs échantillons dans le contexts Liste des tests ponctuels.

mise en garde

  • Les données doivent être rédigées en anglais ; les autres langues ne sont pas prises en charge pour l'instant.
  • Assurez-vous que le réseau est ouvert afin que le modèle puisse être téléchargé lors de la première exécution.

Avec les étapes ci-dessus, les utilisateurs peuvent facilement utiliser LettuceDetect pour détecter les illusions du système RAG et améliorer la fiabilité du contenu généré.

© déclaration de droits d'auteur
AiPPT

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...