marcostrfn/nli-taller-es
Viewer • Updated • 69.3k • 12
How to use marcostrfn/bart-base-spanish-nli-taller-test with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-classification", model="marcostrfn/bart-base-spanish-nli-taller-test") # Load model directly
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("marcostrfn/bart-base-spanish-nli-taller-test")
model = AutoModelForSequenceClassification.from_pretrained("marcostrfn/bart-base-spanish-nli-taller-test", device_map="auto")Este modelo es una versión finetuneada de facebook/bart-base para la tarea de Inferencia de Lenguaje Natural (NLI). Ha sido entrenado para clasificar la relación entre una premisa y una hipótesis en tres categorías:
facebook/bart-basePuedes utilizar este modelo directamente con la librería transformers de Hugging Face.
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_name = "marcostrfn/bart-base-spanish-nli-taller-test"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
def predict_nli(premise, hypothesis):
# Tokenización de la pareja de frases
inputs = tokenizer(premise, hypothesis, return_tensors="pt", truncation=True, padding=True)
# Predicción
with torch.no_grad():
logits = model(**inputs).logits
# Obtener la etiqueta con mayor probabilidad
prediction = torch.argmax(logits, dim=-1).item()
# Mapeo de etiquetas (ajustar según el orden de tus datos)
labels = {0: "entailment", 1: "neutral", 2: "contradiction"}
return labels[prediction]
# Ejemplo de prueba
premisa = "Un hombre está tocando la guitarra en el parque."
hipotesis = "Alguien está haciendo música al aire libre."
resultado = predict_nli(premisa, hipotesis)
print(f"La relación es: {resultado}")
from transformers import pipeline
# 1. Cargar el pipeline específico de Zero-Shot
# Puedes usar la ruta de tu modelo en Hugging Face o local
model_path = "marcostrfn/bart-base-spanish-nli-taller-test"
# Importante: El pipeline zero-shot-classification requiere un modelo NLI
zero_shot_classifier = pipeline(
"zero-shot-classification",
model=model_path,
tokenizer=model_path,
device=-1 # 0 para GPU
)
# 2. Definir el texto y las etiquetas que tú quieras (sin haber reentrenado)
secuencia_a_clasificar = "El nuevo procesador cuántico permite realizar cálculos en segundos."
etiquetas_candidatas = ["tecnología", "cocina", "deportes", "economía"]
# 3. Ejecutar la clasificación
# El modelo probará: "Este texto trata sobre tecnología", "Este texto trata sobre cocina", etc.
resultado = zero_shot_classifier(
secuencia_a_clasificar,
candidate_labels=etiquetas_candidatas,
hypothesis_template="Este ejemplo trata sobre {}." # Plantilla en español
)
# 4. Mostrar resultados ordenados
print(f"Texto: {resultado['sequence']}\n")
for label, score in zip(resultado['labels'], resultado['scores']):
print(f"Etiqueta: {label.ljust(12)} | Confianza: {score:.2%}")
El modelo fue entrenado con las siguientes configuraciones:
Learning Rate: 2e-5
Batch Size: 16
Épocas: 10 (con Early Stopping)
Weight Decay: 0.01
Precisión: FP16 activa
weight_decay: 0.01
dropout: 0.2
attention_dropout: 0.1
Resultados de Evaluación (Classification Report)
| Epoch | Training Loss | Validation Loss | Accuracy |
|---|---|---|---|
| 1 | 0.865727 | 0.894325 | 0.608053 |
| 2 | 0.800889 | 0.838939 | 0.641172 |
| 3 | 0.759089 | 0.799248 | 0.660076 |
| 4 | 0.704085 | 0.834558 | 0.664189 |
| 5 | 0.654602 | 0.872880 | 0.664911 |
| Class | Precision | Recall | F1-Score | Support |
|---|---|---|---|---|
| Entailment | 0.72 | 0.64 | 0.68 | 4777 |
| Neutral | 0.63 | 0.60 | 0.61 | 4184 |
| Contradiction | 0.63 | 0.73 | 0.68 | 4898 |
| Accuracy | 0.66 | 13859 | ||
| Macro Avg | 0.66 | 0.66 | 0.66 | 13859 |
| Weighted Avg | 0.66 | 0.66 | 0.66 | 13859 |
Limitaciones y Sesgos
Este modelo hereda las limitaciones del modelo base BART y está sujeto a los sesgos presentes en el dataset de entrenamiento utilizado. Se recomienda evaluar el modelo en casos específicos antes de su uso en producción.
Base model
facebook/bart-base