No. 07of 22LandmarkResearch

AI-text detection, robustness testing and plagiarism analysis

Textegrity

A content-integrity pipeline: an ensemble of eight detectors for AI-written text, a back-translation stage that tests how easily detection breaks, and a plagiarism check. Its own evaluation shows 97.86% accuracy on its training distribution and 55.7% on text from newer models.

When
Feb – May 2026
Status
Built
Team
RV University course project: a four-member team with a faculty guide.
Role
All 25 commits in the project repository are mine, and the April training runs were on my machine. The project documents list me under AI detection.

Progress

Progress70%

All three features run end to end from the command line and the API. The web front end was never deployed, and detection of text from newer models is weak.

What comes next

  1. Build a clean held-out test set from different sources and report the real out-of-distribution number.
  2. Correct the draft paper before it goes anywhere.
  3. Fix the failing API tests and deploy a working detection demo.

97.86%

accuracy of the four-model meta-classifier on 2,099 held-out rows

In-distribution only: the held-out rows come from the same RAID and HC3 pool as the training data, and there is no clean held-out split. Read it together with the next figure.

Training run output (step1_progress/STEP1_COMPLETE)Verified. Backed by a file or public page that has been checked.Training run output (step1_progress/STEP1_COMPLETE) — Read in the project audit of 13 November 2026.

55.7%

accuracy on 140 texts from newer language models

78 of 140 right on a balanced set: 37 of 70 AI texts and 41 of 70 human texts. Chance is 50%.

The project's benchmark results file (benchmark_results.csv)Verified. Backed by a file or public page that has been checked.The project's benchmark results file (benchmark_results.csv) — Read in the project audit of 13 November 2026.

97.25%

accuracy of the best fine-tuned detector alone, DeBERTa-v3-large, on 6,994 samples

Same data pool. Two of the four fine-tuned detectors are weak (Longformer 64.36%, XLM-RoBERTa 36.75%), and the best released detector scores 96.67% on the same set.

Training log and metrics file (step1_output.log, REAL_METRICS.json), recomputed from saved scoresVerified. Backed by a file or public page that has been checked.Training log and metrics file (step1_output.log, REAL_METRICS.json), recomputed from saved scores — Read in the project audit of 13 November 2026.

62.0% → 27.9%

average detector score before and after back-translation

Three test texts. One barely moved, from 99.7% to 82.6%.

The project's benchmark notes (BENCHMARK_RESULTS.md); the per-text row is from the project paper, table IVVerified. Backed by a file or public page that has been checked.The project's benchmark notes (BENCHMARK_RESULTS.md); the per-text row is from the project paper, table IV — The average was read in the project audit of 13 November 2026.

8

detectors in the ensemble: four fine-tuned by the team, four used as released

This counts detectors. Counting every transformer the team fine-tuned across detection, plagiarism and rewriting gives seven, plus a partly trained PEGASUS; several of them are weak.

Project presentation and training logsVerified. Backed by a file or public page that has been checked.Project presentation and training logs — Confirmed in the project audit of 13 November 2026.

93.57%

accuracy of the plagiarism cross-encoder on 9,908 sentence pairs

PAWS, MRPC and STS pairs; F1 0.930. The run output survives only as console text saved in a session log.

Training console output saved in a session logVerified. Backed by a file or public page that has been checked.Training console output saved in a session log — Read in the project audit of 13 November 2026.

Exhibit 01 · Chart

In the lab, and on newer models

  1. Held-out rows of its own data pool (2,099)97.86%

    Four fine-tuned detectors, stacked. Same RAID and HC3 pool as the training data.

  2. Texts from newer language models (140)55.7%

    78 of 140 right: 37 of 70 AI texts, 41 of 70 human texts.

  3. Chance, on a balanced set50%

    What a coin flip scores.

Scale: 0 to 100% accuracy

Both figures are the project's own. The first has no clean held-out split behind it; the second is small, and it is the one that matters.

Exhibit 02 · Scorecard

Every detector, and what it scored

Run outputs read in the project audit of 13 November 2026. All detector rows are on the same 6,994-sample RAID and HC3 set unless a row says otherwise; none of it is a clean out-of-distribution test except the 140-text row.

