Clasificación jerárquica de propuestas (es)

Modelo jerárquico que clasifica propuestas de política pública en 7 temas y, dentro de cada uno, en 49 subtemas.

Construido sobre bertin-project/bertin-roberta-base-spanish, añadiendo:

  • Una rama de Bag-of-Words con HashingVectorizer (1024 features).
  • Una feature de log-longitud del texto (solo en el modelo principal).
  • Cabezas multi-label independientes para tema y para cada submodelo de subtemas.

Uso rápido

from transformers import pipeline

clf = pipeline("clasif-propuestas", model="PENCR/clasif-gen5a-gen5b",
               trust_remote_code=True)

clf("Promover cooperativas comunales para reciclaje y economía circular.")

Salida:

[
  {
    "tema": "TEMA_4_MEDIO_AMBIENTE",
    "prob_tema": 0.93,
    "subtemas": [
      {"nombre": "SUBTEMA_39_USO_DE_LOS_RECURSOS", "prob": 0.81},
      {"nombre": "SUBTEMA_36_CONSERVACION", "prob": 0.42},
      ...
    ]
  },
  {"tema": "TEMA_2_ECONOMIA_Y_EMPLEO", "prob_tema": 0.31, "subtemas": [...]},
  ...
]

Lista ordenada de mayor a menor prob_tema. Las probabilidades vienen de sigmoids independientes (multi-label), no suman 1.

Parámetros opcionales

clf(texto, return_format="flat")     # filas planas tema/subtema
clf(texto, top_k_temas=3)            # solo los 3 temas más probables

Temas

idx Etiqueta # subtemas
0 TEMA_1_POBREZA_Y_DESIGUALDAD 10
1 TEMA_2_ECONOMIA_Y_EMPLEO 12
2 TEMA_3_GESTION_POLITICA 11
3 TEMA_4_MEDIO_AMBIENTE 5
4 TEMA_5_SOLVENCIA_DEL_ESTADO 5
5 TEMA_6_CONVIVENCIA_SOCIAL 5
6 TEMA_7_OTRO 0 (sin submodelo)

Los nombres completos de subtemas están en labels.py.

Detalles del modelo

  • Backbone: bertin-project/bertin-roberta-base-spanish (RoBERTa, 768 dim)
  • Longitud máxima: 256 tokens
  • Loss de entrenamiento: BCEWithLogitsLoss multi-label
  • Total de parámetros: ~7 × 125 M (todos los submodelos comparten arquitectura)
  • Tamaño en disco: ~3.4 GB en safetensors

Hardware sugerido

Setup Tiempo por predicción
GPU NVIDIA ~0.2 s
Apple Silicon M1 (MPS+FP16) ~0.8–1.5 s
CPU ~5–10 s

Limitaciones

  • Inferencia jerárquica corre todos los submodelos siempre (no hay poda por probabilidad de tema).
  • TEMA_7_OTRO no tiene submodelo: devuelve un placeholder.
  • Probabilidades en FP16 (MPS) pueden variar ~1e-3 vs FP32.

Cita

@misc{clasificacion_propuestas,
  title  = {Clasificación jerárquica de propuestas (es)},
  author = {Equipo del proyecto},
  year   = {2026},
}
Downloads last month
2
Safetensors
Model size
0.9B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support