Wat is een groot taalmodel? Hoe LLM’s werken, uitgelegd zonder de hype

  1. Home
  2. Blog
  3. Kunstmatige intelligentie

Kunstmatige intelligentie

Wat is een groot taalmodel? Hoe LLM’s werken, uitgelegd zonder hype

Begrijp wat er werkelijk gebeurt als een AI tekst schrijft. Leer in gewone taal over tokens, inbedding en aandacht, voer een kleine voorspeller van het volgende woord uit en ontdek waarom deze modellen tegelijkertijd briljant en verkeerd kunnen zijn.

9 min leestijd
Wat is een groot taalmodel? Hoe LLM's werken, uitgelegd zonder de hype

Belangrijkste punten

  • Een groot taalmodel is een neuraal netwerk dat is getraind op grote hoeveelheden tekst om te voorspellen wat er daarna komt.
  • Het werkt met tokens en gebruikt aandacht om te bepalen welke eerdere tokens er het meest toe doen.
  • Het genereert een antwoord per token, door te kiezen uit een reeks waarschijnlijkheden.
  • Het kan zelfverzekerd klinken terwijl het fout is, dus belangrijke output moet worden gecontroleerd.

Tools die chatten, samenvatten en code schrijven lijken bijna magisch, totdat je het mechanisme eronder ziet. Een groot taalmodel, of LLM, is in wezen een zeer geavanceerd systeem voor het voorspellen van het volgende stuk tekst. Dat ene idee verklaart zowel wat deze tools goed doen als waarom ze falen op de manier waarop ze dat doen.

Deze gids legt de belangrijkste concepten uit zonder enige wiskunde en bouwt vervolgens een kleine voorspeller voor het volgende woord om het idee concreet te maken. We hebben die code uitgevoerd op Python 3.13 en de uitvoer komt uit die run. Het is een eenvoudig telspeeltje in plaats van een neuraal netwerk, en echte LLM’s zijn veel capabeler. We vermijden ook het vermelden van cijfers voor specifieke modellen, omdat deze snel veranderen.

Wat is een groot taalmodel?

Een LLM is een vorm van kunstmatige intelligentie die is getraind om menselijke taal te begrijpen en te genereren. Laten we de naam woord voor woord nemen:

  • Groot: het heeft een groot aantal aanpasbare interne waarden, parameters genoemd, en leert van een enorme hoeveelheid tekst.
  • Taal: het werkt met tekst, inclusief natuurlijke taal en code.
  • Model: het is een wiskundig systeem dat patronen uit gegevens haalt en deze gebruikt om voorspellingen te doen.

Modellen zijn de motor en producten zoals chatassistenten zijn de auto die eromheen is gebouwd. Een product voegt vaak een gebruikersinterface, veiligheidssystemen, zoek- en andere tools toe.

Het kernidee: voorspellen wat er daarna komt

Dit doe je zelf. Als je leest ‘de hoofdstad van Frankrijk is’, denk je meteen aan ‘Parijs’. Een LLM doet iets vergelijkbaars, maar dan op veel grotere schaal. Gegeven wat tekst, berekent het hoe waarschijnlijk elk mogelijk volgend token is, kiest er één, voegt het toe aan de tekst en herhaalt het.

Er wordt geen database met opgeslagen antwoorden opgezocht. Het model bevat patronen die tijdens de training zijn geleerd, in de vorm van cijfers. Wanneer deze patronen overeenkomen met de waarheid, krijg je een correct antwoord. Doen ze dat niet, dan kun je alsnog een vloeiend antwoord krijgen, en dat is een belangrijk verschil met een zoekmachine.

Een kleine werkende demo

Om de voorspelling van de volgende token in de eenvoudigste vorm te zien, telt dit script welk woord op welk woord volgt in een kleine tekst. Vervolgens genereert het nieuwe tekst op basis van die tellingen. Statistici noemen dit een bigrammodel.

import random
from collections import Counter, defaultdict

TEXT = """the cat sat on the mat . the dog sat on the rug .
the cat saw the dog . the dog saw the cat ."""

tokens = TEXT.split()

follows = defaultdict(Counter)
for current, following in zip(tokens, tokens[1:]):
    follows[current][following] += 1

def probabilities(word):
    counts = follows[word]
    total = sum(counts.values())
    return {w: round(n / total, 2) for w, n in counts.most_common()}

print(probabilities("the"))
print(probabilities("sat"))

# {'cat': 0.38, 'dog': 0.38, 'mat': 0.12, 'rug': 0.12}
# {'on': 1.0}

Die output is een waarschijnlijkheidsverdeling. Na “de” beschouwt het model “kat” en “hond” het meest waarschijnlijk. Nu genereren we tekst door herhaaldelijk steekproeven te nemen uit deze waarschijnlijkheden:

def generate(start, length, seed):
    rng = random.Random(seed)
    words = [start]
    for _ in range(length):
        counts = follows[words[-1]]
        words.append(rng.choices(list(counts), weights=counts.values())[0])
    return " ".join(words)

print(generate("the", 6, seed=1))
print(generate("the", 6, seed=2))
print(generate("the", 6, seed=3))

# the cat . the cat saw the
# the rug . the cat . the
# the cat saw the dog . the

Let op drie dingen. Hetzelfde begin kan verschillende teksten opleveren, omdat de keuze willekeurig is. De uitvoer lijkt op de trainingsgegevens, zelfs voor reeksen die er nooit in zijn verschenen. En het heeft helemaal geen begrip, daarom leest “het vloerkleed. de kat” als onzin.

Vraag het naar een woord dat het nog nooit heeft gezien, en het heeft niets te bieden: follows["elephant"] is leeg. Ons speelgoed kijkt slechts naar één vorig woord. De enorme sprong in echte LLM’s komt voort uit het overwegen van lange stukken context en het leren van veel meer gegevens, waarbij gebruik wordt gemaakt van een neuraal netwerk in plaats van een simpele telling.

Tokens: hoe een model leest

LLM’s lezen geen hele woorden zoals wij. Tekst wordt eerst opgesplitst in tokens, die een woord, een deel van een woord of leestekens kunnen zijn. Elk token is gekoppeld aan een getal en het model werkt volledig met getallen.

Tokens zijn in de praktijk om twee redenen belangrijk. Het gebruik van gehoste modellen wordt gewoonlijk geprijsd op basis van tokens, en elk model heeft een limiet voor het aantal dat het tegelijk kan verwerken. Tokenisatie verklaart ook een aantal bekende vreemde gedragingen. Omdat modellen brokken zien in plaats van letters, zijn taken zoals het tellen van de letters in een woord traditioneel verrassend moeilijk voor hen.

Inbedding: betekenis als getallen

Elk token wordt omgezet in een inbedding, een lange lijst met getallen die het in een soort betekenisruimte plaatst. Verwante concepten komen dicht bij elkaar terecht, dus ‘kat’ en ‘kitten’ hebben nabijgelegen posities, terwijl ‘kat’ en ‘factuur’ dat niet doen.

Hetzelfde idee drijft semantisch zoeken aan, waarbij je documenten vindt op basis van betekenis in plaats van exacte woorden. Onze vectordatabasegids behandelt dat gebruik.

Aandacht en de transformator

De meeste moderne LLM’s zijn gebaseerd op de transformator-architectuur, geïntroduceerd door Google-onderzoekers in het artikel ‘Attention Is All You Need’ uit 2017. Het belangrijkste mechanisme ervan is zelfaandacht.

Denk eens aan deze zin: “De trofee paste niet in de koffer omdat hij te groot was.” Waar verwijst ‘het’ naar? Je weet dat het de trofee betekent. Met aandacht kan een model elk eerder token wegen bij het verwerken van elk nieuw token, zodat het ‘het’ kan koppelen aan de meest relevante woorden, zelfs als deze ver uit elkaar liggen.

