Spaces:
Paused
Paused
Update app.py
Browse files
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
|