ImBD (Imitate Before Detect) 是一个开创性的机器生成文本检测项目,该项目发表于AAAI 2025会议。随着ChatGPT等大语言模型(LLMs)的广泛应用,识别AI生成的文本内容变得越来越具有挑战性。ImBD项目提出了一种新颖的”先模仿后检测”方法,通过深入理解和模仿机器文本的风格特征来提升检测效果。该方法首次提出对齐机器文本的风格偏好,建立了一个全面的文本检测框架,能够有效识别经过人工修改的机器生成文本。项目采用Apache 2.0开源许可证,提供了完整的代码实现、预训练模型和详细文档,方便研究人员和开发者在此基础上进行进一步的研究和应用开发。

Endereço de demonstração: https://ai-detector.fenz.ai/ai-detector
Lista de funções
- Oferece suporte à detecção de alta precisão de texto gerado por máquina
- Fornecer modelos pré-treinados para implantação e uso diretos
- Novo algoritmo de alinhamento de recursos de estilo textual implementado
- Inclui conjuntos de dados experimentais detalhados e referências de avaliação
- Fornecer treinamento completo e código de inferência
- Oferece suporte a dados de treinamento personalizados para o ajuste fino do modelo
- Inclui documentação detalhada da API e exemplos de uso.
- Fornece ferramentas de linha de comando para testes e avaliações rápidas
- Suporta processamento de texto em lote
- Inclui ferramentas de visualização para exibir os resultados dos testes
Usando a Ajuda
1. configuração ambiental
Primeiro, você precisa configurar seu ambiente Python e instalar as dependências necessárias:
git clone https://github.com/Jiaqi-Chen-00/ImBD
cd ImBD
pip install -r requirements.txt
2. preparação de dados
Antes de começar a usar o ImBD, é necessário preparar dados de treinamento e de teste. Os dados devem conter as duas categorias a seguir:
- Texto original preparado manualmente
- Texto gerado ou modificado por máquina
Requisitos de formato de dados:
- Os arquivos de texto precisam ser codificados em UTF-8
- Cada amostra ocupa uma linha
- Propõe-se dividir o conjunto de dados em conjunto de treinamento, conjunto de validação e conjunto de teste na proporção de 8:1:1
3. treinamento de modelos
Execute o seguinte comando para iniciar o treinamento:
python train.py \
--train_data path/to/train.txt \
--val_data path/to/val.txt \
--model_output_dir path/to/save/model \
--batch_size 32 \
--learning_rate 2e-5 \
--num_epochs 5
4. avaliação do modelo
Avalie o desempenho do modelo usando conjuntos de teste:
python evaluate.py \
--model_path path/to/saved/model \
--test_data path/to/test.txt \
--output_file evaluation_results.txt
5. detecção de texto
Detecção de textos individuais:
python detect.py \
--model_path path/to/saved/model \
--input_text "要检测的文本内容" \
--output_format json
Detecção de texto em lote:
python batch_detect.py \
--model_path path/to/saved/model \
--input_file input.txt \
--output_file results.json
6. funções avançadas
6.1 Ajuste fino do modelo
O modelo pode ser ajustado com seu próprio conjunto de dados se você precisar otimizar o texto específico do domínio:
python finetune.py \
--pretrained_model_path path/to/pretrained/model \
--train_data path/to/domain/data \
--output_dir path/to/finetuned/model
6.2 Análise de visualização
Analise os resultados dos testes usando a ferramenta de visualização integrada:
python visualize.py \
--results_file path/to/results.json \
--output_dir path/to/visualizations
6.3 Implementação do serviço de API
Implante o modelo como um serviço de API REST:
python serve.py \
--model_path path/to/saved/model \
--host 0.0.0.0 \
--port 8000
7. advertências
- As GPUs são recomendadas para o treinamento de modelos para aumentar a eficiência
- A qualidade dos dados de treinamento tem um impacto significativo no desempenho do modelo
- Atualizar regularmente o modelo para acomodar novos recursos de texto gerados por IA
- Atenção ao controle de versão do modelo durante a implementação em ambientes de produção
- Recomenda-se que os resultados dos testes sejam salvos para análise posterior e otimização do modelo
8. perguntas frequentes
P: Quais idiomas são compatíveis com o modelo?
R: No momento, oferecemos suporte principalmente ao inglês; outros idiomas precisam ser treinados com conjuntos de dados correspondentes.
P: Como posso melhorar a precisão dos meus testes?
R: O desempenho pode ser aprimorado com a adição de dados de treinamento, ajuste dos parâmetros do modelo e ajuste fino usando dados específicos do domínio.
P: Como a velocidade de detecção pode ser otimizada?
R: A velocidade de detecção pode ser aprimorada com o processamento em lote, a quantificação do modelo e o uso da aceleração da GPU.