Glue-Bert

Este modelo es un bert-base-uncased ajustado con el dataset glue de MRPC. Este es el código utilizado para realizar el ajuste:

# importamos las librerias 
from datasets import load_dataset

from transformers import (AutoTokenizer,
AutoModelForSequenceClassification,
DataCollatorWithPadding,
Trainer, 
TrainingArguments
)

from sklearn.metrics import accuracy_score, f1_score



# cargamos el dataset
glue_dataset = load_dataset('glue', 'mrpc')  


# definimos el modelo 
modelo = 'bert-base-uncased'



# iniciamos el tokenizador, con este objeto se vectorizan las palabras
tokenizador = AutoTokenizer.from_pretrained(modelo)


# iniciamos el modelo BERT
modelo_bert = AutoModelForSequenceClassification.from_pretrained(modelo, num_labels=2)


# tokenizar el dataset
token_dataset = glue_dataset.map(lambda x: tokenizador(x['sentence1'], x['sentence2'], truncation=True), batched=True)



# iniciamos el data collator
data_collator = DataCollatorWithPadding(tokenizer=tokenizador)


# función evaluación
def evaluacion(modelo_preds):
    
    """
    Función para obtener la métricas de evaluación.
    
    Params:
    + modelo_preds: transformers.trainer_utils.PredictionOutput, predicciones del modelo y etiquetas.
    
    Return:
    dict: diccionario con keys accuracy y f1-score y sus valores respectivos.
    """
    
    preds, etiquetas = modelo_preds
    
    preds = np.argmax(preds, axis=-1)
        
    return {'accuracy': accuracy_score(preds, etiquetas), 
            'f1': f1_score(preds, etiquetas)}



# iniciamos los argumentos del entrenador
args_entrenamiento = TrainingArguments(output_dir='../../training/glue-trainer', 
                                       evaluation_strategy='steps',
                                       logging_steps=100,
                                      )


# iniciamos el entrenador 
entrenador = Trainer(model=modelo_bert,
                     args=args_entrenamiento,
                     train_dataset=token_dataset['train'],
                     eval_dataset=token_dataset['validation'],
                     data_collator=data_collator,
                     tokenizer=tokenizador,
                     compute_metrics=evaluacion
                    )

# entrenamiento
entrenador.train()


# evaluación desde el entrenador
print(entrenador.evaluate())
Downloads last month
20
Safetensors
Model size
109M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Datasets used to train YonatanRA/glue_bert