YonatanRA commited on
Commit
d9f4355
1 Parent(s): 0c317c7
Files changed (1) hide show
  1. README.md +96 -0
README.md CHANGED
@@ -1,3 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: mit
3
  ---
 
1
+ Este modelo es un `bert-base-uncased` ajustado con el dataset `glue` de MRPC.
2
+ Este es el código utilizado para realizar el ajuste:
3
+
4
+
5
+
6
+ ```python
7
+ # importamos las librerias
8
+ from datasets import load_dataset
9
+
10
+ from transformers import (AutoTokenizer,
11
+ AutoModelForSequenceClassification,
12
+ DataCollatorWithPadding,
13
+ Trainer,
14
+ TrainingArguments
15
+ )
16
+
17
+ from sklearn.metrics import accuracy_score, f1_score
18
+
19
+
20
+
21
+ # cargamos el dataset
22
+ glue_dataset = load_dataset('glue', 'mrpc')
23
+
24
+
25
+ # definimos el modelo
26
+ modelo = 'bert-base-uncased'
27
+
28
+
29
+
30
+ # iniciamos el tokenizador, con este objeto se vectorizan las palabras
31
+ tokenizador = AutoTokenizer.from_pretrained(modelo)
32
+
33
+
34
+ # iniciamos el modelo BERT
35
+ modelo_bert = AutoModelForSequenceClassification.from_pretrained(modelo, num_labels=2)
36
+
37
+
38
+ # tokenizar el dataset
39
+ token_dataset = glue_dataset.map(lambda x: tokenizador(x['sentence1'], x['sentence2'], truncation=True), batched=True)
40
+
41
+
42
+
43
+ # iniciamos el data collator
44
+ data_collator = DataCollatorWithPadding(tokenizer=tokenizador)
45
+
46
+
47
+ # función evaluación
48
+ def evaluacion(modelo_preds):
49
+
50
+ """
51
+ Función para obtener la métricas de evaluación.
52
+
53
+ Params:
54
+ + modelo_preds: transformers.trainer_utils.PredictionOutput, predicciones del modelo y etiquetas.
55
+
56
+ Return:
57
+ dict: diccionario con keys accuracy y f1-score y sus valores respectivos.
58
+ """
59
+
60
+ preds, etiquetas = modelo_preds
61
+
62
+ preds = np.argmax(preds, axis=-1)
63
+
64
+ return {'accuracy': accuracy_score(preds, etiquetas),
65
+ 'f1': f1_score(preds, etiquetas)}
66
+
67
+
68
+
69
+ # iniciamos los argumentos del entrenador
70
+ args_entrenamiento = TrainingArguments(output_dir='../../training/glue-trainer',
71
+ evaluation_strategy='steps',
72
+ logging_steps=100,
73
+ )
74
+
75
+
76
+ # iniciamos el entrenador
77
+ entrenador = Trainer(model=modelo_bert,
78
+ args=args_entrenamiento,
79
+ train_dataset=token_dataset['train'],
80
+ eval_dataset=token_dataset['validation'],
81
+ data_collator=data_collator,
82
+ tokenizer=tokenizador,
83
+ compute_metrics=evaluacion
84
+ )
85
+
86
+ # entrenamiento
87
+ entrenador.train()
88
+
89
+
90
+ # evaluación desde el entrenador
91
+ print(entrenador.evaluate())
92
+ ```
93
+
94
+
95
+
96
+
97
  ---
98
  license: mit
99
  ---