[!NOTE] Automatische vertaling Dit artikel is automatisch vertaald vanuit de oorspronkelijke Engelse versie.

Lokaal LLMs op macOS: Ollama, LM Studio, llama.cpp, MLX en Apple Silicon

Veel alledaagse prompts-applicaties hebben geen externe API nodig. Apple Silicon kan nuttige taal models-modules lokaal uitvoeren, aangezien de CPU en GPU gebruikmaken van één geïntegreerde geheugencache, hoewel het model-bestand slechts een deel vormt van het beschikbare geheugenbudget.

De belangrijkste keuze in deze gids is het hulpmiddel rondom model. Ollama, LM Studio, llama.cpp en MLX-LM overlappen elkaar, maar ze bieden verschillende niveaus van controle: een beheerde lokale dienst, mogelijkheden voor desktopgebruik, directe GGUF uitvoering, of Apple-gebaseerd Python. Kies eerst op basis van de kwaliteit van de taak de model, en kies daarna het hulpmiddel dat past bij het gewenste interface-type en de benodigde output.

Kort samengevat. Gebruik Ollama voor een beheerde lokale dienst, LM Studio voor het verkennen van model op de desktop en voor het gebruik van de lokale APIs, llama.cpp om direct controle uit te oefenen op de uitvoering van GGUF, en MLX-LM voor Python-experimenten die specifiek zijn ontworpen voor Apple-apparaten. Geen enkele oplossing is in alle situaties het snelst. Benchmark hangt af van de precieze model, quantization, context en werklast, evenals van de beschikbare geheugencapaciteit.

Begin met een geheugenomhulsel

Het budget voor gecombineerde geheugenopslag van Apple Silicon voor lokale inference

De ruwe, gecomprimeerde grootte van weight is slechts het eerste element:

peak memory ≈ model weights
            + KV cache
            + runtime workspace
            + multimodal components
            + application and OS memory

De contextlengte, het type cache, de parallelle verzoeken en de model-architectuur beïnvloeden het resultaat. Een standaard vierbitige 7B- of 8B-model-model kan nog steeds onhandig werken op een Mac met 8 GB geheugen, omdat het besturingssysteem de runtime niet al het geïnstalleerde geheugen kan toekennen.

Gebruik tijdens het testen Activity Monitor of de eigen metrics van de runtime. Zorg voor voldoende ruimte om geheugenpressie en swappen te voorkomen; een model die wel wordt geladen maar het systeem gedwongen zet tot continu swappen, is niet geschikt voor interactief gebruik.

Scheid ook de lokale inference omgeving af van de offline-modus. Prompts kan op de machine blijven terwijl de applicatie nog steeds toegang heeft tot het netwerk voor model downloads, updates of optionele functies. Laad eerst de benodigde bestanden op, verbreek daarna de verbinding met het netwerk en controleer of de workflow vereist is voor werking in offline-modus.

De vier hulpmiddelen lossen verschillende workflow problemen op

HulpmiddelPrimair interfaceHoofdpad van het artefactKies het wanneer
OllamaCLI en lokale HTTP APIGemanageerde model-bundels, doorgaans ondersteund door GGUFEen applicatie heeft een eenvoudige, beheerde lokale service nodig.
LM StudioDesktopinterface, CLI, SDKs, lokale APIsDe lokale models is gedownload, inclusief GGUF en de paden naar MLX.Een persoon moet models visueel ontdekken, vergelijken, controleren en leveren.
llama.cppCLI, C/C++-bibliotheek, lokale serverGGUFJe hebt directe vlaggen, conversie-/quantization-hulpmiddelen of embedding-controle nodig.
MLX-LMPython en CLIMLX-compatibele weightsJe ontwikkelt Python workflows specifiek voor Apple Silicon.

Dit is een verantwoordelijkheidsmatrix, geen snelheidsranglijst. Meerdere tools kunnen gerelateerde kernels of formaten gebruiken, en de prestaties veranderen afhankelijk van de ondersteuning voor model en de uitgebrachte versies.

Ollama: beheerde lokale dienst

Ollama Het beheert de downloads van model, de templates, het levenscyclusproces en een localhost API. Dit is handig wanneer de applicatiecode zich moet richten op een stabiele lokale dienst in plaats van op eigen inference-flags.

ollama pull <model>
ollama run <model>

curl http://localhost:11434/api/chat \
    -H 'Content-Type: application/json' \
    -d '{
      "model": "<model>",
      "messages": [{"role": "user", "content": "Explain unified memory."}],
      "stream": false
    }'

Controleer het manifest en de contextconfiguratie van model in plaats van te veronderstellen dat een korte bibliothekennaam een onveranderlijke checkpoint aangeeft. Noteer of markeer het exacte artefact voor evaluaties.

Ollama offert enige lagere visibiliteit op in ruil voor gemak bij het beheren van de levenscyclus. Ga over op llama.cpp of een ander runtime wanneer je direct controle wilt uitoefenen op een GGUF-bestand, chattemplate, cacheinstelling of een nieuwe backend-functie.

LM Studio: desktop-exploratie en lokale APIs

LM Studio Het is handig wanneer ontdekking van model, het laden van configuraties, het controleren van chats en gelijktijdige menselijke evaluatie allemaal onderdeel zijn van één desktop workflow. De server ondersteunt native SDKs-functionaliteiten evenals compatibiliteitsendpunten.

