alexkueck commited on
Commit
ae63b0f
·
1 Parent(s): 115c7e5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -0
app.py CHANGED
@@ -9,6 +9,8 @@ import torch
9
  from utils import *
10
  from presets import *
11
  from transformers import Trainer, TrainingArguments
 
 
12
 
13
  #####################################################
14
  #Hilfsfunktionen für das training
@@ -34,6 +36,15 @@ def group_texts(examples):
34
  result["labels"] = result["input_ids"].copy()
35
  return result
36
 
 
 
 
 
 
 
 
 
 
37
 
38
 
39
  ###################################################################################
@@ -62,8 +73,13 @@ dataset_neu = daten_laden("alexkueck/tis")
62
  #alles zusammen auf das neue datenset anwenden - batched = True und 4 Prozesse, um die Berechnung zu beschleunigen. Die "text" - Spalte braucht man anschließend nicht mehr, daher weglassen.
63
  tokenized_datasets = dataset_neu.map(tokenize_function, batched=True, num_proc=4, remove_columns=["id","text"])
64
 
 
 
 
 
65
  print (tokenized_datasets["train"][4])
66
 
 
67
  #den Text nun zusammenführen (concatenieren) und anschließend in kleine Häppchen aufteilen (block_size=128), die verarbeitet werden können
68
  #das macht die map-Funktion und das Attribut batched = True
69
  #man könnte das weglassen, wenn jeder Satz einzeln gegeben wurde in den Texten...
@@ -104,6 +120,8 @@ def trainieren_neu(name):
104
  model=model,
105
  args=training_args,
106
  train_dataset=lm_datasets["train"],
 
 
107
  )
108
 
109
  #trainer ausführen
 
9
  from utils import *
10
  from presets import *
11
  from transformers import Trainer, TrainingArguments
12
+ import numpy as np
13
+ import evaluate
14
 
15
  #####################################################
16
  #Hilfsfunktionen für das training
 
36
  result["labels"] = result["input_ids"].copy()
37
  return result
38
 
39
+ #Funktion, die der trainer braucht, um das Training zu evaluieren - mit einer Metrik
40
+ def compute_metrics(eval_pred):
41
+ #Metrik berechnen, um das training messen zu können - wird es besser???
42
+ metric = evaluate.load("accuracy")
43
+ logits, labels = eval_pred
44
+ predictions = np.argmax(logits, axis=-1)
45
+ #Call compute on metric to calculate the accuracy of your predictions.
46
+ #Before passing your predictions to compute, you need to convert the predictions to logits (remember all Transformers models return logits):
47
+ return metric.compute(predictions=predictions, references=labels)
48
 
49
 
50
  ###################################################################################
 
73
  #alles zusammen auf das neue datenset anwenden - batched = True und 4 Prozesse, um die Berechnung zu beschleunigen. Die "text" - Spalte braucht man anschließend nicht mehr, daher weglassen.
74
  tokenized_datasets = dataset_neu.map(tokenize_function, batched=True, num_proc=4, remove_columns=["id","text"])
75
 
76
+ #wenn man zum Trainieren erstmal nur einen kleinen Datensatz nehem möchte:
77
+ #small_train_dataset = tokenized_datasets["train"].shuffle(seed=42).select(range(1000))
78
+ #small_eval_dataset = tokenized_datasets["test"].shuffle(seed=42).select(range(1000))
79
+
80
  print (tokenized_datasets["train"][4])
81
 
82
+
83
  #den Text nun zusammenführen (concatenieren) und anschließend in kleine Häppchen aufteilen (block_size=128), die verarbeitet werden können
84
  #das macht die map-Funktion und das Attribut batched = True
85
  #man könnte das weglassen, wenn jeder Satz einzeln gegeben wurde in den Texten...
 
120
  model=model,
121
  args=training_args,
122
  train_dataset=lm_datasets["train"],
123
+ eval_dataset=lm_datasets["train"],
124
+ compute_metrics=compute_metrics,
125
  )
126
 
127
  #trainer ausführen