Eerdere benaderingen verwerkten tekst stap voor stap en hadden de neiging verre woorden uit het oog te verliezen. Transformers kijken samen naar de hele context, en ze kunnen een groot deel van dit werk parallel uitvoeren op gespecialiseerde hardware, wat training over zulke grote hoeveelheden tekst praktisch maakte.

Hoe een LLM wordt opgeleid

Stadium Wat gebeurt er
Gegevensverzameling Grote hoeveelheden tekst worden verzameld en opgeschoond
Vooropleiding Het model voorspelt herhaaldelijk het volgende token en de parameters ervan worden aangepast als het fout is
Fijnafstemming Het leert van voorbeelden van nuttige antwoorden, waarbij menselijke feedback vaak wordt gebruikt om antwoorden te rangschikken
Evaluatie Teams testen het op kwaliteit, veiligheid en storingsgevallen

Vooropleiding geeft een model een brede taalvaardigheid, maar het kan zijn dat u uw tekst gewoon voortzet in plaats van deze te beantwoorden. De latere stadia vormen het tot een nuttige assistent. Het trainen van grote modellen vergt aanzienlijke rekenkracht en is duur. Het gebruik van een kant-en-klaar model, bekend als inferentie, is per verzoek veel goedkoper.

Hoe het tekst genereert

  1. Uw prompt wordt opgesplitst in tokens en omgezet in insluitingen.
  2. Het netwerk verwerkt ze en gebruikt aandacht om ze met elkaar in verband te brengen.
  3. Het geeft een waarschijnlijkheid weer voor elk mogelijk volgend token.
  4. Er wordt één token geselecteerd en aan de context toegevoegd.
  5. Stappen 2 tot en met 4 worden herhaald totdat een stopconditie wordt bereikt.

Dit is de reden waarom antwoorden doorgaans woord voor woord verschijnen wanneer ze worden gestreamd. De tekst wordt letterlijk in volgorde geproduceerd. Temperatuur bepaalt hoe avontuurlijk stap 4 is: lage waarden geven de voorkeur aan de meest waarschijnlijke tokens, terwijl hogere waarden meer variatie mogelijk maken.

Tip: Gebruik voor extractie, classificatie en andere herhaalbare taken een lage temperatuur als de instelling beschikbaar is. Voor brainstormen kan een hogere instelling handig zijn. Toch garandeert een lage waarde niet elke keer identieke antwoorden.

Voorwaarden waaraan u zult voldoen

Termijn Betekenis
Prompt De input die u aan het model geeft
Contextvenster Het maximale aantal tokens dat in één keer kan worden overwogen
Parameters De interne waarden die tijdens de training zijn geleerd
Gevolgtrekking Een getraind model uitvoeren om uitvoer te verkrijgen
Hallucinatie Zekere uitvoer die vals is
Kennisafsluiting Het punt waarna de trainingsgegevens eindigen
RAG Documenten ophalen om een model extra context te geven
Open gewicht model Een model waarvan u de parameters kunt downloaden en zelf kunt uitvoeren

Beperkingen die u moet kennen

  • Hallucinaties. Een model kan feiten, citaten of codefuncties verzinnen. Omdat het waarschijnlijke tekst oplevert, kunnen valse verklaringen volkomen plausibel lijken.
  • Kennislimiet. Tenzij een product verbinding maakt met zoeken of andere tools, is het mogelijk niet op de hoogte van recente gebeurtenissen.
  • Beperkte context. Als een gesprek het contextvenster overschrijdt, kunnen eerdere details worden verwijderd of samengevat. Modellen onthouden ook niet automatisch eerdere chats, tenzij een product die functie toevoegt.
  • Vooroordelen. Trainingsgegevens weerspiegelen menselijke vooroordelen, en deze kunnen in de resultaten voorkomen.
  • Inconsistentie. Dezelfde vraag kan verschillende antwoorden opleveren, wat belangrijk is als je er software bovenop bouwt.
  • Beveiligingsrisico’s. Verborgen instructies in tekst kunnen een model manipuleren, een probleem dat bekend staat als prompt injection.

