Skip to content
Tech News
← Back to articles

Why your local LLM feels dumber than it is

read original more articles
Why This Matters

This article highlights the variability and challenges in running local large language models (LLMs), emphasizing that differences in hardware and software implementations can significantly impact performance. Understanding these disparities is crucial for consumers and developers aiming for reliable and effective LLM deployment. Recognizing that all local setups are imperfect encourages more realistic expectations and better benchmarking practices in the industry.

Key Takeaways

Quick Introduction

We have all been on forums, chats, reddit, discord, youtube, or somewhere and heard “Oh! Model XYZ is AMAZEBALLZ!zomgwtfbbq” then downloaded it (or more likely, some quantized form of it) and said “eww… This sucks!”

This post is going to be a rather technical series of experiments to demonstrate the impact of implementation-specific hazards with inference. I will be using the term “reference implementation” to describe the lab that published and offers first-party hosting of their models and posts original benchmark claims. Their hardware will be different than yours. Their software will be very different than yours. And the comparisons in this post are not going to be running some 2.58-bit-gguf-in-ollama with a couple test prompts.

I am intentionally glossing over entire emerging fields of study, mountains of research papers and lit review to make this more approachable for you the reader. Don’t nit pick my oversimplifications or I will make you read the really long unpleasant version with math.

Your local implementation sucks. But that’s ok, because everyone else’s does too.

Every single instance of hardware and software running an LLM today is a little bit different. or a lot different when it comes to some cases. The average home lab user might be mixing multiple different generations of GPU. The chips on those have different instruction sets. Those instruction sets will implement and execute math to calculate your next token differently from any other person, even when running the same exact weights.

So that begs the first question: How much does your particular setup suck? Turns out there are a number of different ways to go about measuring that.

The practical approach is straight forward. Run standard benchmarks. A variety of them. terminal bench, hle, SWEthis, HELLAthat, MMLU-whatever… take your pick. Just make sure its representative of your actual workload/use case. Do not crank temperature to zero and paste in 3 test prompts then call it good/bad. Zero-shot tests are not a good analog of most agentic tasks. You need long-context tool-calling and domain specific knowledge evaluations to figure out where your setup is weak when running the same weights as somebody else replicating those same benchmarks.

But the purely mathematical answer is where my focus is going to begin because as @wendell said:

Math is Math!

... continue reading