Introdução geral
O LettuceDetect é uma ferramenta leve e de código aberto desenvolvida pela KRLabsOrg, projetada especificamente para detectar conteúdo ilusório gerado em sistemas RAG (Retrieval Augmented Generation). Ela ajuda os desenvolvedores a aprimorar o contexto, comparando o contexto, a pergunta e a resposta, e identificando as partes da resposta que não são compatíveis com o contexto RAG precisão do sistema. A ferramenta é baseada na tecnologia ModernBERT e suporta 4096 token O LettuceDetect foi projetado para fornecer processamento de contexto longo, que é mais eficiente do que os modelos de codificadores tradicionais e muito menos dispendioso do ponto de vista computacional do que os modelos de linguagem grande (LLMs). O LettuceDetect tem um bom desempenho no conjunto de dados RAGTruth, com uma pontuação F1 de 79,22% para a versão de modelo grande, superando várias soluções existentes. O projeto é lançado sob a licença MIT, e o código e o modelo são gratuitos e abertos para usuários que precisam otimizar a confiabilidade do conteúdo gerado por IA.
Lista de funções
- Detecção de nível de tokenAnálise das respostas palavra por palavra, marcando a seção de alucinação com precisão.
- Detecção do nível de amplitudeIdentificação de segmentos fantasmas completos em uma resposta, posição de saída e nível de confiança.
- processamento de contexto longoContextos que suportam 4096 tokens para tarefas complexas.
- Raciocínio eficienteO modelo está disponível em modelos de 150M e 396M e processa de 30 a 60 amostras por segundo em uma única GPU.
- integração de código abertoInstalação via pip, fornece uma API Python limpa e é fácil de incorporar em um sistema RAG.
- Vários formatos de saídaSuporte a probabilidade em nível de token e resultados de previsão em nível de intervalo para facilitar a análise.
- referência de desempenhoDados detalhados da avaliação estão disponíveis no conjunto de dados RAGTruth para facilitar as comparações.
Usando a Ajuda
O LettuceDetect é uma ferramenta leve e eficiente que os usuários podem começar a usar rapidamente com uma instalação simples. Abaixo está um guia detalhado de instalação e uso para ajudá-lo a dominar seus recursos do zero.
Processo de instalação
- Preparando o ambiente Python
Certifique-se de que você tenha o Python 3.8 ou superior instalado e que tenha o utilitário pip. Recomenda-se um ambiente virtual:python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
- Instalação do LettuceDetect
Instale a versão mais recente do PyPI:pip install lettucedetect
O processo de instalação faz o download automático das principais dependências, incluindo o modelo ModernBERT.
- Verificar a instalação
Verifique o sucesso executando o seguinte código em um terminal Python:from lettucedetect.models.inference import HallucinationDetector print("LettuceDetect instalado com sucesso!")
Uso básico
O LettuceDetect fornece uma API Python limpa para detectar alucinações com apenas algumas linhas de código. Veja abaixo um exemplo básico:
Código de amostra (computação)
from lettucedetect.models.inference import HallucinationDetector
# Inicializar o detector
detector = HallucinationDetector(
method="transformador",
model_path="KRLabsOrg/lettucedect-base-modernbert-en-v1"
)
# Dados de entrada
contextos = ["A França é um país da Europa. A capital da França é Paris. A população da França é de 67 milhões."]
question = "Qual é a capital da França? Qual é a população da França?"
answer = "A capital da França é Paris. A população da França é de 69 milhões."] question = "Qual é a capital da França?
# Realizar teste em nível de intervalo
previsões = detector.predict(
context=contexts,
question=question,
output_format="spans"
)
# Resultados de saída
print("Resultados do teste:", previsões)
Saída de amostra::
Resultados: [{'start': 31, 'end': 71, 'confidence': 0,994, 'text': ' A população da França é de 69 milhões.'}]
Os resultados mostram que "a população é de 69 milhões" é rotulada como uma ilusão porque o contexto sugere uma população de 67 milhões.
Funções principais
1. Inicialização do detector
- Descrição do parâmetro::
método
Somente "transformer" é suportado no momento.caminho_do_modelo
: OpcionalKRLabsOrg/lettucedect-base-modernbert-pt-v1
(150M) ouKRLabsOrg/lettucedect-large-modernbert-pt-v1
(396M).
- equipamentoA versão básica é leve e rápida, enquanto a versão grande é mais precisa.
2. Prepare-se para entrar
- ContextoPassa uma lista de cadeias de caracteres contendo informações de fundo, que precisam estar em inglês.
- PerguntaInsira perguntas específicas que precisam ser relevantes para o contexto.
- RespostaDigite as respostas geradas pelo sistema RAG.
- tomar nota deTamanho do contexto: Certifique-se de que o comprimento total do contexto não exceda 4096 tokens.
3. detecção em tempo de execução
- invocar um método: Uso
detector.predict()
. - formato de saída::
"vãos"
Posição inicial e final, texto e nível de confiança do clipe de alucinação: retorna a posição inicial e final, o texto e o nível de confiança do clipe de alucinação."tokens"
Probabilidade ilusória: Retorna a probabilidade ilusória de cada token.
- equipamentoEscolha o formato de saída apropriado, nível de abrangência para uma olhada rápida, nível de token para uma análise detalhada.
4. análise
- saída de nível de amplitudeExamine cada fragmento alucinatório do
texto
responder cantandoconfiança
O nível de confiança é próximo de 1, indicando uma alta probabilidade de alucinação. - saída de nível de token: visualização palavra por palavra
prob
para determinar pontos específicos de erro. - Tratamento de acompanhamentoOtimizar o sistema RAG ou registrar problemas com base nos resultados.
Funções em destaque
Detecção de nível de token
O LettuceDetect oferece suporte à análise palavra por palavra para fornecer uma detecção de alucinação refinada:
previsões = detector.predict(
context=contexts,
question=question,
answer=answer,
output_format="tokens"
)
print(predictions)
Saída de amostra::
Resultados: [{'token': '69', 'pred': 1, 'prob': 0,95}, {'token': 'million', 'pred': 1, 'prob': 0,95}]
Isso sugere que "69 milhões" é rotulado como uma ilusão, adequado para cenários que exigem ajuste preciso.
Suporte a contextos longos
Para tarefas de texto longo, o LettuceDetect pode processar 4096 tokens:
contextos = ["Um contexto longo repetido muitas vezes..." * 50]
predictions = detector.predict(context=contexts, question="..." , answer="...")
Apenas certifique-se de que a entrada esteja dentro dos limites.
Demonstração do Streamlit
O LettuceDetect oferece apresentações interativas:
- Instale o Streamlit:
pip install streamlit
- Execute a demonstração:
streamlit run demo/streamlit_demo.py
- Insira o contexto, as perguntas e as respostas em seu navegador para visualizar os resultados do teste em tempo real.
Uso avançado
Treinamento de modelos personalizados
- Faça o download do conjunto de dados RAGTruth (link (em um site)), insira o
data/ragtruth
Pasta. - Pré-processamento de dados:
python lettucedetect/preprocess/preprocess_ragtruth.py --input_dir data/ragtruth --output_dir data/ragtruth
- Modelos de treinamento:
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
otimização do desempenho
- Aceleração de GPUInstalar a versão CUDA do PyTorch para melhorar a velocidade de inferência.
- arquivo de loteColocar várias amostras no
contextos
Lista de testes únicos.
advertência
- A entrada deve ser feita em inglês; no momento, não há suporte para outros idiomas.
- Certifique-se de que a rede esteja aberta para que o download do modelo possa ser feito na primeira execução.
Com as etapas acima, os usuários podem usar facilmente o LettuceDetect para detectar ilusões do sistema RAG e aumentar a confiabilidade do conteúdo gerado.