LettuceDetect: RAG 시스템에서 환각을 감지하는 효율적인 도구

일반 소개

LettuceDetect는 검색 증강 생성(RAG) 시스템에서 생성된 환영 콘텐츠를 감지하도록 특별히 설계된 KRLabsOrg에서 개발한 경량 오픈 소스 도구입니다. 개발자가 문맥, 질문, 답변을 비교하고 문맥에서 지원되지 않는 답변 부분을 식별하여 문맥을 강화할 수 있도록 도와줍니다. RAG 시스템 정확도. 이 도구는 ModernBERT 기술을 기반으로 하며 4096을 지원합니다. 토큰 LettuceDetect는 기존 인코더 모델보다 훨씬 계산 비용이 적게 들면서 기존 인코더 모델보다 더 효율적인 긴 컨텍스트 처리를 제공하도록 설계되었으며, 대규모 언어 모델(LLM)에 비해 계산 비용이 훨씬 적게 들면서 RAGTruth 데이터 세트에서 F1 점수가 79.22%로 기존의 여러 솔루션보다 뛰어난 성능을 발휘합니다. 이 프로젝트는 MIT 라이선스에 따라 공개되며, AI가 생성한 콘텐츠의 신뢰성을 최적화해야 하는 사용자를 위해 코드와 모델이 무료로 공개되어 있습니다.

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

 

기능 목록

  • 토큰 레벨 감지단어별로 응답을 분석하여 환각 부분을 정확하게 표시합니다.
  • 스팬 레벨 감지응답, 출력 위치 및 신뢰 수준에서 완전한 팬텀 세그먼트를 식별합니다.
  • 긴 컨텍스트 처리복잡한 작업을 위해 4096개의 토큰을 지원하는 컨텍스트입니다.
  • 효율적인 추론이 모델은 150M 및 396M 모델로 제공되며 단일 GPU에서 초당 30~60개의 샘플을 처리합니다.
  • 오픈 소스 통합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.'}]

그 결과 "인구는 6,900만 명입니다"는 문맥상 6,700만 명의 인구를 의미하기 때문에 착각으로 표시됩니다.

주요 기능

1. 감지기 초기화하기

  • 매개변수 설명::
    • method현재 '트랜스포머'만 지원됩니다.
    • model_path선택 사항 KRLabsOrg/lettucedect-base-modernbert-en-v1(150M) 또는 KRLabsOrg/lettucedect-large-modernbert-en-v1(396M).
  • rig기본 버전은 가볍고 빠르며, 대형 버전은 더 정확합니다.

2. 입장 준비

  • 컨텍스트: 영어로 된 배경 정보가 포함된 문자열 목록을 전달합니다.
  • 질문문맥과 관련성이 있어야 하는 구체적인 질문을 입력합니다.
  • 답변: RAG 시스템에서 생성된 응답을 입력합니다.
  • 다음 사항에 유의하십시오.컨텍스트의 총 길이가 4096토큰을 초과하지 않도록 합니다.

3. 런타임 탐지

  • 메서드 호출사용 detector.predict().
  • 출력 형식::
    • "spans"환각 클립의 시작 및 종료 위치, 텍스트, 신뢰도를 반환합니다.
    • "tokens"각 토큰의 환영 확률을 반환합니다.
  • rig: 적절한 출력 형식, 빠른 보기를 위한 스팬 수준, 심층 분석을 위한 토큰 수준을 선택합니다.

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}]

이는 '6900만'이 환영으로 표시된 것으로, 정밀한 조정이 필요한 시나리오에 적합하다는 것을 의미합니다.

긴 컨텍스트 지원

긴 텍스트 작업의 경우, LettuceDetect는 4096개의 토큰을 처리할 수 있습니다:

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

입력이 한도 내에 있는지 확인하기만 하면 됩니다.

스트림라이트 데모

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
    

성능 최적화

  • GPU 가속추론 속도를 향상시키려면 PyTorch CUDA 버전을 설치하세요.
  • 배치 파일여러 개의 샘플을 contexts 일회성 테스트 목록.

주의

  • 입력은 영어로만 가능하며, 현재 다른 언어는 지원되지 않습니다.
  • 처음 실행할 때 모델을 다운로드할 수 있도록 네트워크가 열려 있는지 확인합니다.

위의 단계를 통해 사용자는 LettuceDetect를 사용하여 RAG 시스템 착시를 쉽게 감지하고 생성된 콘텐츠의 신뢰성을 향상시킬 수 있습니다.

© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...