Lokale AI-modellen draaien op een Mac Mini M4: de opslagrekensom

Een AI-model lokaal draaien betekent dat de gewichten van het model op je Mac staan en de berekening op de eigen chip van je Mac gebeurt, zonder dat er iets over het netwerk gaat zodra het model gedownload is. Twee verschillende dingen bepalen wat je hiermee kunt, en ze worden makkelijk door elkaar gehaald: geheugen bepaalt welk model überhaupt kan draaien, vastgelegd op de dag dat je de machine koopt, en opslag bepaalt hoeveel modellen, en hoeveel van de tooling eromheen, je tegelijk op de machine kunt bewaren. Deze gids gaat vooral over het tweede.

Wat AI lokaal draaien op een Mac betekent

Vier namen komen steevast langs zodra dit ter sprake komt, en elk lost een ander deel van het probleem op.

  • Ollama: een commandoregeltool en achtergronddienst die modellen met één commando uit zijn eigen bibliotheek downloadt en ze achter een lokale API draait (github.com/ollama/ollama, gecontroleerd september 2026).
  • LM Studio: een desktopapp om "download and run local LLMs", met een chatinterface en een lokale server die modellen aan andere apps kan aanbieden: "serve local models on OpenAI-like endpoints" (lmstudio.ai/docs/app, gecontroleerd september 2026).
  • MLX: volgens de eigen repository "an array framework for machine learning on Apple silicon, brought to you by Apple machine learning research", gebouwd rond een unified memory model: "Arrays in MLX live in shared memory. Operations on MLX arrays can be performed on any of the supported device types without transferring data" (github.com/ml-explore/mlx, gecontroleerd september 2026). Het is Apple's eigen project, geen portering door een derde partij.
  • llama.cpp: noemt zichzelf "LLM inference in C/C++", gebouwd "to enable LLM (and VLM) inference with minimal setup and state-of-the-art performance on a wide range of hardware", en stelt dat "Apple silicon is a first-class citizen" dankzij ARM NEON, Accelerate en Metal (github.com/ggml-org/llama.cpp, gecontroleerd september 2026).

De vier overlappen meer dan de lijst doet vermoeden: Ollama noemt llama.cpp als een van zijn ondersteunde backends (github.com/ollama/ollama, gecontroleerd september 2026), en LM Studio draait "llama.cpp (GGUF) or MLX models" (lmstudio.ai/docs/app, gecontroleerd september 2026). Kies een tool op basis van hoe je wilt werken, en houd er rekening mee dat elke tool een eigen kopie bewaart van wat hij downloadt, en daar komt opslag om de hoek kijken.

De twee grenzen: geheugen bepaalt wat draait, opslag bepaalt hoeveel je bewaart

De gewichten van een model, plus het werkgeheugen voor wat het op dat moment verwerkt, moeten passen in het centrale geheugen van de Mac Mini M4, naast macOS en alles wat verder open staat: standaard 16GB, configureerbaar tot 24GB of 32GB (support.apple.com/en-us/121555, gecontroleerd september 2026). Die keuze is definitief: Apple stelt dat het geheugen in de Mac mini (2024) geïntegreerd is in het chippakket en niet kan worden uitgebreid (support.apple.com/en-us/102328, gecontroleerd september 2026).

Opslag is een zachtere grens die met de tijd stilletjes groeit. Eén model draaien kost er niet veel van, maar niets in deze werkwijze verwijdert ook iets, en er stapelt zich van alles op naast de modellen zelf:

  • Modeldownloads: elk model dat je binnenhaalt is een volledige lokale kopie, en hetzelfde model in een tweede kwantisatie downloaden om ze te vergelijken is een tweede volledige kopie.
  • De Hugging Face-cache: tools die modellen rechtstreeks van Hugging Face downloaden, in plaats van via Ollama of LM Studio, bewaren standaard een eigen cache onder ~/.cache/huggingface/hub, te verplaatsen met de omgevingsvariabele HF_HOME (huggingface.co/docs/huggingface_hub/guides/manage-cache, gecontroleerd september 2026). Zo staan dezelfde gewichten makkelijk twee keer in een cache, één keer via een app en één keer via deze cache.
  • Spraak-naar-tekst- en beeldgeneratiemodellen: als je ook transcriptie of beeldgeneratie lokaal draait, bewaren die modellen hun eigen bestanden op schijf, los van de tekstmodelcaches hierboven.
  • Python-omgevingen: MLX heeft een Python-API naast die voor C++, C en Swift (github.com/ml-explore/mlx, gecontroleerd september 2026), en transformers en diffusers zijn Python-bibliotheken. Elke virtuele omgeving heeft "their own independent set of Python packages" (docs.python.org/3/library/venv.html, gecontroleerd september 2026), dus elk project installeert zijn eigen kopie van PyTorch, MLX of vergelijkbare bibliotheken.

