CoolFace
Modelpublic

yaoandy107/greyscope-v2-qwen3.5-4b

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
2likes406downloads
Model Card

Greyscope v2

Greyscope estimates how much AI was involved in a passage. It returns a score from 0 to 1 and one of three labels: human, AI-edited, or AI-generated. It supports English, Japanese, and Traditional Chinese.

This is the reference bf16 model. Other builds use the same labels and calibration:

ArtifactSizeBest for
bf168.4 GBCUDA, or CPU when speed is not important
MLX Q42.4 GBApple Silicon
Transformers int43.5 GBNVIDIA GPU when bf16 does not fit

Quick start

The Greyscope repository contains the calibrated decoder:

bash
git clone https://github.com/yaoandy107/greyscope
cd greyscope
uv sync
uv run greyscope "Paste a paragraph here."

From Python:

python
from greyscope.inference import detect

result = detect("Paste a paragraph here.")

Example output:

json
{
  "label": "AI-edited",
  "ai_involvement": 0.46,
  "bucket_probs": {"none": 0.18, "light": 0.44, "moderate": 0.31, "heavy": 0.07}
}

ai_involvement describes the estimated degree of AI involvement; it is not a probability that the author cheated. bucket_probs are the model's probabilities for its four training levels. Use --mode binary if you need a human / AI label.

Use Greyscope's calibrated decoder rather than a stock Transformers classification pipeline. The three model logits are CORN conditional logits, not class probabilities.

Mac performance

Measured on an M1 Pro with 32 GB unified memory.

BuildModel sizePeak memory512 tokens
MLX Q42.4 GB3.0 GB2.43 s
Transformers bf168.4 GB9.4 GB2.54 s

MLX Q4 matched bf16 quality across 3,007 external benchmark rows. See the release metrics for details.

Evaluations

Graded AI involvement

APT-Eval

Uses 3,000 of 14,950 rows: all 300 human passages and a stratified sample of 2,700 polished passages. Spearman measures whether the score tracks editing amount; higher is better.

ModelSpearman
Greyscope v20.636
Greyscope v1 (previous release)0.645
EditLens Llama-3.2-3B0.601

Binary AI detection

These evaluations compare human and AI text, so binary-only detectors can be included.

Beemo

Uses a 2,997-row sample from the larger Beemo dataset: 333 source documents with all nine variants. AUROC tests generated and edited text; higher is better.

ModelAUROC
Greyscope v20.819
Greyscope v1 (previous release)0.840
MELD0.827
EditLens Llama-3.2-3B0.817
Desklib v1.010.801
RAID extra

Uses 4,968 rows from RAID extra: code, Czech, and German with all 11 attacks. This is an out-of-domain robustness check, not a supported-language benchmark. Higher is better for both metrics. MELD and Desklib are excluded because they trained on RAID.

ModelAUROCTPR @ 1% FPR
Greyscope v20.7710.122
Binoculars0.7690.295
Greyscope v1 (previous release)0.7200.130
EditLens Llama-3.2-3B0.7130.266

Benchmark metadata is in `benchmarks/`.

Limitations

  • —Light AI editing is harder to detect than fully generated text.
  • —Results change with text length, subject, generator, language, and rewriting method.
  • —The model reads at most 2,048 tokens from each passage.
  • —Chinese training data is Traditional Chinese; do not assume the same quality on Simplified Chinese.
  • —Training edit-strength labels came from embedding distance rather than human annotation.
  • —Do not use this model as the sole evidence in academic, employment, or disciplinary decisions.

Training and license

Greyscope v2 is a Qwen3.5-4B LoRA with a four-level CORN ordinal head and a ranking loss. It was trained on English, Japanese, and Traditional-Chinese text. No EditLens data was used for training.

The weights are Apache-2.0 and the code is MIT. Source texts and the generated training dataset are not redistributed with the weights. The complete recipe is in the repository.