🛡️ Ana-FraudDetection-1.0

Ana-FraudDetection-1.0 es un modelo de lenguaje de última generación (State-of-the-Art) diseñado específicamente para la detección de fraude, Phishing y Spam, tanto en correos electrónicos como en mensajes de texto (SMS / Smishing).

Ha sido afinado (fine-tuned) partiendo del robusto modelo base multilingüe BSC-LT/mRoBERTa del Barcelona Supercomputing Center, heredando su comprensión sobre 35 lenguajes europeos y 92 lenguajes de programación.

📊 Especificaciones del Modelo

  • Arquitectura Base: BSC-LT/mRoBERTa
  • Tarea: Clasificación Binaria de Texto (0: Ham / Seguro | 1: Phishing / Malicioso)
  • Tamaño del Dataset de Entrenamiento: 107.636 ejemplos en total.
    • 🟢 Ham (Legítimos): 50.075 ejemplos
    • 🔴 Phishing (Maliciosos): 57.561 ejemplos
  • Idiomas Soportados (Nativo): Inglés (70%), Español (30%), con inyecciones nativas en Catalán, Gallego y Euskera.

🧠 Arquitectura de Entrenamiento y Robustez (Características Clave)

A diferencia de modelos académicos tradicionales, Ana 1.0 incorpora estrategias avanzadas orientadas al mundo real:

  1. Entrenamiento con Ocultación de Asunto (Subject Drop - 30%): Durante el entrenamiento, al 30% del dataset se le extirpó aleatoriamente el campo "Asunto". Esto obliga a la red neuronal a no depender de metadatos y a desarrollar una inferencia robusta incluso cuando los usuarios "copian y pegan" fragmentos de texto sueltos en el sistema.

  2. Inmunidad a la Duplicación (Deduplicación Exacta): El dataset de 107.636 ejemplos ha sido rigurosamente procesado para eliminar coincidencias exactas y URLs idénticas, impidiendo el overfitting y garantizando que las métricas de evaluación reflejen una inteligencia real, no memorización.

  3. Inyección de Lenguas Cooficiales: Se ha inyectado conocimiento sintético hiper-realista para blindar el modelo contra estafas regionales (Ej. suplantación de entidades bancarias o la Agencia Tributaria en Catalán, Euskera y Gallego).

🗄️ El Dataset

El modelo ha sido alimentado por una mezcla de los repositorios mundiales más grandes y un bloque de creación propia:

  • Bloque Histórico Global (Inglés): Enron, SpamAssassin, Nazario, CEAS_08, Nigerian Fraud, Ling.
  • Bloque Específico Hispano: +30.000 simulaciones hiperrealistas generadas sintéticamente imitando fraudes modernos que afectan a España (DGT, Correos, Agencia Tributaria, Bancos, Netflix, WhatsApp, TikTok, etc.).

🚀 Cómo enviar datos al modelo (Formatos)

⚠️ CRÍTICO: Preprocesamiento del Texto Para que el modelo ofrezca el 100% de su precisión y no sufra falsos negativos, debes enviarle el texto respetando la limpieza estricta con la que fue entrenado:

  1. Recorte de URLs: Cualquier URL debe ser recortada hasta el dominio principal, eliminando rutas y parámetros. (Ej: https://harloff-support.cc/secure/login?id=2 debe quedar como https://harloff-support.cc/).
  2. Colapso de espacios y saltos de línea: Debes reemplazar cualquier salto de línea (\n, \r) y espacios múltiples por un único espacio en blanco, de forma que el texto quede como un bloque continuo.

Si le envías al modelo texto en crudo con saltos de línea y URLs largas, la red neuronal se desorientará con esos tokens desconocidos y la probabilidad colapsará, resultando en un falso negativo.

1. Formato para Correos con Asunto

Debes concatenar el "Asunto" y el "Cuerpo" utilizando el separador especial </s></s> (incluyendo los espacios). Ejemplo de entrada:

Aviso urgente de bloqueo </s></s> Estimado cliente, su cuenta ha sido suspendida. Entre aquí: http://falso.com

2. Formato para SMS, WhatsApp o Correos sin Asunto

Simplemente envía el texto en crudo. El modelo ha sido entrenado con un "Subject Drop" del 30%, por lo que es experto en analizar cuerpos de texto sin metadatos. Ejemplo de entrada:

DGT: Último aviso. Tiene una multa impagada. Pague hoy o se le aplicará un recargo: http://dgt-pagos.es

💻 Ejemplo de Inferencia y Respuestas de Ana 1.0

Al utilizar el modelo en Python mediante la librería transformers, el modelo devolverá un diccionario con la etiqueta matemática y su confianza.

from transformers import pipeline
import json

# Cargar el modelo
# Usa top_k=None para obtener las probabilidades de todas las etiquetas (JSON raw)
clasificador = pipeline("text-classification", model="Jmcc1976/Ana-FraudDetection-1.0", top_k=None)

# --- Prueba con Asunto y Cuerpo (marketing agresivo) ---
texto_sospechoso = "Ahorra 5 horas esta semana (empieza ahora) </s></s> Personas reales, ahorro de tiempo real… \n\n( https://use.ai/ )"

# Imprimir la salida JSON en raw
resultado = clasificador(texto_sospechoso)
print(json.dumps(resultado[0], indent=2))

# SALIDA JSON ESPERADA:
# [
#   {
#     "label": "Phishing",
#     "score": 0.8649488687515259
#   },
#   {
#     "label": "Ham",
#     "score": 0.1350511759519577
#   }
# ]

📈 Rendimiento y Métricas

Resultados de la Evaluación Final (sobre el set de validación aislado):

  • Accuracy (Exactitud): 99.55%
  • F1-Score: 99.58%
  • Precision (Precisión): 99.86%
  • Recall (Exhaustividad): 99.31%
  • Eval Loss: 0.2089

Nota de Entrenamiento: El modelo convergió de manera óptima utilizando Early Stopping, deteniéndose en el paso 6552 con un Train Loss de 1.8442 y un tiempo de cómputo de 7960 segundos (132.7 minutos).


Desarrollado en 2026 para la iniciativa Phishing Guard.

Downloads last month
257
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