Niets hiervan valt op voordat het al gebeurd is. Eén model naast een schijf van 256GB of zelfs 2TB lijkt triviaal; een werkset van meerdere modellen, een Hugging Face-cache die er een paar dubbel bewaart, en een Python-omgeving of twee is dat niet.

Wat gangbare modellen echt kosten om te downloaden

Modelgrootte schaalt met het aantal parameters, en elk model in de Ollama-bibliotheek heeft een standaarddownload; voor de modellen hieronder is dat een 4-bit kwantisatie, Q4_K_M, behalve gemma2:9b met Q4_0. De cijfers hieronder zijn het aantal parameters en de standaard-downloadgrootte van elk model, gelezen van de eigen pagina van dat model in de Ollama-bibliotheek in september 2026.

Model (Ollama-bibliotheektag)ParametersStandaardkwantisatieStandaarddownload
llama3.2:3b3,21BQ4_K_M2,0GB
mistral:7b7,25BQ4_K_M4,4GB
llama3.1:8b8,03BQ4_K_M4,9GB
gemma2:9b9,24BQ4_05,4GB
qwen2.5:14b14,8BQ4_K_M9,0GB
phi4:14b14,7BQ4_K_M9,1GB
deepseek-r1:32b32,8BQ4_K_M20GB
llama3.1:70b70,6BQ4_K_M43GB

Bron: ollama.com/library, de eigen tagpagina van elk model, gecontroleerd september 2026. Over deze tabel komt de standaarddownload uit op 0,58 tot 0,62GB per miljard parameters, ruwweg 0,6GB, onze eigen rekensom op basis van de cijfers hierboven, en dat is de basis voor de geheugenkanttekeningen verderop. De Ollama-bibliotheek noemt ook Llama 3.1 met 406 miljard parameters, een download van 243GB in dezelfde Q4_K_M-kwantisatie (ollama.com/library/llama3.1, gecontroleerd september 2026). Dat bestand past op een schijf van 512GB of 2TB, maar niet op een standaardschijf van 256GB, waar het budget hieronder 206GB overlaat zodra macOS en de tools geïnstalleerd zijn. Opslag is echter niet wat het uitsluit: geen enkele Mac Mini M4 heeft ook maar in de verte het geheugen om het te draaien.

Modelkaarten veranderen. Controleer de bibliotheekpagina van het model dat je echt wilt voordat je ermee begroot.

Het opslagbudget: een modelbibliotheek plus alles eromheen

Zet een handvol van de modellen hierboven op een Mac Mini M4, tel de tools erbij op die ze draaien, en de basisconfiguratie van 256GB zit al krap voordat er een serieuze bibliotheek staat. Dit is onze eigen planningsschatting, geen meting van één specifieke opstelling.

Wat het gebruiktBegroot (onze schatting)Over op 256GBOver op 512GBOver op 2TB
macOS met de ingebouwde apps, plus Ollama of LM Studio50GB206GB462GB1950GB
Een werkende bibliotheek lokale modellen (een paar uit de tabel hierboven, naast elkaar bewaard)40GB166GB422GB1910GB
Eén model uit de 30B-klasse, bewaard voor incidenteel zwaarder gebruik20GB146GB402GB1890GB
Python-omgevingen voor frameworks die vanuit Python gebruikt worden (transformers, diffusers, mlx-lm), elk met een eigen kopie van zijn afhankelijkheden30GB116GB372GB1860GB
Groei van de Hugging Face-cache: extra checkpoints, tokenizers, embedding- en rerankingmodellen40GB76GB332GB1820GB
Caches van spraak-naar-tekst- en beeldgeneratiemodellen20GB56GB312GB1800GB

Dat is volgens onze schatting 200GB, boven op wat de machine verder al opslaat. Op de basisconfiguratie van 256GB blijft 56GB over, en het installeren van een macOS-update heeft zelf vrije ruimte nodig zolang het bezig is (support.apple.com/en-us/102624, gecontroleerd september 2026); op 512GB blijft 312GB over; op de 2TB-module 1800GB. Dit zijn planningsgetallen, geen meting van een specifieke opstelling, en één download uit de 70B-klasse, 43GB in de tabel hierboven, is op zichzelf genoeg om het grootste deel op te maken van wat de configuratie van 256GB nog over heeft. Zoals bij elke schijf leest de capaciteit die macOS toont iets lager dan het geadverteerde cijfer, omdat de formattering en het besturingssysteem een deel van de ruimte gebruiken (support.apple.com/en-us/102119, gecontroleerd september 2026).

