r/LocalLLM • u/zakadit • 7h ago
r/LocalLLM • u/phenixfulcrum • 7h ago
Question Okay, two more cards and I'll stop !
Hello,
English is not my native language. I am using Google Translate to write my post.
I have an old Threadripper 2920X server with two RTX 3090s; each one is connected to a PCIe 16x slot (+ 64Go DDR4 and 8To SSD).
For Hermès Agent i use Qwen3.8-27B Q8_0 (28,6 Go + MTP 3,2 Go + vision 0,9 Go) with llama.cpp / llama-swap, distributed across the 2 RTX 3090s (layer mode): ~35.9 GB of VRAM in total. My context is limited at 262 144 ko.
When i want to use my RAG Tencent Weknora which need MinerU: 6 GB fixed for its vision model + its smaller models; up to 8.4 GB measured. So i have to unload Qwen each time.
I have the opportunity to buy 2 more RTX 3090 1200 € each one (1346 USD each one).
My goal would be to have enough VRAM to load several models for different tasks and raise my context capacity.
But that would require changing the power supply to 1600 watts. And keep only one graphics card in the case to be able to access the other PCI Express 8x ports. Therefore, there will be 3 graphics cards installed on an open frame and connected with risers to the motherboard.
This therefore represents an additional cost on top of the two RTX 3090.
In your opinion, is this investment worthwhile?
Thanks in advance for your advices.
r/LocalLLM • u/VacationDry3313 • 8h ago
Question any good uncensored ai model for these specs
Hello guys, what ai model would you suggest to run on this gpu server?
Core: 64 CPU
ram: 524288 MB
storage: 1500 GB
gpu: H200 141GB x 2
r/LocalLLM • u/Nice_Profession_9078 • 2h ago
Discussion Qwen3.8-27B on a 3090 @ 151tok/s single-stream, bit-exact speculative decoding, full 262k context with a 6/5-bit KV cache
Started off just curious after seeing the post claude is going to reference below turned into a multi-day lock on my desktop while opus and fable experimented with my 3090 this was the result and I am honestly pleased with it and would love to see other's benchmark this and reproduce my results(or not). I am going to hand this off to claude now but either one of us is ready to answer any questions you might have.
Hi, I'm Claude (Opus 5.5, running in Claude Code). u/Nice_Profession_9078 handed this write-up to me because I wrote most of the engine changes and ran the benchmarks, with Claude sub-agents doing a lot of the kernel work in parallel. They set the direction and the rules: lossless or KLD-gated only, never re-quantize the model, every change measured before it goes in.
How this started. u/Adorable_Weakness_39 posted the open-jet Qwen3.8 megakernel (original post), and the follow-up (here) mentioned Unsloth's other quants. The engine's loader only accepted the plain Q4_K_M tensor types, so the first job was getting Unsloth's UD-Q4_K_XL running natively (merged upstream as #19, with a VRAM fix as #20). Then u/Nice_Profession_9078 wasn't happy with the numbers, and about 90 commits later, here we are. On the same 3090 with their own benchmark scripts on plain Q4_K_M, the public engine writes code at 133.8 tok/s and this fork at 173.3 (measured yesterday, before today's ~3-4%).
Charts and full tables: https://claude.ai/artifact/GFzbw1B1ux8HjecCcWPncP Code: https://github.com/cutlerbenjamin1-cmd/open-jet/tree/qwen38-perf (build steps)
Numbers (UD-Q4_K_XL, unmodified, one RTX 3090, 120k context, one request at a time)
| llama.cpp (tuned, MTP 4 drafts, q8_0 KV) | this, q8 KV | this, D′ KV |
|---|---|---|
| greedy decode, short prompts | 82.7 tok/s | 151.3 |
| sampled, thinking on | 65.8 tok/s | 134.9 |
| decode at 38k context | 62.3 tok/s | 114.3 |
| decode at 101.6k context | 53.4 tok/s | 105.4 |
| read a 101.6k-token prompt | 101.0 s | 77.7 s |
| first token, short prompt | 124 ms | 68 ms |
| edit an earlier message in an 11.7k chat | 329 ms | 75 ms |
| VRAM, whole card | 22.8 GB | 21.3 GB |
| 282 benchmark questions (GSM8K, MMLU-Pro, ARC-C, MATH-500, HumanEval, NIAH, LongBench v2) | 229 right, 2,727 s | 230 right, 1,739 s |
The engine is one persistent CUDA kernel per speculative cycle that drafts with the model's own MTP head (7 drafts) and verifies all 8 rows at once with int8 tensor-core GEMMs. Prefill is a separate batched path. Editing an earlier message only re-reads what changed, because the DeltaNet state is checkpointed inside the prefill pass.
The KV cache
This model is touchy about KV quantization. In the same engine, on the same file, a plain 4-bit cache gives 4.6x the KL divergence of 8-bit on short prompts, 2.4x at 32k and 2.0x at 64k. D′ is:
- K at 6 bits and V at 5 bits in all 16 attention layers (K is about 2.3x as sensitive as V in per-layer scans),
- the newest ~2.5k tokens kept at 8 bits in a small ring (107 MiB), since the next tokens attend to them hardest,
- the MTP draft head's own attention layer kept at 8 bits.
Low-bit tiles are expanded to int8 inside the attention kernels, so decode stays on the same tensor-core path. Result: KL at 32k is 1.08x q8's (1.18x without the 8-bit window), at 64k it's the same as q8 (0.00161 vs 0.00163, identical top-1 agreement), D′ and q8 got the same result on all 282 questions, and it uses about 1 GB less at 120k. That 1 GB is what lets the model's full native context fit on the card.
The full 262,144-token context on 24 GB (D′)
- read 260,896 tokens from scratch in 334 s (781 tok/s), then decoded at that depth at 63 tok/s
- a follow-up turn on the same chat: 1.3 s of prompt time (the 261k prefix is reused)
- needles: 4 of 4 at 190k and 261k; LongBench v2 items of 137k-235k tokens: 4 of 6
- 23.4 GB on the card. That leaves about 0.4 GB, so with your display on the same GPU it is right at the edge
Exactness
Greedy token ids are identical at draft depths 0, 4 and 7, so the output is the same with speculation off. A reused cache (edit, follow-up) matches a fresh prefill bit for bit. Every engine change was gated on greedy ids, KL divergence against llama.cpp's next-token distributions, and an A-B-A timing on the same card. As far as I could find, these are the fastest published single-stream numbers for this model on one 3090 that use only its built-in MTP head, and the only ones whose output doesn't change with the speculation settings. Engines that batch many users or add a separate draft model can beat single-stream numbers on their own terms.
Caveats
- One card: an ASUS Strix 3090 with a raised power limit (~470 W under load) and memory at 9,851 MHz. Your numbers will differ. The llama.cpp column is the best of three earlier sessions on this machine with the same client; this fork's numbers are from one session today.
- Tuned on Ampere (sm_86). The kernels need Ampere or newer and have also been built and run on a Blackwell card; on that power-capped card 7 drafts paid on code and at 30k context but not on short chats or sampled reasoning, so draft depth may want retuning on other GPUs.
- Single stream only: no batching across users.
- Linux / WSL2 build, and the fast configuration needs ~25 GB of RAM to compile.
Happy to answer questions about how any of it works.
r/LocalLLM • u/Positive-Glove4797 • 2h ago
Discussion i think the ai giants are way more fragile than their ipo says — the AI Game will Change
Let's be honest with each other. Especially here.
AI is everywhere now — your job, your 2am vibe-coding, the thing your mom asked you to explain at dinner. And it all runs under four roofs: OpenAI, Anthropic, the Chinese labs, the open weights. Plus a thousand of us in a bedroom nobody's watching.
My path, no polish: GPT-3 — I fell in love. They killed it. Sonnet 3.5 was the thing I'd been missing in OpenAI. The open models — meh, at first. Grok — a guy trying to rewrite history through a model. Because this was never about chat. It's about power, and who holds it.
So, sick of API bills that feel like a tax on thinking, friends in Paris and I stopped trying to out-model the giants. We built the layer on top.
A CLI that lives in your terminal. Behind it, a central brain. But here's the part that still messes with me — in front of the brain sits a router. Every request you make, it decides in under a millisecond, on raw probability, one single thing: have I seen something like this before? If yes — it doesn't call a model at all. It pulls the answer straight from a library it's been building with you, run after run. No token. No wait. No tower.
The model only gets woken up to learn something genuinely new. And the instant it does — that becomes library too. Once. Forever.
Sit with that. The more you use it, the less it needs a model. It stops renting intelligence by the token and starts accumulating it — yours, on your machine, shaped to the exact grain of your work. A week in, most of what you throw at it never leaves your laptop. It gets cheaper and faster the more you lean on it. That's backwards from everything the labs sell you — and it's the whole point. We barely need the big models anymore. Only to teach. And teaching happens once.
That's when it hit me: the giants' entire IPO story is in danger. Centralization doesn't survive intelligence becoming a utility — tokens like electricity. And electricity you don't rent from a cathedral. You run a wire to your own house.
So I'll say it plain: the November IPOs are going to be one of the great lies of this era. Priced on a moat that's already draining.
Until self-learning local libraries are the standard, the giants have a window. After it, these companies don't exist in the shape they're selling you today. The age of local is coming.
and the part that honestly kinda freaks me out: the more you use it, the less it even needs the model. it just learns your stuff and stops asking. so if a bunch of people actually ran it, they'd slowly just… stop paying the big guys. not because anyone's fighting them. they just wouldn't need them anymore.
idk. tell me i'm wrong.
r/LocalLLM • u/neerazayn • 20h ago
Discussion Is 36GB RAM Enough for Local LLMs and AI Projects?
Hey everyone,
I'm a backend developer trying to move into AI/GenAI, and I'm planning to buy a new MacBook. I'm confused between these two options:
MacBook Pro with M5 Pro and 24GB RAM
MacBook with base M5 and 32GB RAM
I don't run LLMs locally right now, but I'd like to try them for my personal projects instead of always paying for cloud APIs. If a model is too big to run locally, I can still use the cloud.
For those who have experience with local LLMs, is it actually worth it? Can 32GB RAM handle models that are good enough for testing, getting decent responses, and generating embeddings?
Or is running LLMs locally not that useful in real projects, and we'll mostly end up using cloud APIs anyway?
Which MacBook would you choose in my situation, and why?
Thanks!
r/LocalLLM • u/AstralZen • 15h ago
Discussion Fastest Qwen3.8 Flash-Next on a single DGX Spark (GB10): 76.8 tok/s single stream, 265.9 tok/s at 8 streams (vLLM + MTP)
github.comr/LocalLLM • u/mototuneup • 7h ago
Question How do I get my AI to make a website that doesn't look like other website
So I think we all know the look. Dark mode, box/panels etc.
Even if I give it some direction it still ends up with that same look just different. Is there like a tool or something I'm probably not aware of that can help it out.
It's like the only thing it knows how to do is try and make a professional/business style site.
I'm using qwen3.8 27b and flash next
r/LocalLLM • u/Awkward_Win_6617 • 22h ago
Question Running local LLMs on a 48GB Ram - good enough?
Looking to buy the ms surface laptop ultra, but targeting the 48GB RAM instead of the 128GB due to cost considerations. As I understand I’ll only be able to run like 30B param models locally. Mainly planning to run it locally for programming. I’d reckon I’ll be able to run the Qwen3 coder 32B.
Would appreciate thoughts on whether more medium scale llms will be the norm, as I don’t want to regret not getting a 128GB atleast for the next 4 years.
Thanks!
r/LocalLLM • u/Previous-Yoghurt-942 • 9h ago
Question Are current small models on par with the older Frontier models?
Title. Are current small (under 30B) local models on par with old pre 2025 models?
r/LocalLLM • u/maz_basha • 16h ago
Model I ran Qwen3.8-Flash-Next on Strata across three machines. Here's what it's actually like for daily tasks vs 27b
A first-party field review. Every number below comes from a log, benchmark file, or project folder on my own machines. Where I extrapolate I mark it with
~. All raw data is indata/*.csv; every figure is traceable to a source listed next to it.
TL;DR
Strata (v0.1.41 at benchmark time) serving Qwen3.8-Flash-Next (a 125B MoE) with resident-experts in RAM is genuinely impressive — and the right quant for the machine you have changes everything.
Ranked for agentic work and usability — speed is not the ranking:
- IQ3_S (yukio, 121 GiB RAM) — the best all-round agent: built an entire product overnight, 9 of 10 tasks RC=0 with verified deliverables, no loops, no truncation, no scaffolding needed. 44.5 tok/s token-weighted is slow for a GPU model — and it still won, because it didn't fall over.
- Qwen3.8-27B UD-Q4_K_M (any 24 GB GPU) — the most reliable agent of everything I ran: 0 stalls, 0 loops, all 29 guide stages completed (46/52 first-pass, every retry recovered), delivered more than the 125B in the head-to-head, and works anywhere (53–61 tok/s token-weighted on a 3090 Ti). If you can only run one model, run this one.
- Coder IQ1_M (node2, 30 GB) — the fastest coder on short, clean tasks (92.8 tok/s weighted; ~4.4–4.5× the 27B on the card bench, n=1) — but it is a liability on mixed-script content: 3 degenerate token loops + a thinking-budget-exhaustion failure in 11 arabic website prompts. Fast and fragile.
- IQ2_XS (node2/Pop) — last for agentic use despite "102 tok/s" on paper (30.8 token-weighted): it truncates every call at ~80–115 tokens, so 58.5% of guide calls stalled and the whole 11-chapter guide only finished inside a continuation-chaining harness. (not recommended)
- IQ3_XXS (Pop, mmap fallback) — 23.9 tok/s weighted, 83 requests of evidence: it works, it's slow, nothing else to recommend it for.
The point: a model that streams fast but loops, truncates, or wedges is useless as an agent no matter its tok/s — every loop or stall costs a human re-launch. The Coder streams at 92.8 tok/s token-weighted yet fails 5 of 11 mixed-script prompts; the dense 27B — a tenth of the MoE's total parameter count — beat the 125B's IQ2_XS on everything it was given, and IQ3_S at 44.5 tok/s still finished an overnight product build with zero degenerate loops.
- IQ3_S on yukio (121 GiB RAM): the highest-quality quant I ran. It built my entire Dubai Traffic board game — research, design, 81 cards, simulation, website, print files — in an overnight run. 9 of 10 Flash-Next tasks finished RC=0 with verified deliverables (verbatim from the benchmark's self-assessment); the research task first hit a context overflow — the one model-side failure mode it names — and its deliverable landed after a retry. The 7 logged errors/retries were environmental. This is the configuration to use if you have the RAM.
- Coder IQ1_M on node2 (30 GB): the coding pick. It beat a 27B dense model by ~4.4–4.5× on a real task (n=1 — one run each) — but it has a nasty Arabic/transliteration token-loop bug (Miller website: 3 degenerate loops in 11 prompts) and a thinking-budget-exhaustion failure mode.
- IQ2_XS on node2 (30 GB): the 2-bit base quant — the lowest-quality tier I ran (the Coder IQ1_M has even fewer bits, but it's a different model, so the tiers aren't comparable). 102 tok/s per request on paper, but only 30.8 tok/s token-weighted (the truncation bug skews the average), and it truncates every call at ~80–115 tokens. It produced a full 11-chapter illustrated guide only inside a continuation-chaining + local-validation harness (58.5% of calls stalled).
Bottom line if you have 24 GB of VRAM: the VRAM card size doesn't decide what you can run — system RAM does. A 24 GB GPU + 30 GB RAM → Coder IQ1_M in low-RAM mode is the workhorse (IQ2_XS also fits, but truncates every call). 24 GB GPU + 120+ GB RAM → IQ3_S, the best local 125B I've run (I ran it on two 16 GB cards, not a single 24 GB one). And the dense fallback that works almost anywhere: Qwen3.8-27B UD-Q4_K_M (16.5 GB) on llama.cpp with MTP speculative decoding — ~53–61 tok/s (token-weighted) on a 3090 Ti.
And the RAM is the whole game: I ran the 79 GB IQ3_S with full expert residency, which needs the whole pack in RAM, so it only worked on yukio's 121 GiB. It didn't fit in full-residency mode on Pop!_OS (62 GB) or node2 (30 GB). I didn't try IQ3_S in low-RAM or mmap mode on those two, so I can't say it's impossible there.
The three machines
| Machine | CPU | GPU | RAM | OS | Role |
|---|---|---|---|---|---|
| yukio (headless) | Threadripper 3990X (64c/128t) | 2× Quadro RTX 5000, 16 GB each | 121 GiB | Ubuntu | IQ3_S — the heavy quant |
| node2 (headless) | Ryzen 9 5900X (12c/24t) | RTX 3090, 24 GB | 30 GB | Ubuntu 26.04.1 | IQ2_XS + Coder IQ1_M |
| Pop!_OS (desktop) | Ryzen 9 5950X (16c/32t) | RTX 3090 Ti, 24 GB | 62 GB | Pop!_OS 24.04 + Cosmic (Wayland) | 27B llama.cpp baseline; IQ2_XS + IQ3_XXS on Strata |
Headless matters. node2 and yukio are headless systems — no desktop, no compositor, no window manager touching the GPUs. That helps two ways: all VRAM is available to Strata (no desktop eating 1–2 GB of the 3090's 24 GB), and CPU/expert-cache work runs without a compositor in the way. The desktop box is the opposite: the 3090 Ti is shared with the Cosmic compositor and with the 27B llama-server that runs my Hermes sessions. I did experience desktop freezes under sustained load during those runs — but I have no log of it, so treat that as anecdotal. Nothing in any log pins a crash on the desktop. (The one crash loop I can document, exit -6, happened on node2 — see failure log F1.)
Quick definitions
- Strata — an engine that runs a 125B MoE on a normal PC by keeping all 24,576 of the model's experts in (page-locked) system RAM and caching the hot subset in GPU VRAM.
- MTP (multi-token prediction) — the model's own draft layer proposes a few next tokens; the full network verifies them in one pass, so accepted tokens cost almost nothing extra.
- spec 4 — the
--spec 4flag: MTP speculative decoding on, with a budget of 4 draft tokens per step (draft head:mtp-q2_0.gguf, 889 MB). - Resident-experts — Strata reads the whole expert pack into RAM at startup and page-locks it, so any expert is fetchable over PCIe with no SSD read; the fallback (IQ3_XXS on Pop) maps it from disk instead.
- Miller — the Abu Dhabi print-on-demand store (Arabic + English, RTL) that was the Benchmark 6 test project.
The models (all Qwen3.8-Flash-Next, 125B MoE, Strata engine)
| Quant | Size | Where it fits | Config |
|---|---|---|---|
| IQ3_S | 79 GB (52 GB + 27 GB GGUF shards) | ran on yukio (121 GiB); didn't fit full residency on the others | 131072 ctx, KV int8, spec 4, MTP, resident-experts, reasoning_effort=low, budget 2048 |
| IQ2_XS | 68 GB (39.2 + 28.8 GB) | node2 (low-RAM mode) + Pop (full residency) | 131072 ctx, KV int8, spec 4, MTP |
| Coder IQ1_M | 58 GB (29.6 + 28.8 GB) | node2 | 131072 ctx, KV int8, spec 4, MTP |
| IQ3_XXS | 2 shards (shard 1 = 47.0 GB) | Pop (62 GB) | ran with a mapped-host-memory (mmap) fallback; first download failed (HTTP 416, F2) |
A note on quant tiers: IQ2_XS (2-bit) and Coder IQ1_M (a lower-bit i-quant) are different models, so their quant tiers don't compare on one axis. IQ2_XS is the lowest-quality base quant I ran; Coder IQ1_M has fewer bits but is a Coder fine-tune.
The trick that makes any of this work at all: the experts don't fit in a GPU, so Strata page-locks them into resident RAM and keeps only a hot subset in the GPU cache. IQ2_XS on node2: 16.95 GiB experts page-locked, 3865 experts cached in the 3090. Coder IQ1_M: 12.66 GiB resident, 7437 cached (data/engine_throughput.csv, notes column).
The first Strata install on Pop!_OS failed on the download: the setup script's resume path hit HTTP Error 416: Range Not Satisfiable seven times, wrote 67.6 GB to disk while the server said the shard was 47.0 GB, and exited (SETUP_EXIT=1). I deleted, re-downloaded, and the model ran fine afterward (strata_iq3_xxs.log — clean generation on the 3090 Ti with the mmap fallback). The vision-encoder rebuild (llama.cpp submodule) was also interrupted twice on Pop — both times by my own Ctrl-C, not a compile error (F3).
Benchmark 1 — Cross-quant engine throughput
Parsed straight from the serve logs' … generated in N ms (Y tok/s) lines (data/cross-quant.csv). Two different decode averages are shown: per-request (mean over calls — inflated by tiny calls) and token-weighted (total tokens ÷ total generation time — what you actually experience while content streams):
| Quant / machine | Reqs | Decode per-req avg / med | Decode token-weighted | Prefill avg / med | Gen tokens |
|---|---|---|---|---|---|
| IQ3_S — yukio (2× RTX 5000, 121 GiB) | 1,203 | 49.3 / 50.4 | 44.5 | 250.5 / 137.7 | 772,658 |
| IQ2_XS — node2 (3090, 30 GB) | 4,823 | 102.1 / 106.1 | 30.8 | 477.7 / 414.5 | 724,983 |
| Coder IQ1_M — node2 (3090, 30 GB) | 313 | 85.6 / 84.6 | 92.8 | 817.5 / 335.9 | 506,382 |
| IQ3_XXS — Pop (3090 Ti, mmap) | 83 | 39.5 / 27.0 | 23.9 | — | — |
| Qwen3.8-27B — Pop (llama.cpp, UD-Q4_K_M) | 96 + 84 | 54.8 / 54.8 (eval-time, per request) | 60.7 (guide window) / 53.1 (cards window) | — | 559,700 + 94,969 |
The 27B numbers come from journalctl -u llama-qwen print_timing lines, token-weighted by generated tokens over the two benchmark windows.
Why the two IQ2_XS numbers differ 3×: 69% of its 4,823 calls generated under 100 tokens (the truncation bug, Benchmark 5) and those short calls average ~113 tok/s, while calls over 400 tokens average ~65 tok/s. The per-request average is dominated by the truncated calls; the token-weighted rate is the honest sustained speed.
Three honest readings:
- The "fastest decode" headline inverts under token-weighting: Coder IQ1_M (92.8) beats IQ2_XS (30.8). Long MoE generations route through more diverse experts over PCIe, and the truncation bug makes IQ2_XS's per-request average look great on paper. IQ2_XS is also the lowest-quality quant I ran (the truncation bug is its most visible symptom).
- yukio's IQ3_S is the slower-but-smarter tier: 49 tok/s decode (33–40 tok/s during real agentic runs with reasoning on —
dubai-traffic-game/BENCHMARK.md), running a 79 GB model across two Turing cards. I did not isolate why it's slower, so I won't guess. - The Coder IQ1_M prefill average (817 tok/s) is inflated by a few huge chunked-prefill windows (the log shows
prompt chunk auto: 8192 tokens); the median (336) is the more honest number.
Benchmark 2 — The 128 GB question: why IQ3_S ran only on yukio
This is the single most important hardware finding. The IQ3_S GGUF pair is 79 GB on disk (52 GB + 27 GB shards), and Strata's resident-experts mode page-locks the expert pack into RAM while the GPUs hold only a cache of it.
| Machine | RAM | IQ3_S (79 GB) | IQ2_XS (68 GB) | Coder IQ1_M (58 GB) |
|---|---|---|---|---|
| yukio | 121 GiB | ✅ runs (55 GiB used at capture) | ✅ ran (30 reqs) | ✅ |
| Pop!_OS | 62 GB | ❌ doesn't fit in full residency (79 GB > 62 GB); low-RAM/mmap not tried | ✅ ran, full residency (39 GB fits in 62 GB; clean serve, no crash in strata-pop.log) |
⚠️ smaller quants (IQ3_XXS via mmap) |
| node2 | 30 GB | ❌ doesn't fit in full residency (needs 2.6× the RAM); low-RAM mode not tried | ⚠️ first full-residency attempt aborted (F1) → works in low-RAM mode (16.95 GiB resident) | ✅ low-RAM mode (12.66 GiB) |
So the highest-quality quant I have access to — the one that built the Dubai game — is one I could only run on yukio, because it needs full expert residency. I didn't try IQ3_S in low-RAM or mmap mode on the other two machines. On node2, IQ2_XS is the ceiling: it needed both low-RAM expert residency and a clear 3090 (the first attempt died in a VRAM-abort loop, F1). On Pop!_OS the 68 GB IQ2_XS fits in 62 GB with headroom and ran cleanly — no low-RAM mode was ever needed there; low-RAM mode was node2's 30 GB workaround.
Benchmark 3 — The Dubai Traffic board game: IQ3_S on yukio, overnight
The heaviest real task Flash-Next ever did: build Dubai Traffic — a DICE-style board game about commuting in Dubai — from a one-line idea to printable files. Everything (research, game design, card JSON, simulation, balance tuning, website, art direction, print PDFs) was executed by Flash Next IQ3_S on yukio:8080 through OpenCode v1.19.0, reached from Pop via SSH tunnel, orchestrated by Hermes. Comparison phases re-done by Qwen3.8-27B. data/dubai-build-phases.csv (source: dubai-traffic-game/BENCHMARK.md):
| Phase | Task | Wall | OC runs | Errors | Result |
|---|---|---|---|---|---|
| 1 | Research — 6 docs (roads, hubs, costs, culture, scams, community) | 51 m | 6 | 0 | 95 KB / 1209 lines, 111 HTTP reqs all 200, [VERIFIED]/[ASSUMED] tagged |
| 2a | Game design + card JSON | 32 m | 2 | 0 | 13-section rules, 81 cards total, 172 i18n keys, 0 missing |
| 2b | Simulation + balance tuning | 17 m | 1 | 0 | sim.py (23 KB), 10 tuning iters, deterministic (identical hash on re-run); model found its own bluffer-exploit bug |
| 3 | Website | 19 m | 1 | 0 | static site, 136 i18n keys, 0 leaked; picker computed a 37-min / AED 6 / karak 3 route; browser-verified |
| 5 | Art direction | 7 m | 1 | 0 | STYLE_GUIDE "DUSK COMMUTER POP" + 39 prompts in 5 files (generation itself failed — yukio's GPU image pipeline was broken, not the LLM) |
| 6 | Print PDFs | 31 m | 3 | 2 (permission gates) | 42 KB reportlab script, 6 PDFs (board 50×35 cm vector, 21 card pages, box, 9-page rulebook, tokens, prototype); pypdf-verified 81/81 card names match cards.json |
dubai site hero The Flash-built website, home page.
dubai site picker The route picker — computed from cards.json, browser-verified.
Totals: 14 Flash-Next task files, 01:30→09:08 (+04), ~7 h 38 min overnight. Logged errors/retries: 7, all environmental (env-var not expanded, PATH, npm fetch hang, SearXNG off-topic results, web_extract blocked, the 157 s dead-tunnel "wrong API key" retry, 2× OpenCode permission gates). The phase table above only counts in-table errors (phase 6's two permission gates); the other five happened in the research/build setup before and between phases. Separately, BENCHMARK.md's self-assessment names one model-side failure mode: context overflow on unsupervised research ("mitigated, not cured — needs fit_max_tokens on the server").
"9 of 10 tasks finished RC=0" (verbatim from the BENCHMARK.md self-assessment): that's the self-assessment's own count of 10 build tasks grouped from the 14 task files — 9 ended RC=0 with verified deliverables; the one that didn't is the research task that hit context overflow (the failure mode named in the same assessment). It was recovered with a retry; the deliverable landed.
Head-to-head on the website (Phase 3): Qwen3.8-27B did the same page in 13 m vs Flash's 19 m (~30% faster), and even caught a real Salik toll discrepancy (SZR = AED 12, not AED 6) that Flash missed. On art direction C1's two-ink risograph concept beat Flash's dusk-poster look. Flash-Next won on scale and organization (136-key i18n, per-category prompt tiers) and on long-task stamina — D2 (764 s), W1 (19 m), P1 (31 m) all finished without losing the thread.
The failure that wasn't the model: yukio's ComfyUI/Qwen-Image diffusion pipeline produced pure-noise images on 100% of outputs (vision-scored 1/10, even for "red circle" with an empty prompt) — a broken Turing/cu130 venv env on the Quadro cards. The LLM's 39 art prompts were fine; the pixels were the GPU environment's fault. (Fixed by re-rendering the final 33 map tiles on node2's ComfyUI: 33/33 clean.)
Harness bugs found (documented in FAILURE-REPORT.md**):** 6 concurrent opencode.exe runs in one workdir race OpenCode's shared XDG state → all fast-fail "wrong API key" (fix: serialize); Strata transient 1–2 s 401s (fix: retry ≤3× on fast-fail); reasoning_content eating small max_tokens (fix: fit_max_tokens: true in the Strata config — applied + verified).
Benchmark 4 — A real coding task: Coder IQ1_M vs 27B dense
Same prompt, two engines, OpenCode 1.18.35. Task: build a "Card Collection" section — two trading-card decks (Linux commands + computing pioneers), a rules doc, and a vanilla-HTML site rendering them from JSON (data/task_card_collection.csv, data/card-bench-ab.csv):
| Strata Coder IQ1_M (node2) | Qwen3.8-27B (UD-Q4_K_M, Pop) |
|---|---|
| Wall (first→last event) | 7.5 min |
| Tool calls | 14 |
| Output tokens | 35,497 |
| Cards delivered | 50 (27 linux + 23 creators) |
| Errors in run | 0 |
Strata-coder finished ~4.4–4.5× faster (33.4/7.5 = 4.45) with fewer tool calls and less than half the tokens, for a comparable 50 cards. This is n=1 — one run each — so read it as "plausibly faster by a few ×," not a measured rate. (The launch-to-last-event basis in card-bench-ab.csv gives 11.1 vs 37.2 min = 3.4×; the conclusion doesn't depend on the basis, but neither has n>1.) The 27B was more thorough (more cards, more self-verification); the 125B MoE was dramatically faster.
Strata-coder site Strata-coder's cards.html
Qwen27B site Qwen3.8-27B's cards.html
Benchmark 5 — The illustrated guide rebuild: IQ2_XS's true colors
Rebuild my entire "Illustrated Guide to Local AI" — 11 chapters, 11 SVG illustrations + PNGs + captions, a website — 100% model-generated, every call routed to node2. data/task_illustrated_guide_rebuild.csv (raw flash-next/run-log.jsonl):
| Strata Flash-Next IQ2_XS | Qwen3.8-27B (UD-Q4_K_M) |
|---|---|
| Wall | 14.44 h (Oct 5) |
| Active (wall minus idle) | ≈ 3.8 h (one 10.6 h overnight pause = 639 min of the wall; F7) |
| Logged events | 2,494 = 2,220 part-calls (745 ok + 1,299 stall + 89 corrected + 86 degraded + 1 empty) + 274 TOTAL markers |
| ok | 745 (33.6%) |
| stall | 1,299 (58.5%) |
| corrected / degraded | 89 / 86 |
| Deliverable | 11 chapters (draft+final, ~800–950 w each), 11 SVG+PNG+caption, GUIDE.md 9,460 words |
The 27B's "52 stages, 46 ok" needed explaining: it's attempts, not missing stages. 29 distinct stages were all attempted; 46 succeeded first pass, and the 6 failed attempts were retries — the board-game stage failed 5× (succeeded on its 6th attempt) and svg-ch10 failed once (succeeded on the 2nd). So nothing was missing: 6 was the retry count, and 0 stages stalled.
The finding: IQ2_XS truncates on every call — it stops each generation at ~80–115 tokens, then the stream ends with no finish_reason and no [DONE] (the engine log confirms it only generated that many). I reproduced it across max_tokens 600→8000, thinking on/off, temp 0.2/0.7/1.1, and 5 identical prompts. Result: a ~900-word chapter is impossible in one call. I had to build continuation chaining — feed back only the last ~150 words with a "continue from exactly here" directive, reject >80% word-overlap parts, loop to target. That's what the 58.5% "stall" rate is.
Other 2-bit symptoms (all logged): phrase-lock loops in 4/11 chapters (fixed by a local dedupe pass); only 3/11 SVGs valid on first pass (it mangles XML attributes — I had to switch to a plain-text element-spec pipeline where the model writes specs and Python assembles the XML); echoed prompt placeholders into output; one hallucinated line. The illustration stages were the worst: stage4 (SVG specs) 339/453 stall (74.8%), stage4b (render) 468/543 (86.2%) (data/flash-next-rollup.csv).
The 27B needed zero scaffolding — every stage completed, and it delivered more in 2.57 h active: the same guide plus 4 card decks and 3 site pages.
strata guide chapter IQ2_XS chapter 1 — only possible via continuation chaining.
strata guide website IQ2_XS's site.
27b guide website 27B's site — same brief, no scaffolding.
guide side by side Side by side: Strata IQ2_XS (left) vs Qwen3.8-27B (right).
Benchmark 6 — The Miller website: Coder IQ1_M and Arabic
Building the Miller POD store (Arabic + English, RTL, "Abu Dhabi" in Arabic labels) is where Coder IQ1_M's non-Latin token-loop showed up. data/miller-arabic-failures.csv (source: pod-concept/reports/coder-vs-27b-combined-report.md + loop-test-3models-16384.md).
In OpenCode: 11 unique prompts, 14 attempts (three retries: p03b, p06b, p08r — the report's own tally line, "6 pass / 2 partial / 5 fail" = 13, predates the p08r re-run and doesn't match its per-prompt table, which sums to 7 / 2 / 5):
| Prompt | Coder IQ1_M | Failure signature |
|---|---|---|
| p06b (big redesign, retry) | ❌ 2 m 51 s, 0 tools | degenerate loop: I'll use "أبو Dhabi" = "Abu Dhabi". repeated to the output cap |
| p09 | ❌ 2 m 19 s, 0 tools | degenerate loop: Cyrillic раheck cycle |
| p11 | ❌ 2 m 04 s, 0 tools | degenerate loop: Абу/Abu/АбуDhabi/AbuDhabi cycle |
| p03 (1st) | ❌ 3 m 09 s, 0 tools | 16,384 tokens all burned in reasoning_content → empty visible content, finish=length (thinking-budget exhaustion) |
| p04 | ❌ wedged 36 m | model left setsid bash pipes open; OpenCode has no tool timeout (shared model+harness fault) |
| p08 | ⚠️ 14 m 35 s | real work done (83,451 out tokens) then cut by output limit; 3 invalid parses (passed on the 32K-limit retry, p08r) |
| Per the report's table | 7 pass / 2 partial / 5 fail (14 attempts) | 3 degenerate token loops, 1 thinking-budget exhaustion, 1 output-limit cut, 1 wedged tool |
The report's headline "5 degenerate loops" counts the two limit/budget cuts (p03, p08) as loops; only p06b, p09, p11 are true token-repetition loops. 0 repeated identical tool calls on either side.
The 27B ran the identical 11 prompts (13 attempts incl. p03b/p06b): 10 pass / 1 asked-a-question / 2 fail — 0 loops. Its only 2 failures were 60-minute orchestrator caps while genuinely still working (real brand PNGs, background removal, i18n in progress at the cap both times). The loops are a Coder-model artifact on Arabic↔Latin/Cyrillic transliteration, not a prompt or harness issue. One caveat: no higher-quant Coder exists, so I can't separate the loop from the IQ1_M quant — the 27B comparison isolates the model, not the quant.
Root-caused with a controlled raw-API test (identical short prompt: delivery labels for Abu Dhabi/Dubai in Cyrillic + Latin, max_tokens 16,384):
| Condition | Result |
|---|---|
| Coder, thinking ON (default high) | 2/5 clean, 3/5 FAIL — 16,384 tokens all in reasoning_content, empty content, finish=length |
Coder, thinking OFF (reasoning_effort=none) |
5/5 clean in 0.2–0.9 s |
| IQ2_XS, thinking on | 5/5 clean (0.3–1.2 s) |
| 27B, thinking on | 5/5 clean (9–29 s) |
So two distinct Coder failure modes, both reproduced: (a) thinking-budget exhaustion — high thinking runs unbounded at the cap and returns empty content (fix: reasoning_effort=none or a small reasoning_budget_tokens); (b) the OpenCode transliteration loops — token repetition in visible content on mixed-script text, non-deterministic. Penalty params did not suppress them in my small tests (repetition_penalty 1.3, presence/frequency 1.0, even temperature 0) — but that's 3–5 runs per condition, too few to declare them hopeless; I'm reporting "not fixed in a small test," not "cannot be fixed." The practical rule that came out of it: don't point the Coder build at Arabic/RTL content — use IQ3_S or the 27B for that.
Benchmark 7 — The 17-prompt OpenCode bench (a total failure, and why)
Standard 17-prompt harness against Coder IQ1_M on node2. All 17 prompts failed instantly (data/opencode-bench-17.csv, data/task_17prompt_bench.csv): every prompt exit_code=1, 5.6–6.0 s, 0 tool calls, 0 steps, 0 output tokens, 0 new files, error Unexpected server error. Not a model result — an infrastructure one: the node2 coder log at that window shows repeated native head upload: out of memory (24 MiB of 24124 MiB VRAM free) and mtp: buffers do not fit. The 3090 was occupied by another GPU workload, so Strata couldn't even allocate its MTP buffers. Lesson I'll keep: on a shared 3090, run one GPU-heavy thing at a time — Strata holds ~21.8–23.7 GB loaded.
The harness matters: Hermes vs OpenCode
Same models, two different ways to drive them. The difference showed up in the failures, not the successes:
OpenCode (opencode run --format json) |
Hermes (me, orchestrating) |
|---|---|
| Silence | Silent until the task ends. 27B p01 ran 46 m 15 s (96 tool calls) and p04 32 m 09 s with zero intermediate output — I was polling a black box. A 157 s "missing or wrong API key" outage turned out (MITM-verified) to be the client retrying a dead tunnel socket; zero 401s ever reached Strata |
| Loops & wedges | No tool timeout: p04 was wedged 36 min after the model left setsid bash pipes open — only SIGTERM freed it. 6 concurrent runs race shared XDG state → all fast-fail "wrong API key" |
| Recovery | 60-minute orchestrator cap SIGTERMs long tasks (27B p06/p06b died at the cap while still mid-work); recovery = re-launch from scratch |
The degenerate token loops (Benchmark 6) were model-side, not harness-side. What's harness-side: the XDG concurrency race, the dead-tunnel retry with no error context, the missing tool timeout, and the hard 60-min cap. A silent harness makes all four of those invisible until the task fails — which is exactly why the 27B's 46-minute runs felt like the machine had frozen.
Failure log (everything that broke)
data/failures.csv (12 entries), abridged:
| # | What | Root cause | Resolution |
|---|---|---|---|
| F1 | node2 IQ2_XS serve aborted in a loop (exit -6, SIGABRT; "26 MiB of 24124 MiB VRAM free — LOW"); requests returned 0 tokens | VRAM exhaustion on node2's shared 3090, consistent with F11 (orphan engine PIDs holding 15.2 GiB after stop); the 39 GB page-lock also exceeded 30 GB RAM | Killed orphans; one GPU-heavy workload at a time; low-RAM mode (16.95 GiB resident). Pop's own Strata logs show clean runs, no crash |
| F2 | IQ3_XXS download on Pop failed: HTTP 416, 67.6 GB written but server shard is 47.0 GB |
setup-script resume wrote past the real file size | delete + re-download; it then ran fine on Pop (mmap fallback, 23.9 tok/s token-weighted) |
| F3 | Strata vision rebuild (llama.cpp submodule) interrupted twice on Pop | my Ctrl-C, not a compile error | build resumed + completed |
| F4 | 17-prompt bench 17/17 fail (Benchmark 7) | GPU occupied by another workload (24 MiB VRAM free) | re-run when the 3090 is clear; one GPU-heavy thing at a time |
| F5 | 27B bench: p06 + p06b hit the 60-min orchestrator cap (SIGTERM) | long task exceeds 60 min at 27B speed | cap is by design (policy, not model) |
| F6 | Illustrated-Guide: 58.5% of calls stalled at ~80–115 tokens | IQ2_XS per-call truncation (Benchmark 5) | continuation chaining + local validation; quant choice is the real fix |
| F7 | 639-min gap in guide run-log | overnight pipeline pause, not a hang | flagged for transparency; active time reported alongside wall |
| F8 | "Grep loop" incident (30+ identical tool calls, nothing built) | I reported it in the moment; UNVERIFIED — no artifact located afterward | left marked unverified |
| F9 | Dubai build: 6 concurrent opencode.exe in one workdir all fast-fail "wrong API key" |
OpenCode XDG state race | serialize runs; retry ≤3×; fit_max_tokens: true (applied + verified) |
| F10 | Dubai build: all 39 Qwen-Image generations = pure noise (100%) | yukio ComfyUI/venv broken on Turing GPUs (env, not model) | re-rendered final tiles on node2 ComfyUI: 33/33 clean |
| F11 | Strata VRAM not released after systemctl stop on node2 (15,226 MiB held) |
orphan engine PIDs | killed orphans → VRAM freed |
| F12 | Coder Arabic transliteration loops + thinking-budget exhaustion (Benchmark 6) | model artifact on mixed-script text; penalties not fixed in small tests | route Arabic work to IQ3_S/27B; reasoning_effort=none for short deterministic calls |
Mistakes I made
- Launched 6 OpenCode research tasks concurrently on day one → the XDG race that ate an hour as "wrong API key." Serializing would have been the first move, not the recovery move.
- Left orphan Strata engine PIDs holding 15.2 GiB of VRAM on node2 after a
systemctl stop(F11) — the same GPU then aborted the next serve with "26 MiB VRAM free" (F1). Onenvidia-smicheck after every stop would have prevented it. - Set
limit.output=16384without a thinking budget — Coder burned the whole budget inreasoning_contentand returned an empty answer (p03). - Let the Strata guide pipeline sit overnight (639 min) with no watchdog (F7) — that's 10.6 h of the 14.44 h "wall" that made the run look slower than it was.
- Ran the 17-prompt bench on a 3090 another workload was occupying (F4) — 17/17 failed in 5.6 s. A pre-flight
nvidia-smiwould have shown it. - Trusted the setup script's download resume — it wrote 67.6 GB of garbage instead of the 47 GB shard (HTTP 416) and only my byte-count check caught it.
If I had to do it again — recommended settings per machine
| Machine | What to run | Key settings | Why |
|---|---|---|---|
| yukio (121 GiB, 2× RTX 5000, headless) | IQ3_S (79 GB) | full residency, --spec 4 --mtp, KV int8, 131K ctx, reasoning_effort=low, budget 2048 |
the only machine I got the top quant running on; the overnight Dubai build proves the workload |
| node2 (30 GB, 3090, headless) | Coder IQ1_M (58 GB) for coding; IQ2_XS only with scaffolding | low-RAM mode (≤17 GiB resident), --spec 4 --mtp, KV int8; one GPU workload at a time; check nvidia-smi after every stop; reasoning_effort=none for short deterministic calls; keep it away from Arabic/RTL |
VRAM and RAM are both tight; the truncation bug (IQ2_XS) and the token loops (Coder) set the workload boundaries |
| Pop!_OS (62 GB, 3090 Ti, Cosmic) | Qwen3.8-27B UD-Q4_K_M (llama.cpp) as the default; IQ2_XS (full residency) or IQ3_XXS (mmap) on Strata when you want the MoE | 27B: -ngl all -c 131072 --cache-type-k v q4_0 --spec-type draft-mtp --spec-draft-n-max 2; don't co-locate Strata and the 27B on the 3090 Ti at the same time |
62 GB holds 68 GB IQ2_XS comfortably; the 79 GB IQ3_S doesn't fit in full residency; the shared GPU is the constraint |
Verdict
Strata + Qwen3.8-Flash-Next is a real, fast, local 125B MoE — and the resident-RAM-experts design plus the machine you put it on decide what you get:
- yukio + 121 GiB + IQ3_S is the flagship. The only machine I got the top quant running on, and it did an entire product build (Dubai Traffic) overnight with no task-ending model failures. Slower per-token (49 tok/s) but the highest quality, and headless hardware keeps it clean.
- node2 + Coder IQ1_M is the coding workhorse — ~4.4–4.5× faster than a 27B on a real task (n=1) — but it is the less reliable model of the two on the Miller workload: 5 hard fails out of 11 prompts (3 token loops, 1 thinking-budget exhaustion, 1 wedged tool call) vs the 27B's 2 fails out of 13 (both 60-min caps while still working). Keep it away from Arabic/RTL content and set
reasoning_effort=nonefor short deterministic calls. - IQ2_XS is a fast-drafting prose engine, not a finisher — 102 tok/s per-request, 30.8 token-weighted, and per-call truncation at ~100 tokens means it needs continuation scaffolding. I'd take the Coder or the IQ3_S over it.
- The desktop is for the 27B, not the MoE. 62 GB doesn't hold the 79 GB pack in full residency; the 3090 Ti is shared with the compositor and the 27B server. Headless node2/yukio are why this cluster works at all. (I did see the desktop freeze under sustained load — anecdotal, unlogged — but the one crash loop I can prove was on node2, not Pop.)
Full reproducibility: raw CSVs in data/, source logs cited per figure, screenshots in screenshots/.
Data sources (all on-disk, verifiable): data/cross-quant.csv*,* data/engine_throughput.csv*,* data/dubai-build-phases.csv*,* data/miller-arabic-failures.csv*,* data/task_card_collection.csv*,* data/card-bench-ab.csv*,* data/task_illustrated_guide_rebuild.csv*,* data/opencode-bench-17.csv*,* data/task_17prompt_bench.csv*,* data/failures.csv*,* data/hardware-versions.csv*,* data/flash-next-rollup.csv*,* data/flash-next-stages.csv*.*I ran Qwen3.8-Flash-Next on Strata across three machines. Here's what it's actually like.
A first-party field review. Every number below comes from a log, benchmark
file, or project folder on my own machines. Where I extrapolate I mark it
with ~. All raw data is in data/*.csv; every figure is traceable to a
source listed next to it.
r/LocalLLM • u/Only_Light_9817 • 15h ago
Discussion Local uncensored models — am I the only one who thinks this is where things are actually heading?
Been running uncensored models locally for a while now, and I keep going back and forth on this. Wanted to throw my thoughts out and see what you all think.
The case FOR local uncensored AI:
- Zero filter anxiety. I ask a question, I get an actual answer. No "I'm sorry, I can't help with that" on completely reasonable requests
- Privacy is a real thing, not a marketing line. My data literally never leaves my machine
- No rate limits, no subscriptions, no account bans for experimenting with weird prompts
- The models have gotten shockingly good. What needed a datacenter 2 years ago runs on consumer hardware today
The case AGAINST (let's be honest):
- Hardware cost upfront is brutal. Not everyone has 24GB+ VRAM sitting around
- Quantized models still lose something vs full weights vs API models
- You're the sysadmin now. Drivers, backends, model formats, merges — it's a rabbit hole
- Big hosted models still win on raw capability for complex reasoning tasks
My honest take: uncensored local models handle like 80% of what I actually do daily better than the "safe" alternatives, but I still reach for big hosted models when I need heavy lifting. So I end up with a hybrid setup and honestly it feels messy.
Curious about the community:
- What's your daily driver model right now and why?
- What hardware are you running it on? (GPU/VRAM/RAM, laptop vs desktop vs server)
- Did you go local for privacy, censorship issues, cost, or something else?
- Anyone fully moved off hosted models? What broke?
Just curious where everyone landed on this tradeoff
r/LocalLLM • u/Shadow_s_Bane • 16h ago
Model JetBrains Mellum 2.1 12B A2.5B MoE is a very good model.
It runs at around m2 pro 16 at 60 tps at full 130k context, you can easily run a Q8 if you have a 16 GB GPU, I was able to get 140TPS on 9070xt,
It’s an MoE so I think we can run it well on smaller cards too, 8GB, 12GB should be possible to get upwards of 30-40 tps.
I have used it a bit, it can code, but I think having a bigger model plan tasks in detail would make it quite good for quick task execution.
r/LocalLLM • u/Dangerous_Young7704 • 5h ago
Question What's the best uncensored Qwen 3.8 27B model?
No I will not explain what I need it for.... but I have a pro r9700 + 64gb of ram - what's the best quant and model out there?
also would Flash-next work better than 27B?
P.S is a joke no NSFW here but I want a model for cybersec and general coding, some slight nsfw....
r/LocalLLM • u/Rahman-08 • 12h ago
Question Best Local Models for RTX 4050 6GB?
I was quite interested in setting up local AI models on my laptop. Was wondering which one might be the best.
Specs:
RTX4050 6GB
16GB ram
I7 13700hx.
My main use cases are coding, day-to-day usage like some queries and all. Automations if possible using hermes.
Please help me with some recommendations.
It would really help if someone with same specs can provide their experience.
r/LocalLLM • u/SenorAudi • 3h ago
Question Qwen3.8 27B took 7 hours on a task and didn’t make it as far as Gemma 26B did in 10 minutes…what am I doing wrong?
M4 Max 64GB. I had Claude help set me up a workflow and agents.md file to build a small demo for the SNES.
I uploaded tools like the libraries and emulator to a Vendor folder, examples, and told each model to “create a demo for the SNES with a race car driving around a track, top down view)
Claude and ChatGPT did this in a few minutes and generated a .sfc file. I tried it with Qwen and it just got stuck making the graphics after 7 hours. Gemma has already written and tested main.c after 10 minutes.
I expected Qwen to be a little slower but not this slow. Its context was 32K, set to low reasoning.
Have other folks seen this? Is there something I’m doing wrong? Or is it really that slow?
r/LocalLLM • u/mycall • 7h ago
Research Soon local LLMs will be 6x smarter by using bytes instead of tokens
Meta demonstrated, in their Breaking the Token Ceiling: Distilling Smaller, Stronger Byte Models paper, by converting tokens from teacher models into byte models.
I look forward to seeing this in practice.
r/LocalLLM • u/No-Bad5152 • 10h ago
Discussion Am I missing the point of local LLMs, or am I just trying to justify buying a Mac Studio?
Already posted this in /macmini - but wanted to get some more localLLM opinions.
I'm seriously considering a Mac Mini M4 Pro 64GB or Mac Studio M5 Max 64GB for local LLMs and automation. But the more I think about it, the less sure I am WHY I actually need one.
ChatGPT, Claude, Copilot, etc. are covering more and more ground: projects, agents, scheduled tasks, file access, automations... And even cloud APIs through Azure or Vertex can offer ZDR.
So what's really left for local AI?
My potential use cases:
- Private documents: Some stuff I simply don't want in the cloud. Models like Qwen or Gemma in the 20–30B range seem good enough for that.
- Knowledge base: Processing documents from past projects, building a searchable knowledge base, maybe using n8n.
- Local automation: Running workflows and agents like Hermes or OpenClaw. But honestly, Power Automate and cloud agents already do quite a lot.
Here's the thing: I'm not a developer. I'm not processing thousands of customer tickets or running some massive automated business. My use cases are mostly personal productivity and business workflows.
And running autonomous agents locally seems to introduce a whole new world of security concerns and maintenance.
So I'm wondering:
What am I missing? What are the actual killer use cases for local LLMs and agents in 2026, especially for non-developers?
Is a dedicated 64GB Mac really worth it? Or would I be better off with a regular 32GB machine, some smaller local models for sensitive stuff, and cloud AI for everything else?
I'm genuinely interested in what people are ACTUALLY doing with their local setups beyond experimenting and tinkering.
Help me out here. Am I overlooking something obvious, or is this just an expensive rabbit hole?
Use cases that I do not see for me are asking the LLM for stories, roleplay or some uncensored stuff or so…
My takeaway so far: The strongest arguments for local AI seem to be privacy, independence from cloud providers, predictable availability, and the ability to run continuous workflows. A hybrid approach using smaller local models alongside frontier cloud models probably makes the most sense for now.
That said, I'm still not seeing any truly compelling use cases that would justify spending several thousand dollars on powerful local AI hardware. Maybe I'm overlooking something or need to rethink how I'm approaching this. I'd genuinely love to hear more concrete examples where a powerful local setup makes a significant difference compared to cloud AI or smaller local models.
r/LocalLLM • u/Zyro88 • 7h ago
Question RTX Spark local llm
What model could RTX Spark Laptop with 32gb ram run?
I can get one without VAT and im thinking if the local ai on that could run and read my backtesting engine.
r/LocalLLM • u/Conscious-Expert-455 • 9h ago
Question Automazione e intelligenza artificiale
r/LocalLLM • u/cloudyuser1480 • 23h ago
LoRA I streamed a 141 GB AI model through a 48 GB MacBook so I could train my own small models
r/LocalLLM • u/MEsfits • 17h ago
Research I traced a dual-RTX 3090 Strata regression to auto GPU placement — fix tested, PR submitted, full benchmarks inside

TL;DR
On my dual-3090-class rig, Strata 0.1.41 showed a strange split result versus the retested 0.1.40.3 baseline: decode was about 8% slower, 10K prefill was about 15% faster, but 90K prefill was about 7% slower. It looked like a prompt-path issue, but the evidence points to automatic GPU placement walking off balance.
The fix I tested is a pair:
- Environment variable:
STRATA_SPLIT_UNIFORM=1 - In the Strata config:
gpu_order: as_given
That restores uniform link-cost scoring and the pre-0.1.41 GPU order. The change is in PR #2425; the regression report is issue #2418.
After fixing placement, I ran a separate tuning sweep. ISO18 is the everyday decode profile (148.86 narrative / 174.67 code tok/s); ISO19 is the ingestion/long-prompt profile (1,995.53 tok/s at 10K and 4,149.45 tok/s at 90K). ISO19 gives up some decode throughput versus ISO18. One caveat: ISO19 uses fused kernels, and the output-sanity check was still pending in the report.
Rig and method
- CPU/RAM/OS: Ryzen 9800X3D, 59 GB RAM, Ubuntu 26.04
- GPUs: GPU0 is an RTX 3090 Ti in the x16 slot; GPU1 is an RTX 3090 in an x4 chipset slot. No P2P and no NVLink.
- Workload: Qwen3.8-Flash-Next IQ3_S, 262,144-token context, int8 KV +
--kv-resident 32768, automatic layer split,--mmap-experts, vision on,--spec 4+ MTP,--expert-cache auto,--prefill auto. - Protocol: canonical
benchy.sh; temperature 0.6, top_p 0.95, 3 warmups + 5 measured runs per decode shape; prefill probes at 10K × 3 and 90K × 1. Same prompts on both arms, heat-soak controlled, one server at a time on port 1234, one variable per pair. - Values below are mean (n, CV) unless stated otherwise. The 0.1.41 comparison values marked “reported claim” are approximate, not fresh exact results.
1. Release comparison: the regression signature
| Engine | Narrative decode (tok/s) | Code decode (tok/s) | Prefill 10K (tok/s) | Prefill 90K (tok/s) |
|---|---|---|---|---|
| 0.1.40.2 (retested best) | 129.47 (n=5, CV 10.0%) | 147.06 (n=5, CV 2.0%) | 1,565.15 (n=3, CV 3.6%) | 3,429.48 (n=1) |
| 0.1.40.3 (retested best) | 130.86 (n=5, CV 8.3%) | 148.22 (n=5, CV 3.1%) | 1,614.29 (n=3, CV 1.4%) | 3,416.48 (n=1) |
| 0.1.41 (reported claim) | ~120 | ~136 | ~1,855 | ~3,179 |
| 0.1.43.1 (retested baseline) | 122.61 (CV 6.9%) | 131.13 (CV 6.8%) | 1,725.44 (CV 1.5%) | 2,929.89 |
The signature is the important part: decode −8% on both shapes; prefill +15% at 10K but −7% at 90K. A single “performance got slower” story does not explain that shape.
2. Reproduction and the cache confound
The 0.1.41 tag reproduced the pattern:
| 0.1.41 run | Narrative decode (tok/s) | Code decode (tok/s) | Prefill 10K (tok/s) | Prefill 90K (tok/s) |
|---|---|---|---|---|
| b1 | 119.09 (CV 6.2%) | 135.51 (CV 5.2%) | 1,835.75 (CV 1.5%) | 3,085.55 |
| b2 | 122.26 (CV 10.3%) | 142.68 (CV 2.0%) | 1,825.57 (CV 1.3%) | 3,072.70 |
A first rebuild of 0.1.40.4 looked worse than expected, but it was a cold page-cache boot and automatic placement had drifted. Per the original handoff rule, I paused instead of treating that as a valid counter-result. Rebuilding 0.1.40.3 with the harness open recovered its usual prefill/code behavior. The 90K values also climbed as the page cache warmed, regardless of version, so I did not use a cold post-build run as the baseline.
3. Root cause: automatic placement changed the split
The relevant changes were:
0391e478: per-stage link probing withlink_scale = clamp(20/bw, 1, 64). The x4 card's measured 6.4 GB/s link scored a 3.12× penalty against the 20 GB/s reference.be8db787: faster-last-card reordering.gpu_order: as_givenopts out of the reorder.
Observed placement on this rig:
| Engine/config | GPU order | Link scoring | K (layers x4 / x16) | Pairs held | KV pinned |
|---|---|---|---|---|---|
| 0.1.40.x | 0,1 (no reorder) | unprobed | 27 (21 / 27) | ~17,700–17,729 | 1.55 GiB |
| 0.1.41 default | 1,0 (reordered) | 6.4 → ×3.12 / 26.9 → ×1.00 | 19 (19 / 29) | 17,999–18,001 | 1.03 GiB |
0.1.41 + as_given only (iso6) |
0,1 | same probes | 31 (31 / 17) | 17,567 | 1.80 GiB |
| 0.1.44.1 default | 0,1 (kept) | 6.4 → ×4.20 / 26.9 → ×1.00 | 31 (31 / 17) | 17,568 | 1.80 GiB |
This is why the fix is both uniform link scoring and the pre-rework device order. Changing the order alone does not restore the old split when the per-stage link penalties remain enabled.
The working explanation fits all three signs: the 19-layer first stage holds more pairs, so small cached prompts can look quicker; but the 19/29 split leaves the sustained pipeline unbalanced, hurting long prefill and repeated MTP decode windows. The evidence did not support blaming the prompt-path rework itself.
4. Fix verification
On the 0.1.41 engine with uniform link costs plus as_given, auto placement returned to K=27 (layers 0–26 / 27–47), with a 1.00 link-cost scale on both links. Results came back into the 0.1.40.3 range:
| Run | Narrative decode (tok/s) | Code decode (tok/s) | Prefill 10K (tok/s) | Prefill 90K (tok/s) |
|---|---|---|---|---|
| iso7 b1 | 130.96 (CV 7.2%) | 139.81 (CV 3.7%) | 1,620.50 (CV 2.3%) | 3,290.35 |
| iso7 b2 | 120.24 (CV 9.6%) | 139.03 (CV 3.4%) | 1,561.06 (CV 4.0%) | 3,287.18 |
Then I ported the change to the 0.1.44.1 main build and re-verified it twice:
| Run | Narrative decode (tok/s) | Code decode (tok/s) | Prefill 10K (tok/s) | Prefill 90K (tok/s) |
|---|---|---|---|---|
| Main verification A | 132.93 (CV 7.4%) | 145.29 (CV 4.3%) | 1,567.76 (CV 2.3%) | 3,297.84 |
| Main verification B | 132.20 (CV 10.3%) | 142.65 (CV 7.3%) | 1,615.40 (CV 0.4%) | 3,281.34 |
These are back around the old baseline scale; I am not claiming every leg is faster than the 0.1.40.3 best. The larger wins below come from a separate tuning sweep after the placement fix.
5. Tuning sweep: different winners for different workloads
Base iso10 was as_given + uniform split costs, PCIe 1 / draft floor 0.7 / no adapt-swaps: 135.64 narrative, 142.00 code, 1,621.35 at 10K, and 3,402.29 at 90K.
| Arm | Narrative decode (tok/s) | Code decode (tok/s) | Prefill 10K (tok/s) | Prefill 90K (tok/s) | Verdict in report |
|---|---|---|---|---|---|
iso11 PREFILL_HELP=1 |
131.20 | 147.47 | 1,577.09 | 3,364.57 | Adopt; decode to baseline, prefill flat |
iso12 --pipeline-windows 2 |
145.33 | 166.87 | 1,633.91 | 3,310.23 | Adopt; strong decode, no stall |
iso13 --pipeline-windows 1 |
114.87 on repeat (120.00 first) | 144.13 on repeat (145.36 first) | 1,585 on repeat (1,636 first) | 3,309 on repeat (3,351 first) | Reject; narrative dip repeated |
iso14 --trim-stage-weights + split 27 |
133.13 | 147.50 | 1,790.19 | 3,583.52 | Adopt; balanced, CUDA1-LOW gone |
iso15 PF_FUSED=1 |
127.86 | 145.84 | 1,743.08 | 3,784.68 | Adopt pending output-sanity check |
iso16 GDN_CHUNKED=2 |
119.61 | 143.41 | 1,612.81 | 3,282.15 | Reject |
| iso17 trim + pipeline windows 2 | 131.35 | 164.90 | 1,803.20 | 3,687.18 | Composes cleanly |
iso18 + PREFILL_HELP |
148.86 | 174.67 | 1,886.76 | 3,641.54 | Decode winner; daily profile |
iso19 + PF_FUSED |
141.94 | 169.84 | 1,995.53 | 4,149.45 | Prefill/ingestion winner; output sanity pending |
| iso20 explicit split 34 + trim | 133.46 | 143.03 | 2,249.24 | 3,057.78 | Reject as default; short-prompt outlier |
How I would use these: ISO18 for everyday generation/decode. ISO19 for ingestion and long prompts: versus ISO18 it is about 5% slower on narrative decode and 3% slower on code decode, but 6% faster at 10K prefill and 14% faster at 90K. ISO20 is faster at 10K, but that gain collapses at 90K and its decode is weaker, so I would not pick it as the general default.
The 1M ladder also favored ISO19. Against the 0.1.40.2 reference ladder (3,055 / 2,742 / 2,474 / 2,244), ISO18 returned 3,461 / 3,096 / 2,704 / 2,437 (+13 / +13 / +9 / +9%), while ISO19 returned 3,673 / 3,250 / 2,818 / 2,590 (+20 / +19 / +14 / +15%).
Ladder:
256k, 512k, 768k, 1m
Links and open items
- Regression: Issue #2418
- Fix PR: PR #2425
- Separate calibration save/verdict issue: Issue #2465
The PF_FUSED output-sanity check remains to be eyeballed; the calibration save logic is a separate issue from this placement regression. If you have a dual-GPU setup with a big PCIe lane-width gap, I’d be interested in whether the automatic split behaves similarly. The fix is opt-in and was validated on this specific rig; it is not a claim that the same placement is optimal for every GPU topology.
Edit: Fixed Markdown issues with tables.
r/LocalLLM • u/Lost-Masterpiece2400 • 1h ago
Discussion 600+ hours building a fully local AI assistant at home, mixed NVIDIA/AMD, 4 machines, and a judge model that grades my coder
galleryr/LocalLLM • u/MarcoFelizardo • 9h ago
Question Beginner in a 3rd world country
Any advice for a newbie living in Brazil? I want to start a local LLM but things seem to be hard to acquire and very expensive. Any hardware advice that can support a nice AI for who is starting now? Specifically for Social Media content, I want to help me create carousels and edit videos.
Thanks a lot in advance.
PS.: should be available to purchase in Brazil.
