Cursus
De opkomst van large language models (LLM’s) is een bepalende trend binnen Natural Language Processing (NLP), wat heeft geleid tot brede adoptie in uiteenlopende toepassingen. Deze vooruitgang was echter vaak exclusief, omdat de meeste LLM’s ontwikkeld worden door kapitaalkrachtige organisaties en voor het publiek onbereikbaar blijven.
Deze exclusiviteit roept een belangrijke vraag op: wat als er een manier was om de toegang tot deze krachtige taalmodellen te democratiseren? Daar komt BLOOM in beeld.
Dit artikel geeft een volledig overzicht van wat BLOOM is door eerst dieper in te gaan op de oorsprong. Vervolgens komen de technische specificaties van BLOOM en het gebruik ervan aan bod, waarna we de beperkingen en ethische overwegingen uitlichten.
Wat is BLOOM?
BigScience Large Open-science Open-access Multilingual Language Model (kortweg BLOOM) is een aanzienlijke stap vooruit in het democratiseren van taamodeltechnologie.
BLOOM is in samenwerking ontwikkeld door meer dan 1200 deelnemers uit 39 landen, waaronder een aanzienlijk aantal uit de Verenigde Staten, en is het resultaat van een wereldwijde inspanning. Het project is gecoördineerd door BigScience in samenwerking met Hugging Face en de Franse NLP-gemeenschap, en overstijgt geografische en institutionele grenzen.
Het is open-source en een decoder-only transformermodel met 176 miljard parameters, getraind op het ROOTS-corpus: een dataset met honderden bronnen in 59 talen, bestaande uit 46 gesproken talen en 13 programmeertalen.
Hieronder staat een taartdiagram met de verdeling van de trainingstalen.

Verdeling van de trainingstalen (bron)
Het model behaalde opmerkelijke prestaties op een breed scala aan benchmarks en boekte nog betere resultaten na multitask prompted finetuning.
Het project culmineerde in een 117 dagen durende (11 maart – 6 juli) trainingssessie op de Jean Zay-supercomputer in Parijs, mogelijk gemaakt door een substantiële compute-subsidie van de Franse onderzoeksinstanties CNRS en GENCI.
BLOOM staat niet alleen als een technologisch hoogstandje, maar ook als een symbool van internationale samenwerking en de kracht van collectieve wetenschappelijke inzet.
BLOOM-modelarchitectuur
Beschrijven we nu BLOOM’s architectuur in meer detail; deze omvat meerdere componenten.

Bloom-architectuur (bron)
De architectuur van het BLOOM-model, zoals beschreven in het paper, bevat verschillende noemenswaardige aspecten:
- Ontwerpbenadering: Het team richtte zich op schaalbare modelfamilies met ondersteuning in publiek beschikbare tools en codebases, en voerde ablatietests uit op kleinere modellen om componenten en hyperparameters te optimaliseren. Zero-shot-generalizatie was een belangrijke maatstaf bij het evalueren van architectuurkeuzes.
- Architectuur en pretrainingdoel: BLOOM is gebaseerd op de Transformer-architectuur, specifiek een causale decoder-only variant. Deze aanpak bleek het meest effectief voor zero-shot-generalizatie vergeleken met encoder-decoder- en andere decoder-only-architecturen.
- Modeldetails:
- ALiBi positional embeddings: ALiBi werd verkozen boven traditionele positional embeddings, omdat het de attentiescores direct afzwakt op basis van de afstand tussen keys en queries. Dit leidde tot vloeiender trainen en betere prestaties.
- Embedding LayerNorm: Er werd een extra layer normalization toegevoegd direct na de embeddinglaag, wat de trainstabiliteit verbeterde. Deze beslissing werd mede beïnvloed door het gebruik van bfloat16 in de uiteindelijke training, dat stabieler is dan float16.
Deze componenten weerspiegelen de focus van het team op het balanceren van innovatie met beproefde technieken om prestaties en stabiliteit te optimaliseren.
Naast de architectuurcomponenten van BLOOM bekijken we nog twee relevante onderdelen: datapreprocessing en prompted datasets.
- Datapreprocessing: Dit omvatte cruciale stappen zoals deduplicatie en het maskeren van privacygevoelige gegevens, vooral voor bronnen met hogere privacyrisico’s.
- Prompted datasets: BLOOM past multitask prompted finetuning toe, wat sterke zero-shot-generalizatie-eigenschappen laat zien.
BLOOM gebruiken
In dit voorbeeld gebruiken we BLOOM om een creatieve verhaaltekst te genereren. De code zet de omgeving op, bereidt het model voor en genereert tekst op basis van een prompt. De bijbehorende broncode is beschikbaar op GitHub en is sterk geïnspireerd door de amrrs-tutorial.
Werkruimte configureren
Het BLOOM-model vergt veel resources; een goede configuratie van je werkruimte is daarom cruciaal. De belangrijkste stappen staan hieronder.
Allereerst gebruiken we de bibliotheek transformers voor de interfaces om met het BLOOM-model en andere transformer-gebaseerde modellen te werken.
!pip install transformers -q
Met nvidia-smi controleren we de eigenschappen van de beschikbare GPU om zeker te zijn dat we over de benodigde rekenkracht beschikken om het model te draaien.
!nvidia-smi

