yhavinga commited on
Commit
ffca881
1 Parent(s): 3a682f1

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +41 -35
README.md CHANGED
@@ -21,31 +21,30 @@ datasets:
21
 
22
  # Boreas
23
 
24
- **NB: 20240430 model card is WIP - evaluations / example generations to be added**
25
-
26
  ![BoreasThe Mighty God of the North Wind](https://oldworldgods.com/wp-content/uploads/2023/10/boreas1.jpg)
27
 
28
  [Boreas-7B](https://huggingface.co/yhavinga/Boreas-7B) is een Nederlands/Engels taalmodel gebaseerd op Mistral-7B.
29
- Het is getraind op 10 miljard tokens aan Nederlandse en Engelse tekst.
30
 
31
- **Boreas-7B-chat** (dit model) is verder getraind op instructie- en chat data.
32
 
33
- * Boreas-7B is vergelijkbaar met [GEITje-7B](https://huggingface.co/Rijgersberg/GEITje-7B) in die zin dat
34
- het ook een model is dat verder getraind is op Mistral-7B, met een evenzogrote hoeveelheid tokens (10B).
35
- * Boreas-7B-chat is vergelijkbaar met [GEITje-7B-chat](https://huggingface.co/Rijgersberg/GEITje-7B-chat) en [GEITJE-7B-ultra-sft](https://huggingface.co/BramVanroy/GEITje-7B-ultra-sft), in die zin dat het ook een
36
- fine-tune is op een chat dataset.
 
37
 
38
  Edwin Rijgersberg heeft [uitgebreide documentatie](https://github.com/Rijgersberg/GEITje/blob/main/README.md) geschreven voor het gebruik van GEITje,
39
  en deze is ook van toepassing op Boreas.
40
 
41
  De voornaamste verschillen tussen Boreas en GEITje zijn:
42
 
43
- * Boreas-7B en Boreas-7B-chat zijn getraind met een context lengte van 2048 tokens, GEITje met 8192 tokens.
44
  * Boreas-7B en Boreas-7B-chat zijn getraind op een mix van Engels en Nederlands, waar GEITje alleen op voornamelijk Nederlands getraind is.
45
- * Boreas-7B-chat is getraind op een mix van zowel chat conversaties als ook 'normaal' pre-trainen.
46
-
47
- Omdat zowel GEITje als Boreas afgeleiden zijn van hetzelfde basismodel, is het mogelijk om een [merge](https://github.com/arcee-ai/mergekit) te maken.
48
 
 
 
49
 
50
  ## Gebruik met ollama
51
 
@@ -64,12 +63,13 @@ Plaatje gemaakt met de [Radial Plot Generator](https://huggingface.co/spaces/ale
64
 
65
  ## Doel Boreas
66
 
67
- Creatie van een taalmodel dat wat betreft het Nederlandse gedeelte, niet getraind is op teksten gegeneerd door
68
- een LLM. Dus geen Nederlandse chats gegeneerd door een LLM, en ook geen datasets die vertaald zijn uit het Engels door een LLM.
69
- Er is niet strict gefilterd op LLM-gegenereerde tekst, maar dit is wel een aandachtspunt geweest bij het samenstellen van de datasets.
 
70
  Bij het finetunen van Boreas-chat zijn toch 3% van de tokens Nederlandse chats gegeneerd door een LLM.
71
  Dit is een kleine dataset die gemaakt is op basis van Nederlandse bronteksten, en een steekproef heeft uitgewezen
72
- dat deze data van een goede kwaliteit is.
73
 
74
  Het uiteindelijke chat model is getraind op een mix van voornamelijk:
75
 
@@ -84,7 +84,7 @@ Het Boreas model kan dus beschouwd worden als een test voor knowledge transfer v
84
 
85
  Het basismodel is op Mistral-7B doorgetraind op 10 miljard tokens.
86
 
87
- De dataset is samengesteld uit verschillende bronnen in zowel Nederlands en Engels:
88
 
89
  | Datasetnaam | Aantal Tokens | Percentage Tokens (%) |
90
  |------------------------------------------------|---------------|-----------------------|
@@ -100,27 +100,33 @@ De dataset is samengesteld uit verschillende bronnen in zowel Nederlands en Enge
100
 
101
  De keuze voor deze mix is gebaseerd op zowel beschikbaarheid van data als de volgende overwegingen:
102
 
103
- * Veel Nederlands van hoge kwaliteit, teksten primair in het Nederlands geschreven door mensen. Hieruit volgt de keuze
104
- voor romans, Wikipedia en nieuwsartikelen, maar bijvoorbeeld uitsluiten van forum-/twitterberichten en wetteksten.
105
- * Erin mixen van de originele dataset voor ~5%, om ervoor te zorgen dat een model haar originele kennis niet verliest.
106
- Het is niet bekend op welke data Mistral getraind is, maar het is aannemelijk dat er kwalitatief goed Engels en ook instructiedata in verwerkt is. Daarom is voor de ~3% aan Engelse boeken, Wikipedia en ook instructiedata gekozen.
107
- * Zoveel mogelijk uitsluiten van door LLM's gegenereerde teksten in de pre-train fase. Bij veel datasets, vooral Nederlands, valt me op dat
108
- de vertalingen of generaties van een slechte kwaliteit zijn. Daarom is gekozen voor datasets waarvan de brondata
109
- pre ChatGPT tijdperk zijn, (dus voor November 2022).
110
- * mc4_nl_cleaned - de bron van deze dataset is mC4 - deduplicated data van Common
111
- Crawl, en gefiltered op bad-words en andere bewerkingen volgens het recept van de T5 auteurs voor de Engelse C4 dataset. In diverse vergelijkingen blijkt C4 een goede pre-train dataset, daarom is mc4_nl_cleaned ook voor dit model gebruikt.
112
- * Er is geen sourcecode in gemixt - ik verwacht niet dat een 7B model ooit code kan genereren dat bruikbaar is.
113
- Misschien helpt het bij logisch redeneer-puzzels, maar ook daarvoor verwacht ik dat een 7B model dit nooit zo goed
114
- zal kunnen of generaliseren als grotere modellen.
115
-
116
- Bij het pre-trainen zijn de brontexten gepackt in blokken van 2048 tokens. Hierbij is waar mogelijk geprobeerd om alleen
117
- teksten te packen die bij elkaar passen. Ook worden kleine fragmenten weggegooid, zodat we
118
- bijvoorbeeld nooit een fragment krijgen dat begint met een paar tokens van het einde van een wikipedia artikel, om daarna met een ander wikipedia artikel te beginnen. Dit is gedaan om 'cross sequence' ruis binnen 1 example zoveel mogelijk te voorkomen. Pas na packing zijn de examples geshuffled.
 
 
 
 
 
119
 
120
  ## Pre-training
121
 
122
- * Boreas was pre-trained with the [EasyDeL JAX framework](https://github.com/erfanzar/EasyDel) on a tpu-v4-32
123
- kindly supplied by the Google [TPU Research Cloud](https://sites.research.google/trc/about/).
 
124
  * Batch size 96, gradient accumulation steps 2
125
  * Using flash attention, block size of 512
126
  * Max sequence length of 2048
 
21
 
22
  # Boreas
23
 
 
 
24
  ![BoreasThe Mighty God of the North Wind](https://oldworldgods.com/wp-content/uploads/2023/10/boreas1.jpg)
25
 
26
  [Boreas-7B](https://huggingface.co/yhavinga/Boreas-7B) is een Nederlands/Engels taalmodel gebaseerd op Mistral-7B.
27
+ Het model is getraind op 10 miljard tokens aan Nederlandse en Engelse tekst.
28
 
29
+ **Boreas-7B-chat** (dit model) is een verdere finetune op instructie- en chat data.
30
 
31
+ * Boreas-7B vertoont overeenkomsten met [GEITje-7B](https://huggingface.co/Rijgersberg/GEITje-7B), aangezien beide
32
+ modellen zijn voortgebouwd op het Mistral-7B basismodel en zijn getrained op een vergelijkbare omvang van
33
+ 10 miljard tokens.
34
+ * Boreas-7B-chat is vergelijkbaar met [GEITje-7B-chat](https://huggingface.co/Rijgersberg/GEITje-7B-chat) en [GEITJE-7B-ultra-sft](https://huggingface.co/BramVanroy/GEITje-7B-ultra-sft),
35
+ * omdat het ook een fine-tune is op een chat-dataset.
36
 
37
  Edwin Rijgersberg heeft [uitgebreide documentatie](https://github.com/Rijgersberg/GEITje/blob/main/README.md) geschreven voor het gebruik van GEITje,
38
  en deze is ook van toepassing op Boreas.
39
 
40
  De voornaamste verschillen tussen Boreas en GEITje zijn:
41
 
42
+ * Boreas-7B en Boreas-7B-chat zijn getraind met een context lengte van 2048 tokens, terwijl GEITje is getraind met 8192 tokens.
43
  * Boreas-7B en Boreas-7B-chat zijn getraind op een mix van Engels en Nederlands, waar GEITje alleen op voornamelijk Nederlands getraind is.
44
+ * Boreas-7B-chat is getraind op een mix van chatconversaties als ook 'normaal' pre-trainen.
 
 
45
 
46
+ Omdat zowel GEITje als Boreas afgeleiden zijn van hetzelfde basismodel, is het mogelijk om een [merge](https://github.com/arcee-ai/mergekit)
47
+ te maken.
48
 
49
  ## Gebruik met ollama
50
 
 
63
 
64
  ## Doel Boreas
65
 
66
+ Het doel van Boreas is de ontwikkeling van een taalmodel dat, met betrekking tot het Nederlandse gedeelte,
67
+ niet getraind is op door LLMs gegenereerde teksten.
68
+ Dit omvat het vermijden van Nederlandse chats gegenereerd door een LLM en datasets die vertaals zijn uit het
69
+ Engels door een LLM.
70
  Bij het finetunen van Boreas-chat zijn toch 3% van de tokens Nederlandse chats gegeneerd door een LLM.
71
  Dit is een kleine dataset die gemaakt is op basis van Nederlandse bronteksten, en een steekproef heeft uitgewezen
72
+ dat deze data van goede kwaliteit is.
73
 
74
  Het uiteindelijke chat model is getraind op een mix van voornamelijk:
75
 
 
84
 
85
  Het basismodel is op Mistral-7B doorgetraind op 10 miljard tokens.
86
 
87
+ De dataset is samengesteld uit diverse bronnen in zowel de Nederlandse als de Engelse taal:
88
 
89
  | Datasetnaam | Aantal Tokens | Percentage Tokens (%) |
90
  |------------------------------------------------|---------------|-----------------------|
 
100
 
101
  De keuze voor deze mix is gebaseerd op zowel beschikbaarheid van data als de volgende overwegingen:
102
 
103
+ * Een substantieel aandeel hoogwaardig Nederlands taalmateriaal, primair bestaande uit door mensen geproduceerde teksten.
104
+ Dit leidde tot de inclusie van romans, Wikipedia-artikelen en journalistieke publicaties,
105
+ terwijl user-generated content zoals forumberichten, sociale media-uitingen en juridische documenten werden uitgesloten.
106
+ * Integratie van ongeveer 5% van de oorspronkelijke dataset, teneinde de retentie van initiële kennis te waarborgen.
107
+ Hoewel de exacte samenstelling van de Mistral-trainingsdata onbekend is, is het aannemelijk dat deze kwalitatief
108
+ hoogwaardige Engelstalige content en instructiedata bevat.
109
+ Derhalve is gekozen voor de toevoeging van circa 3% Engelstalige literatuur, Wikipedia-artikelen en instructiedata.
110
+ * Uitsluiten van door Large Language Models (LLMs) gegenereerde teksten in de pre-training fase.
111
+ Bij diverse Nederlandse datasets, valt de inferieure kwaliteit van vertalingen of gegenereerde teksten op.
112
+ Daarom is geopteerd voor datasets waarvan de brongegevens dateren van vóór het ChatGPT-tijdperk (i.e., vóór november 2022).
113
+ * Inclusie van mc4_nl_cleaned - afgeleid van mC4, een geduplificeerde versie van Common Crawl data,
114
+ gefilterd op ongewenste terminologie en onderworpen aan additionele bewerkingen conform het voorschrift van de T5-auteurs
115
+ voor de Engelstalige C4 dataset. Gezien de goede prestaties van C4 in diverse vergelijkende analyses als pre-training dataset,
116
+ is mc4_nl_cleaned geïncorporeerd in dit model.
117
+
118
+ In de pre-training fase zijn de brontexten gepackt in blokken van 2048 tokens. Hierbij is, waar mogelijk, gestreefd naar
119
+ samenvoeging van coherente tekstfragmenten. Korte fragmenten zijn overgeslagen, om te voorkomen dat een voorbeeld
120
+ begint met een paar tokens van het einde van een wikipedia artikel, gevolgd door een ander artikel.
121
+ Deze methodologie is gehanteerd om 'cross-sequence' ruis binnen individuele voorbeelden te minimaliseren.
122
+ De randomisatie van de voorbeelden is pas na deze aggregatie geïmplementeerd.
123
+
124
 
125
  ## Pre-training
126
 
127
+ Boreas-7B is pre-getraind met het [EasyDeL JAX framework](https://github.com/erfanzar/EasyDel) op een TPU-v4-32 op
128
+ de Google TPU Research Cloud. De pre-training specificaties zijn als volgt:
129
+
130
  * Batch size 96, gradient accumulation steps 2
131
  * Using flash attention, block size of 512
132
  * Max sequence length of 2048