LLM’s goed gebruiken

Behandel een LLM als een snelle, bekwame assistent wiens werk moet worden beoordeeld. Een paar gewoonten maken een groot verschil:

  • Wees specifiek. Duidelijke instructies, context en voorbeelden zorgen voor betere resultaten. Onze gids voor snelle engineering laat zien hoe.
  • Geef de feiten aan. Als de antwoorden uit uw eigen documenten moeten komen, gebruik dan RAG in plaats van op uw geheugen te vertrouwen.
  • Controleer wat belangrijk is. Controleer cijfers, citaten en juridische of medische claims aan de hand van betrouwbare bronnen.
  • Test de gegenereerde code. Voer de code uit en schrijf er tests voor, zoals u zou doen voor die van een collega. Onze gids AI-codebeoordelingstools biedt enige hulp.
  • Bescherm gevoelige gegevens. Controleer de regels van uw organisatie voordat u vertrouwelijke informatie deelt met een gehoste tool.

Als u besluit hoe u een model voor uw eigen werk wilt aanpassen, helpt onze vergelijking van RAG versus fijnafstemming versus snelle engineering u bij uw keuze.

Tot slot

Een LLM is een next-token-voorspeller die op buitengewone schaal is getraind, en is nuttiger en feilbaarder dan die beschrijving suggereert. Als u het mechanisme in gedachten houdt, kunt u het goed gebruiken: het is sterk in taal en patronen en heeft uw toezicht op de feiten nodig. Om het concreet te maken, voert u het kleine script hierboven uit met uw eigen tekst, probeert u vervolgens dezelfde prompt meerdere keren in een echte assistent en vergelijkt u de antwoorden.

Veelgestelde vragen

Wat is een groot taalmodel in eenvoudige bewoordingen?

Het is een AI-systeem dat is getraind op grote hoeveelheden tekst om te voorspellen wat er daarna komt. Door die voorspelling te herhalen, kan het vragen beantwoorden, schrijven en samenvatten.

Wat is het verschil tussen AI en een LLM?

AI is het brede veld van het bouwen van intelligente systemen. Een LLM is een specifiek type AI-model, gericht op het verwerken en genereren van taal.

Begrijpen LLM’s wat ze zeggen?

Dit wordt besproken. Ze leggen rijke betekenispatronen vast en kunnen door veel problemen heen redeneren, maar ze ervaren de wereld niet en kunnen falen op manieren waarop iemand dat niet zou doen.

Waarom verzinnen LLM’s dingen?

Ze genereren waarschijnlijke tekst in plaats van geverifieerde feiten op te halen. Wanneer patronen wijzen op een plausibel maar vals antwoord, kan het model dit met schijnbaar vertrouwen geven.

Wat is een token in een LLM?

Een token is een stuk tekst dat het model verwerkt, zoals een woord, een deel van een woord of leestekens. Limieten en prijzen worden vaak gemeten in tokens.

Blijf leren

Werk met Stack Quora

Hulp nodig met testen, WordPress of SEO?

We helpen teams betere software te leveren en hun sites te laten groeien. Vertel ons waar u mee bezig bent en wij stellen een duidelijke volgende stap voor.

Blijf lezen

Meer handleidingen over testen, AI en moderne ontwikkeling

Genoten van dit artikel? Kies een onderwerp en ga direct naar onze nieuwste tutorials.

Kunstmatige intelligentie

AI-hallucinaties uitgelegd: waarom taalmodellen dingen verzinnen en hoe ze te verminderen

AI-hallucinaties uitgelegd: wat ze zijn, waarom taalmodellen ze produceren, veelvoorkomende typen, hoe je ze kunt verminderen met aarding en aanwijz…

Lees artikel →
DevOps

Omgevingsvariabelen uitgelegd: .env-bestanden, geheimen en configuratie goed gedaan

Omgevingsvariabelen uitgelegd met Python-voorbeelden die we hebben uitgevoerd: ze lezen en instellen, waarom elke waarde een string is, .env-bestand…

