Text Classification
Transformers
Safetensors
Spanish
English
deberta-v2
ai-detection
academic-integrity
spanish
english
text-embeddings-inference
Instructions to use ttech12/Ai-detector with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ttech12/Ai-detector with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="ttech12/Ai-detector")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("ttech12/Ai-detector") model = AutoModelForSequenceClassification.from_pretrained("ttech12/Ai-detector", device_map="auto") - Notebooks
- Google Colab
- Kaggle
|
Download README.md from ttech12/Ai-detector: direct link, hf CLI and curl.
- Browser
- Download file 3.61 kB
-
https://huggingface.co/ttech12/Ai-detector/resolve/main/README.md
- Command line
-
hf download hf://ttech12/Ai-detector/README.md
-
curl -L -H "Authorization: Bearer $HF_TOKEN" -o README.md https://huggingface.co/ttech12/Ai-detector/resolve/main/README.md
3.61 kB
| language: [es, en] | |
| library_name: transformers | |
| pipeline_tag: text-classification | |
| base_model: microsoft/mdeberta-v3-base | |
| tags: [ai-detection, academic-integrity, spanish, english] | |
| # 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](https://huggingface.co/ttech12/Ai-detector-equilibrado) | | |
| |---|---|---| | |
| | 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 | |
| ```python | |
| 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-](https://github.com/Alberto-Campos-de-la-Torre/Turnit-Ai-in-). | |