TEyCP DistilBERT AI vs Human

Este modelo es una version fine-tuned de distilbert-base-uncased para clasificacion binaria de texto: distinguir entre respuestas escritas por una persona (humano) y respuestas generadas por IA (IA).

El proyecto forma parte de una practica de NLP con Hugging Face. El objetivo principal no es construir un detector definitivo, sino demostrar un pipeline end-to-end completo: carga de datos, preparacion de un subset balanceado, tokenizacion, fine-tuning con Trainer, evaluacion, subida al Hub y despliegue en un Space de Gradio.

Demo

El modelo puede probarse en el siguiente Space de Gradio:

https://huggingface.co/spaces/Sikander035/teycp-distilbert-ai-vs-human-space

Dataset

Se uso Hello-SimpleAI/HC3, un dataset con preguntas y respuestas humanas junto con respuestas generadas por ChatGPT.

Para mantener el entrenamiento razonable en una GPU local modesta, no se uso el dataset completo. Se preparo un subset balanceado de 10.000 ejemplos:

Split Ejemplos
Train 8.000
Validation 1.000
Test 1.000

Etiquetas:

  • 0: humano
  • 1: IA

Modelo

  • Modelo base: distilbert-base-uncased
  • Tarea: clasificacion binaria de texto
  • Framework: PyTorch + Hugging Face transformers
  • Tokenizacion: truncado a max_length=256
  • Padding: dinamico por batch mediante DataCollatorWithPadding

Hiperparametros de entrenamiento

Parametro Valor
Seed 42
Max length 256
Batch size 32
Epocas 3
Learning rate 2e-5
Optimizador AdamW
Precision mixta FP16 si CUDA esta disponible

El entrenamiento se realizo en GPU local con CUDA.

Metricas finales

Las metricas se calcularon sobre el split de test del subset balanceado:

Metrica Valor
Test loss 0.0233
Accuracy 0.9940
F1 0.9940
Precision 0.9881
Recall 1.0000

Estas metricas deben interpretarse dentro del contexto del subset usado. No son una garantia de rendimiento en textos fuera del dominio de HC3 ni en otros idiomas, formatos o escenarios reales.

Ejemplo de uso

from transformers import pipeline

model_id = "Sikander035/teycp-distilbert-ai-vs-human"

classifier = pipeline(
    "text-classification",
    model=model_id,
    tokenizer=model_id,
    top_k=None,
)

text = "Photosynthesis is the process by which plants convert sunlight into chemical energy."

predictions = classifier(
    text,
    truncation=True,
    max_length=256,
)

print(predictions)

La salida contiene las probabilidades estimadas para las etiquetas humano e IA. La clase positiva del entrenamiento es IA.

Usos previstos

Este modelo esta pensado para:

  • Demostrar un flujo completo de fine-tuning y despliegue con Hugging Face.
  • Probar inferencia de clasificacion binaria en textos breves o medianos en ingles.
  • Servir como ejemplo educativo para comparar respuestas humanas y respuestas generadas por IA dentro del estilo de HC3.

No esta pensado para tomar decisiones academicas, laborales, legales o disciplinarias sobre la autoria de un texto.

Limitaciones

  • El modelo aprende patrones del subset de HC3, no una propiedad universal de "texto generado por IA".
  • El dataset esta centrado sobre todo en respuestas de tipo pregunta-respuesta y en ingles; el rendimiento puede caer en otros idiomas, dominios o formatos.
  • Textos muy cortos, muy editados, parafraseados o fuera de dominio pueden producir falsos positivos o falsos negativos.
  • Una prueba manual del proyecto mostro que un texto esperado como IA podia clasificarse como humano con confianza alta. Esto refuerza que el detector es orientativo.
  • El modelo puede heredar sesgos del dataset y del modelo base.
  • Las metricas proceden de un subset balanceado y no sustituyen una evaluacion externa robusta.

Procedimiento de entrenamiento

El entrenamiento se hizo con la API actual de Trainer de transformers, usando eval_strategy="epoch" y save_strategy="epoch".

Versiones principales:

  • Transformers 5.9.0
  • PyTorch 2.11.0+cu128
  • Datasets 4.8.5
  • Tokenizers 0.22.2
Downloads last month
27
Safetensors
Model size
67M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Sikander035/teycp-distilbert-ai-vs-human

Finetuned
(11775)
this model

Dataset used to train Sikander035/teycp-distilbert-ai-vs-human

Space using Sikander035/teycp-distilbert-ai-vs-human 1

Evaluation results