Every detector, and what it scored
MeasureResultNoteSource
DeBERTa-v3-large (fine-tuned)97.25%AUROC 0.9989.step1_output.log, REAL_METRICS.json
RoBERTa-large (fine-tuned)94.48%AUROC 0.9872.step1_output.log, REAL_METRICS.json
Longformer (fine-tuned)64.36%Weak. AUROC 0.777.step1_output.log, REAL_METRICS.json
XLM-RoBERTa (fine-tuned)36.75%Below chance on a two-class task. AUROC 0.6418.step1_output.log, REAL_METRICS.json
Fakespot RoBERTa (as released)96.67%Within a point of the best detector the team trained.step15_progress score files
ModernBERT (as released)90.06%step15_progress score files
Binoculars (as released)86.17%step15_progress score files
GLTR (as released)63.93%step15_progress score files
Four-model meta-classifier, 2,099 held-out rows97.86%F1 0.984, AUROC 0.998. Held-out rows of the same pool.step1_progress/STEP1_COMPLETE
Four-model meta-classifier, all 6,994 samples97.36%False-positive rate 6.82%.evaluation_report.json
After adversarial retraining94.71%AUROC 0.984, F1 0.961.step5_output.log
Later 14-feature meta-classifier, 56,994 samples76.49%The eight-detector, 14-feature version, on 56,994 samples as its metrics file records it. F1 0.7718, AUROC 0.8472. Lower than the four-model figure, and listed so that nothing is hidden.meta_classifier_metrics.json
140 texts from newer language models55.7%70 AI, 70 human. The honest out-of-distribution number.benchmark_results.csv
Plagiarism cross-encoder, 9,908 pairs93.57%F1 0.930, AUC 0.979, on PAWS, MRPC and STS.Training console output saved in a session log
Sentence-embedding similarity (validation)Spearman 0.733similarity_evaluation_validation_results.csv
Plagiarism index15,000 documentsstep6_output.log
Rewriting modelsNot a working resultThe fully fine-tuned Flan-T5-XL mostly copies its input; PEGASUS stopped at 13,000 of 39,000 steps.step3_output.log, trainer_state.json

Exhibit 03 · Compare

What back-translation does to the score

Before

62.0%

The average "AI" score the detector gave three test texts as written.

After back-translation

27.9%

The same three texts after a round trip through other languages, keeping the variant that scored lowest. One technical text barely moved, from 99.7% to 82.6%.

Three texts is a tiny sample. It is shown as a robustness test of detection, not as a tool: it shows how fragile the detector is.

01

What it is

Textegrity checks a piece of text three ways: is it AI-written, does detection survive rewriting, and is it copied. It was a university course project by a four-member team with a faculty guide. Its paper is an unpublished draft.

02

The hard part

Single detectors disagree, and the disagreement carries information. When one detector is sure a text is AI-written and another is sure it is human, the text has often been rewritten. A plain average hides that and lands near the middle.

03

What was built

Eight detectors. Four are transformer classifiers we fine-tuned on the RAID and HC3 datasets: DeBERTa-v3-large, RoBERTa-large, Longformer and XLM-RoBERTa. Four are used as released: Binoculars, a Fakespot RoBERTa detector, ModernBERT and GLTR. A logistic-regression meta-classifier stacks their scores with interaction features that encode agreement and disagreement between detectors. The robustness stage back-translates a text through five languages, scores each variant with the detector and keeps the one that scores lowest. The plagiarism stage combines a MinHash index of 15,000 documents, web and scholarly search, a fine-tuned sentence-embedding model and a cross-encoder. It all runs from a command-line pipeline and a FastAPI service; the web front end was never deployed.

04

What was found

On 2,099 held-out rows of its own data pool, the four fine-tuned detectors stacked together score 97.86% accuracy; DeBERTa alone scores 97.25%. On 140 texts written by newer language models the detector scores 55.7%, which is close to chance, and that is the number that matters. Two of the four fine-tuned detectors turned out weak (Longformer 64.36%, XLM-RoBERTa 36.75%), and the best released detector, at 96.67%, is within a point of the best one we trained. Across three test texts, back-translation lowered the average detector score from 62.0% to 27.9%; one technical text barely moved, from 99.7% to 82.6%.

05

What I'd change

There is no clean held-out split: every in-distribution figure comes from the same pool as the training data. An eight-detector version scored higher still on that pool, but the pool very likely overlaps its training sources, so that figure is not quoted here. The next version needs a test set built from different sources, and a larger, current benchmark than 140 texts, before it quotes any headline number. The rewriting stage belongs here as a robustness test: it shows how fragile detection is, and that is the finding.

Figure

System diagram with three modules. AI text detection: eight detectors feed interaction features and a meta-classifier, producing a confidence score. A back-translation module passes text through five languages and rewrites it. Plagiarism detection: n-gram analysis, web and scholar search, sentence-embedding similarity and sentence matching, ending in source attribution and a report.
System diagram from the project's draft paper.

One question

The answer is on this page. Get it right and it goes in your passport on the map.

Challenge

The detector scores 97.86% on held-out rows of its own data. What does it score on 140 texts written by newer language models?

Show the answer

55.7%. 55.7%: 78 of 140 texts right on a balanced set, where chance is 50%. Source: the project's own benchmark results file (benchmark_results.csv), read in the project audit of 13 November 2026.

Stack
  • Python
  • PyTorch
  • Hugging Face Transformers
  • sentence-transformers
  • scikit-learn
  • datasketch (MinHash/LSH)
  • FastAPI
  • Helsinki-NLP opus-mt translation models
  • llama-cpp (optional local models)
  • Kubeflow (A100) and Apple MPS for training