Guus Bosman

software engineering director


You are here

internet

Generating Dutch language using Nescio's works and a GPT

I'm mostly done with the Natural Language Processing specialization and tonight I was playing around with a fun proof of concept written by Andrej Karpathy.

The proof of concept is a tiny transformer architecture, "GPT mini". Unlike its big GPT-3 and GPT-4 brothers, this tiny model is character based, not word based. The text I used are three short stories by author Nescio -- which, in fact, constitute his complete works, around 200k characters. I trained it for 20,000 iterations.

The source code and results are available on Github. The architecture uses an embedding size of 192, 6 attention heads and stacks 6 transformer blocks. The results in 2.71M parameters and the 20k iterations took around 15 minutes on an NVIDIA A100.

It's really fun to see how the model improves over time. Initially, the generated text is mostly random, but slowly but surely it starts to reproduce sentence structures and realistic looking words. Of course, with such a small corpus of 200k characters, the model will overfit the data and start to reproduce sentences from the source text -- but it's still cool to see.

After the first iteration

eun nOO nnp nepurK eued d$ptOd nK nt a a K t$utnKtaen Kate dt nd t,pten ap ean d, tpen pnr d K e eaKt nnndddette autaKpaateeu a KpK Kae e h$aKpa ha K tnO a n hatptn aae de antaKpnpptpeKdeddnt npoaupta tp ean hK t p Kao Kt ht p pndn tep nernn auKdtd hnO n ept nK o K eKn n Kapttu ndpt do ate tddon er n KtdnO ed$ ha nudK dtKadddaadtdeaadp p nK$pdteeta t out p tn en nOneKtKanuh an opon Kanee pe dp e d epaKteaKKra aadp n o Kedae eaoata e taeat n hpeuedpK p dn haa en eKedn auu K

After 500 iterations:

I, dat de burs een
heef op dat zei, haar mals dacht de zei vrijn en eeschaan. Wiltij haar zoef
ik op er haarmet van en om de stotjes de waaren in voereed, ik
kaneek z'n had over van wilderde doof toed doe hoeden?" Is in daar
wond een gaamen zest zou zoo van voeren, de del den van
al hij me heeme vand van gon draat op z'n voedene verkorgerd diet
koes opte hemt ond zoo ik geschadens wam op het zageend veellen dondje de eer de
dat naar de verral de van geschiller wijd en een datst een een
gendas a

After 1,000 iteration (training loss 1.54447) -- first mention of "Dora"

Is biesteren er zelfde hand
en geven wit zoo gehand. En wat zei ik zijn op nog meer, nieuw, dat wit was vuor. Hij
waren dat niks was maal, als nooiil met ze zoulven.

Maar dan dan tonden heelemalen, toent naar beziefdig heuis, over
dat den schragen. Dora i weg een meer neem. Een zei i een kleet blauwsten
was moest en knapplook best verschij, dan zooals wees in 't benait zinnen. Er wan
met wweet op deek van de leven en klampte over was gedrhouden, ondergal
weer en gelende sische en hoe of meer d

1500: train loss 1.34416 -- you can see that "Bavink" makes his appearance.

No. En toe kan- hij
dan dat zoo ook, dat ze 't, avonds herd over hem op hun trap
heugen, aan de wijlen of te zeggen. En op haar enoedig, vertielde zag z'n verschicht,
maar eenige schider tot zelf nog en dat heel greest om. En de boogen wat
niks meer zag hij met den handel nog waar boven.

En zei Bavink, wat ze zit wij van z'n beetjes heer met
een pijs af, die zien? En wier zag je heer aan weer anders en dat ze
oude hem. Het wezelfsleven viel was zoo veel gaan, dat i nog haar schoof ofdat,
ze wo

iter 3000: train loss 0.89607
Als-i in de steven lager daar gelezen,
met verlangd jaar er boven. Dan was ik er nergens in. Het was een
raam van hoog.

Op een ander hoofd stond er geweest. En toen ik daar goed was een tijd naar
uit een beetje stroomen en de somberhooge schitterenden van een
dichtertje en niet meer op. De overzij had ik gehad overalen,
dan moet Bavink op een meid voor de lantaarn geluiden, zag ze weer
een duidelijk leven zich neem.

Maar met de zaken heel en das 'm niet een dertje heelemaal in een den hand
va

iter 5500: train loss 0.46585
" En middag on-i ook heeft-i een
betrekking van hun mijn sigaren op een papieren, en toen ik boven
jelui de menschen om niet te houden. Ik ben ben de vrouw niet, maar
mijn gedachten zijn geeft tusschen zijn kleeren verdroeg en een wonderlijk
scht wend dan ons over uit den weg te lochten.

Onderwijl schreef i op z'n zomermiddag waren gestapt en Bavink had aan
gehad w. Z'n boekje leven van den groote gekosten voor dragen in 't huis
en van de Waalt soliabolone tafee en er kreeg naar 't water en dan

15500: train loss 0.23958 -- after 15k iterations, the training loss doesn't really decrease anymore.

7 mensche me schel zoo over boven huis bij de puilten? In een net verden. Ik keek
er naar niet bij over. De zon van die monu stilletjes en geen oogenblik gelijk. En
daarna had je dikke Jan ook weer, den toren van Zierikzee, nu in 't
kleine kuisje in
't water te razen. Daarnaast stond m'n troost bestaan. De treurwilg zij in een volksbuurt, waar weer zeiden in 't
alsterdampje en geen oogenblik 't zelfde. Eenen keer hield ze diep
ze niet verlegenheid zooals als i kleinste vasthiel en verlangen over

Recent comments

Recently read

Books I've recently read: