File size: 2,639 Bytes
e76c1eb
 
 
 
 
 
 
 
 
 
 
 
 
 
1f3f3c8
e76c1eb
c54fbf1
e76c1eb
 
 
 
 
 
 
 
 
 
 
 
 
8cc8942
e76c1eb
 
 
42977d5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e76c1eb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c93a37d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e76c1eb
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
---
license: mit
tags:
- generated_from_trainer
datasets:
- wikitext
model-index:
- name: clm_output
  results: []
---

<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->

# Graphcore/gpt2-wikitext-103

This model is a fine-tuned version of [gpt2](https://huggingface.co/gpt2) on the [wikitext-103-raw-v1](https://huggingface.co/datasets/wikitext) dataset.
It achieves the following results on the evaluation set:
- Loss: 2.9902

## Model description

More information needed

## Intended uses & limitations

More information needed

## Training and evaluation data

[wikitext-103-raw-v1](https://huggingface.co/datasets/wikitext) dataset

## Training procedure

Trained on 16 Graphcore Mk2 IPUs using [optimum-graphcore](https://github.com/huggingface/optimum-graphcore).

Command line:

```
python examples/language-modeling/run_clm.py \
  --model_name_or_path gpt2 \
  --ipu_config_name Graphcore/gpt2-small-ipu \
  --dataset_name wikitext \
  --dataset_config_name wikitext-103-raw-v1 \
  --do_train \
  --do_eval \
  --num_train_epochs 10 \
  --dataloader_num_workers 64 \
  --per_device_train_batch_size 1 \
  --per_device_eval_batch_size 1 \
  --gradient_accumulation_steps 128 \
  --output_dir /tmp/clm_output \
  --logging_steps 5 \
  --learning_rate 1e-5 \
  --lr_scheduler_type linear \
  --loss_scaling 16384 \
  --weight_decay 0.01 \
  --warmup_ratio 0.1 \
  --ipu_config_overrides="embedding_serialization_factor=4,optimizer_state_offchip=true,inference_device_iterations=5" \
  --dataloader_drop_last \
  --pod_type pod16
```

### Training hyperparameters

The following hyperparameters were used during training:
- learning_rate: 1e-05
- train_batch_size: 1
- eval_batch_size: 1
- seed: 42
- distributed_type: IPU
- gradient_accumulation_steps: 128
- total_train_batch_size: 1024
- total_eval_batch_size: 20
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: linear
- lr_scheduler_warmup_ratio: 0.1
- num_epochs: 10.0
- training precision: Mixed Precision

### Training results
```
***** train metrics *****
    "epoch": 10.0,
    "train_loss": 3.1787637246621623,
    "train_runtime": 4372.4031,
    "train_samples": 114248,
    "train_samples_per_second": 261.293,
    "train_steps_per_second": 0.254
    
***** eval metrics *****
    "epoch": 10.0,
    "eval_loss": 2.990234375,
    "eval_samples": 240,
    "perplexity": 19.89034374461794
```


### Framework versions

- Transformers 4.18.0.dev0
- Pytorch 1.10.0+cpu
- Datasets 2.0.0
- Tokenizers 0.11.6