Skip to main content

AI Detector: Detecting AI Generated Text

Overview

AI Detector is a Python module, based on PyTorch, that simplifies the process of training and deploying a classification model to detect whether a given text has been generated by AI. It is designed to be platform-agnostic, making AI detection capabilities accessible to users across different work environments.


Installation

There are two methods available for installing the AI Detector module:

  • Using pip: You can install AI Detector directly from PyPI using pip by running the following command:

    pip3 install aidetector

  • From this repository: Alternatively, you can clone this repository and install it locally:

    git clone https://github.com/baileytec-labs/aidetector.git
    cd aidetector
    pip3 install .
    

Usage

AI Detector can be operated in two modes: training and inference.

Training

To train a new model, you need a CSV dataset with a classification column (labels: 0 for human-written and 1 for AI-generated text) and a text column (the text data). The script takes the following command-line arguments:

aidetector train --datafile [path_to_data] --modeloutputfile [path_to_model] --vocaboutputfile [path_to_vocab] --tokenmodel [SpaCy model] --percentsplit [percentage_for_test_split] --classificationlabel [classification_label_in_data] --textlabel [text_label_in_data] --download  --lowerbound [lower_bound_for_early_stopping] --upperbound [upper_bound_for_early_stopping] --epochs [number_of_epochs]

Inference

To make predictions with a trained model, you need to provide the text you want to classify. The script takes the following command-line arguments:

aidetector infer --modelfile [path_to_trained_model] --vocabfile [path_to_vocab] --text [text_to_classify] --tokenmodel [SpaCy_model] --threshold [probability_threshold_for_classification] --download [flag_to_download_SpaCy_model]

The prediction will be printed to the console: "This was written by AI" or "This was written by a human."


Python API

You can use all the functionality of AiDetector in your python programs, it's as simple as starting with


from aidetector.aidetectorclass import *
from aidetector.inference import *
from aidetector.training import *
from aidetector.tokenization import *
#or
import aidetector as ad

From there, you have access to all of the training, inference, and tokenization capabilities.

for example,

#Getting inference of an AI model in python
from aidetector.tokenization import *
from aidetector.inference import *
from aidetector.aidetectorclass import *

tokenizer=get_tokenizer()
vocab=load_vocab("./myvocabfile.vocab")
model = AiDetector(len(vocab))

testtext="Is this written by AI?"


model.load_state_dict(torch.load("./mymodelfile.model"))
isai=check_input(
    model,
    vocab,
    testtext,
    tokenizer=tokenizer,
)

#returns 0 if human, 1 if AI.




Dependencies

The main dependencies for this project include:

PyTorch SpaCy Torchtext scikit-learn pandas argparse Halo

Note: For tokenization, the project uses SpaCy models. By default, it uses the multi-language model xx_ent_wiki_sm, but other models can be specified using the --tokenmodel argument. If the model is not already downloaded, you can use the --download flag to download the model.

Contributing

Contributions to the AI Detector project are welcome. Please review CONTRIBUTION.md for further instructions.

Release files for aidetector 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aidetector 0.0.2
File Size Uploaded
aidetector-0.0.2.tar.gz 13.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aidetector 0.0.2
File Interpreter ABI Platform
aidetector-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 27.6 kB

Release files / aidetector-0.0.2.tar.gz

Download URL aidetector-0.0.2.tar.gz
Size 13.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4e582d5d206671d5051bc9d32f3a5f8cbdd879f38de91e44a6fac63cce62032b
BLAKE2b-256 checksum
How to use checksums
f6a10dfe5c8499688333fe1fb59c730e52da81ece3af653624386a5738b8b756
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.4

Release files / aidetector-0.0.2-py3-none-any.whl

Download URL aidetector-0.0.2-py3-none-any.whl
Size 14.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3bc058ae0a443309cc72e1621ffde655b15a452fc925ab63ffd335f243b40214
BLAKE2b-256 checksum
How to use checksums
b9d320e3fae4136b417c8a765a2d03a5a64b890e861ecbb1af693152cac97d3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page