Jan 0.8.0 maakt llama.cpp-instellingen eindelijk echt bruikbaar
Jan 0.8.0 legt de instellingen voor llama.cpp nu beter vast. Dat klinkt klein, maar het is juist handig voor wie thuis met modellen werkt en ziet dat een wijziging eerst wel in het scherm staat, maar niet echt doorwerkt. De update zorgt ervoor dat meer keuzes ook echt bij de run van het model uitkomen.
De kern is simpel: Jan schrijft llama.cpp-instellingen nu beter weg en leest ze ook beter terug. Dat geldt voor losse model-instellingen,voor de provider-instellingen en voor een paar vaste waarden die eerst ontbraken in het preset-bestand.
Je merkt dat vooral als je in de app iets aanpast en daarna weer test. De verandering blijft nu beter hangen, en de router hoeft niet meer te doen alsof er niets is gebeurd.
Wat valt meteen op?
Er zijn een paar dingen die opvallen in deze release:
- Instellingen per model worden nu opgeslagen in
model.yml. - Daarna wordt het router-preset opnieuw gemaakt, zodat de waarde ook echt gebruikt wordt.
- Provider-instellingen bij Settings → Providers → llama.cpp geven nu een vertraagde router-herstart als je iets wijzigt.
- de globale preset zet nu ook meer waarden neer, zoals threads, n-predict, ubatch-size, device, split-mode, main-gpu, no-mmap, mlock en meer.
- Er zijn extra sampler-opties toegevoegd voor llama.cpp,zoals
typical_p,top_n_sigma,dynatemp_*,xtc_*,dry_*enignore_eos.
Dat laatste is vooral voor mensen die graag met modelgedrag spelen. Je kunt dus beter sturen hoe een antwoord loopt, maar alleen voor llama.cpp. Voor andere request-bodies worden die llama.cpp-eigen opties netjes weggehaald.
Wat kun je ermee?
Voor een gewone gebruiker zit de winst vooral hier: je stelt iets in,en het werkt ook echt in de volgende ronde. Niet alleen in de lijst, maar ook in het model zelf.
Dat helpt bij dingen als:
- contextgrootte aanpassen;
- model-gedrag afstemmen;
- fout na een volle context handmatig oplossen;
- een model hernoemen zonder dat de router achterblijft;
- minder rare issues door oude of dode instellingen.
Er is ook gewerkt aan opschoning. Zo is een oude instelling defrag_thold weggehaald,en ook een oude ctx_len=8192-waarde die steeds te hard terugkwam. Dat voorkomt dat een oude standaard nieuwe keuzes weer overschrijft.
zo werkt het in de praktijk
Stel: je gebruikt een llama.cpp-model en je wil de context groter maken omdat het gesprek anders te snel vol zit. Voorheen kon je in de app iets zien veranderen,maar de draaiende server hield soms nog vast aan de oude waarde. Dan bleef je tegen dezelfde fout aanlopen.
Nu is de route duidelijker. De wijziging gaat via de opslag van het model, daarna wordt de router opnieuw opgebouwd, en pas dan start de volgende poging met de nieuwe waarde. Dat maakt de knop Increase Context Size nuttiger, want die doet nu ook echt wat je verwacht.
Mini-stappenplan thuis
- Open een llama.cpp-model in Jan.
- Pas een instelling aan in de zijbalk,zoals
ctx_len. - Wacht even tot de wijziging is opgeslagen.
- Start daarna opnieuw een antwoord of gebruik de foutknop als je context te klein is.
- Kijk of de nieuwe instelling nu meteen wordt meegenomen.
Dat voelt misschien wat traag, maar het is wel netter dan een waarde die alleen in de interface bestaat. Een bever wil ook dat zijn hout echt blijft zitten, hè.
Handige verbeteringen voor wie test
De update haalt ook een paar lastige randjes weg.
1. Instellingen blijven beter staan
Er zat eerst een probleem in het bewaren van wijzigingen. Een typactie kon in het scherm zichtbaar zijn, maar alsnog niet goed landen in model.yml. Nu blijft de debounce-timer beter leven tussen renders, en wordt de wijziging bij sluiten ook netjes afgemaakt.
In gewone taal: als je een waarde intypt, is de kans kleiner dat die halverwege weer verdwijnt.
2. De router volgt een model-rename beter
als je een model een nieuwe naam geeft, stond de router eerder soms nog naar het oude id te kijken. dan kreeg je later een 404 bij laden. Nu wordt het router-preset na het schrijven van de yaml meteen opnieuw gemaakt, zodat het nieuwe id direct klopt.
3. Auto-aanpassen is weg, handmatig blijft
Een oude automatische contextvergroting is verwijderd. Die werkte in router mode toch niet goed genoeg. In plaats daarvan blijft de handmatige knop bestaan. Als een model halverwege stopt door een te kleine context, kun je zelf kiezen om verder te gaan.
Dat is fijner, omdat jij dan de controle houdt. De app doet niet stiekem iets op de achtergrond wat je niet vroeg.
Waar moet je op letten?
Een korte checklist helpt hier:
| Punt | Wat je ziet | Wat dit betekent |
|---|---|---|
| Kontextinstelling aanpassen | Waarde in de zijbalk | Wordt nu beter echt opgeslagen |
| Router herstart | Even wachten na een wijziging | De draaiende server pakt nieuwe instellingen op |
| Oude instellingen | Minder vreemde oude waarden | Minder kans op gedoe door oude data |
| context te klein | Foutbanner met knop | Je kunt handmatig verder gaan |
| Model hernoemen | Nieuw id in de router | minder kans op een fout bij laden |
Een kleine valkuil blijft wel: als je veel snel typt, moet je even geduld hebben. Er is expres een vertraging gezet, zodat de router niet bij elk getal meteen opnieuw start. Dat is slimmer dan elke toets een grote herstart geven.
Dit ging bijna mis
Het grootste probleem hier is niet de knop zelf, maar de plek waar de instelling blijft hangen. Als een waarde alleen in een tijdelijk schermgeheugen zit, lijkt alles goed. Maar de echte server weet dan nog van niets.
Daarom zijn deze fixes zo nuttig:
- oude data wordt opgeschoond;
- modelinstellingen worden echt naar de file geschreven;
- het preset-bestand wordt opnieuw gemaakt;
- de router krijgt de nieuwe versie ook echt te zien.
Voor iemand thuis is dat vooral goed nieuws omdat je minder hoeft te raden. Je test een instelling, en de kans is groter dat het gedrag daarna klopt. Minder zoeken naar een spookfoutje dus.
Nog even dit
De release haalt ook een paar oude dingen weg die niet meer pasten:
- de oude
defrag-thold-instelling is verwijderd; - een oude
auto_increase_ctx_len-waarde wordt niet meer als echte optie getoond; - de app verbergt die oude, dode velden ook in het scherm.
Dat is vooral schoonmaakwerk, maar wel nuttig schoonmaakwerk. Oude rotzooi in instellingen zorgt vaak voor de vreemdste bugs.
Handige link
Als je zelf verder wilt testen, dan is v0.8.0: chore: update llamacpp settings (#8168) een nette volgende stap.
Bevers gedachte
dit is geen grote glimmende nieuwe functie, maar wel zo’n update die het dagelijks gebruik beter maakt. En dat is vaak precies waar je thuis wat aan hebt.
Je ziet minder losse instellingen die nergens landen. Je krijgt meer controle over llama.cpp. En als iets fout loopt, is de weg om het te herstellen nu duidelijker. Dat is knap netjes geknaagd, Jan. 🦫
Meer lezen kan op de releasepagina: https://github.com/janhq/jan/releases/tag/v0.8.0
