Belangrijkste punten
- Het beste lokale model is het grootste dat in je VRAM past met een bruikbare snelheid, niet het model met de beste reputatie.
- Ollama exposeert een OpenAI-compatible endpoint op je eigen machine, dus dezelfde clientcode werkt lokaal en gehost.
- Lokaal geeft privacy en offline gebruik; gehost geeft een groter model, geen hardware en geen installatie.
- Wij bieden alleen een gehost endpoint: er is geen modeldownload van deze service.
Kort antwoord: kies op basis van geheugen, test dan twee of drie
Er is geen enkel beste model, want de limiet is je hardware. Een model moet passen in GPU-geheugen (of in systeem-RAM, veel langzamer) samen met zijn werkcache. De praktische regel is eenvoudig: vind het grootste model dat comfortabel in je geheugen past en nog steeds antwoordt met een snelheid die je kunt verdragen, en vergelijk dan twee of drie kandidaten op je eigen prompts.
Modelnamen en ranglijsten veranderen elke paar weken, dus elke lijst die vandaag is geschreven veroudert snel. Sla de ranglijsten over en gebruik een korte methode: doorzoek de Ollama-bibliotheek en community-uploads, filter op modellen die worden beschreven als ongecensureerd, geabliërateerd of fine-tuned voor rollenspel, haal een klein en een middelgroot model op, en voer dezelfde tien prompts door elk heen. Je eigen prompts vertellen je meer dan een score op iemands benchmark.
Als je daarna merkt dat de modellen die op je machine passen te klein zijn voor de gewenste kwaliteit, is een gehost endpoint het alternatief. De rest van deze pagina schetst de afweging zodat je kunt beslissen met cijfers.
Een model dimensioneren voor je machine
Drie getallen bepalen wat goed draait: parameteraantal, kwantisatie en contextlengte.
Parameters en kwantisatie
Een model met meer parameters levert over het algemeen betere resultaten, volgt instructies betrouwbaarder en behoudt een personage langer. Maar parameters vragen om geheugen. Bij volledige 16-bit precisie heeft een model ongeveer twee bytes per parameter nodig, dus een 7B-model heeft ongeveer 14 GB nodig voordat de cache begint. Kwantisering vermindert dat. Een 4-bit-versie heeft ongeveer een halve byte per parameter nodig, dus hetzelfde 7B-model past in ongeveer 4 tot 5 GB. De kwaliteit daalt iets bij elke stap naar beneden, en het verlies is meestal klein bij 4 tot 5 bits en merkbaar daaronder.
Contextlengte
Het contextvenster kost ook geheugen, omdat het model een cache bijhoudt van alles in het gesprek. Een lange roleplaysessie of een verhaal met veel eerdere tekst vereist een grotere cache. Ollama stelt je in staat de contextgrootte per model in te stellen, en een hogere waarde gebruikt meer geheugen en verlaagt de generatiesnelheid. Veel lokale setups draaien met een venster van een paar duizend tokens om snel te blijven, wat betekent dat het model het begin van lange chats vergeet.
Snelheid
Als een model uit GPU-geheugen loopt in systeem-RAM, kan de generatie dalen van een prettige leessnelheid naar één woord per keer. Een kleiner model dat volledig op de GPU past, voelt vaak beter aan dan een groter model dat dat niet doet, zelfs als het grotere model iets beter schrijft.
Een model in Ollama draaien en aanroepen vanuit code
Zodra Ollama is geïnstalleerd, kun je met twee opdrachten een model ophalen en chatten, en de exacte modelnaam komt van de bibliotheekpagina die je hebt gekozen:
ollama pull MODEL_NAME
ollama run MODEL_NAME
Ollama biedt ook een OpenAI-compatible API aan op je eigen machine, standaard op http://localhost:11434/v1. Dat betekent dat dezelfde clientcode kan communiceren met een lokaal model of een gehost model, en je schakelt door de basis-URL en modelnaam te wijzigen:
from openai import OpenAI
# Local Ollama (the key is ignored but must be non-empty)
local = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
# Hosted endpoint
hosted = OpenAI(base_url="https://api.ornith.top/v1", api_key="YOUR_API_KEY")
def ask(client, model, text):
r = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": text}],
)
return r.choices[0].message.content
prompt = "Write a tense two-paragraph scene set in an abandoned lighthouse."
print(ask(local, "MODEL_NAME", prompt))
print(ask(hosted, "uncensored", prompt))
Beide draaien op dezelfde prompts is de snelste manier om de vraag voor jouw eigen geval te beantwoorden. Als de lokale output goed genoeg is, ben je klaar en kost het je stroom. Zo niet, dan heb je een basislijn voor wat je zou winnen.
Lokaal Ollama versus een gehost API
Geen van beide is in elk geval beter. Deze tabel blijft bij wat structureel waar is van elke aanpak.
| Punt | Lokaal met Ollama | Gehoste API |
|---|---|---|
| Voorafgaande kosten | Je eigen GPU of een machine met genoeg RAM | Geen; prepaid credit vanaf $20 |
| Uitvoeringskosten | Stroom en je tijd | $0,15 per 1M input tokens, $0,50 per 1M output tokens |
| Modelgrootte | Beperkt door je geheugen | Een model gekozen door de provider |
| Werkt offline | Ja | Nee, internet nodig |
| Data verlaat je machine | Nee | Ja, prompts gaan naar de provider; onze worden niet gebruikt voor training |
| Keuze van model | Alles wat je kunt downloaden | Alleen die wordt aangeboden |
| Gelijktijdige gebruikers | Gebonden door je hardware | Tot 8 gelijktijdige verzoeken op een volledige sleutel |
| Instellen | Installeren, ophalen, instellingen afstellen | Een basis-URL en sleutel wijzigen |
Lokaal wint op privacy, offline gebruik en keuzevrijheid. Als je tekst je machine nooit mag verlaten, of je wilt modellen wekelijks wisselen, draai lokaal. Een gehost API wint op installatietijd, op het niet vastleggen van je GPU terwijl je werkt, en op het bedienen van een app met meerdere gebruikers tegelijk.
Het is ook eerlijk om aan te geven wat we niet aanbieden. Deze service is alleen een gehost endpoint. Er is geen modelbestand om te downloaden, geen fine-tuning en geen manier om je eigen gewichten te gebruiken. Als je het model wilt bezitten, is Ollama het juiste hulpmiddel, en onze open source LLM API-gids behandelt de bredere set opties.
Wat gehost kost, uitgewerkt
Mensen gaan er vaak van uit dat een gehost model duur is in vergelijking met gratis lokaal draaien. Lokaal is niet gratis als je hardware meetelt, maar de vergelijking is makkelijker met concreet gebruik. Prijzen hier zijn $0,15 per 1M input tokens en $0,50 per 1M output tokens.
- Casual roleplay, 100 berichten per dag. Stel dat elke beurt 3.000 tokens geschiedenis stuurt en 300 tokens terugkrijgt. Input per beurt: 3.000 bij $0,15 per 1M is $0,00045. Output: 300 bij $0,50 per 1M is $0,00015. Dat is $0,0006 per beurt, $0,06 voor 100 beurten, ongeveer $1,80 over 30 dagen.
- Een schrijfproject. 5M input tokens en 1M output tokens in een maand is $0,75 plus $0,50, dus $1,25.
- Een kleine app. 200M input en 40M output tokens per maand is $30 plus $20, dus $50.
Alleen jij kunt je eigen GPU prijzen, maar licht en medium gebruik kost zeer weinig gehost. De $20 minimale top-up dekt een lange tijd op de eerste twee niveaus, en tegoed verloopt nooit, dus het zal niet verdwijnen als je een maand pauze neemt. Grotere top-ups hebben een bonus: 5% vanaf $50, 10% vanaf $100, 15% vanaf $200. Volledige details staan op de prijzenpagina.
Een verstandige manier om beide te combineren
Je hoeft niet één keer te kiezen. Veel mensen draaien een klein lokaal model voor snelle concepten en privénotities, en sturen de langere of veeleisende taken naar een gehost endpoint. Omdat beide het OpenAI-formaat spreken, kan je app twee clientobjecten vasthouden en routeren op taak, zoals in de code hierboven.
Als je de gehoste kant test, kunnen nieuwe gebruikers met één klik $0,50 aan proeftegoed claimen op de API-sleutelpagina, zonder creditcard, één per persoon, geldig voor 7 dagen. Bij de per-beurt-figuur hierboven zijn dat honderden rollenspel-beurten, genoeg om te vergelijken met je beste lokale model op identieke prompts. Je kunt een API-sleutel aanmaken na het inloggen met Google of met e-mail en wachtwoord. De API-documentatie vermeldt parameters zoals temperature, top_p, stop en seed, die worden doorgegeven, zodat je lokale sampling-instellingen worden overgenomen.
Een paar limieten om voor te bereiden. Een proefsleutel staat 2 gelijktijdige verzoeken en 60 verzoeken per minuut toe; een volledige sleutel staat 8 en 300 toe. Het contextvenster is 100.000 tokens, veel groter dan wat de meeste lokale setup comfortabel draait. En de ene regel die geen enkele instelling verandert: het model is voor wettig gebruik door volwassenen en zal geen seksuele inhoud genereren die minderjarigen betreft.