De huidige gebruikswijze van Python SDK ziet er als volgt uit:

import lmstudio as lms


with lms.Client() as client:
    model = client.llm.model("<downloaded-model-key>")
    response = model.respond("Write one sentence about local inference.")
    print(response)

Start de lokale API vanuit het tabblad ‘Ontwikkelaar’ of met:

lms server start

LM Studio kan draaien op localhost of een lokaal netwerk en ondersteunt API tokens. Houd het op loopback totdat er bewust naar een externe locatie wordt gegaan; door het te koppelen aan het netwerk wordt een privé-desktopomgeving model omgevormd tot een dienst die authenticatie, firewallspecificaties en een veilige configuratie van hulpmiddelen vereist.

llama.cpp: directe uitvoering van GGUF

llama.cpp Dit is het referentiepad wanneer het artefact GGUF is en u de runtime-grens direct wilt zien. Het ondersteunt Apple Metal naast CPU en andere hardware backends.

brew install llama.cpp

# Download through the Hugging Face integration and select a quantization.
llama-cli -hf <publisher>/<gguf-repository>:Q4_K_M

# Or start an OpenAI-compatible local server.
llama-server -hf <publisher>/<gguf-repository>:Q4_K_M

De huidige staat van het repository -hf De path kan een overeenkomstige multimodale projector downloaden wanneer deze beschikbaar is. Omdat de Model-ondersteuning, templates en CLI-vlaggen snel veranderen, is het belangrijk om een bekende build vast te leggen en de startopdracht samen met het evaluatierapport op te slaan.

Kies voor llama.cpp wanneer directe controle het doel is, en niet omdat ‘lagere laag’ automatisch betekent dat het sneller gaat. Een beheerde tool kan goede standaardinstellingen kiezen; directe flaggen kunnen de prestaties zelfs verslechteren.

MLX-LM: Python‑werk dat specifiek is ontworpen voor Apple‑systemen

MLX-LM Het bouwt voort op Apple’s MLX-array framework. Het ondersteunt generatie, chat, conversie, quantization, en parameter-efficiënte fine-tuning voor compatibele models.

uv add mlx-lm
uv run mlx_lm.generate \
    --model mlx-community/<compatible-model> \
    --prompt "Explain Metal acceleration in one paragraph."

Python biedt model en tokenizer rechtstreeks bloot:

from mlx_lm import generate, load


model, tokenizer = load("mlx-community/<compatible-model>")
messages = [{"role": "user", "content": "Give one local-LLM benchmark rule."}]
prompt = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
print(generate(model, tokenizer, prompt=prompt, max_tokens=80))

De HTTP-server van MLX-LM is gedocumenteerd als een ontwikkelingsserver met basisbeveiligingscontroles, en niet als een productieservice. Gebruik hem voor lokale experimenten of plaats een geverifieerde applicatiegrens ervoor.

Een eerlijke benchmark duurt minder tijd dan een slechte download

Workflow voor het selecteren van een lokale macOS LLM tool

Test dezelfde checkpoint-familie en vergelijkbare quantization wanneer de formaten dat toelaten. Gebruik een kleine prompt-set die bestaat uit:

Record:

MetricaWaarom dit belangrijk is
Resultaat van de taakEen snelle, maar foutieve model is niet bruikbaar.
Tijd tot de eerste tokenInteractieve responsiviteit
Uitvoer van tokens per secondeGeneratie throughput
Maximaal geheugenverbruik en belastingOf de machine nog bruikbaar blijft
Tijdsduur voor koude laadoperatieDesktop- en op-vraag ervaring
Energie- en thermisch gedragLangdurig gebruik van een laptop
API/schema-compatibiliteitOf het hulpmiddel past bij de toepassing

Vergelijk de 4-bits model van het ene hulpmiddel niet met de volledig nauwkeurige model van een ander hulpmiddel, en schrijf de verschillen niet toe aan de runtime.

Controlelijst voor beveiliging en privacy

  1. Koppel APIs aan loopback, tenzij netwerktoegang vereist is.
  2. Voeg authenticatie toe voordat de LAN wordt geexposeerd.
  3. Beschouw model-bestanden als artefacten van derden; noteer de bron, revisie, licentie en hash.
  4. Vermijd het uitvoeren van ongecontroleerde, aangepaste model-code.
  5. Controleer of optionele documenten, hulpmiddelen, updates of analytische functies netwerkoproepen maken.
  6. Ga er niet van uit dat lokaal genereren de opgehaalde documenten, logs of bijwerkingen van hulpmiddelen veilig maakt.

Conclusie

De beste keuze is niet per se ‘de beste Mac LLM-app’. Het gaat om de kleinste stack die de bedieningsinterface biedt die uw workflow nodig heeft. Ollama beheert een dienst, LM Studio zorgt voor een desktop-ontdekkingssysteem, llama.cpp maakt de uitvoering van GGUF mogelijk, en MLX-LM biedt Apple-natieve Python-functionaliteit.

Geef elke kandidaat dezelfde taak, context en geheugenruimte. Het resultaat zal betrouwbaarder zijn dan anekdotes over hardware of een statische sterrenbeoordelingslijst—and gemakkelijk te raadplegen wanneer de hulpmiddelen veranderen.

Referenties