De echte getallen op je eigen machine controleren

De tabel hierboven is een planningsschatting. Twee commando's laten zien wat een machine daadwerkelijk gebruikt.

du -sh ~/.ollama/models
du -sh ~/.cache/huggingface

Het eerste geeft Ollama's eigen downloads, standaard bewaard onder ~/.ollama/models (docs.ollama.com/faq, gecontroleerd september 2026); het tweede geeft de hierboven beschreven Hugging Face-cache. Geen van beide commando's telt de modellen van LM Studio mee, die staan in de modellenmap die je instelt via het tabblad My Models van de app (lmstudio.ai/docs/app/basics/download-model, gecontroleerd september 2026).

Waarom een externe schijf onhandig is voor modelcaches

Modelcaches kunnen van de interne schijf af, maar het onhandige zit niet in de ruimte, het zit in de schijf zelf.

  • Caches verplaatsen gaat per tool, niet globaal: Ollama verhuist met de omgevingsvariabele OLLAMA_MODELS (docs.ollama.com/faq, gecontroleerd september 2026), de Hugging Face-cache verhuist met HF_HOME (huggingface.co/docs/huggingface_hub/guides/manage-cache, gecontroleerd september 2026), en de modellenmap van LM Studio wijzig je via het tabblad My Models (lmstudio.ai/docs/app/basics/download-model, gecontroleerd september 2026); er is geen enkele instelling die alle drie verplaatst.
  • Sluimerstand en kabels: macOS kan schijven in de sluimerstand zetten via de instelling "Plaats harde schijven in sluimerstand indien mogelijk" onder Energie in Systeeminstellingen (support.apple.com/guide/mac-help/mchle41a6ccd/mac, gecontroleerd september 2026), en een externe schijf voegt een kabel en een behuizing toe die allebei aangesloten moeten blijven. Een schijf die losgekoppeld wordt of zijn stroom verliest, neemt elk model erop mee tot hij terug is.
  • Laadtijd: de productpagina van onze module noemt 4400MB/s schrijven en 3000MB/s lezen (gecontroleerd september 2026). Een externe schijf sluit je aan op een van de drie Thunderbolt 4-poorten van de M4, tot 40Gb/s, of op een van de twee USB-C-poorten aan de voorkant, USB 3 tot 10Gb/s (support.apple.com/en-us/121555, gecontroleerd september 2026). 10Gb/s is 1250MB/s vóór enige protocoloverhead, minder dan de helft van de opgegeven leessnelheid van de module. 40Gb/s is de totale linksnelheid van Thunderbolt 4; de data van een schijf gaat over de PCIe-verbinding, waarvoor Intel een minimum van 32Gb/s stelt (intel.com/content/www/us/en/gaming/resources/upgrade-gaming-accessories-thunderbolt-4.html, gecontroleerd september 2026), ongeveer 4000MB/s vóór overhead, op papier nog steeds boven die leessnelheid; de echte snelheid hangt af van de behuizing, de kabel en de schijf erin, die je zelf zou moeten kopen en controleren. Volgens onze rekensom duurt het lezen van de 20GB van deepseek-r1:32b ongeveer 7 seconden bij 3000MB/s en minstens 16 seconden bij 1250MB/s. Hoe dan ook is dat alleen laadtijd, nooit hoe snel het model antwoordt zodra het geladen is.

Dit sluit een externe schijf niet uit voor een koud archief van modellen die je zelden laadt; het is de werkset waartussen je vaak wisselt waar caches verplaatsen en het risico op een verbinding die wegvalt tijdens het laden meer kosten dan de ruimte waard is.

