Text Classification
PyTorch
Safetensors
sentence-transformers
Spanish
multitask-learning
spanish
intent-classification
Instructions to use smenaaliaga/pibot-intent-router-v2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use smenaaliaga/pibot-intent-router-v2 with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("smenaaliaga/pibot-intent-router-v2") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
PIBot Intent Router (Multitarea)
Modelo multitarea para clasificación de texto en español usando un encoder compartido (sentence-transformers) y 5 cabezas clasificadoras binarias ("1" / "0"):
macro: ¿es una pregunta macroeconómica (PIB, IMACEC, IPC, inflación, dólar, TPM…) o un saludo/off-topic?scope: ¿es sobre IMACEC o PIB (vs otro ámbito macro como inflación, IPC, dólar)?data: ¿pide un dato/valor/cifra?metodologia: ¿es una pregunta metodológica (qué es, cómo se calcula)?calendario: ¿pregunta por el calendario de publicación (cuándo se publica, próxima fecha)?
Las cabezas son independientes: una misma pregunta puede activar varias a la vez. scope solo debe interpretarse cuando macro=1.
Este repositorio contiene artefactos de inferencia:
encoder/heads.ptlabel2id.jsonid2label.jsontrain_config.json
Uso rápido
1) Instalar dependencias
pip install torch sentence-transformers huggingface-hub
Si usarás el código de este proyecto para inferencia local:
pip install -r requirements.txt
2) Descargar artefactos desde Hugging Face
from huggingface_hub import snapshot_download
artifact_dir = snapshot_download(repo_id="TU_USUARIO/TU_REPO")
print(artifact_dir)
3) Inferencia con el código del proyecto
from pathlib import Path
from src.serialization.artifacts import load_artifacts
from src.infer.predict import predict_all_tasks
artifact_dir = Path("RUTA_DESCARGADA_DESDE_SNAPSHOT")
encoder, multitask_model, _, id2label = load_artifacts(artifact_dir, device="cpu")
text = "cuando se publica el imacec"
output = predict_all_tasks(
text=text,
encoder=encoder,
multitask_model=multitask_model,
id2label=id2label,
device="cpu",
)
print(output)
Salida esperada (ejemplo):
{
"macro": {"label": "1", "score": 0.99},
"scope": {"label": "1", "score": 0.99},
"data": {"label": "0", "score": 0.99},
"metodologia": {"label": "0", "score": 0.98},
"calendario": {"label": "1", "score": 0.99}
}
Uso por CLI
Con este proyecto clonado, también puedes probar:
python -m src.main test --artifact-dir models/artifacts --text "cuando se publica el imacec" --device cpu
Notas
- El modelo está diseñado para inferencia de 5 tareas binarias simultáneas.
scorecorresponde a la probabilidad de la clase predicha por cada tarea.- Para endpoint administrado en HF, se recomienda agregar
handler.pyyrequirements.txtorientados al entorno de despliegue.