yhavinga commited on
Commit
6338052
1 Parent(s): 226db97

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +81 -0
README.md ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: nl
3
+ widget:
4
+ - text: "In het jaar 2030 zullen we"
5
+ - text: "Toen ik gisteren volledig in de ban was van"
6
+ - text: "Studenten en leraren van de Bogazici Universiteit in de Turkse stad Istanbul"
7
+ - text: "In Israël was een strenge lockdown"
8
+ tags:
9
+ - gpt2-medium
10
+ - gpt2
11
+ pipeline_tag: text-generation
12
+ datasets:
13
+ - yhavinga/mc4_nl_cleaned
14
+ ---
15
+ # GPT-Neo 125M pre-trained on cleaned Dutch mC4 🇳🇱
16
+
17
+ A GPT-Neo small model (125M paramters) trained from scratch on Dutch, with perplexity 20.9 on cleaned Dutch mC4.
18
+
19
+ ## How To Use
20
+
21
+ You can use this GPT-Neo model directly with a pipeline for text generation.
22
+
23
+ ```python
24
+ MODEL_DIR='yhavinga/gpt-neo-125M-dutch'
25
+ from transformers import pipeline, GPT2Tokenizer, GPTNeoForCausalLM
26
+ tokenizer = GPT2Tokenizer.from_pretrained(MODEL_DIR)
27
+ model = GPTNeoForCausalLM.from_pretrained(MODEL_DIR)
28
+ generator = pipeline('text-generation', model, tokenizer=tokenizer)
29
+
30
+ generated_text = generator('Wetenschappers verbonden aan de Katholieke Universiteit', max_length=256, do_sample=True, top_k=50, top_p=0.95, temperature=0.7, no_repeat_ngram_size=2))
31
+ ```
32
+
33
+ *"Wetenschappers verbonden aan de Katholieke Universiteit van Nijmegen" - "hebben ontdekt dat de genen die een mens heeft, een enorme invloed hebben op het DNA van zijn lichaam.
34
+ Cellen kunnen zich beter binden aan het DNA dan andere soorten cellen. De genen die de cellen maken, zijn bepalend voor de groei van de cel.
35
+ Het DNA van een mens is niet alleen informatiedrager, maar ook een bouwstof voor het DNA. Het wordt gevonden in de genen van een cel. Als er op een cel een cel"*
36
+
37
+ ## Tokenizer
38
+
39
+ * BPE tokenizer trained from scratch for Dutch on mC4 nl cleaned with scripts from the Huggingface
40
+ Transformers [Flax examples](https://github.com/huggingface/transformers/tree/master/examples/flax/language-modeling).
41
+
42
+ ## Dataset
43
+
44
+ This model was trained on of the `full` configuration (33B tokens) of
45
+ [cleaned Dutch mC4](https://huggingface.co/datasets/yhavinga/mc4_nl_cleaned),
46
+ which is the original mC4, except
47
+
48
+ * Documents that contained words from a selection of the Dutch and English [List of Dirty Naught Obscene and Otherwise Bad Words](https://github.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words) are removed
49
+ * Sentences with less than 3 words are removed
50
+ * Sentences with a word of more than 1000 characters are removed
51
+ * Documents with less than 5 sentences are removed
52
+ * Documents with "javascript", "lorum ipsum", "terms of use", "privacy policy", "cookie policy", "uses cookies",
53
+ "use of cookies", "use cookies", "elementen ontbreken", "deze printversie" are removed.
54
+
55
+ ## Models
56
+
57
+ TL;DR: [yhavinga/gpt2-medium-dutch](https://huggingface.co/yhavinga/gpt2-medium-dutch) is the best model.
58
+
59
+ * The models with `a`/`b` in the step-column have been trained to step `a` of a total of `b` steps.
60
+
61
+ | | model | params | train seq len | ppl | loss | batch size | epochs | steps | optim | lr | duration | config |
62
+ |-----------------------------------------------------------------------------------|---------|--------|---------------|------|------|------------|--------|-----------------|-----------|--------|----------|-----------|
63
+ | [yhavinga/gpt-neo-125M-dutch](https://huggingface.co/yhavinga/gpt-neo-125M-dutch) | gpt neo | 125M | 512 | 20.9 | 3.04 | 128 | 1 | 190000/558608 | adamw | 2.4e-3 | 1d 12h | full |
64
+ | [yhavinga/gpt2-medium-dutch](https://huggingface.co/yhavinga/gpt2-medium-dutch) | gpt2 | 345M | 512 | 15.1 | 2.71 | 128 | 4 | 320000/520502 | adafactor | 8e-4 | 7d 2h | full |
65
+ | [yhavinga/gpt2-large-dutch](https://huggingface.co/yhavinga/gpt2-large-dutch) | gpt2 | 762M | 512 | 15.1 | 2.72 | 32 | 1 | 1100000/2082009 | adafactor | 3.3e-5 | 8d 15h | large |
66
+ | [yhavinga/gpt-neo-1.3B-dutch](https://huggingface.co/yhavinga/gpt-neo-1.3B-dutch) | gpt neo | 1.3B | 512 | 16.0 | 2.77 | 16 | 1 | 960000/3049896 | adafactor | 5e-4 | 7d 11h | full |
67
+
68
+
69
+ ## Acknowledgements
70
+
71
+ This project would not have been possible without compute generously provided by Google through the
72
+ [TPU Research Cloud](https://sites.research.google/trc/). The HuggingFace 🤗 ecosystem was also
73
+ instrumental in most, if not all, parts of the training. The following repositories where helpful in setting up the TPU-VM,
74
+ and training the models:
75
+
76
+ * [Gsarti's Pretrain and Fine-tune a T5 model with Flax on GCP](https://github.com/gsarti/t5-flax-gcp)
77
+ * [HUggingFace Flax MLM examples](https://github.com/huggingface/transformers/tree/master/examples/flax/language-modeling)
78
+ * [gpt2-medium-persian](https://huggingface.co/flax-community/gpt2-medium-persian)
79
+ * [gpt2-medium-indonesian](https://huggingface.co/flax-community/gpt2-medium-persian)
80
+
81
+ Created by [Yeb Havinga](https://www.linkedin.com/in/yeb-havinga-86530825/)