Views
No views yet
1from datasets import load_dataset
2from transformers import AutoTokenizer, DataCollatorWithPadding
3
4raw_datasets = load_dataset("glue", "sst2")
5checkpoint = "ChiJuiChen/Bert-Lab4"
6tokenizer = AutoTokenizer.from_pretrained(checkpoint)
7
8
9def tokenize_function(example):
10 return tokenizer(example["sentence"], truncation=True)
11
12
13tokenized_datasets = raw_datasets.map(tokenize_function, batched=True)
14
15small_train_dataset = tokenized_datasets["train"].shuffle(seed=42).select(range(100))
16small_eval_dataset = tokenized_datasets["validation"].shuffle(seed=42).select(range(100))
17
18data_collator = DataCollatorWithPadding(tokenizer=tokenizer)
19
20from transformers import TrainingArguments
21
22training_args = TrainingArguments(output_dir="ChiJuiChen/Bert-Lab4",
23 evaluation_strategy="epoch",
24 hub_model_id="ChiJuiChen/Bert-Lab4")
25
26from transformers import AutoModelForSequenceClassification
27model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)
28
29from transformers import Trainer
30trainer = Trainer(
31 model,
32 training_args,
33 train_dataset=small_train_dataset, # if using cpu
34 eval_dataset=small_eval_dataset, # if using cpu
35 data_collator=data_collator,
36 tokenizer=tokenizer,
37 compute_metrics=compute_metrics,
38)
39
40# Evaluation
41predictions = trainer.predict(small_eval_dataset)
42print(predictions.predictions.shape, predictions.label_ids.shape)
43preds = np.argmax(predictions.predictions, axis=-1)
44
45import evaluate
46metric = evaluate.load("glue", "sst2")
47metric.compute(predictions=preds, references=predictions.label_ids)| Training Loss | Epoch | Step | Validation Loss | Accuracy |
|---|---|---|---|---|
| No log | 1.0 | 13 | 0.6383 | 0.59 |
| No log | 2.0 | 26 | 0.5867 | 0.71 |
| No log | 3.0 | 39 | 0.5647 | 0.73 |