Lees artikel →
Softwareontwikkeling

API-snelheidsbeperking uitgelegd: algoritmen, headers en afhandeling van 429-fouten

API-snelheidsbeperking uitgelegd met een simulatie die we hebben uitgevoerd: token-bucket, vast venster, schuifvenster, 429 reacties, headers van sn…

Lees artikel →
Testautomatisering

Spotten in Python: unittest.mock, patch en de fouten die tests doen liegen

Spotten in Python met unittest.mock, getest: Mock en return_value, side_effect, patchen waar een naam wordt gebruikt, spec en autospec, spotdatums e…

Lees artikel →
Softwaretesten

Codedekking uitgelegd: lijn versus filiaaldekking en wat 100% werkelijk betekent

Codedekking uitgelegd met een echte dekking.py-run: dekking van lijnen, vertakkingen en condities, een rapport lezen, waarom 100% dekking nog steeds…

Lees artikel →
Databases & SQL

DELETE versus TRUNCATE versus DROP in SQL: verschillen, terugdraaien en wanneer elk te gebruiken

DELETE versus TRUNCATE versus DROP uitgelegd met geteste SQL: wat elk verwijdert, terugdraaien, triggers, identiteitsreset, snelheid en hoe PostgreS…

Lees artikel →
Databases & SQL

SQL-weergaven uitgelegd: creëer, gebruik en vermijd de valkuilen, met voorbeelden

SQL-weergaven uitgelegd met query's die we hebben uitgevoerd: een weergave maken, live resultaten, kolommen verbergen, prestaties, bijwerkbare en ge…

Lees artikel →
Softwareontwikkeling

TypeScript-interface versus type: echte verschillen, getest met de compiler

TypeScript-interface versus type, gecontroleerd met de echte compiler: wat beide kunnen doen, wat slechts één kan doen, samenvoegen van declaraties,…

Lees artikel →
Softwareontwikkeling

Python *args en **kwargs uitgelegd: flexibele functies met duidelijke voorbeelden

Python *args en **kwargs uitgelegd met code die we hebben uitgevoerd: in- en uitpakken, parametervolgorde, argumenten die alleen trefwoorden en posi…

Lees artikel →
Softwareontwikkeling

Python Lambda-functies: syntaxis, echt gebruik en wanneer u ze niet moet gebruiken

Python lambda-functies uitgelegd met code die we hebben uitgevoerd: syntaxis, sorteren met sleutel, kaart en filter, sluitingen, de laat-bindende va…

Lees artikel →
Kunstmatige intelligentie

Wat zijn AI-agenten? Hoe ze werken, met een eenvoudige agentloop die u kunt uitvoeren

Wat zijn AI-agenten? Een duidelijke gids voor de agentenlus, tools, geheugen en vangrails, met een kleine Python-lus die we hebben uitgevoerd, echte…

Lees artikel →
DevOps

Monitoring versus waarneembaarheid: het echte verschil, met logboeken, statistieken en sporen

Monitoring versus waarneembaarheid uitgelegd: bekende en onbekende fouten, logboeken, statistieken en sporen, een walkthrough voor afrekenincidenten…

Lees artikel →
DevOps

Docker-volumes versus bindingsmounts: bewaar containergegevens op de juiste manier

Docker-volumes versus bind-mounts uitgelegd: waarom containergegevens verdwijnen, benoemde volumes, bind-mounts, tmpfs, Compose-voorbeelden, back-up…

Lees artikel →
Testautomatisering

TDD versus BDD: belangrijkste verschillen, één functie die op beide manieren is gebouwd en wanneer deze moet worden gebruikt

TDD versus BDD uitgelegd met één kortingsfunctie die in beide richtingen is gebouwd: rood-groen-refactor met code die we hebben uitgevoerd, gegeven-…

Lees artikel →
Softwaretesten

Gebruikersacceptatietesten (UAT): proces, checklist en echte voorbeelden

