Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text classification

ai-text-detector

by Bill Fisk BillFisk/ai-text-detector

ai-text-detector is an open-weight model for text classification from Bill Fisk, released under Apache License 2.0. It has 512-token context. Its published files total 1.7 GB.

This repository contains the merged FP32 ONNX model used by @clueso/ai-text-detector, a local AI-text detector for Node.js. It is a LoRA fine-tune of wasitaigeneratedcom/ai-text-detector-small.

Parameters—
Context512
Weights1.7 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Model Card

By Bill Fisk, published under apache-2.0, revision 451cd562a29f.

This repository contains the merged FP32 ONNX model used by @clueso/ai-text-detector, a local AI-text detector for Node.js. It is a LoRA fine-tune of wasitaigeneratedcom/ai-text-detector-small. The original four output classes and mask-aware mean-pooling architecture are preserved: The ONNX graph contains the DeBERTa encoder, mask-aware mean pooling, and four-class classifier. No remote code is required. Only the published MAGE training split was used for gradient updates. The accepted training sample contained 4,000 human and 4,000 AI documents, balanced across sources. Rank-8 LoRA adapters were trained on all 24 layers' query and value projections together with the classifier. This made…

Read Bill Fisk's full model card

Clueso AI Text Detector — MAGE LoRA v1

This repository contains the merged FP32 ONNX model used by @clueso/ai-text-detector, a local AI-text detector for Node.js.

It is a LoRA fine-tune of wasitaigeneratedcom/ai-text-detector-small. The original four output classes and mask-aware mean-pooling architecture are preserved:

DeBERTa-v3-large
    ↓
mask-aware mean pooling
    ↓
Linear(1024 → 4)
    ├── human
    ├── ai
    ├── ai_edited
    └── humanized

The headline AI score is:

AI score = 1 - P(human)

Input and inference behavior

  • English text
  • Minimum input: 50 words
  • Maximum chunk: 768 tokens including special tokens
  • Longer documents: sentence-aware chunks combined using token-weighted class probabilities
  • Calibrated AI-score threshold: 0.9974874649196864

The ONNX graph contains the DeBERTa encoder, mask-aware mean pooling, and four-class classifier. No remote code is required.

Fine-tuning

Only the published MAGE training split was used for gradient updates. The accepted training sample contained 4,000 human and 4,000 AI documents, balanced across sources.

Rank-8 LoRA adapters were trained on all 24 layers' query and value projections together with the classifier. This made 790,532 of 434,802,692 parameters trainable. Training ran for one epoch on Apple MPS with an effective batch size of 16 and learning rate 1e-4.

MAGE provides binary labels while this detector has four output classes. The training objective therefore compared the human logit with the combined nonhuman logit:

human_logit = logits[0]
nonhuman_logit = logsumexp(logits[1], logits[2], logits[3])

A KL-divergence preservation term discouraged collapse of the conditional distribution among ai, ai_edited, and humanized.

Training, validation, calibration, development, and sealed evaluation data were separated by published split and source group. Cross-boundary exact normalized-text matches and identical normalized 50-word prefixes were excluded.

See FINE_TUNING.md for the complete methodology and limitations.

Evaluation

On the untouched 1,997-document MAGE validation partition, ROC-AUC improved from 0.7820 to 0.9712.

The package-native threshold was selected on a separate 1,999-document MAGE calibration partition, targeting no more than 0.5% human false positives. At the selected threshold, calibration produced 54.6% AI recall, 0.40% human FPR, and 0.9659 ROC-AUC.

A fresh sealed package-native comparison used 4,000 documents from previously unused HC3 and RAID source groups:

Model ROC-AUC AI recall Human FPR Balanced accuracy
Original, calibrated 0.9672 66.70% 0.10% 83.30%
MAGE LoRA v1, calibrated 0.9866 83.55% 0.55% 91.50%

Dataset-level results:

Dataset Original recall Fine-tuned recall Original FPR Fine-tuned FPR
HC3 91.9% 92.6% 0.0% 0.7%
RAID 41.5% 74.5% 0.2% 0.4%

Artifact integrity

File:   onnx/model.onnx
Bytes:  1,737,980,451
SHA-256: 8b0d4d219bb87c645578b9bf590168635d5a5d0d2c7b7cb92a550fef2179d26f

The maximum absolute logit difference between PyTorch and ONNX across three reference inputs, including a 768-token input, was 0.000020682811737060547.

Limitations and responsible use

AI-text detection is probabilistic evidence, not proof of authorship. This model should not be the sole basis for disciplinary, employment, academic-integrity, legal, or other high-impact decisions.

Performance can vary with domain, language, generator, editing level, document length, and author population. The original model's undisclosed training corpus may overlap with public benchmarks. A false-positive rate measured on these samples does not guarantee the same rate in deployment.

License and attribution

Apache License 2.0. See LICENSE and NOTICE.

Base model: wasitaigeneratedcom/ai-text-detector-small.

Configuration

Architecture
DesklibAIDetectionModelV2
Context length (tokens)
512
Layers
24
Hidden size
1,024
Feed-forward size
4,096
Attention heads
16
Vocabulary size
128,100
Model type
deberta-v2

Identity and Version

