Om met een beperkte hoeveelheid (Nederlandstalige) data een taalmodel van voldoende kwaliteit te bouwen, wordt er een deel ‘synthetische’ data toegevoegd. Bij het ‘synthetiseren van data’ wordt bestaande data gebruikt om nieuwe data te ontwikkelen. Erik de Graaf, datawetenschapper bij TNO, is gespecialiseerd in het synthetiseren van data. Hij geeft uitleg welke vormen van synthetische data we verkennen voor GPT-NL, en welke vormen we uitsluiten.
De reden om te kiezen voor het synthetiseren van data binnen GPT-NL, is volgens Erik eenvoudig te verklaren. ‘Er is simpelweg niet genoeg data beschikbaar die aan onze strenge, ethische eisen voldoet, en al helemaal niet in het Nederlands.’
Voor het project is een datadoel gesteld: 300 miljard teksttokens. Daarbij geldt: hoe meer tokens, hoe beter. Maar het is daarbij ook belangrijk wat de kwaliteit van die tokens is. Synthetische data heeft over het algemeen een lagere kwaliteit dan ‘normale’ data, dus het draait ook om het vinden van de juiste balans. Erik: ‘Bij synthetische data starten we met lage kwaliteit bulkdata, zoals vertalingen van anderstalige teksten. Deze kan je in een vroeg stadium van het trainen van het taalmodel gebruiken. Het model kan dan taligheid oppikken. Daarmee bedoel ik het vermogen van een taalmodel om taalstructuren, grammaticale regels en natuurlijke zinsconstructies op te pikken en te begrijpen, zelfs uit minder perfecte of automatisch vertaalde data. Het maakt dan nog niet zoveel uit of de data die je in die fase gebruikt een machinevertaling is, in plaats van een tekst die door een mens is geschreven.’
Kan je wat vertellen over synthetische data en taalmodellen?
‘Kijk, synthetische data wordt sowieso al veel gebruikt binnen bestaande LLM’s. Maar we maken een belangrijk onderscheid. Bij die bestaande modellen wordt vaak gewerkt met data die wij bij GPT-NL ‘type 2 synthetische data’ noemen. Je aanpak is dan min of meer: je maakt een lijst met onderwerpen waar je synthetische data over wil. Dan vraag je aan een grote LLM een paragraaf te schrijven over een bepaald onderwerp, bijvoorbeeld in Wikipediastijl. Je krijgt dan een redelijk hoge kwaliteit data. Echter zijn deze modellen getraind op data die mogelijk niet rechtmatig is verkregen. Dus als we deze ‘nieuwe Wikipedia-tekst' gebruiken als trainingsdata voor GPT-NL, kunnen we zelf niet meer spreken van een ‘schone dataketen’.
Waar kies je dan wél voor binnen GPT-NL?
‘We werken met wat we type 1-data noemen, dat is rechtmatig verkregen data die we mogen gebruiken. Dat betekent dat we alleen bestaande kennis gebruiken die volledig in de brondata zit. Een voorbeeld is de genoemde machinevertaling: we kunnen een LLM gebruiken om een Spaanse tekst naar het Nederlands te vertalen, maar het model voegt zelf geen extra kennis toe. Een andere methode die we inzetten, is het omzetten van zogenoemde knowledge graphs naar tekst. Denk aan Wikipedia, waarin gestructureerde kennis is opgeslagen. Bijvoorbeeld: “Willem-Alexander, nobele titel, Prins van Oranje”. Dat zijn drie datapunten. Wij gebruiken die datapunten om daaruit volwaardige zinnen te genereren.’
‘Een derde methode is het omzetten van data uit tabellen naar tekst, bijvoorbeeld data van het CBS. Interpretatie blijft daarbij wel een punt. Er is een bekende uitspraak: “There are three types of lies: lies, damned lies and statistics”. Statistiek is altijd onderhevig aan interpretatie. Dus één van de grote uitdagingen bij deze methode is: hoe zorg je dat vertaalde of gegenereerde data geen onbedoelde vertekening bevat?’
Welke uitdagingen kom je nog meer tegen bij het synthetiseren van data?
‘Brondata is ook een aandachtspunt. Spaanse of Franse teksten uit het publieke domein zijn vaak ouder dan honderd jaar. Dat brengt problemen met zich mee: feiten en biases uit die tijd zijn anders dan nu. Daarnaast zijn de scans van teksten niet altijd foutloos, zeker niet bij handschreven tekst, wat vertaling bemoeilijkt. Frans en Spaans zijn nog redelijk goed te vertalen, maar bij talen als Russisch wordt dat al ingewikkelder. Cultuurverschillen spelen ook een rol: in sommige talen is chauvinisme bijvoorbeeld sterker aanwezig. Dan wordt het belangrijk je af te vragen of je dat eruit zou willen filteren. En zo ja, hoe je dat dan moet doen. Het is niet zo makkelijk om dat goed te doen. Binnen ons spoor van datacuratie, dat is het verzamelen, opschonen, beheren en verrijken van data, hebben we een systeem voor het detecteren van schadelijke teksten. De discussie is nu of dat detectiesysteem ook goed werkt op vertaalde data en of dat een risico is dat we kunnen accepteren.’
Welke technieken gebruik je voor het synthetiseren van data?
‘We maken gebruik van verschillende methoden. Machinevertaling noemde ik al. Denk aan Google’s MADLAD-400, een open-source vertaalmodel dat beter werkt voor onze doeleinden dan modellen als LLaMA. Het probleem met modellen zoals LLaMA is dat de kennis die al in dat model zit, kan “lekken” in de vertaling. Dat willen we voorkomen.’
‘We kijken ook naar andere bronnen, zoals YouTube. Er zijn veel vrij beschikbare video’s. Met een visuele LLM kun je een beschrijving van de video genereren. Dat is interessant, maar we verwachten er niet extreem veel van. Wat wel potentie heeft, is het verbeteren van slecht geschreven data. Denk aan ondertitels van YouTube-video’s: die bevatten vaak fouten omdat de vertaling door audio-naar-tekstmodellen niet optimaal is. Met een LLM kun je die netter maken. Teksten netter maken is overigens iets wat andere partijen ook al doen.’
Wat hoop je uiteindelijk met synthetische data te bereiken?
‘Het belangrijkste is dat we een voldoende grote en diverse dataset kunnen genereren, zonder concessies te doen aan transparantie en betrouwbaarheid. Door slimme technieken in te zetten, kunnen we GPT-NL trainen op een manier die aansluit bij onze ethische richtlijnen. Uiteindelijk moet dit leiden tot een taalmodel dat niet alleen krachtig is, maar ook écht geschikt voor de Nederlandse context.’
Synthetische data dient als aanvulling op de dataset voor GPT-NL zodat we een kwalitatieve dataset kunnen nastreven, maar is geen vervanging voor databronnen die we in het private of publieke domein kunnen verkrijgen. Het verkennen van de mogelijkheden van synthetische data liep dan ook parallel aan de dataverzameling. Naar verwachting zullen we zo’n 6 miljard gesynthetiseerde teksttokens toevoegen aan de trainingsdataset voor GPT-NL; deze halen we uit knowledge graphs en machinevertaling. Aan het eind van de training kunnen we toelichten welke synthetische data we hebben toegevoegd.