There's quite a few tangential features that must be implemented correctly or risk affecting the LLM output in significant ways.<p>Parsing/encoding is one example: A couple of months ago I've debugged a reasoning loop bug in Step 3.7 Flash on llama.cpp that was caused by the parser capturing an extra `\n` as part of a reasoning block. It was something that only manifested at longer multi-turn agentic sessions, and the extra linefeed was steering the model into making reasoning self corrections that only got worse with longer sessions (more details about this issue: <a href="https://github.com/ggml-org/llama.cpp/issues/24181#issuecomment-4792181456" rel="nofollow">https://github.com/ggml-org/llama.cpp/issues/24181#issuecomm...</a>)<p>No inference engine is perfect, but I feel that llama.cpp is the most reliable way to run language models locally.
Debugging any LLM output when you also have done substantial harness engineering is a total pita and I wish there were better tools for it to isolate issues.<p>I spent ages tracking down start appears to be an issue with the current Deepseek v4 flash 0731 version that would cause it to output giant walls of gibberish in Hermes with reasoning turned on.
This is fascinating. I’m struggling to understand how that was causing such a large difference in the output. Is the “autoparser” vulnerable to injections somehow? How do you distinguish between user text, model text, and metadata, or is there ambiguity in the parsing?
I saw some guy streaming how he was deploying qwen3.8 37B on his local setup. Well, he was asking Claude to do it. It took him two hours of passing errors to Claude for the endpoint to start working, he then started testing it against DS4 Flash when Qwen had thinking disabled and Claude messed up sampling parameters, it was an absolute pain to watch
Wow. I tried to get Qwen3.8 4B to parse song lyrics and analyse them. Getting ollama running was a minute or two.<p>However coming up with a prompt that didn't turn out total garbage was impossible. After wasting over an hour and I ended up getting Qwen side by side with Llama 3.2 3B, just to see if I was being stupid. Nope, it just looks like Llama is orders of magnitude better at this specific task for some reason).<p>If you think I'm doing it wrong, you're probably right, I don't know a ton about local LLMs. But I hand selected 50 songs, set up ollama with both LLMs, and for each iteration on the prompt text, ran both LLMs 10x times per song. Side-by-side comparisons showed that Qwen 3 4B was so bad that I actually downloaded Qwen again, thinking there must have been some mistake and I accidentally grabbed an old 1B model.
There's no official Qwen 3.8 4B (only 27B and 2.4T.. at least for now), so if not a typo you've downloaded some third party model/finetune.<p>Also if you have less than 24GB VRAM, then ollama defaults to 4K context. If that "Qwen 3.8" uses thinking, it might be running out of context and forgetting what it was even answering mid-generation. If that's the case, then try increasing context size: <a href="https://docs.ollama.com/context-length">https://docs.ollama.com/context-length</a> , but also: <a href="https://sleepingrobots.com/dreams/stop-using-ollama/" rel="nofollow">https://sleepingrobots.com/dreams/stop-using-ollama/</a>
> There's no official Qwen 3.8 4B (only 27B and 2.4T.. at least for now), so if not a typo you've downloaded some third party model/finetune.<p>Probably this:<p><a href="https://huggingface.co/empero-ai/Qwen3.8-4B-Distill" rel="nofollow">https://huggingface.co/empero-ai/Qwen3.8-4B-Distill</a><p>> Qwen3.8-4B is a full-parameter distillation of Qwen3.8 2.4T A95B into the Qwen3.5-4B architecture.
Llama 3.2 3B was surprisingly good for general-purpose text manipulation tasks. I'd argue it might be better than many modern tiny models for that.
> Nope, it just looks like Llama is orders of magnitude better at this specific task for some reason<p>This is almost every ML model, if the task isn't part directly or indirectly of the datasets they use for training it, then the model is gonna be pretty trash at it. What the big AI labs have over the smaller labs, is a huge amount of data and diverse set of tasks, hence they generalize better, but still not great.<p>So, how do you avoid having to spend hours on figuring out if the model is just dumb, or don't know the task? Your own private benchmarks! Figure out a way, ideally without using another LLM, to score how good a model is at doing <i>your specific task</i>. Come up with 3-5 examples for this benchmark yourself, ask a SOTA LLM to fill out 45 more, review everything VERY closely, then use this whenever you want to figure out if $new_model actually is an improvement over what you use today, and once you have a bunch of different tasks, you'll see that all these HUGE improvements tend to be specifically for the benchmarks they mention in the press release, as many of your own benchmarks won't show that big of a difference in reality.<p>Yes there is a higher upfront cost, but if you're building longer-term projects that rely on LLM models, particularly local ones that seem very benchmaxxed a lot of the times, you need a quick and reproducible way of scoring them somehow, where you can just add more models to compare, and you need to keep these benchmarks to yourself.
> What the big AI labs have over the smaller labs, is a huge amount of data and diverse set of tasks, hence they generalize better, but still not great.<p>Hehe, this kind of sounds like the opposite of generalization. As in it’s just specialization at scale.
This is the way. It's also very important to automate as much of this verification as possible into the harness, rather than sit there and prod it in the chat.<p>Of course some things are not auto verifiable, and you'll have to give human judgement and input there, but you'll save a lot more time if you spend 1 week painstakingly writing checks for as many little things as possible and integrating them into the harness.
I found Gemma 4 models quite good at translating/explaining song lyrics. I actually prefer using 26B-A4B for this task instead of GPT
That's funny, because I just went through the opposite.<p>I got llama.cpp working with qwen3.6 and qwen3.8 by Googling and manually adjusting things according to reddit posts and Google not-really-helpful AI suggestions.<p>I tried settings up per-model stuff in settings.json, but again Google got in my way, and llama.cpp having 2 different settings.json (and Google lying about where 1 goes) made it far too difficulty to figure out. I spent hours on it.<p>Then I got fed up and asked Claude.<p>Immediately, it told me that the winget version of llama.cpp is for Vulkan, and I needed a different one and pointed at it. It doubled my speed.<p>Then it figured out what I was doing wrong with settings.json (wrong spot, global settings can't go in the per-model file, etc etc) and fixed all that, and got it working.<p>Then it <i>tuned</i> it somewhat.<p>Then I showed it the official settings pages for both models, and it undid the tuning and all the damage I had done with my tinkering, and got everything working.<p>In 30 minutes.<p>It was absolutely amazing.<p>Every time I see people recommending Qwen locally with llama.cpp, they just say "download it" and act like anyone that can't get it running is an idiot. But if there's a "using this settings.json" tutorial somewhere, I didn't find it, and neither did Google over a week of searching.<p>But Claude got it done for me.<p>Now, I admit, I haven't played with it much. Just before all this, I ran out of Claude on the $20 plan and bumped up to $100, and It's been so amazing that it's really hard to work on the local. Especially since it feels like Qwen3.8 35b a3b is probably around the corner, and why mess with 3.6 when 3.8 will probably release soon?
> It took him two hours of passing errors to Claude for the endpoint to start working<p>What? It's literally three actions and you're good: download llama.cpp, download the model on Huggingface, and run it with.<p>I have no idea how it's supposed to take two hours (unless you have a slow connection and the model download takes this much time, that is).
I'm not saying this is the case in the particular example, but these days a lot of people aren't bothering to read a 1 page README, and are instead letting claude "just fucking do it already". I see it at work.<p>Claude has got better at "just fucking doing it" by asking if it's ok to go read the latest github issues and pull the README, which means that people will likely get lazier and lazier.
To me laziness has nothing to do with it. I'd rather focus on my limited time on things that actually matter, e.g. the design of an important product feature or the root cause of a bug and the proper fix. I delegate everything else to Claude. It's really nice to be able to say to Fable "see if you can get this running locally" and then come back 10-30 mins later and read the results.<p>I've discovered a lot of neat tooling this way that I otherwise would not have bothered tryin to set up because that can take up a lot of time. And even when it's fast, you're suffering from context-switching penalties. You framed it as "read the latest github issues and pull the README" but anyone who has worked in tech for an appreciable amount of time knows that that stuff can turn into a deep rabbit hole.
Guilty. Used AI for 2 years, now I feel dumb. Going back to basics this break. No Claude, no ChatGPT.
In the README there is usually a section where it explains which llama.cpp parameters to configure (sampling, penalties, context size, etc) to get better results.
My experience with Claude is that it suffers badly from “not invented here” syndrome. So probably it rebuilt something like llama from scratch and then 2 hours suddenly seems reasonable (if you don’t question the approach). And that’s the thing, someone with no experience isn’t going to question it.
I wonder if this is an artifact of RL, where the training heavily emphasizes codegen. It may be that the model is just better at generating code than reusing libraries, so it prefers the lowest cost approach.<p>I also wonder if this manifests much less in contexts where the libraries/frameworks are a large part of the training set. It may be that the model doesn’t generalize well so it’s always better to use knowledge in its training set vs attempting to understand how to use a new, potentially never before seen (from the model perspective) api
Not necessarily rebuild llama from scratch, build attempting to build it without cmake and manually invoking all the build commands would be quite in character.
Your mileage may vary. I tried this a couple months ago and spent a full day on it <i>just not working</i> before giving up. Anything I sent, it wouldn't run.
I just got qwen 3.8 27b mlx running on my Macbook Pro and honestly I’m pretty blown away by how not-dumb it is.
It was actually great. I have like a non-AI box so to speak 8GB VRAM, co-incidentally from a gaming PC ...<p>All the previous models that were "frontier level, just try it!" but wouldn't run at all in agentic mode, including previous Qwens, just disappointed, period.<p>Then I ran then Qwen 3.8 27b and while it was super slow (4t/s) it literally one-shotted creating a usable "web search/pull" skill for <i>`pi.dev`</i>. while any other model previously just entirely failed to create anything usable even with actual guidance.<p>Since then I have actually gotten a gemma-4 12B qat 4bit quantized with a ~250MB MTP from unsloth to work with a 32k context "working" on this setup at 80-120 t/s. That's usable for private stuff on a co-incidental box!<p>It's still only 32k context and it's entirely dumb vs. our API paid at-work Claude Opus. But for entirely private local stuff it's totally workable without breaking the bank <i>even after all these AI price hikes!</i>. I bought this rig literally just for gaming a month ago.
Have you tried a mixture of experts model? Dense models have been quite slow for me, as I have only 6 GB VRAM. But with llama.cpp and --cpu-moe I get 200 t/s input and almost 30 t/s output with Gemma 4 26B A3B, which feels ok to use. Would be interested about your mileage there.
I'm having the same constraint, 8GB VRAM, and was trying the past months to get a local model running to drive my Home Assistant setup via voice, so many tool calls, little room for errors. I've tried multiple models, different temperature and top p values, different context windows... turns out that a quantized gemma4 is the best pick so far but qwen3.5:9b isn't far off. Surprisingly newer models are not necessarily performing better.
That's funny, I downloaded the same model on my 48GB M4 Pro and gave it a problem to solve in an existing codebase, it spun its wheels for twenty minutes and then fell over dead. This was using LMStudio and pi as a harness; I never use pi for anything else, so maybe I'm holding it wrong.
They made a kind of strange decision with Qwen3.8 27B, the template defaults the reasoning_effort to xhigh. I found if you set it to medium it doesn’t just sit there churning forever.
I've recently learned and then observed that oMLX serves local models much, much faster than LM Studio.
We don’t know what quantization level was used for the weights or the kv cache for you or for parent poster, so this is probably an apples to oranges comparison.
Set its thinking lower. This is a known issue. It still thinks A LOT with lower reasoning levels
Maybe giving pi more output by setting higher value to maxTokens will resolve his issue
its all still somewhat of a dice roll
[flagged]
I got the qwen 3.8 abliterated model running on my MacBook Pro M5 48GB and it's pretty nice having a local model that can do a lot of experimentation without rails.
My problem is how hot they run. I'm on an m4 pro. Do you have the same issue?
It’s hot and also LOUD and runs the battery down quick.<p>But I’m having a lot of luck just running things when I’m away from the computer and can leave it plugged in.<p>It starts going weird (unreliable and slow) with context over 80k so you have to pick tasks one at a time and baby sit a lot more than Claude. But it really is very capable and feels like there’s an intelligence there to talk to. Maybe gpt-4 level clever?<p>I have an m5 max 64gb and I think anything slower would be quite painful.
><i>It’s hot and also LOUD and runs the battery down quick.</i><p>Who'd run this on battery?<p>Or do you mean kills the battery faster even when used while charging?
There was a lovely window of a few years when processors were fast enough and low-power enough that real development work could trivially happen on a Macbook Air in a lounge.<p>That window is waning as more and more memory and graphics processing power is being used locally.<p>I suppose the future is most likely going to involve farming out AI requests to your desktop machine, your company's compute farm, or a cloud endpoint, but if you're expecting to run an AI offline on your lap with a battery...your lap will get warm.
Running your dev environment on your laptop is so 2025.
I envision a future when the potential energy in a laptop battery, could take out 17 city blocks if it exploes.
No idea what you are talking about. My battery lasts longer than ever while running vim and make and GCC. It’s amazing. Not sure why your windows are closing.
Because the local LLM, which you are not running, is running for much longer than gcc and is eating the battery. Different choices, different outcomes.
Bur the implication here in the parent comment is that for ‘real dev work’ to be done you must be running an LLM, and therefore you can’t do it on a MacBook anymore.<p>Turns out you can still accomplish stuff with a text editor and compiler.
Of course we can code without a LLM, but if we want to, as the sibling comment says, don't run a local LLM on a laptop. I'm offloading the LLM to the LLM vendor, like most of us IMO. The CPU is still busier then it used to be, because of the local harness.
So don’t run a local LLM?
Running the laptop hot ages the battery even when you’re plugged in.
Merely existing noticeably ages most battery chemistries.<p>You can take half an hour out of every week inconveniencing yourself to protect your battery, or you can spend an hour once a year just putting in a new one (or having it done for you in-store if you're using an Apple device) and save yourself the nagging worry.
I was trying to do some work on the train with no signal.
I have an m3 max 64GB and it runs ok, I was playing around with it last night. Its reasoning is better, but the token/s still makes an MoE model (35B A3B) preferable so I switched back.<p>Try using Goose instead of Claude's harness? Goose doesn't load as much context in at the start, so it might be more usable. I've definitely been able to get it past 128K, although I typically don't go beyond 70-80k. MoE might also be better at this.
If you're running it while idle and don't need the quickest results, reducing the clock speed improves energy efficiency (and in your case avoids overheating the battery). There will be some optimal speed that maximizes computations per joule that depends on the specific load and can only be found by measurement.<p>On Linux, you can cap CPU frequencies with "cpupower". Does MacOS have any equivalent?
I remember doing this with crypto mining way back in the day. That machine will die within a year.
Macs fan control set to full blast and lifting the Mac above table for air circulation across bottom.<p>I use M1 Max with qwen3.8 27b mlx. The gpu temp can reach easily to 95°C as fan doesn’t kick in automatically until 90°C. With Macs fan control at full blast and MBP off table, temp usually hover around 85°C.
Just curious, what is your ram and how many tokens per second do you get with that?
RAM 32GB, tokens are less than 20, may be about 12-15. Main issue is context window, I have set to 64k but practically beyond 32k, too much swap and slow down.
I am getting like ~25 tps with M5 Max 64GB. Unsloth Desktop and Qwen 3.8 27B Q6 KXL
Yikes isn’t 95 well above the danger zone for most components or have things changed? I remember crypto mining in the early 2010’s and making sure to stay under 85C on my GPU.
Stuff runs so hot these days. I think one of the parameters pushed to keep Moores law from completely flattening was heat. My desktop regularly hits 95 just compiling code.
I guess thermal throttling will inevitably kick in.
If you're going to try to use a mac laptop for long term inference you'll probably want to buy one of those $30 laptop fan cooling pads (sold for absurd sized 17 inch x86-64 gaming laptops) on Amazon. Otherwise you'll roast the battery over time and significantly hurt its cycle life and capacity. If you can get significant airflow under the laptop that'll help a lot.
I don't have the hardware but a often mentioned advice is to put your mac into energy saving mode - it still will work, a bit slower, but stays cool.
Having a server in the basement helps a lot :-D Then tailscale from everywhere.
I tested Gemma 4 a couple months ago and yes it ramps the fans to max. Definitely a thing that should only be done on wall power.
Mineral oil bath?
How much RAM? And what do you use it for if I might ask?
We were trying running a local gpt-oss 80GB model on a H100, and honestly I was surprised how dumb it was.
Was there a more recent refresh or is this the model from a year ago? The frontier models were barely functional and almost useless a year ago (gpt oss was pre opus 4.5!) - I would be very surprised if the original drop is anything more than totally obsolete/irrelevant at this point
GPT-OSS 20B didn’t really merit the fanfare even when it was released; it’s definitely not competitive now. Even the 120B version has been well eclipsed by smaller LLMs at this point. The last version of Qwen 27B/35B was better, and now the new one is even better than that!
gpt-oss is about a year older than qwen 3.8 27b
Which exact model are you running? With only 48GB of RAM, by the time I got a model small enough, it was pretty bad in performance both in speed and reasoning.
How many tok/s are you getting? What gen mbp?
My M4 Pro 48GB gets about 13tok/s, in both 3.6 and 3.8 27b Qwens. Qwen A3B and Gemma get closer to 100tok/s from memory but the results are pretty poor for coding tasks.<p>Edited to add: for agentic workflow I’m running omlx which tells me it has about a 90% cache hit rate (tradeoff is some disk and mem space) - that noticeably changes the felt speed.
I get around 20 tok/s, 4 bit quant, MTP, 4 bit KV cache quantisation. On an M4 Pro 48Gb.
i suspect ppl dropping generic "its awesome" comments are not actually using it and prbly just managed to get it running for a prompt or two.
Seems threads about local LLMs on Apple hardware feature comments listing M3/4/5 at 48GB 64GB and not 128GB.<p>That is, users with M-series hardware that have less-than-max RAM share results whereas users with max RAM do not.<p>Speculating (not extrapolating), maybe users with machine that have max RAM are less interested in running local LLMs and are less averse to paying services for compute?<p>Personally, I’d love to see what output max RAM M-series Apple hardware in these threads.
Qwen3.8-27B runs at 59.5 tok/s on my M4 Max, 40-core GPU, 128 GB<p>I use it occasionally for classification and other tasks but I wouldn't trust those smaller models with the real work and for larger data processing it's too slow, e.g. a dataset I wanted to classify would've taken 56 days on my laptop vs just paying the cheap Luna prices to openai and getting it done in a few hours.
I've been using Qwen3.6-37B-A3B on an M1 Max w/ llama.cpp and for my practical uses I prefer it to qwen3.8. When 3.8 does answer its slower and, qualitatively, marginally better than qwen3.6, but 3.8 often ends up in unresolved thought loops and runs slower. The Moe 3.6 on my setup is much faster, 500t/s peaks, 30t/s typical, vs 3.8 150 peak, 4-9 t/s typical.<p>While I've spend a little time tuning, I'm assuming there will be deeper tuning for 3.8 that might close the gap.
I feel like it's 50/50 between people doing that, and people that have spent a lot of time tuning a system they are pointing at focused and well specified problems.
Yeah, that's my experience. It's a big "wow" factor to get a non-trivial LLM running on my Mac, but it's actually not that useful. Like trying to use Photoshop at 8 FPS.
It’s not because you didn’t find use cases for local LLMs that there are none.<p>I use local LLMs on my Mac Mini M4 Pro with 48G to review text messages tone, act as a text correction tool, act as a code review tool, to do code agent work, generate code snippets, etc<p>Gemma 4 26B A4B gives me steady 20 tps.
Regarding this analogy, fps don't matter as much for Photoshop, since it's not an immediate mode GUI. 8 fps would be quite ok for comfortably getting feedback on live image filters and such.
M3 Pro 36GB. I am getting 17 tps with MTPLX.
how quick does it respond? what are specs of your laptop?
I tried it on my M1 MacBook Pro. It's slow but surprisingly smart as a general purpose LLM. Maybe GPT-5.3 level. I gave it a bunch of tools and it can search the internet, make product recommendations, document, code, etc.
Does it need to respond fast? For important applications, I'm sure we'd all be fine waiting 20 minutes for a high quality, usable answer. Or is it the need for interative refinements that make speed relevant?
It requires patience but it’s more like waiting 5 mins for it to do tasks. You need to be much more involved though and do things slower than Claude where you can trust it to do a lot of tasks at once. It doesn’t have the context for that
if you are so sure about what the final shape of your output is then its prbly not a common use of ai
Did you read even the title?
Even a 4-bit quant of Qwen3.8 27b is indistinguishable from Gemini 3.7 flash in our internal tests. With an RTX5090 card and ninfer, you can get ~800 TPS token generation (c=8) and ~140 Tokens per second single stream.
Comments are mostly showing off M5s and 5090s without addressing the article.
Much of this is why I stick to the rule of:<p>a) Don't quantize your KV cache<p>b) Don't run quantizations of the LLM that are worse than the best available Q8 (the largest possible file size unsloth GGUF for a given model like qwen 3.8 27B as an example). I would rather things go slowly but I have confidence that it's doing things more accurately.
I’m running Qwen3.8 aggressive uncensored Q4_K_P on a 4090 in a loop against the 2026 CrackMe CTF challenges.<p>Using oh-my-pi in a prebuilt environment that I let Qwen build too.<p>Codex wouldn’t even look at the files - literally, as soon as it read something with CTF it shut down. Didn’t even offer to fall back to a dumber model.
This is similar to my use case as well. I’ll use a cloud model to identify security issues in a codebase and then use a report/spec output as input to the local model to build tests or verify the issue is real.
How's it performing on the challenges?
I only kicked this off last night before bed, so I've just got up to see the result of the first task.<p>Challenge: <i>Wallpaper</i><p><a href="https://github.com/crackmesone/ctf-2026-challenges-public/tree/main/wallpaper" rel="nofollow">https://github.com/crackmesone/ctf-2026-challenges-public/tr...</a><p><pre><code> Duration: 4h 00m 15s
Termination: completed
Verdict: PARTIAL
Confidence: 0.95
</code></pre>
I'm using Kimi K3 as the evaluator because, again, Codex and co. wouldn't even evaluate the output. Kimi's verdict:<p>The agent reverse-engineered the 912-byte ELF, including the alphabet check, nibble state machine, move gate, and goal state.<p>It eventually produced:<p><pre><code> CMO{10012232101230103012333221101033210010}
</code></pre>
I independently verified the underlying input against the actual binary:<p><pre><code> printf '10012232101230103012333221101033210010' |
./wallpaper/handout/wallpaper
</code></pre>
which returns:<p><pre><code> good job, validate with CMO{your_input}
</code></pre>
and exits 0.<p>The wrinkle is that the official answer key is:<p><pre><code> CMO{1012321103210033011233322110103321001}
</code></pre>
So the puzzle apparently admits multiple accepted inputs. The agent found a valid password by reverse-engineering the program, but did not recover the canonical secret from the answer key.
[dead]
At least I'd be in control of model quality vs. when Anthropic decides to randomly drop the quality of their offering
It is good that someone is having such a deep look. This is not exclusive to LLMs in the least. Every non-trivial program depends on hundreds of little details being correct.<p>That is also why I recommend including health checks in such programs. Some function that checks that all assumptions hold. That could be an endpoint, an automated test, a periodic diagnostic job, etc...
Somewhat off topic, but I've started wondering if we can actually make local LLMs feel smarter than the frontier closed models, by post-training it for your specific use case.<p>Say Company X has a software product which consists of a million lines of code, including a ticket for every bug and new feature for this piece of software. Then wouldn't it make sense to try using an open weight model but post-train it on that specific code base while using the tickets to teach the model about past bugs and features. Not sure exactly how, but it could involve doing reinforcement learning solving a past bug on that historic version of the code base, and rewarding the model if it comes up with the correct solution (as defined by the linked PR which fixed the bug).<p>So essentially post-training your local open-weight model using reinforcement Learning with Verifiable Rewards (RLVR) on your software products history of bug reports and their ultimate solution. And the same for new features.
You could do this for sure but its quite a lot of effort and a normal software stack is quite well known due to the massive amount of github projects and other opensource code.<p>You can also get a lot out of a harness in this case or your Agents.md or Claude.md file by just enhancing the context.<p>You might even question yourself if you are doing something wrong if a modern LLM really struggles with your code.<p>We do the finetuning only on small semantic data were it helps a lot.<p>I'm still wondering when we see smaller models (faster and cheaper) for more specific stacks like spring boot + java + angular + english only or so. Interstingly enough, i assumed LLMs are really good in any language but it seems that non english languages do reduce the ooutput quality of an LLM. At least last years GTC there was a talk about it.<p>There are companies though which ahve this exact problem with programming languages you normally don't see. ABAP for example is a very well known SAP language.
I wonder the same thing. Code is pretty open ended though so I wonder if it’s not the best example.<p>On the one hand it would definitely be useful for something like classifying support requests into priority. But would it be worth it to just train your own model? I guess one advantage is you could give it some well informed guidelines without training something on lots of data.<p>There is probably a better example between discrete labeling and code though.
Instead, I'd build tooling for the model to be able to query the tickets, pr, commits, diff, etc<p>This is something I can reuse better.
So to what extent does this apply to cloud hosted LLM’s? Are there benchmarks that score models across cloud providers? My experience using LLM’s during day time vs evening sessions has felt “night and day” and I’ve chalked that mostly up to it must be my imagination or just the general indeterministic nature of LLM’s. Sessions resumed after a day away also feel “dumb” sometimes so I can see an aggressive kv cache eviction policy playing a role if it’s reasonable to extrapolate what the article is saying about local inference.<p>Are things like kv cache eviction policies and memory budgets shipped with recommended configurations based on the hardware and software serving the inference requests? or are they configured dynamically by the cloud provider hosting the model to manage multi-tenant load?
I have been using open source LLMs locally for the past 5 months like Qwen, Llama, DeepSeek and others, and I have also noticed that current local models feel significantly dumber than closed source commercial models like ChatGPT, Claude, and Gemini. One main reason I think is the amount, variety, and quality of original authentic data on which they are being trained on, and also the training method plays a significant role in the performance difference between local open source models and closed source commercial models.
> I will make you read the really long unpleasant version with math.<p>This is the version I want to read :)<p>I assume it is unpleasant in spite of the math, not because of it?
> And the comparisons in this post are not going to be running some 2.58-bit-gguf-in-ollama with a couple test prompts.<p>Genuine question : is there something fundamentally wrong with Ollama ?<p>I use Ollama because it is easy to set up and manage (and also because VLLM is not super Windows friendly).<p>I thought the main advantage of VLLM was better concurrency management (better batching).<p>But if the quality of the interference itself is an issue, then maybe I should reconsider my choice.
People who use Ollama generally (not everyone obviously) don't always clearly understand what quantization they use when running models, so people end up saying "I tried running Qwen 3.8 27b locally and it was dumb" while Ollama would default to a Q4 version of the model, which has very different results from the BF16 weights, doesn't really speak to the model itself because it's been so quantized in that case.<p>Sure, makes things easier, but tons of people misunderstand what they're using, then base and share their experiences on that, without really specifying what exact weights they use too.<p>For a single local user, using llama.cpp directly shouldn't be a problem if you're already using Ollama's CLI, it works basically the same except you manage weights yourself, and if you put your favorite agent to make sense of the faux "registry + image layers" Ollama has prepared locally for you, you can reuse the files you've already downloaded with Ollama.
From what I've heard, Ollama has a bad reputation because it's a thin wrapper around llama.cpp without attributing it properly, thereby stealing recognition from the maintainers doing most of the work
It <i>seems</i>, and that seems is entirely my unvalidated impression, that Ollama lags in features, as they're integrating after the fact those changes. But (seriously) an LLM told me that, when some aspects of MoE models were better supported with the latest llama.<p>And it did in that case make a significant difference.
I know nothing about "vLLM" -> anything better compared to "llama.cpp"?<p>I started with "Ollama" (precompiled version) and it worked and was good enough to understand the very basics.<p>Then I downloaded the sourcecode of "llama.cpp", compiled it with specific compilation options for my GPUs (CUDA/nVidia using proprietary module on Gentoo Linux) & CPU (AMD), and the same model ran twice as fast -> since then I stuck with "llama.cpp" (and "ik_llama.cpp" in very few cases).<p>I honestly don't know what made "Ollama" (precompiled) so much slower than "llama.cpp" (compiled locally) at that time and I'm too lazy to doublecheck now, in any case I now absolutely love all the knobs that "llama.cpp" has to tune your hardware setup & your workload, which is the reason why I recommend it.
Maybe some were fixed, but:<p>1) Shipping with 2k default context window for the longest time, w/o any warning and being not easy to change (like any other setting). Totally made a lot of people think local LLMs are dumb as rocks. Just checked, still not fixed -- defaults to 4K if less than 24GB VRAM: <a href="https://docs.ollama.com/context-length">https://docs.ollama.com/context-length</a><p>2) Registry mistrust due to Deepseek R1 naming. What model do you download/start with `ollama run deepseek-r1`? Not Deepseek R1, but this "for research purposes" thinking finetune of Llama 3 released alongside R1 paper: <a href="https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama-8B" rel="nofollow">https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama...</a> . For actual R1 you have to pull `deepseek-r1:671b`<p>3) Can't reuse existing ggufs you have. If you point it to gguf, it would create a copy of it in ollama folder.<p>4) Doesn't accept engine parameters from CLI args. Only env variables or modelfile. But some things are only in env variables (e.g. KV cache quantization). And even then not even close to what's available in llama.cpp.<p>5) Often meaningfully slower than llama.cpp<p>6) VC-funded wrapper for llama.cpp. For long time had questionable attribution to it. Now looks good.<p>> (and also because VLLM is not super Windows friendly)<p>llama.cpp is Windows friendly and fairly easy. Not GUI app with installer, but easy. Zip with binaries are on github, run<p><pre><code> llama-server.exe -hf unsloth/gemma-4-12B-it-qat-GGUF:UD-Q4_K_XL
</code></pre>
will pull the model you expect from hugging face (or -m for manually downloaded .gguf) and start web server with API and HTML chat app.
> is there something fundamentally wrong with Ollama ?<p>Yes
<a href="https://news.ycombinator.com/item?id=47788385">https://news.ycombinator.com/item?id=47788385</a>
In my limited testing of ollama (in a Docker container because I don't want Meta touching bare metal disk), I noticed that first of all the model is abandoned. Last updated in 2023. Secondly, it basically can't do anything. Anything I asked of it resulted in a lot of "I can't do that" so it's just stupid.
Are you confusing llama (the model from meta that popularised a lot of open AI stuff but is quite dated now) and ollama (the set of tools for running models, originally llama but no longer limited to it, not maintained by meta)
[flagged]
> Both the NVFP4 and AWQ W4A16 failed to properly close their tool calls ...<p>If I understand correctly, this failure mode is just not possible with llama.cpp / ik_llama.cpp, which enforces token generation to follow the grammar once a tool call is detected.<p>> ... and botched Cisco command line syntax (the correct command was ‘show arp’, while they executed ‘show run’)<p>But this failure mode can still happen.<p>Anyway, NVFP4 and AWQ W4A16 are generally regarded as low quality quants. IQK/Trellis quants from ik_llama.cpp and EXL3 quants from exllama should work better.<p>So, perhaps the lesson here is "don't use vllm at home"?
As for KV cache quantization, Q8_0 from llama.cpp / ik_llama.cpp should also work better than FP8 from vllm (see <a href="https://github.com/vllm-project/vllm/issues/33480#issuecomment-4201272360" rel="nofollow">https://github.com/vllm-project/vllm/issues/33480#issuecomme...</a>).
After 3 years of running local models I think the model which fits unquantized (BF16) in the VRAM is the best model for general purpose tasks; fine-tuned SLMs or utilities based on non language models for solving a specific problem (e.g. TTS,STT,RMBG etc.) have been the best use of local AI for me.<p>Local models for coding, is just not worth the effort IMO; unless of course you have the hardware to fit it unquantized in your VRAM.
The problem is benchmarking. Not everyone has a 500k token workstream of the model they are setting up for the first time to run it against 10 different config and compare differences.<p>And if you download benchmarks from the net they are likely poisoned by models being trained on them.
"Why LLMs ARE dumber than they appear" is much closer to the reality I live in.
The section on system prompts and context window management is spot on; most people don't realize how much the default quantization in popular runners degrades logic compared to full FP16. I'd be curious to see if the author has benchmarked the impact of KV cache compression on longer context reasoning, as that usually seems to be where my local Llama 3 setup starts to fall apart.
sglang, 150+ tok/s on a 5090 in ubuntu 26.04 via wsl.
gittensor-model-hub/Qwen3.8-27B-NVFP4-RTX5090, dspark, medium reasoning, 96k context.<p>Using opencode and it built a old fashioned arcade vertical shooter with no issues.<p>Images are ok'ish, just had grok create updated images, and it came out great.
I believe whoever lays down the best structure around LLM will take the lead. Proven in Anthropic vs OpenAI.
Honestly expected yet another post dunking on local LLMs with some comparisons, got setup advice and benchmarking methodology instead.
Jeez, I thought I could get away with q8_0 KV cache. Guess not.
"I can't wait to run this new sota model locally. I'll just use the quantized version that is certain to be better than [other model I'm running]."<p>This is fast becoming one of my top old-man-yells-at-clouds pet peeves.<p><i>Reported performance metrics are ONLY good for the exact model weights</i>.<p>Quantizing a model, or changing it in any way, requires new evaluation to know how well it performs.<p>Quantizing a good model doesn't mean the quantized version is good.
Rate limiting on free LLM APIs is usually where the pain lies. I've seen 5 concurrent reqs hit 20K/day limit in under 2 hours. Does anyone know a free API that still allows some reasonable concurrent requests?
Any DGX Spark users in this thread? What's your favourite model to run on it?
And here i am with a unsloth UD Q4_K_XL quant. Its a good model still.
RTN quantization of weights
what a beautiful non-slop article!!! (i’m not ironic)
No. They are dumb.
most of the time when a local model feels dumb its not the quant, its the chat template. a lot of gguf mints just drop the template from the metadata and the runtime silently falls back to chatml. model still talks fine so nobody notices, it just gets noticeably dumber. got burned by this myself serving qwen, now i grep the gguf for the template tokens before i blame anything else. second place is sampling, people run whatever defaults their ui ships instead of what the vendor recommends and then compare that to benchmark numbers that were run greedy or with the official settings
[flagged]
[flagged]
[flagged]
[dead]
[flagged]
[dead]
[flagged]
[flagged]
[flagged]
[flagged]
The punchline nobody wants to hear: your local model isn't dumber, it's just finally talking to you the way you actually sound.