File size: 18,858 Bytes
0446688 |
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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 |
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "723b5d4d",
"metadata": {},
"outputs": [],
"source": [
"import jax\n",
"import optax\n",
"import flax\n",
"import jax.numpy as jnp\n",
"import datasets\n",
"from flax.training import train_state\n",
"from flax.training.common_utils import get_metrics, onehot, shard\n",
"from datasets import load_dataset\n",
"from tokenizers import trainers, Tokenizer, normalizers, ByteLevelBPETokenizer\n",
"from pathlib import Path\n",
"import numpy as np\n",
"import transformers\n",
"from tqdm.notebook import tqdm\n",
"from pathlib import Path\n",
"from transformers import AutoConfig\n",
"from typing import Dict, List, Optional, Tuple\n",
"from transformers import AutoTokenizer\n",
"from transformers import PreTrainedTokenizerBase\n",
"from transformers import FlaxAutoModelForMaskedLM\n",
"from dataclasses import dataclass, field\n",
"import time\n",
"import glob\n",
"import random"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f4a5edee",
"metadata": {},
"outputs": [],
"source": [
"from transformers import AutoConfig\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "48daf2ec",
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n",
"config = AutoConfig.from_pretrained(\"google/bigbird-roberta-base\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "fc816572",
"metadata": {},
"outputs": [],
"source": [
"config.save_pretrained(\"./\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "39b9fc3d",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "ba855add",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 11,
"id": "59076aa7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of files 20 after adding /data/c4_cleaned\n"
]
}
],
"source": [
"#59G c4_cleaned compressed\n",
"#937M nrc_uniq_cleaned_20210223 compressed\n",
"#410M nu_uniq_cleaned_20210225 compressed\n",
"#9.9G oscar_nl_cleaned compressed\n",
"\n",
"\n",
"\n",
"data_files = []\n",
"SEED=42\n",
"def add_jsonlines_dir(path):\n",
" global data_files\n",
" #data_files += glob.glob(f\"{path}/*47*.gz\")\n",
" #data_files += glob.glob(f\"{path}/*32*.gz\")\n",
" #data_files += glob.glob(f\"{path}/*59*.gz\")\n",
" data_files += glob.glob(f\"{path}/*11*.gz\")\n",
" print(f\"Number of files {len(data_files)} after adding {path}\")\n",
" \n",
"add_jsonlines_dir(\"/data/c4_cleaned\")\n",
"#add_jsonlines_dir(\"/data/nrc_uniq_cleaned_20210223\")\n",
"#add_jsonlines_dir(\"/data/nu_uniq_cleaned_20210225\")\n",
"#add_jsonlines_dir(\"/data/oscar_nl_cleaned\") This one gives an error like field url not in \n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "fc9519d2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of files 209 after adding /data/oscar_nl_cleaned\n",
"95%: 199\n",
"Got 199 training files and 10 validation files\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using custom data configuration default-00e4c1e272015fdb\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading and preparing dataset json/default (download: Unknown size, generated: Unknown size, post-processed: Unknown size, total: Unknown size) to /home/dat/.cache/huggingface/datasets/json/default-00e4c1e272015fdb/0.0.0/f92a4de297ac644ad9781979b79064b0e222b3af766f8ea3bee32390dca23723...\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "7fc9159a741a4853abb8fa1abcb8bd4c",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"0 tables [00:00, ? tables/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "db9fc4eb87094fa9aef909f8e8d41124",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"0 tables [00:00, ? tables/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dataset json downloaded and prepared to /home/dat/.cache/huggingface/datasets/json/default-00e4c1e272015fdb/0.0.0/f92a4de297ac644ad9781979b79064b0e222b3af766f8ea3bee32390dca23723. Subsequent calls will reuse this data.\n"
]
}
],
"source": [
"#59G c4_cleaned compressed\n",
"#937M nrc_uniq_cleaned_20210223 compressed\n",
"#410M nu_uniq_cleaned_20210225 compressed\n",
"#9.9G oscar_nl_cleaned compressed\n",
"\n",
"\n",
"\n",
"data_files = []\n",
"SEED=42\n",
"def add_jsonlines_dir(path,filespec):\n",
" global data_files\n",
" data_files += glob.glob(f\"{path}/{filespec}\")\n",
" print(f\"Number of files {len(data_files)} after adding {path}\")\n",
" \n",
"#add_jsonlines_dir(\"/home/dat/subset_c4_cleannl\",\"*.gz\") \n",
"add_jsonlines_dir(\"/data/oscar_nl_cleaned\",\"*.gz\")\n",
"#add_jsonlines_dir(\"/data/nrc_cleaned_idtextfmt\",\"*.gz\")\n",
"#add_jsonlines_dir(\"/data/nu_cleaned_idtextfmt\",\"*.gz\")\n",
"random.Random(SEED).shuffle(data_files)\n",
"total = len(data_files)\n",
"val_size = int(0.05 * total)\n",
"train_size = total - val_size\n",
"print(f\"95%: {train_size}\")\n",
"train = data_files[:train_size]\n",
"val = data_files[train_size:]\n",
"print(f\"Got {len(train)} training files and {len(val)} validation files\")\n",
"assert list(set(train) & set(val)) == [], \"Train overlaps with test\"\n",
"datasets = load_dataset('json', data_files={'train': train, 'validation': val})\n",
"\n",
"\n",
"assert list(set(train) & set(val)) == [], 'train overlaps with test'\n"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "865a9642",
"metadata": {},
"outputs": [],
"source": [
"dataset_iterator = iter(datasets['train'])"
]
},
{
"cell_type": "code",
"execution_count": 78,
"id": "523b0fc2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Zo stel ik het me voor. Tegen iedere conventie in. Och wat heeft de burgerij gemopperd en schande gesproken. Dat was in die dagen. Nu nog steeds, maar anders. Daarover later meer. En wat zullen ze van u gehouden hebben in de kleine kring van liefhebbers.\n",
"Jaren geleden, toen ik nog op de academie zat bestudeerde ik uw werk. Vooral de paar overgebleven foto’s van uw Merzbau in Hannover troffen mij. Zo vrij en swingend en onconventioneel.\n",
"Ze werden opgeslagen in een afgelegen kamer in mijn geheugen, want eigentijdse choreografen en filmmakers en schilders uit de vroege renaissance vroegen om voorrang.\n",
"Toen u het huis van uw ouders in Hannover betrok transformeerde u acht kamers tot een betoverende sculptuur. Merzbau! Kathedrale des erotischen Elend.\n",
"In abstracte vlakken en vormen kruipen de volumes chaotisch omhoog langs de muren. Meestal wit. Er vormen zich ruimtes en grotachtige structuren. Hier en daar een typografisch detail of een herkenbaar object, dat uit zijn context geslingerd, vooral vragen oproept. Met hier en daar een antwoord of een vermoeden daarvan.\n",
"Soms verborg u zich in het kleine orgelkamertje bovenin als er gasten kwamen, om de reactie op hun gezichten te lezen als ze uw gedichten of het karnavals-achtige nummer Du lieber Augustin door de fantastische ruimte hoorden schallen, een lied vol humor en boerse middeleeuwse wreedheid, maar ook melancholie.\n",
"Banale liedjes laten horen in een ruimte die verschillende betekenissen kan hebben. Ik herken dat zo. Wij deden dat ook in het theater.\n",
"Ik vraag nu toch uw hand, zo’n beetje dwars door de tijd, om een paar pirouettes te draaien of misschien beter een twist.\n",
"Het gewicht van de tapijten of het zeil waaronder ik zowat bezwijk, de inspanning om hoog in de opstelling een klosje op te hangen… Op een gegeven moment raak ik in een staat waarin ik niet meer nadenk. Dan doe ik de ingreep die een beeld uiteindelijk af maakt. Grappig niet?\n",
"Ik vermoed dat u dat ook heeft, dat zware fysieke werken aan Merzbau; dat dat fijn is, dat het zo echt is daardoor en dat je uiteindelijk in trance raakt.\n",
"Daar leefde u van werken in opdracht; portretten en landschappen. Beeldschoon werk, maar u deed niet anders dan erop mopperen.\n",
"Ondertussen begon u een nieuwe Merzbau in een schuur op het platteland. U groef er een verdieping onder en begon daar te merzen. Weer die zware fysieke arbeid. Dat beschouwde u als uw echte werk. Daar legde u ‘connecties tussen alles in uw wereld’, al uw werk ‘een levenslange ervaring’.\n",
"Maar uw landschappen hoorden daar niet bij. Dat is nu vreemd, jammer zelfs. Tenminste, gezien vanuit mijn perspectief, vanuit het heden. Ze komen immers uit dezelfde bron. Is het omdat ze niet abstract zijn?\n",
"Per Kirkeby is een beroemd Deens schilder en beeldhouwer, graficus en dichter. Nu tachtig jaar oud. U zou hem weten te waarderen. Ook niet binnen een -isme te vangen. Hij heeft heel mooi over zuivere en onzuivere kunst gesproken. Dit klinkt een beetje eng maar ging over zuiver in de zin van kaal en zonder betekenis en in het onzuivere zaten alle associaties en verwijzingen.\n",
"In míjn werk houd ik van de associaties en verwijzingen. Maar we leven nu in een andere tijd. Pure abstractie wordt zeker nog gevierd door sommige kunstenaars, en zeker niet de minsten, maar de revolutie die het in uw tijd ontketende is uitgewoed.\n",
"Ik houd ervan dat in mijn werk niks helemaal lijkt te kloppen, maar er is wel samenhang. De objecten zijn volgens een innerlijke logica gekozen. Maar het mag geen surealisme worden. Daar houd ik niet van. Het is een smalle marge waarin ze mogen bestaan.\n",
"Het gaat vreemd genoeg volgens schilderkunstige principes, al komt er geen verf aan te pas. Ik bouw mijn opstellingen laag voor laag op. Vanuit de achtergrond. Ik doe weg, of bedek wat te makkelijk te duiden is en daarmee het beeld plat slaat, of wat ik te mooi of esthetisch vind. Soms draait het zich om, behoud ik juist wat mooi of betekenisvol is. Ik zet voortdurend voetangels en klemmen voor mijzelf. En ik geloof dat dat de kwaliteit van het werk uitmaakt.\n",
"Ik vraag me af in hoeverre dit een wet is die voor alle kunst opgaat. Ik geloof het wel. Al gebeurt het soms alleen in het denkproces dat vooraf gaat aan de uitvoering van het werk.\n",
"Ik ken het in ieder geval heel goed uit mijn theaterwerk. Dat schaven aan een productie tot alle puzzelstukken op hun plaats vallen.\n",
"Ik kan mij voorstellen dat dat zelfs bij Mondriaan gebeurde. Zijn Victory Boogy Woogy heeft zo iets magisch ongrijpbaars. En toch staan alle vlakken gewoon op hun plek. Daar is zoveel jaar werk voor nodig geweest!\n",
"In zijn vroege werken, ook landschappen en bomen, proef je wat er allemaal in zit. In die man bedoel ik en in die doeken.\n",
"Ik wil maar zeggen, die landschappen van u zijn denk ik toch met dezelfde mentaliteit gemaakt als uw dichtwerk of Merzbau. Ze zijn in ieder geval door u gemaakt. Met uw hand, uw geest, uw afwegingen tijdens het schilderen. Dit wel, dit niet.\n",
"Maar niet mystiek of transcendent? Ik lees in andere bronnen over Dada’s grondslag; Boeddhisme, Taoisme, vroegchristelijke mystici, en over filosofen als Bergson, Nietzsche en Descartes. Nogal tegenstrijdig allemaal.\n",
"En dat DaDa niets is, dat wil zeggen alles, of het niet-iets, of een vogel op vier poten, of een levensverzekering of een ladder zonder sporten….\n",
"Ik heb een leven lang studie en kijken en nog eens kijken voor me, om dit alles te doorvorsen. Maar begrijpen doe ik het al. Op m’n intuïtie.\n"
]
}
],
"source": [
"print(next(dataset_iterator)['text'])"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "b5839c79",
"metadata": {},
"outputs": [
{
"ename": "IndentationError",
"evalue": "unexpected indent (1021262509.py, line 15)",
"output_type": "error",
"traceback": [
"\u001b[0;36m File \u001b[0;32m\"/tmp/ipykernel_309684/1021262509.py\"\u001b[0;36m, line \u001b[0;32m15\u001b[0m\n\u001b[0;31m train, val = train_val_files()\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unexpected indent\n"
]
}
],
"source": [
"\n",
" add_jsonlines_dir(\"/home/dat/subset_c4_cleannl\") \n",
" add_jsonlines_dir(\"/data/oscar_nl_cleaned\")\n",
" add_jsonlines_dir(\"/data/nrc_cleaned_idtextfmt\")\n",
" add_jsonlines_dir(\"/data/nu_cleaned_idtextfmt\")\n",
" random.Random(SEED).shuffle(data_files)\n",
" total = len(data_files)\n",
" val_size = int(0.05 * total)\n",
" train_size = total - val_size\n",
" print(f\"95%: {train_size}\")\n",
" train = data_files\n",
" val = data_files\n",
" print(f\"Got {len(train)} training files and {len(val)} validation files\")\n",
" assert list(set(train) & set(val)) == [], \"Train overlaps with test\"\n",
" return train, val\n",
" train, val = train_val_files()\n",
" datasets = load_dataset('json', data_files={'train': train, 'validation': val})"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "6685589f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"\n",
"\n"
]
}
],
"source": [
"from tokenizers import ByteLevelBPETokenizer\n",
"tokenizer = ByteLevelBPETokenizer()\n",
"\n",
"def batch_iterator(batch_size=1000):\n",
" for i in range(0, len(datasets), batch_size):\n",
" yield datasets[\"train\"][i: i + batch_size][\"text\"]\n",
"\n",
"tokenizer.train_from_iterator(batch_iterator(), vocab_size=50358, min_frequency=2, special_tokens=[\n",
" \"<s>\",\n",
" \"<pad>\",\n",
" \"</s>\",\n",
" \"<unk>\",\n",
" \"<mask>\",\n",
"])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "5fed49b4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"39503"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tokenizer.get_vocab_size()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "69401680",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/dat/pino-roberta-base\n"
]
}
],
"source": [
"cd ~/pino-roberta-base"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "7a98d754",
"metadata": {},
"outputs": [],
"source": [
"tokenizer.save(\"tokenizer.json\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e686b9c8",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using custom data configuration nl-lang=nl\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading and preparing dataset cc100/nl (download: Unknown size, generated: Unknown size, post-processed: Unknown size, total: Unknown size) to /home/dat/.cache/huggingface/datasets/cc100/nl-lang=nl/0.0.0/b583dd47b0dd43a3c3773075abd993be12d0eee93dbd2cfe15a0e4e94d481e80...\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "8bb6155775084c42841d5a786a3f014c",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Downloading: 0%| | 0.00/8.42G [00:00<?, ?B/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dataset1 = load_dataset(\"mc4\", \"nl\", streaming=True)\n",
"dataset2 = load_dataset(\"oscar\", \"unshuffled_deduplicated_nl\",streaming=True)\n",
"dataset3 = load_dataset(\"cc100\", lang=\"nl\")\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "1e1498d1",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:absl:Starting the local TPU driver.\n",
"INFO:absl:Unable to initialize backend 'tpu_driver': Not found: Unable to find driver in registry given worker: local://\n",
"INFO:absl:Unable to initialize backend 'gpu': Not found: Could not find registered platform with name: \"cuda\". Available platform names are: Interpreter Host TPU\n",
"Some weights of FlaxBigBirdModel were not initialized from the model checkpoint at flax-community/pino-roberta-base and are newly initialized: {('pooler', 'kernel'), ('pooler', 'bias')}\n",
"You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n"
]
}
],
"source": [
"from transformers import AutoTokenizer, RobertaModel\n",
"from transformers import BigBirdForSequenceClassification,FlaxBigBirdModel,FlaxBigBirdForMaskedLM\n",
"\n",
"model = FlaxBigBirdModel.from_pretrained(\"flax-community/pino-roberta-base\")\n",
"model.save_pretrained('exported_pytorch_model')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "82f2a9b7",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
|