glue_bert / README.md
YonatanRA
readme
bb73582
|
raw
history blame
2.57 kB
metadata
language: en
tags:
  - exbert
license: mit
datasets:
  - bookcorpus
  - wikipedia
  - glue

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())