Views
No views yet
1from transformers import (
2 default_data_collator,
3 AutoTokenizer,
4 AutoModelForSequenceClassification,
5 Trainer,
6)
7from datasets import load_dataset
8
9import functools
10
11from utils import compute_metrics, preprocess_function
12
13model_name = "George-Ogden/gpt2-medium-finetuned-mnli"
14model = AutoModelForSequenceClassification.from_pretrained(model_name)
15tokenizer = AutoTokenizer.from_pretrained(model_name)
16trainer = Trainer(
17 model=model,
18 eval_dataset="mnli",
19 tokenizer=tokenizer,
20 compute_metrics=compute_metrics,
21 data_collator=default_data_collator,
22)
23
24raw_datasets = load_dataset(
25 "glue",
26 "mnli",
27).map(functools.partial(preprocess_function, tokenizer), batched=True)
28
29tasks = ["mnli", "mnli-mm"]
30eval_datasets = [
31 raw_datasets["validation_matched"],
32 raw_datasets["validation_mismatched"],
33]
34
35for layers in reversed(range(model.num_layers + 1)):
36 for eval_dataset, task in zip(eval_datasets, tasks):
37 metrics = trainer.evaluate(eval_dataset=eval_dataset)
38 metrics["eval_samples"] = len(eval_dataset)
39
40 if task == "mnli-mm":
41 metrics = {k + "_mm": v for k, v in metrics.items()}
42
43 trainer.log_metrics(metrics)