Gebruikersacceptatietesten uitgelegd: wie voert het uit, hoe het verschilt van QA, een proces in zeven stappen, een UAT-testcase-sjabloon, een check…

Lees artikel →
Databases & SQL

SQL NULL-waarden uitgelegd: IS NULL, COALESCE, NULLIF en de te vermijden vallen

SQL NULL-waarden uitgelegd met query's die we hebben uitgevoerd: logica met drie waarden, IS NULL, COALESCE, NULLIF, hoe aggregaten, joins en sorter…

Lees artikel →
Databases & SQL

SQL CASE WHEN-instructie: syntaxis, echte voorbeelden en veelvoorkomende fouten

SQL CASE WHEN uitgelegd met vragen die we hebben uitgevoerd: eenvoudige en doorzochte formulieren, volgorde van de voorwaarden, draaipunten met SUM,…

Lees artikel →
Softwareontwikkeling

Wat is JWT? JSON-webtokens uitgelegd met een werkend voorbeeld

Wat is JWT? JSON Web Tokens uitgelegd: de drie delen, een token gebouwd en waarmee is geknoeid in de code die we hebben uitgevoerd, JWT versus sessi…

Lees artikel →
Softwareontwikkeling

JavaScript-gebeurtenislus uitgelegd: call-stack, microtaken en timers met voorbeelden

De JavaScript-gebeurtenislus uitgelegd met code die we hebben uitgevoerd: call-stack, taak- en microtask-wachtrijen, waarom setTimeout 0 niet onmidd…

Lees artikel →
Softwareontwikkeling

Python-generatoren en opbrengst uitgelegd: bespaar geheugen met echte voorbeelden

Python-generatoren en opbrengst uitgelegd met code die we hebben uitgevoerd: hoe ze pauzeren en hervatten, gemeten geheugenbesparingen, pijplijnen, …

Lees artikel →
Kunstmatige intelligentie

Wat zijn inbeddingen? Vectoren en cosinusovereenkomst eenvoudig uitgelegd

Wat zijn insluitingen? Een gids in duidelijke taal over vectoren, cosinusovereenkomst en semantisch zoeken, met een klein voorbeeld dat we hebben ui…

Lees artikel →
DevOps

Implementatie van blauwgroen versus kanarie: verschillen, afwegingen en hoe te kiezen

Blauw-groen versus kanarie-implementatie uitgelegd: hoe elk werkt, kosten, risico's en terugdraaien, stabiele gebruikersbucket die we hebben getest,…

Lees artikel →
Testautomatisering

Schilferige tests: wat de oorzaak ervan is en hoe u ze voorgoed kunt oplossen

Zwakke tests uitgelegd met demo's die we hebben uitgevoerd: de belangrijkste oorzaken, hoe je er een kunt bevestigen en diagnosticeren, goede oploss…

Lees artikel →
Softwaretesten

Belastingtesten versus stresstesten: verschillen, statistieken en k6-voorbeelden

Belastingtesten versus stresstesten uitgelegd: wat elk bewijst, piek- en soak-tests, de statistieken die er toe doen, waarom gemiddelden misleiden, …

Lees artikel →
Softwaretesten

Testcase versus testscenario: belangrijkste verschillen, voorbeelden en wanneer deze te gebruiken

Testcase versus testscenario uitgelegd: duidelijke definities, een tabel naast elkaar, één functie voor het opnieuw instellen van wachtwoorden, over…

Lees artikel →
Databases & SQL

Optimalisatie van SQL-query's: lees uitvoeringsplannen en repareer langzame query's, met timing

Optimalisatie van SQL-query's getest op een miljoen rijen: lees uitvoeringsplannen, voeg de juiste indexen toe, repareer niet-sargeerbare filters, g…

Lees artikel →
Databases & SQL

SQL UNION versus UNION ALL: verschillen, voorbeelden en geteste prestaties

SQL UNION versus UNION ALL uitgelegd met de query's die we hebben uitgevoerd: duplicaten, de regels volgen beide, een echte databug, gemeten prestat…

Lees artikel →
Softwareontwikkeling