We importeren de benodigde modules uit transformers en torch. Torch wordt gebruikt om het standaard tensortype in te stellen en zo GPU-acceleratie te benutten.
Omdat we een GPU gebruiken, stellen we in de torch-bibliotheek met de functie set_default_tensor_type in dat de GPU gebruikt wordt.
from transformers import AutoModelForCausalLM, AutoTokenizer, set_seed
import torch
torch.set_default_tensor_type(torch.cuda.FloatTensor)
Het BLOOM-model gebruiken
Het doelmodel in dit voorbeeld is de BLOOM-variant met 7 miljard parameters, beschikbaar in de Hugging Face-repository van BigScience onder bigscience/bloom-1b7, wat overeenkomt met de unieke identifier van het model.
model_ID = "bigscience/bloom-1b7"
Vervolgens laden we het voorgetrainde BLOOM-model en de tokenizer van Hugging Face en stellen we de seed in voor reproduceerbaarheid met de functie set_seed en een willekeurig getal. De exacte waarde maakt niet uit, zolang het maar geen kommagetal is.
Wil je meer leren over het onbenutte potentieel van Large Language Models met LangChain, een open-source Python-framework voor het bouwen van geavanceerde AI-toepassingen? Lees dan onze tutorial How to Build LLM Applications with LangChain Tutorial.
Ben je data-engineer en geïnteresseerd in het gebruik van LangChain voor datatoepassingen? Ons artikel Introduction to LangChain for Data Engineering & Data Applications geeft een overzicht van wat je met LangChain kunt doen, inclusief de problemen die het oplost en voorbeelden van datagebruik.
model = AutoModelForCausalLM.from_pretrained(model_ID, use_cache=True)
tokenizer = AutoTokenizer.from_pretrained(model_ID)
set_seed(2024)
Nu kunnen we de titel van het te genereren verhaal definiëren, samen met de prompt.
story_title = 'An Unexpected Journey Through Time'
prompt = f'This is a creative story about {story_title}.\n'
Tot slot tokenizen we de prompt en mappen we deze naar het juiste modelapparaat, waarna we de output genereren en decoderen.
input_ids = tokenizer(prompt, return_tensors="pt").to(0)
sample = model.generate(**input_ids,
max_length=200, top_k=1,
temperature=0, repetition_penalty=2.0)
generated_story = tokenizer.decode(sample[0], skip_special_tokens=True)
Het eindresultaat wordt opgemaakt met de module textwrap, zodat er maximaal 80 tekens per regel staan voor betere leesbaarheid.
import textwrap
wrapper = textwrap.TextWrapper(width=80)
formated_story = wrapper.fill(text=generated_story)
print(formated_story)
Het uiteindelijke resultaat staat hieronder:

Verhaal gegenereerd met het BLOOM-model
Met een paar regels code konden we betekenisvolle content genereren met het BLOOM-model.
Wil je het trainen van large language models met PyTorch van begin tot eind onder de knie krijgen? Onze tutorial How to Train an LLM with PyTorch biedt een complete gids om dat doel te bereiken.
Toegestane en niet-toegestane toepassingen
Zoals bij elke technologische vooruitgang kent BLOOM toepassingsgebieden die wel en niet geschikt zijn. In deze sectie gaan we in op passende en ongeschikte use-cases, waar de capaciteiten het best tot hun recht komen en waar voorzichtigheid geboden is. Het begrijpen van deze grenzen is cruciaal om BLOOM verantwoord en effectief in te zetten.
Bedoelde toepassingen van BLOOM
BLOOM is een veelzijdig hulpmiddel dat de grenzen van taalverwerking en -generatie verlegt. De beoogde toepassingen bestrijken verschillende domeinen die elk profiteren van de brede taalcapaciteiten.
- Meertalige contentcreatie: Met vaardigheid in 59 talen blinkt BLOOM uit in het maken van diverse en inclusieve content. Dit is vooral waardevol in wereldwijde communicatie, onderwijs en media, waar taal-inclusiviteit cruciaal is.
- Coding en softwareontwikkeling: Dankzij training in programmeertalen is BLOOM een aanwinst voor softwareontwikkeling. Het kan helpen bij taken zoals codegeneratie, debuggen en als educatief hulpmiddel voor beginnende programmeurs.
- Onderzoek en academie: In academische kringen is BLOOM een krachtbron voor linguïstische analyse en AI-onderzoek, met inzichten in taalpatronen, AI-gedrag en meer.
Buiten de scope van BLOOM
Het begrijpen van de beperkingen van BLOOM is essentieel om het ethisch en praktisch in te zetten. Sommige use-cases vallen buiten de scope van het BLOOM-LLM, vooral vanwege ethische overwegingen of technische beperkingen.
- Omgaan met gevoelige data: BLOOM is niet ontworpen voor het verwerken van gevoelige persoonsgegevens of vertrouwelijke informatie. Het risico op privacyschendingen of misbruik maakt het hiervoor ongeschikt.
- Besluitvorming met hoge inzet: BLOOM gebruiken in scenario’s waar kritieke nauwkeurigheid vereist is, zoals medische diagnostiek of juridische beslissingen, is af te raden. De beperkingen van het model, zoals bij de meeste LLM’s, kunnen in deze gevoelige domeinen leiden tot onjuiste of misleidende uitkomsten.
- Vervanging van menselijke interactie: BLOOM moet niet worden gezien als vervanging van menselijk contact, zeker niet in vakgebieden die emotionele intelligentie vereisen, zoals counseling, diplomatie of persoonlijk onderwijs. Het model mist het genuanceerde begrip en de empathie van menselijke interactie.
Directe en indirecte gebruikers
BLOOM, als geavanceerd Large Language Model (LLM), biedt tal van voordelen voor verschillende gebruikersgroepen. De mogelijkheden beïnvloeden bepaalde professionals en sectoren direct, maar hebben ook een bredere, indirecte impact op een grotere groep belanghebbenden.
Deze verkenning van BLOOM’s gebruikers laat zien hoe verschillende groepen dit innovatieve hulpmiddel benutten en erdoor worden geraakt.
Door de directe en indirecte gebruikers van BLOOM te begrijpen, waarderen we de brede invloed van het model en de diverse manieren waarop het bijdraagt aan technologische en maatschappelijke vooruitgang.
Directe gebruikers van BLOOM
- Developers en data scientists: Professionals in softwareontwikkeling en data science zijn primaire gebruikers. Zij gebruiken BLOOM voor taken als code-assistentie, debuggen en data-analyse.
- Onderzoekers en academici: Denk aan taalkundigen, AI-onderzoekers en academici die BLOOM inzetten voor taalstudies, analyse van AI-gedrag en het voortstuwen van NLP-onderzoek.
- Contentmakers en vertalers: Schrijvers, journalisten en vertalers gebruiken BLOOM voor het genereren en vertalen van content in verschillende talen, wat hun productiviteit en bereik vergroot.
Indirecte gebruikers van BLOOM
- Bedrijven en organisaties: Ondernemingen in diverse sectoren profiteren indirect van BLOOM via verbeterde AI-gedreven diensten, betere klantinteracties en efficiëntere gegevensverwerking.
- Onderwijsinstellingen: Studenten en docenten ervaren de voordelen van BLOOM indirect via onderwijs tools en -bronnen die de taalverwerkingsmogelijkheden benutten voor leren en lesgeven.
- Het brede publiek: De grotere gemeenschap profiteert indirect van BLOOM via betere technologie-ervaringen, toegang tot meertalige content en verbeterde softwaretoepassingen.
Ethische overwegingen en beperkingen
De inzet van BLOOM, zoals bij elk Large Language Model (LLM), brengt een reeks ethische overwegingen en beperkingen met zich mee. Deze zijn cruciaal voor verantwoord gebruik en om de bredere impact van de technologie te voorzien. In deze sectie behandelen we de ethische implicaties, risico’s en inherente beperkingen van het gebruik van BLOOM.
Ethische overwegingen
- Databias en eerlijkheid: Een primaire zorg is de kans dat BLOOM biases in de trainingsdata in stand houdt of versterkt. Dit kan de neutraliteit van de output beïnvloeden en leidt tot ethische uitdagingen in scenario’s waar onbevooroordeelde verwerking cruciaal is.
- Privacyzorgen: Hoewel BLOOM niet expliciet is ontworpen om gevoelige persoonlijke informatie te verwerken, kan de omvang van de trainingsdata dergelijke informatie onbedoeld bevatten. Er bestaat een risico op privacyinbreuken als BLOOM output genereert die is gebaseerd op of gevoelige gegevens onthult.
Risico’s bij gebruik
- Mis- en desinformatie: De geavanceerde mogelijkheden van BLOOM kunnen worden misbruikt om misleidende of manipulerende content te genereren, wat een aanzienlijk risico vormt in domeinen als media, politiek en publieke opinie.
- Afhankelijkheid en vaardigheidsverlies: Overmatige afhankelijkheid van BLOOM voor taken als contentcreatie of vertaling kan leiden tot achteruitgang van deze vaardigheden bij mensen, met gevolgen voor creativiteit en taalbeheersing.
Beperkingen van BLOOM
- Contextueel begrip: Ondanks de verfijning kan BLOOM het diepe contextuele en culturele begrip missen dat voor sommige taken nodig is, wat in genuanceerde situaties tot onnauwkeurige of ongeschikte output kan leiden.
- De evoluerende aard van taal: Omdat BLOOM is getraind op een statische dataset, kan het moeite hebben om gelijke tred te houden met de voortdurende taalontwikkeling, inclusief nieuw jargon, terminologie of culturele referenties.
Impact in de echte wereld en controverses
De ontwikkeling en release van BLOOM hebben aanzienlijke implicaties in de echte wereld, zowel qua impact als de controverses die het oproept. Deze sectie bespreekt deze aspecten, gebaseerd op inzichten uit het BLOOM-onderzoeksartikel.
Echte-wereldimpact van BLOOM
- Democratisering van AI-technologie: BLOOM is een stap richting het democratiseren van AI-technologie. Ontwikkeld door BigScience, een samenwerking van meer dan 1200 mensen uit 38 landen, is BLOOM een open-access-model, getraind op een divers corpus in 59 talen. Deze brede participatie en toegankelijkheid betekenen een kentering ten opzichte van de exclusiviteit die doorgaans bij LLM-ontwikkeling wordt gezien.
- Diversiteit en inclusiviteit: De toewijding aan taalkundige, geografische en wetenschappelijke diversiteit is opvallend. Het ROOTS-corpus voor de training van BLOOM omvat een groot aantal natuurlijke en programmeertalen en benadrukt inclusiviteit en representatie in AI-ontwikkeling.
Controverses en uitdagingen
- Sociale en ethische zorgen: Bij de ontwikkeling van BLOOM zijn de sociale beperkingen en ethische uitdagingen van LLM-ontwikkeling erkend. De BigScience-workshop hanteerde een Ethical Charter als leidraad, met nadruk op inclusiviteit, diversiteit, openheid, reproduceerbaarheid en verantwoordelijkheid. Deze principes zijn verankerd in uiteenlopende onderdelen van het project, van datasetcuratie tot modelevaluatie.
- Milieu- en resourcezorgen: De ontwikkeling van grote taalmodellen zoals BLOOM roept milieuzorgen op door de aanzienlijke rekenresources die nodig zijn. De training van deze modellen, doorgaans alleen betaalbaar voor goed gefinancierde organisaties, heeft gevolgen voor energieverbruik en CO2-voetafdruk.
Is BLOOM vandaag nog relevant?
In de snel bewegende wereld van Artificial Intelligence (AI) is de relevantie van LLM’s zoals BLOOM een onderwerp van voortdurende discussie.
BLOOM, ontwikkeld door een groot team van internationale onderzoekers, was een grote sprong voorwaarts in taalverwerking. Toch evolueert het AI-landschap voortdurend, met nieuwe modellen die verschijnen en de aandacht verschuiven.
Laten we bekijken of BLOOM zich in dit competitieve domein nog staande houdt.
- Verschuiving in focus: Oorspronkelijk een grote doorbraak, staat BLOOM nu in de schaduw van nieuwere modellen. In tegenstelling tot conversatie-AI zoals ChatGPT is BLOOM afgestemd op het aanvullen van content in plaats van interactieve communicatie.
- Hardwarebeperkingen: De hoge hardware-eisen van BLOOM beperken de toegankelijkheid vergeleken met gebruiksvriendelijkere LLM’s zoals GPT-3.5 en GPT-4, die eenvoudiger in uiteenlopende toepassingen te integreren zijn.
- Toenemende concurrentie: De komst van modellen zoals LLaMA en tools zoals Alpaca heeft de toegang tot LLM’s verder gedemocratiseerd, met vergelijkbare mogelijkheden bij lagere resource-eisen, waardoor hun aantrekkingskracht en gebruik groeien.
- Meertalige capaciteit: BLOOM’s unieke troef is de uitgebreide training in meerdere talen, wat het tot een waardevolle bron maakt voor vertaling en meertalige contentcreatie.
Conclusie
Dit artikel gaf een overzicht van het BLOOM-project, een belangrijke bijdrage aan het zich ontwikkelende veld van Large Language Models.
We hebben de ontwikkeling van BLOOM verkend, met aandacht voor de technische specificaties en de samenwerking achter de creatie. Ook fungeerde het artikel als gids om BLOOM te benaderen en effectief te gebruiken, met nadruk op passende toepassingen en beperkingen.
Verder kwamen de ethische implicaties en de impact in de echte wereld van het BLOOM-AI-project aan bod, met reflectie op de ontvangst en relevantie in het huidige AI-landschap. Of je nu direct met AI werkt of een enthousiasteling bent, deze verkenning van BLOOM biedt essentiële perspectieven om de complexe wereld van large language models te navigeren.
Wie dieper wil duiken in geavanceerde taalmodellen kan met onze extra cursus Large Language Models (LLMs) Concepts het volledige potentieel van LLM’s ontdekken, met een conceptuele cursus over LLM-toepassingen, trainingsmethodologieën, ethische overwegingen en het nieuwste onderzoek.
Een veelzijdige data scientist die graag zijn kennis deelt en iets terugdoet voor anderen. Zoumana is YouTube-contentmaker en een toonaangevende techschrijver op Medium. Hij haalt plezier uit spreken, coderen en lesgeven. Zoumana heeft twee masterdiploma’s: het eerste in informatica met een focus op machine learning uit Parijs, Frankrijk, en het tweede in data science van Texas Tech University in de VS. Zijn loopbaan begon als softwareontwikkelaar bij Groupe OPEN in Frankrijk. Daarna stapte hij over naar IBM als machine learning-consultant, waar hij end-to-end AI-oplossingen ontwikkelde voor verzekeringsmaatschappijen. Zoumana sloot zich aan bij Axionable, de eerste Sustainable AI-startup met vestigingen in Parijs en Montreal. Daar werkte hij als data scientist en bouwde hij AI-producten—voornamelijk NLP-usecases—voor klanten in Frankrijk, Montreal, Singapore en Zwitserland. Daarnaast wijdde hij 5% van zijn tijd aan research & development. Momenteel werkt hij als senior data scientist bij IFC – the World Bank Group.

