birgermoell
commited on
Commit
•
c443ab6
1
Parent(s):
f23005a
Trained model
Browse files- README.md +42 -0
- added_tokens.json +1 -0
- config.json +2 -0
- evaluate.py +10 -0
- events.out.tfevents.1626215918.t1v-n-fa4889f7-w-0.111814.3.v2 +2 -2
- flax_model.msgpack +1 -1
- merges.txt +0 -0
- pytorch_model.bin +3 -0
- save_model.py +8 -0
- special_tokens_map.json +1 -0
- tokenizer.json +0 -0
- tokenizer_config.json +1 -0
- vocab.json +0 -0
README.md
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
language: sv
|
3 |
+
widget:
|
4 |
+
- text: "Det var en gång"
|
5 |
+
---
|
6 |
+
|
7 |
+
# Nordic GPT2--wikipedia
|
8 |
+
A Nordic GPT2 style model trained using Flax CLM pipeline on the Nordic parts
|
9 |
+
part of the wiki40b dataset.
|
10 |
+
|
11 |
+
https://huggingface.co/datasets/wiki40b
|
12 |
+
|
13 |
+
## Data cleaning and preprocessing
|
14 |
+
The data was cleaned and preprocessed using the following script. Make sure to install depencies for beam_runner to make the dataset work.
|
15 |
+
|
16 |
+
```python
|
17 |
+
from datasets import load_dataset
|
18 |
+
def load_and_clean_wiki():
|
19 |
+
dataset = load_dataset('wiki40b', 'da', beam_runner='DirectRunner', split="train")
|
20 |
+
#dataset = load_dataset('wiki40b', 'sv', beam_runner='DirectRunner')
|
21 |
+
dataset = dataset.remove_columns(['wikidata_id', 'version_id'])
|
22 |
+
filtered_dataset = dataset.map(filter_wikipedia)
|
23 |
+
# filtered_dataset[:3]
|
24 |
+
# print(filtered_dataset[:3])
|
25 |
+
return filtered_dataset
|
26 |
+
|
27 |
+
def filter_wikipedia(batch):
|
28 |
+
batch["text"] = " ".join(batch["text"].split("\n_START_SECTION_\n"))
|
29 |
+
batch["text"] = " ".join(batch["text"].split("\n_START_ARTICLE_\n"))
|
30 |
+
batch["text"] = " ".join(batch["text"].split("\n_START_ARTICLE_\n"))
|
31 |
+
batch["text"] = " ".join(batch["text"].split("\n_START_PARAGRAPH_\n"))
|
32 |
+
batch["text"] = " ".join(batch["text"].split("_NEWLINE_"))
|
33 |
+
batch["text"] = " ".join(batch["text"].split("\xa0"))
|
34 |
+
return batch
|
35 |
+
```
|
36 |
+
|
37 |
+
## Training script
|
38 |
+
The following training script was used to train the model.
|
39 |
+
```bash
|
40 |
+
./run_clm_flax.py --output_dir="${MODEL_DIR}" --model_type="gpt2" --config_name="${MODEL_DIR}" --tokenizer_name="${MODEL_DIR}" --dataset_name="wiki40b" --dataset_config_name="da" --do_train --do_eval --block_size="512" --per_device_train_batch_size="64" --per_device_eval_batch_size="64" --learning_rate="5e-3" --warmup_steps="1000" --adam_beta1="0.9" --adam_beta2="0.98" --weight_decay="0.01" --overwrite_output_dir --num_train_epochs="20" --logging_steps="500" --save_steps="1000" --eval_steps="2500" --push_to_hub
|
41 |
+
```
|
42 |
+
|
added_tokens.json
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"<|endoftext|>": 50265}
|
config.json
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
{
|
|
|
2 |
"activation_function": "gelu_new",
|
3 |
"architectures": [
|
4 |
"GPT2LMHeadModel"
|
@@ -30,6 +31,7 @@
|
|
30 |
"max_length": 50
|
31 |
}
|
32 |
},
|
|
|
33 |
"transformers_version": "4.9.0.dev0",
|
34 |
"use_cache": true,
|
35 |
"vocab_size": 50257
|
1 |
{
|
2 |
+
"_name_or_path": ".",
|
3 |
"activation_function": "gelu_new",
|
4 |
"architectures": [
|
5 |
"GPT2LMHeadModel"
|
31 |
"max_length": 50
|
32 |
}
|
33 |
},
|
34 |
+
"torch_dtype": "float32",
|
35 |
"transformers_version": "4.9.0.dev0",
|
36 |
"use_cache": true,
|
37 |
"vocab_size": 50257
|
evaluate.py
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from transformers import GPT2Tokenizer, GPT2Model, FlaxGPT2LMHeadModel, GPT2LMHeadModel, pipeline, set_seed
|
2 |
+
|
3 |
+
tokenizer = GPT2Tokenizer.from_pretrained("flax-community/dansk-gpt-wiki")
|
4 |
+
model = GPT2LMHeadModel.from_pretrained("flax-community/dansk-gpt-wiki")
|
5 |
+
|
6 |
+
|
7 |
+
generator = pipeline('text-generation', model=model, tokenizer=tokenizer)
|
8 |
+
set_seed(42)
|
9 |
+
result = generator("Jeg elsker livet", max_length=150, num_return_sequences=5)
|
10 |
+
print(result)
|
events.out.tfevents.1626215918.t1v-n-fa4889f7-w-0.111814.3.v2
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:caa96f036315b3b0e97359554d139bde12a9d85853d6c7c0a7fa45ab3dac4c9d
|
3 |
+
size 2502509
|
flax_model.msgpack
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 497764120
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:42ad41602565ae10d10d8856d5ad96a4a09ab2ddeb3ebd3817363c0ae9acef1a
|
3 |
size 497764120
|
merges.txt
ADDED
The diff for this file is too large to render.
See raw diff
|
pytorch_model.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:64335acf6fedf3435fa4e2a674a813ab8d26e8306485254b730c903befe54ebf
|
3 |
+
size 510401385
|
save_model.py
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from transformers import AutoTokenizer, GPT2LMHeadModel
|
2 |
+
'''
|
3 |
+
This is a script to convert the Jax model and the tokenizer to Pytorch model
|
4 |
+
'''
|
5 |
+
model = GPT2LMHeadModel.from_pretrained(".", from_flax=True)
|
6 |
+
model.save_pretrained(".")
|
7 |
+
tokenizer = AutoTokenizer.from_pretrained(".")
|
8 |
+
tokenizer.save_pretrained(".")
|
special_tokens_map.json
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"bos_token": "<|endoftext|>", "eos_token": "<|endoftext|>", "unk_token": "<|endoftext|>"}
|
tokenizer.json
CHANGED
The diff for this file is too large to render.
See raw diff
|
tokenizer_config.json
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"unk_token": "<|endoftext|>", "bos_token": "<|endoftext|>", "eos_token": "<|endoftext|>", "add_prefix_space": false, "special_tokens_map_file": null, "name_or_path": ".", "tokenizer_class": "GPT2Tokenizer"}
|
vocab.json
ADDED
The diff for this file is too large to render.
See raw diff
|