De eerlijke kanttekeningen

  • De basisconfiguratie van 16GB draait ruwweg modellen van 7B tot 14B parameters op 4-bit: bij ongeveer 0,6GB per miljard parameters is een 7B-model ongeveer 4,4GB (mistral:7b) en een 14B-model ongeveer 9GB (qwen2.5:14b, phi4:14b). Een model van 9GB laat ongeveer 7GB van de 16GB over voor zijn contextvenster, macOS en elke andere geopende app, onze eigen rekensom, en daarom is 14B de bovengrens op 16GB; een groter model kan nog steeds geladen worden, het laat alleen weinig ruimte over voor context.
  • 32GB bereikt de 30B-klasse; 24GB schiet tekort. Beide zijn alleen bij aankoop te configureren (support.apple.com/en-us/121555, gecontroleerd september 2026). De download van 20GB van deepseek-r1:32b laat ongeveer 12GB van een machine met 32GB over voor context en macOS, meer dan een 14B-model overlaat op 16GB; op 24GB laat hij ongeveer 4GB over, onder die grens van 7GB, opnieuw onze eigen rekensom. Het GPU-budget is nog krapper: llama.cpp haalt zijn GPU-geheugenbudget op een Mac uit Metal's recommendedMaxWorkingSetSize, niet uit het geïnstalleerde totaal (github.com/ggml-org/llama.cpp, de broncode van de Metal-backend, gecontroleerd september 2026), en een llama.cpp-log van een Mac Mini met M2-chip en 24GB meldt daarvoor 16384MiB (github.com/ggml-org/llama.cpp/issues/3911, gecontroleerd september 2026), volgens onze omrekening ongeveer 17,2GB, minder dan het model van 20GB. De systeemlimiet voor vastgezet geheugen (wired memory) verhogen met een sysctl is een geavanceerde stap die de documentatie van mlx-lm beschrijft voor een model dat in het geheugen past maar traag draait (github.com/ml-explore/mlx-lm, gecontroleerd september 2026); het verandert niets aan het totaal van 24GB.
  • Een 70B-model is een geheugenvraag die deze SSD niet kan beantwoorden: de standaarddownload van llama3.1:70b is 43GB, meer dan het maximum van 32GB centraal geheugen van de Mac Mini M4 voordat context of macOS zijn meegeteld (support.apple.com/en-us/121555, gecontroleerd september 2026). De Mac Mini M4 Pro is configureerbaar tot 64GB (zelfde bron), wat volgens onze rekensom ongeveer 21GB naast die gewichten zou overlaten, maar dat is een andere machine, en een waar deze module niet in past. Geen hoeveelheid opslag verandert dit: het is een geheugenplafond, vastgelegd op het moment van aankoop.
  • De SSD verandert de laadtijd, niet de tokensnelheid: zodra de gewichten van een model in het geheugen staan, hangt hoe snel het tokens genereert af van de geheugenbandbreedte, 120GB/s bij de M4 (support.apple.com/en-us/121555, gecontroleerd september 2026), en de rekenkracht van de chip zelf, allebei vastgelegd door de configuratie die je gekocht hebt. Wat de SSD verandert, is alleen hoe lang het duurt om die gewichten van schijf te lezen wanneer een model laadt; een snellere schijf laat een model eerder starten, niet sneller denken.

Geen van deze kanttekeningen is een reden om lokale modellen te mijden; het zijn de getallen om tegen een specifiek model aan te houden voordat je aanneemt dat het past.

Bijbehorende vragen

Heb ik een internetverbinding nodig zodra een model gedownload is?
Niet om een gedownload model te draaien. De documentatie van LM Studio stelt dat het "can operate entirely offline" zodra je modelbestanden hebt (lmstudio.ai/docs/app/offline, gecontroleerd september 2026). De FAQ van Ollama zegt dat het "runs locally", behalve voor zijn in de cloud gehoste modellen, en dat het uitschakelen van de cloudfuncties het in een modus zet die alleen lokaal werkt (docs.ollama.com/faq, gecontroleerd september 2026).
Maakt meer opslag een model sneller?
Nee. Opslag bepaalt alleen hoe lang een model laadt; zodra de gewichten in het centrale geheugen staan, hangt de generatiesnelheid af van de geheugenbandbreedte en de rekenkracht van de chip, niet van de schijf.
Kan ik meer dan één model tegelijk draaien?
Alleen als ze allebei tegelijk in het geheugen passen, naast macOS en wat er verder open staat. Opslag heeft daar geen invloed op; die bepaalt alleen hoeveel modellen je gedownload kunt houden om tussen te wisselen.
Welke capaciteit moet ik bestellen voor lokale modellen?
Reken terug vanaf de tabellen hierboven met de modellen die je echt wilt bewaren. Het voorbeeldbudget in deze gids komt uit op 200GB, wat 56GB overlaat op een schijf van 256GB, 312GB op 512GB, 800GB op de 1TB-module, €302,50, en 1800GB op de 2TB-module, €399,30. Controleer eerst welke Mac Mini-modellen compatibel zijn, en zie daarna de installatiegids voor de wissel zelf.
Is dit anders dan een Mac Mini als thuisserver draaien?
De opslaggewoontes lijken op elkaar, alles stapelt zich stilletjes op, maar de twee workloads leunen op verschillende grenzen: lokale modellen zijn eerst geheugengebonden en pas daarna opslaggebonden, terwijl de containers en back-ups uit de thuisservergids opslaggebonden zijn met bescheiden geheugenbehoefte. Beide op één machine draaien betekent voor allebei begroten.

Klaar om te upgraden?

Meer gidsen