De definitieve gids voor open source AI in 2026. Frontier-modellen, trainingsframeworks, inferentieservers, fine-tuningtechnieken, vectordatabases en orkestratietools — met praktische richtlijnen om de juiste stack voor jouw use case te kiezen.
In 2022 werd GPT-3.5 door de open source-gemeenschap algemeen als onbereikbaar beschouwd. De kloof voelde onoverbrugbaar. Tegen 2026 is het beeld drastisch veranderd: Llama 4 Maverick is op de meeste benchmarks concurrerend met gesloten frontier-modellen, DeepSeek-R1 daagt OpenAI o1 uit op wiskundig redeneren, en het open source-ecosysteem heeft gespecialiseerde modellen voortgebracht die gesloten equivalenten in smalle domeinen overtreffen.
Voor bedrijven en ontwikkelaars betekent dit voor het eerst een echte keuze. Open-weight-modellen zijn geen terugvaloptie meer; ze zijn vaak de eerste keuze.
Het model draait volledig op jouw infrastructuur. Je data verlaat nooit je omgeving — cruciaal voor zorg, juridisch, financiën en elke gereguleerde sector.
Eén A100-cluster vervangt API-kosten per token op volume. Bij meer dan 10 miljoen verzoeken per maand leveren zelf-gehoste modellen doorgaans een kostenreductie van 5 tot 20×.
Fine-tune op jouw domein, jouw toon, jouw data. Gesloten API's geven je prompt engineering; open gewichten geven je volledige modelcontrole.
De operationele last. Een model zelf hosten betekent dat je verantwoordelijk bent voor het provisioneren van infrastructuur, modelupdates, monitoring, capaciteitsplanning en incidentafhandeling. Gesloten API's besteden dat allemaal uit. De vraag is nooit „is open source beter?“ — het is „heb je de engineeringcapaciteit om het betrouwbaar te runnen?“
graph TB A["Foundation Models (Llama 4, Mistral Large 3, Qwen 2.5, DeepSeek R2)"] --> B["Fine-tuned / Instruction-tuned Variants"] B --> C["Inference Server (vLLM / TGI / Ollama)"] C --> D["Orchestration Layer (LangChain, LlamaIndex, CrewAI)"] D --> E["Application (RAG, Agents, Chatbot, Code assistant)"]
Het landschap begin 2026. MMLU-scores zijn indicatief — benchmark altijd op je specifieke taak voordat je een model voor productie selecteert.
| Model | Org. | Parameters | Context | Licentie | MMLU | Beste voor |
|---|---|---|---|---|---|---|
| Llama 4 Maverick | Meta | 400B (MoE) | 1M | Llama 4 | 87.5 | Concurrerend op topniveau, multimodaal |
| Llama 4 Scout | Meta | 109B (MoE) | 10M | Llama 4 | 79.6 | Lange context, efficiënte MoE |
| Llama 4 Behemoth | Meta | 2T (MoE, preview) | 256K | Llama 4 | 92.0 | Maximale capaciteit (leraarmodel) |
| Mistral Large 3 | Mistral | 123B | 128K | MRL | 84.0 | Onderneming, Europese compliance |
| Mistral Small 3 | Mistral | 24B | 128K | Apache 2.0 | 81.0 | Efficiënt, permissieve licentie |
| DeepSeek-R1 | DeepSeek | 671B (MoE) | 128K | MIT | 90.8 | Redeneren, wiskunde, code |
| DeepSeek-R1-Distill-70B | DeepSeek | 70B | 128K | MIT | 86.7 | Efficiënt redeneren |
| Qwen2.5 72B | Alibaba | 72B | 128K | Qwen License | 86.6 | Meertalig, coderen |
| Qwen2.5-Coder 32B | Alibaba | 32B | 128K | Apache 2.0 | — | Codegeneratie |
| Gemma 2 27B | 27B | 8K | Gemma | 75.2 | Compact, goed geoptimaliseerd | |
| Phi-4 | Microsoft | 14B | 16K | MIT | 84.8 | Klein maar verrassend capabel |
Het meest permissief voor commercieel gebruik. Verleent octrooirechten, staat wijziging en herdistributie toe. Mistral verkiest deze voor zijn vlaggenschipmodellen.
Extreem permissief, minimale beperkingen. DeepSeek publiceert onder MIT, waardoor zijn modellen tot de meest liberaal gelicentieerde frontier-modellen behoren.
Permissief voor de meeste commerciële toepassingen, maar vereist een licentieovereenkomst voor producten/diensten met > 700 mln. maandelijks actieve gebruikers. Zelfde voorwaarden als Llama 3.
Belangrijk onderscheid: „open weight“ betekent dat de modelgewichten beschikbaar zijn, maar trainingscode en -data mogelijk niet. Echte open source (zoals Mistral) publiceert beide.
Generieke modellen zijn slechts het begin. Het open source-ecosysteem heeft zeer capabele specialistische modellen voortgebracht die binnen hun domein veel grotere generieke modellen overtreffen.
Voor Europese ondernemingen zijn de modellen van Mistral (Apache 2.0-gelicentieerd voor Mistral Small 3, hoofdkantoor in de EU, EU-gehoste opties beschikbaar) vaak de standaardkeuze omwille van compliance en datasoevereiniteit. Mistral Small 3 en Mistral Large 3 bieden een permissieve of commercieel vriendelijke licentie met een duidelijke Europese herkomst die aan veel inkoop- en dataresidentievereisten voldoet.
Twee frameworks domineren: PyTorch en JAX. Tenzij je een specifieke reden hebt om voor JAX te kiezen, begin met PyTorch — het ecosysteem, de tooling en de community-ondersteuning zijn ongeëvenaard.
Dynamische berekeningsgrafen, imperatieve uitvoeringsstijl en het grootste ecosysteem van alle ML-frameworks. Gebruikt door Meta, Microsoft, Hugging Face en de overgrote meerderheid van de onderzoeksgemeenschap.
Google's functionele ML-framework met XLA-compilatie. Excelleert op TPU's, maakt functietransformaties mogelijk (grad, jit, vmap, pmap). Flax en Equinox zijn de toonaangevende neurale-netwerkbibliotheken die erop zijn gebouwd.
Laad, fine-tune en deel elk model van de Hub. De centrale bibliotheek voor het open source AI-ecosysteem.
Trainingslussen voor supervised fine-tuning (SFT), RLHF, DPO en GRPO. De standaardbibliotheek voor alignment-training.
Eén abstractielaag voor multi-GPU-, multi-node- en mixed-precision-training. Eén keer schrijven, overal uitvoeren.
ZeRO-optimizer-fasen 1/2/3, 3D-parallellisme (tensor, pipeline, data). Vereist voor het trainen van zeer grote modellen.
Fully Sharded Data Parallel — PyTorch's native antwoord op DeepSpeed ZeRO. Eenvoudigere integratie, vergelijkbare prestaties.
from transformers import AutoTokenizer, AutoModelForCausalLM
from trl import SFTTrainer, SFTConfig
from datasets import load_dataset
import torch
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-4-Scout-17B-16E-Instruct",
torch_dtype=torch.bfloat16,
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-4-Scout-17B-16E-Instruct")
dataset = load_dataset("HuggingFaceH4/ultrachat_200k", split="train_sft[:10000]")
trainer = SFTTrainer(
model=model,
args=SFTConfig(
output_dir="./sft-output",
num_train_epochs=3,
per_device_train_batch_size=4,
),
train_dataset=dataset,
processing_class=tokenizer,
)
trainer.train()Volledige fine-tuning vereist evenveel GPU's als voortraining — onbetaalbaar voor de meeste teams. Parameter-efficiënte fine-tuning (PEFT)-methoden maken het mogelijk om frontier-modellen op één GPU aan te passen.
In plaats van alle modelgewichten bij te werken, voegt LoRA kleine adaptermatrices A en B toe naast bevroren gewichtsmatrices. Alleen de adapters worden getraind, wat de trainbare parameters voor een 7B-model met tot 10.000× vermindert.
De rang r bepaalt de capaciteit van de adapters. Typische waarden: 8–64. Hogere rang = meer capaciteit maar meer parameters. Bij inferentie kunnen adapters in het basismodel worden samengevoegd voor nul overhead.
QLoRA kwantiseert de gewichten van het basismodel naar 4-bit NF4 (Normal Float 4) en traint vervolgens LoRA-adapters in bfloat16. Dit maakt het mogelijk een 70B-model te fine-tunen op slechts 2× A100 80GB GPU's — iets wat normaal een cluster van 16 GPU's zou vereisen. Het kwaliteitsverlies door kwantisatie is minimaal wanneer de adapters in hogere precisie worden getraind.
from peft import LoraConfig, get_peft_model
lora_config = LoraConfig(
r=16, # rank — controls adapter capacity
lora_alpha=32, # scaling factor (alpha/r = effective LR)
target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM",
)
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# trainable params: 6,815,744 || all params: 8,036,802,560 || trainable%: 0.085| Methode | GPU-geheugen (7B) | Trainbare parameters | Kwaliteit | Beste use case |
|---|---|---|---|---|
| Full Fine-Tuning | ~112 GB | 100% | Hoogste | Wanneer kwaliteit voorop staat en GPU's overvloedig zijn |
| LoRA | ~16 GB | 0.1–1% | Bijna volledig | Stijl-/formaataanpassing, instruction tuning |
| QLoRA | ~6 GB | 0.1–1% | 95–98 % van LoRA | Fine-tuning met beperkte middelen, 70B op 2 GPU's |
Een nieuwere variant die gewichtsmatrices ontbindt in magnitude- en richtingscomponenten en LoRA vervolgens alleen op de richtingscomponent toepast. Behaalt bij dezelfde rang vaak een betere kwaliteit dan standaard LoRA. Ondersteund in peft via use_dora=True.
Gebruik fine-tuning wanneer:
Gebruik RAG wanneer:
Zodra je een model hebt, moet je het serveren. De keuze van de inferentieserver bepaalt je doorvoer, latentie en operationele complexiteit. Voor productieworkloads is vLLM de meest gangbare keuze.
| Server | Taal | Beste voor | Kwantisatie | Streaming | Licentie |
|---|---|---|---|---|---|
| vLLM | Python | Productie met hoge doorvoer | GPTQ, AWQ, GGUF | ✓ | Apache 2.0 |
| TGI | Rust/Python | HuggingFace-stack | bitsandbytes, GPTQ | ✓ | Apache 2.0 |
| Ollama | Go | Lokale ontwikkeling | GGUF (llama.cpp) | ✓ | MIT |
| llama.cpp | C++ | Edge/CPU/Apple Silicon | GGUF all levels | ✓ | MIT |
| LMDeploy | Python | Snelle inferentie + int4 | W4A16, W8A8 | ✓ | Apache 2.0 |
| Triton Inference Server | C++ | Multi-framework-productie | Backend dependent | ✓ | BSD |
Traditionele inferentie wijst de KV-cache toe in grote aaneengesloten blokken, wat geheugen verspilt en het batchen van verzoeken met verschillende sequentielengtes verhindert. PagedAttention behandelt de KV-cache als virtuele geheugenpagina's — blokken worden op aanvraag toegewezen en waar mogelijk over verzoeken gedeeld. Dit maakt continu batchen mogelijk (nieuwe verzoeken sluiten aan bij lopende batches) en levert een 2 tot 4× betere GPU-benutting op dan naïef serveren.
# Start vLLM OpenAI-compatible server
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-4-Scout-17B-16E-Instruct \
--dtype bfloat16 \
--max-model-len 8192 \
--port 8000from openai import OpenAI
# vLLM exposes an OpenAI-compatible API
client = OpenAI(base_url="http://localhost:8000/v1", api_key="token")
response = client.chat.completions.create(
model="meta-llama/Llama-4-Scout-17B-16E-Instruct",
messages=[{"role": "user", "content": "Explain attention mechanisms"}],
temperature=0.7,
max_tokens=512,
)
print(response.choices[0].message.content)Voor ontwikkeling, air-gapped omgevingen of persoonlijk gebruik laten lokale inferentietools je modellen draaien op consumentenhardware zonder cloudaccount. Ollama is het eenvoudigste startpunt.
Beheert modeldownloads, GGUF-kwantisatie en stelt een OpenAI-compatibele lokale API beschikbaar. Geen Python-omgeving vereist.
# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# Modellen ophalen en uitvoeren
ollama run llama4:scout # ~23 GB GGUF Q4_K_M (MoE, efficiënt)
ollama run mistral-small3 # ~14 GB GGUF Q4
ollama run deepseek-r1:70b # ~40 GB
ollama run qwen2.5-coder:7b # Codespecialist
# Gedownloade modellen tonen
ollama list| Formaat | Bits/gewicht | Kwaliteit | Aanbevolen voor |
|---|---|---|---|
| Q2_K | 2-bit | Laag | Absoluut minimum aan RAM |
| Q4_K_M | 4-bit | Goed | Beste balans kwaliteit/grootte — aanbevolen standaard |
| Q5_K_M | 5-bit | Zeer goed | Wanneer je extra RAM over hebt |
| Q6_K | 6-bit | Uitstekend | Vrijwel verliesvrij, veel RAM beschikbaar |
| Q8_0 | 8-bit | Vrijwel verliesvrij | Ontwikkeling, systemen met veel RAM |
| F16 | 16-bit | Verliesvrij | Maximale kwaliteit, alleen server-GPU |
| Hardware | Aanbevolen model |
|---|---|
| MacBook M2/M3/M4 (16GB) | 8B Q4_K_M |
| MacBook M2 Pro (32GB) | 13-14B Q4_K_M |
| MacBook M3 Max (64GB) | 70B Q4_K_M |
| RTX 3090 24GB | 13B Q8_0 or 30B Q4 |
| A100 80GB | 70B FP16 or Llama 4 Scout Q4 |
| 2× A100 80GB | Llama 4 Maverick Q4 or 70B FP16 |
Cross-platform GUI voor lokale modellen. Bladeren en downloaden vanaf HuggingFace, OpenAI-compatibele lokale server, monitoring van hardwaregebruik. Ideaal voor niet-ontwikkelaars.
Privacy-first desktop-LLM-applicatie. 100% offline, open source (AGPL), ondersteunt Ollama-compatibele modellen. Gebouwd voor gebruikers die nul telemetrie willen.
Vectordatabases vormen de ruggengraat van RAG-systemen. De juiste keuze hangt af van schaal, bestaande infrastructuur en of je naast vectorzoeken ook metadatafiltering nodig hebt.
| Database | Type | Schaal | Licentie | Uniek kenmerk |
|---|---|---|---|---|
| pgvector | PostgreSQL extension | Middel | Apache 2.0 | SQL + vectoren, geen nieuwe infra |
| Chroma | Embedded/server | Klein-Middel | Apache 2.0 | Eenvoudigste API, ideaal voor prototyping |
| Qdrant | Rust server | Groot | Apache 2.0 | Payload-filtering, snel |
| Weaviate | Go server | Groot | BSD | Hybride zoeken, GraphQL |
| Milvus | C++ server | Zeer groot | Apache 2.0 | Miljardenschaal, cloud-native |
| LanceDB | Embedded | Middel | Apache 2.0 | Arrow-native, serverless |
Als je al PostgreSQL draait, voegt pgvector vectorzoeken toe zonder nieuwe infrastructuur. Het verwerkt miljoenen vectoren met gemak via IVFFlat- of HNSW-indexen — ruim voldoende voor de meeste RAG-systemen in productie.
-- Enable the extension
CREATE EXTENSION IF NOT EXISTS vector;
-- Create table with vector column
CREATE TABLE documents (
id bigserial PRIMARY KEY,
content text,
embedding vector(1536) -- dimension matches your embedding model
);
-- Create approximate nearest neighbor index (IVFFlat)
CREATE INDEX ON documents USING ivfflat (embedding vector_cosine_ops)
WITH (lists = 100);
-- Alternatively, HNSW (better recall, slower build)
-- CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);
-- Semantic similarity query
SELECT content, 1 - (embedding <=> '[0.1, 0.2, ...]'::vector) AS similarity
FROM documents
ORDER BY embedding <=> '[0.1, 0.2, ...]'::vector
LIMIT 5;Orkestratieframeworks verbinden je model met tools, geheugen en meerstaps-pipelines. Het landschap is overvol — kies op basis van je use case, niet alleen op GitHub-sterren.
| Framework | GitHub-sterren | Beste voor | Abstractieniveau |
|---|---|---|---|
| LangChain | 90k+ | Generieke pipelines | Hoog |
| LangGraph | 10k+ | Stateful agent-workflows | Middel |
| LlamaIndex | 35k+ | RAG-intensieve applicaties | Middel |
| CrewAI | 20k+ | Multi-agent-samenwerking | Hoog |
| AutoGen | 30k+ | Conversationele multi-agents | Middel |
| DSPy | 20k+ | Promptoptimalisatie | Laag-Middel |
| Semantic Kernel | 20k+ | .NET/enterprise-integratie | Hoog |
| Haystack | 15k+ | NLP-pipelines, open | Middel |
DSPy hanteert een andere filosofie dan andere frameworks: in plaats van handmatig prompt-sjablonen te maken, definieer je een taaksignatuur (invoer, uitvoer en beperkingen) en een paar gelabelde voorbeelden, waarna DSPy de prompts automatisch optimaliseert met algoritmen als OPRO of BootstrapFewShot. Dit is bijzonder krachtig bij kleinere open source-modellen die gevoelig zijn voor de formulering van prompts — laat de optimizer vinden wat werkt in plaats van handmatig te itereren.
Evaluatie is waar de meeste open source AI-projecten in productie falen. Voordat je een model uitrolt, definieer je meetbare kwaliteitscriteria en stel je een baseline vast.
lm-evaluation-harness
by EleutherAI
De standaard benchmark-runner voor open source-modellen. Draait MMLU, HellaSwag, ARC, WinoGrande en 60+ andere benchmarks. Gebruikt om de scores van het Open LLM Leaderboard te genereren.
OpenCompass
by Shanghai AI Lab
Uitgebreid evaluatieplatform met 100+ benchmarks, met bijzonder sterke dekking van Chineestalige benchmarks en Aziatische taalmodellen.
Ragas
by Explodinggradients
RAG-specifiek evaluatieframework. Meet context-recall, getrouwheid, antwoordrelevantie en contextprecisie via de LLM-als-rechter-methodiek.
DeepEval
by Confident AI
Evaluatieframework in unit-teststijl. Schrijf evaluatie-asserties in Python, integreer ze in CI/CD, volg metrieken over modelversies.
Evals
by OpenAI
Het evaluatieformaat van OpenAI is een industriestandaard geworden. Veel open source-projecten nemen dezelfde eval-structuur over voor interoperabiliteit.
HELMET
by Princeton
Holistische evaluatie van taalmodellen met lange context. Cruciaal voor modellen die grote contextvensters claimen — test de werkelijke recall en het redeneren bij lange context.
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_recall
from datasets import Dataset
eval_data = Dataset.from_dict({
"question": ["What is LoRA?"],
"answer": ["LoRA adds low-rank adapter matrices to frozen weights..."],
"contexts": [["Low-Rank Adaptation adds trainable matrices A and B..."]],
"ground_truth": ["LoRA is a parameter-efficient fine-tuning method..."],
})
result = evaluate(
eval_data,
metrics=[faithfulness, answer_relevancy, context_recall]
)
print(result)
# {'faithfulness': 0.96, 'answer_relevancy': 0.89, 'context_recall': 0.92}Er is geen universeel juist antwoord. Werk deze vragen op volgorde door — elk antwoord beperkt je keuzes aanzienlijk.
Als data je infrastructuur niet mag verlaten, zit je standaard op het pad van alleen open source. Dit sluit elke beheerde API-dienst direct uit. Dimensioneer eerst je infrastructuur.
< 1K verzoeken/dag: Ollama op één machine volstaat. 1K–100K/dag: vLLM op één A100-node. > 100K/dag: vLLM-cluster of TGI achter een load balancer. Bij zeer hoge volumes verdienen de besparingen ten opzichte van API-toegang de infrastructuur binnen enkele weken terug.
Ruwe richtlijn: 7B-model ≈ 14 GB FP16 (of 5–6 GB Q4); 13B ≈ 26 GB; 70B ≈ 140 GB FP16 (of 40 GB Q4); 405B ≈ 810 GB FP16 (of 200 GB Q4). Tel 20% overhead op voor de KV-cache. QLoRA-fine-tuning vereist ~1,5× het inferentiegeheugen.
Algemene chat → Llama 4 Scout. Codegeneratie → Qwen2.5-Coder. Redeneren/wiskunde → DeepSeek-R1. Meertalig → Qwen2.5 72B. Document-Q&A → Mistral Small 3 + pgvector. Elk domein heeft een duidelijke winnaar — gebruik geen generiek model wanneer er een specialist bestaat.
Stijl- en formaatwijzigingen → LoRA (snel, goedkoop). Domeinspecifieke kennis → QLoRA + SFT op je corpus. Verbetering van het redeneren → GRPO of DPO op voorkeursdata. Als het gedrag van het basismodel met prompting dicht genoeg in de buurt komt, sla fine-tuning dan helemaal over.
| Use case | Model | Serving | Orkestratie | Vector-DB |
|---|---|---|---|---|
| Interne chatbot | Llama 4 Scout | vLLM | LangChain | pgvector |
| Code-assistent | Qwen2.5-Coder 7B | Ollama | Claude Code | — |
| Document-Q&A | Mistral Small 3 | vLLM | LlamaIndex | Qdrant |
| Multi-agent-workflow | Llama 4 Scout | vLLM | LangGraph | pgvector |
| Redeneertaken | DeepSeek-R1-Distill 7B | Ollama/vLLM | Custom | — |
| Privacykritisch | Llama 4 Scout | Ollama (air-gapped) | Custom | Chroma |
Het selecteren van het juiste model en de juiste infrastructuur voor je use case vereist een afweging tussen prestaties, kosten, compliance en operationele volwassenheid. Wij helpen ondernemingen deze beslissingen te navigeren en open source AI-systemen te implementeren die betrouwbaar, privé en op schaal kostenefficiënt zijn.
Bouw retrieval-augmented generation-systemen die in productie werken met open source vectordatabases
Bouw productie-agents met open source-LLM's, van architectuur tot deployment
Verlaag inferentiekosten met 70–90% via modelselectie, kwantisatie en cachingstrategieën