You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

Detector de texto con IA — versión de revisión (con entrenamiento adversario)

Una de las dos versiones del detector. Esta es la de revisión: marca de más a propósito, para que el autor reescriba los fragmentos señalados hasta que el indicador baje y el documento quede listo para enviarse a una revista sin ser flageado como IA.

Revisión (esta) Equilibrada
IA parafraseada con DIPPER (2 pasadas) 90.8% 5%
Texto humano reformulado con una herramienta 40% como IA + 30% gris 0%
Texto humano pulido con IA 35% 62%
IA sin parafrasear 98.9% 99.8%
Claude escribiendo desde cero 100% 100%

La diferencia de fondo: esta versión se entrenó también con textos de IA parafraseados por DIPPER, un modelo hecho para evadir detectores. Con eso aprendió a reconocer que un texto pasó por un parafraseador, no solo que el contenido sea de máquina. Por eso cierra la vía de evasión y, al mismo tiempo, marca al autor que reformula su propio texto con una herramienta: las ideas son suyas, pero las palabras no.

Cuándo usar esta versión: como señal de revisión sobre un texto propio. Marcar de más es lo deseable, porque empuja a reescribir con palabras propias.

Cuándo usar la equilibrada: cuando el resultado pueda tener consecuencias para alguien.

Ninguna de las dos sirve como prueba de deshonestidad. Que un texto salga limpio no demuestra nada, y que salga marcado tampoco prueba nada por sí solo.

Uso

import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

tok = AutoTokenizer.from_pretrained("ttech12/Ai-detector")
model = AutoModelForSequenceClassification.from_pretrained(
    "ttech12/Ai-detector", dtype=torch.float32).eval()

enc = tok(texto, truncation=True, max_length=512, return_tensors="pt")
p_ia = torch.softmax(model(**enc).logits, -1)[0, 1].item()

Ensamble completo con Binoculars (Qwen2.5-3B base e instruct), en calibration.json:

puntuación = 0.866·logit(p_ia) − 2.223·binoculars − 2.173
ia   si puntuación > 1.44    (1% de falsos positivos)
gris si puntuación > −9.12   (5%)

Con menos de 150 palabras no se emite resultado.

Entrenamiento

  • Textos humanos anteriores a 2022 (antes de ChatGPT): resúmenes de OpenAlex y fragmentos de prosa de tesis de acceso abierto, con el idioma verificado.
  • Contraparte de IA: por cada texto humano, un LLM escribe otro con el mismo título, idioma y extensión, de modo que el modelo aprende el estilo y no el tema.
  • Ocho generadores: gpt-oss:20b, qwen3:14b, qwen3:32b, gemma3:12b, llama3.1:8b, mistral-nemo:12b, Claude y DIPPER (parafraseo adversario).
  • 28.238 textos en total. 3 épocas, lote 16, tasa 2e-5, longitud 512. Los pesos se cargan en float32: el checkpoint original viene en fp16 y con esos pesos AdamW produce NaN.

Falsos positivos sobre escritura de alumnos reales

Corpus n Marcados como IA
PERSUADE 2.0 (ensayos escolares, inglés) 1.200 0.2%
Tesis en español ajenas al corpus 973 0.1%
CATyPI (tesis de computación en español) 182 0.0%
Documentos completos de más de 1.200 palabras 40 0%

Código, corpus y el informe completo: Turnit-Ai-in-.

Downloads last month
6
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ttech12/Ai-detector

Finetuned
(302)
this model