File size: 2,566 Bytes
bb73582 d9f4355 bb73582 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
---
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:
```python
# 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())
```
|