LLMs voor developers¶
Een Large Language Model (LLM) is in feite een zeer geavanceerde tekst-voorspeller.
Tekst voorspeller
Je kan een klein beetje zien hoe een LLM werkt door te experimenteren met een Markov model. Een Markov model voorspelt het volgende woord op basis van de vorige woorden, maar het heeft geen begrip van de wereld of context. LLM’s zijn veel geavanceerder en kunnen complexe taken uitvoeren, maar ze zijn nog steeds gebaseerd op het voorspellen van tekst.
| Input | Actions | Output |
|---|---|---|
Gegenereerde tekst verschijnt hier… Nog geen model getraind. |
Statelessness (Het geheugen-probleem)¶
Een API heeft geen geheugen. Elke keer dat je de API aanroept, is dat een schone lei. Als je een chat-ervaring wilt bouwen, moet jij als developer de geschiedenis bijhouden en telkens meesturen.
sequenceDiagram
participant App
participant LLM
App->>LLM: User: "Ik heet Jan."
LLM-->>App: "Hoi Jan!"
App->>LLM: User: "Hoe heet ik?"
LLM-->>App: "Dat weet ik niet."
Tokens & Context¶
Tekst wordt opgeknipt in Tokens. Een LLM heeft een “Context Window” (bijv. 4096 tokens). Als je gesprek te lang wordt, “vergeet” de AI het begin van de chat omdat het simpelweg niet meer in het geheugen past.
Lokaal vs Cloud¶
Je kunt een LLM draaien op je eigen computer (lokaal) of gebruik maken van een service die het voor je host (cloud). Lokale modellen zijn gratis maar kunnen traag zijn. Cloud services zijn snel en krachtig, maar kosten geld.
Lokaal modellen draaien
Kleine taalmodellen zoals gemma4:e2b of deepseek-r1:1.5b kunnen lokaal draaien op een goede laptop. Voor grotere modellen heb je meestal een cloud service nodig. Gebruik Ollama om lokaal te experimenteren. Ollama biedt een API die je kunt aanroepen vanuit je eigen code, net zoals je dat zou doen met een cloud service.
Lokale modellen verschillen zeer in kwaliteit, snelheid en geheugenvereisten. Als je alleen wil oefenen met API’s maakt het niet zoveel uit welk model je gebruikt, zolang het maar een API heeft.
Geen authenticatie nodig
Lokale modellen hebben meestal geen authenticatie nodig. Je kunt ze direct aanroepen zonder API keys of tokens. Dit maakt het ideaal voor experimenteren en leren, zonder dat je je zorgen hoeft te maken over kosten of beveiliging.
Het betekent echter wel dat als je later overstapt naar een cloud service, je rekening moet houden met authenticatie en beveiliging van je API keys.
Meer dan alleen tekst¶
Sommige LLM’s kunnen niet alleen tekst verwerken, maar ook afbeeldingen, audio of video. Deze worden vaak multimodale modellen genoemd. Ze kunnen bijvoorbeeld een foto analyseren en er een beschrijving van geven, of een geluidsfragment transcriberen naar tekst. gemma4 is een voorbeeld van een model dat lokaal kan draaien en multimodaal is.
Libraries¶
Als je een LLM wilt aanroepen vanuit je eigen code hoef je meestal niet zelf HTTP-requests te schrijven. Er zijn libraries beschikbaar die het makkelijker maken om met LLM’s te werken.
Python¶
Voor Python zijn er bijvoorbeeld libraries zoals OpenAI’s Python SDK. Deze installeer je met pip en dan kun je eenvoudig functies aanroepen om met de LLM te praten, zonder dat je je zorgen hoeft te maken over de details van de API calls.
NodeJS¶
Voor NodeJS zijn er ook libraries zoals OpenAI’s NodeJS SDK. Deze werken op een vergelijkbare manier als de Python libraries, maar dan in JavaScript. Je installeert ze met npm of yarn en dan kun je functies aanroepen om met de LLM te praten vanuit je NodeJS applicatie.
Javascript in de browser¶
In de browser kun je ook direct HTTP-requests maken naar een LLM API maar dit wordt gezien als zeer onveilig omdat je dan je API keys in de client-side code moet zetten. Het is beter om een eigen backend te maken die fungeert als tussenpersoon tussen de browser en de LLM API. Je backend kan de API calls maken en de resultaten terugsturen naar de browser, zonder dat je API keys blootstelt aan de gebruiker.
Bronnen¶
- Ollama - Lokaal LLM’s draaien.
- Introduction to Large Language Models (LLMs) google
- Deep-dive: 3blue1brown’s serie over neurale netwerken. 3blue1brown