Repository
BillFisk/ai-text-detector
Publisher
Bill Fisk
Task
Text classification
Modality
Text
Library
transformers.js
Parameters
Not stated by the source
Languages
en
Revision
451cd562a29f29aee9a6440ba615e9483510b3cf
First published
2026-09-25
Last updated
2026-09-25

Files and Weights

10 files, 1.7 GB in total. The weights are 1 file totalling 1.7 GB in onnx.

Weights1 file · 1.7 GB
Configuration2 files · 1.7 KB
Tokenizer2 files · 8.3 MB
Documentation4 files · 26.9 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
onnx/model.onnxWeights1.7 GB 8b0d4d219bb8
config.jsonConfiguration1.1 KB —
serving_head.jsonConfiguration579 B —
FINE_TUNING.mdDocumentation10.7 KB —
LICENSEDocumentation11.4 KB —
NOTICEDocumentation401 B —
README.mdDocumentation4.4 KB —
.gitattributesRepository1.5 KB —
tokenizer.jsonTokenizer8.3 MB —
tokenizer_config.jsonTokenizer504 B —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
1.7 GB
Download from Bill Fisk

Released by Bill Fisk through its official repository on Hugging Face. Read the license.

Built From

  • Derived from wasitaigeneratedcom/ai-text-detector-small
  • Quantized from wasitaigeneratedcom/ai-text-detector-small
  • Trained on (disclosed) yaful/MAGE

Memory Requirements

PrecisionWeights in memory
As published1.7 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About ai-text-detector

Can I use ai-text-detector commercially?

Yes. ai-text-detector is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is ai-text-detector's context length?

512 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Text classification

twitter-roberta-base-sentiment-latest

Cardiff NLP

This is a RoBERTa-base model trained on ~124M tweets from January 2018 to December 2021, and finetuned for sentiment analysis with the TweetEval benchmark. The original Twitter-based RoBERTa model can be found here and the original reference paper is TweetEval. This model is suitable for English. 0 -> Negative; 1 -> Neutral; 2 -> Positive This sentiment analysis model has been integrated into TweetNLP. You can access the demo here.

Open weights cc-by-4.0 514 tokens transformers

Model · Text classification

finbert-tone

Yi

FinBERT is a BERT model pre-trained on financial communication text. The purpose is to enhance financial NLP research and practice. It is trained on the following three financial communication corpus. The total corpora size is 4.9B tokens. More technical details on FinBERT: Click Link This released finbert-tone model is the FinBERT model fine-tuned on 10,000 manually annotated (positive, negative, neutral) sentences from analyst reports. This model achieves superior performance on financial tone analysis task. If you are simply interested in using FinBERT for financial tone analysis, give it a try. If you use the model in your academic work, please cite the following paper: Huang, Allen H.…

Open weights 512 tokens transformers

Model · Text classification

ms-marco-MiniLM-L-6-v2

Joshua

https://huggingface.co/cross-encoder/ms-marco-MiniLM-L-6-v2 with ONNX weights to be compatible with Transformers.js. If you haven't already, you can install the Transformers.js JavaScript library from NPM using: Note: Having a separate repo for ONNX weights is intended to be a temporary solution until WebML gains more traction. If you would like to make your models web-ready, we recommend converting to ONNX using Optimum and structuring your repo like this one (with ONNX weights located in a subfolder named onnx).

Open weights 512 tokens transformers.js

Model · Text classification

twitter-xlm-roberta-base-sentiment

Cardiff NLP

This is a multilingual XLM-roBERTa-base model trained on ~198M tweets and finetuned for sentiment analysis. The sentiment fine-tuning was done on 8 languages (Ar, En, Fr, De, Hi, It, Sp, Pt) but it can be used for more languages (see paper for details). This model has been integrated into the TweetNLP library.

Open weights 514 tokens transformers

Model · Text classification

unbiased-toxic-roberta

Unitary

The huggingface models currently give different results to the detoxify library (see issue here). For the most up to date models we recommend using the models from https://github.com/unitaryai/detoxify Trained models & code to predict toxic comments on 3 Jigsaw challenges: Toxic comment classification, Unintended Bias in Toxic comments, Multilingual toxic comment classification. Built by Laura Hanu at Unitary, where we are working to stop harmful content online by interpreting visual content in context. Score not directly comparable since it is obtained on the validation set provided and not on the test set. To update when the test labels are made available. It is also noteworthy to mention…

Open weights apache-2.0 514 tokens transformers

Model · Text classification

emotion-english-distilroberta-base

Hartmann

With this model, you can classify emotions in English text data. The model was trained on 6 diverse datasets (see Appendix below) and predicts Ekman's 6 basic emotions, plus a neutral class: 1) anger 2) disgust 3) fear 4) joy 5) neutral 6) sadness 7) surprise The model is a fine-tuned checkpoint of DistilRoBERTa-base. For a 'non-distilled' emotion model, please refer to the model card of the RoBERTa-large version. a) Run emotion model with 3 lines of code on single text example using Hugging Face's pipeline command on Google Colab: b) Run emotion model on multiple examples and full datasets (e.g.,.csv files) on Google Colab: Please reach out to [email protected] if you have any…

Open weights 514 tokens transformers