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

최신 AI 리소스5개월 전에 게시 됨 AI 공유 서클
1.9K 00

일반 소개

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 시스템 착시를 쉽게 감지하고 생성된 콘텐츠의 신뢰성을 향상시킬 수 있습니다.

© 저작권 정책

관련 문서

댓글 없음

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