JavaScript Fetch API-tutorial: GET, POST, foutafhandeling en time-outs

Een JavaScript Fetch API-tutorial getest tegen een lokale server: GET en POST, waarom 404 niet gooit, een herbruikbare helper, queryreeksen, time-ou…

Lees artikel →
Softwareontwikkeling

Python-bestandsverwerking: lezen, schrijven, CSV, JSON en pathlib met voorbeelden

Het verwerken van Python-bestanden uitgelegd met code die we hebben uitgevoerd: open modi, met het lezen van grote bestanden, CSV, JSON, pathlib, bi…

Lees artikel →
Softwareontwikkeling

Python-klassen en -objecten: OOP-zelfstudie met echte voorbeelden

Python-klassen en -objecten uitgelegd met code die we hebben uitgevoerd: __init__, methoden, klasse versus instantie-attributen, overerving, eigensc…

Lees artikel →
Kunstmatige intelligentie

Wat is een groot taalmodel? Hoe LLM's werken, uitgelegd zonder de hype

Wat is een groot taalmodel? LLM's uitgelegd in duidelijke taal: tokens, inbedding, aandacht, training, temperatuur- en contextvensters, een kleine d…

Lees artikel →
DevOps

Linux-opdrachten voor beginners: de essentiële terminalgids met voorbeelden

Linux-opdrachten voor beginners, gegroepeerd op taak: navigatie, bestanden, logboeken bekijken, grep, pipelines, machtigingen, processen en archieve…

Lees artikel →
Testautomatisering

Selenium versus toneelschrijver: belangrijkste verschillen, code vergeleken en welke te kiezen

Selenium versus Playwright vergeleken: architectuur, wachten, browser- en taalondersteuning, debuggen, dezelfde test in beide tools, migratieadvies …

Lees artikel →
Softwaretesten

Equivalentiepartitionering: testontwerptechniek uitgelegd met uitgewerkte voorbeelden

Equivalentiepartitionering uitgelegd: hoe je geldige en ongeldige partities kunt vinden, uitgewerkte voorbeelden voor leeftijden, wachtwoorden en ko…

Lees artikel →
Softwaretesten

Ernst versus prioriteit bij het testen van software: verschillen, matrix en echte voorbeelden

Ernst versus prioriteit bij het testen van software uitgelegd: duidelijke definities, een vierwegmatrix met voorbeelden, niveauschalen, wie deze bep…

Lees artikel →
Databases & SQL

Tutorial voor SQL-subquery's: typen, gecorreleerde subquery's en BESTAAN met voorbeelden

Een SQL-subquery-tutorial met query's die we hebben uitgevoerd: scalaire, IN-, FROM- en SELECT-subquery's, gecorreleerde subquery's, EXISTS, de NOT …

Lees artikel →
Databases & SQL

SQL-transacties en ACID uitgelegd: COMMIT-, ROLLBACK- en isolatieniveaus

SQL-transacties en ACID uitgelegd met een bankoverschrijving die we hebben uitgevoerd: COMMIT, ROLLBACK, savepoints, locks, isolatieniveaus, dirty r…

Lees artikel →
Softwareontwikkeling

Git merge vs rebase: verschillen, voorbeelden en wanneer je wat gebruikt

Git merge vs rebase uitgelegd met echte logoutput, een vergelijkingstabel, de gouden regel van rebase en een veilige teamwerkwijze.

Lees artikel →
Softwareontwikkeling

Python list comprehension: syntaxis, voorbeelden en wanneer je het vermijdt

Python list comprehension uitgelegd: syntaxis, filteren, if-else, geneste lussen, gemeten tijden en wanneer een gewone for-lus beter is.

Lees artikel →
Databases & SQL

SQL JOIN uitgelegd met voorbeelden (Inner, Left, Right, Full)

Begrijp SQL joins stap voor stap met voorbeeldtabellen en queries: INNER, LEFT, RIGHT, FULL, CROSS en SELF, plus veelgemaakte fouten en prestatietips.

Lees artikel →