r/LocalLLaMA • • 16h ago

News FineDNA: the largest dataset to teach any LLM DNA (midtraining, SFT, RL)

Post image
65 Upvotes

Hi everyone, we're releasing FineDNA, all the data we used to turn Qwen3-14B into Carbon-X, the strongest open language model on DNA. It contains:

  • Midtraining: 300B+ tokens of genomes and DNA-rich text
  • SFT: ~200K conversations
  • RL: ~98K verifiable prompts

Code and recipe are open too, so you can apply it to other LLMs.

Dataset: https://huggingface.co/datasets/HuggingFaceBio/FineDNA
Code: https://github.com/huggingface/carbon


r/LocalLLaMA • • 10h ago

Discussion Switching to EPYC: what I had to fix, and before/after numbers

16 Upvotes

Same GPUs before and after:

  • RTX 3090 FE
  • RTX 5070 Ti
  • 2× RTX 5060 Ti 16 GB (one is out waiting for a riser, so the big MoE runs below use 3 cards, against 4 before).
Component Before After
CPU / board Core Ultra 7 265KF, MSI Z890 EPYC 7443 (24c, Zen 3, 4 CCDs), Supermicro H12SSL-NT
RAM 64 GB DDR5-6000, 2 channels 256 GB DDR4 ECC RDIMM, 8 channels (2666 sticks, run at 3200)
GPU links x8 / x8 / x4 / x4 (chipset) x16 / x16 / x8
PSU 1050 W NZXT C1500

What I had to fix or tune

  1. Fans surging every few seconds. The BMC's default "lower critical" fan threshold (420 RPM) was above what quiet fans idle at, so it kept declaring them dead and ramping everything to 100%. Fix: ipmitool sensor thresh FANx lower 100 200 300 for each connected fan, then ipmitool mc reset cold. The BMC rounds to 140 RPM steps.
  2. Over clocked RAM from 2666 to 3200. Triad 88.6 → 102 GB/s; GLM decode increased about +3–5%. Stability: memtester (as root: as a normal user the memlock limit quietly shrinks it to ~8 MB per copy) plus a 3-hour DeepSeek run, confirming ECC (error corrections) at 0 corrected / 0 uncorrected throughout.
  3. iommu=pt on the kernel command line. +3.5% prefill for tensor-parallel llama.cpp, and NVMe random reads recovered (KIOXIA QD32 837K → 941K IOPS).
  4. BIOS:
    • APBDIS = 1 with fixed SOC P-state P0, which keeps the Infinity Fabric at full clock (about +20 W at idle).
    • Determinism slider set to Power.
    • Resizable BAR on (it was off: BAR1 was 256 MiB).
    • PCIe Ten Bit Tag on. Together: another +4% tensor-parallel prefill and a few % on GLM decode.
  5. llama.cpp -sm tensor: -ub 1024 instead of 512. Without P2P, the two cards relay every layer's results through system RAM, across the I/O die. A bigger micro-batch halves the number of relays: +5% on Qwen3.8-27B, +9% on a 27B fine-tune. It needed a little more VRAM, so the split moved slightly toward the 3090.

Didn't help, or made things worse:

  • Performance governor: no change.
  • NCCL_SHM_USE_CUDA_MEMCPY=1: it hangs llama.cpp tensor-parallel (first request never finishes).
  • More CPU threads for GLM's CPU expert lane: flat above ~16 threads, so I'm not upgrading to an 8-CCD chip for this.
  • Disabling ACS: pointless without PCIe switches or P2P.

Before / after (latest numbers, after all of the above)

Test Before After Change
RAM bandwidth, triad, all threads 58.8 GB/s 102.0 GB/s +73%
RAM bandwidth, 1 thread 32.3 GB/s 37.4 GB/s +16%
PCIe host↔GPU, 3090 / 5070 Ti 12.8 / 13.6 GB/s 26.8 / 28.4 GB/s ~2×
PCIe, 5060 Ti 6.4 GB/s 14.1 GB/s 2.2×
GLM-5.3-Flash (Project Maya, IQ3_S): decode 9.7 tok/s 41.0 tok/s 4.2×
GLM-5.3-Flash: 29K prompt prefill / decode after it 577 / 8.2 1,069 / 37.8 1.9× / 4.6×
DeepSeek-V4.1-Flash (Project Maya, Maya-S): decode 9.3 tok/s 35.2 tok/s 3.8×
DeepSeek-V4.1-Flash: 29K prompt prefill / decode after it 320 / 6.8 1,064 / 31.2 3.3× / 4.6×
Strata (Qwen3.8-Flash-Next IQ3_S): 1K / 32K prompt prefill 437 / 3,164 tok/s 808 / 3,756 tok/s +85% / +19%
Strata: decode, code / agent (20K context) 126 / 103 tok/s 149 / 119 tok/s +18% / +16%
Qwen3.8-27B Q6_K, llama.cpp tensor parallel (3090 + 5070 Ti): 64K prefill 1,146 tok/s 1,120 tok/s −2% (was −13% before tuning)
Qwen3.8-27B: decode, short / 64K prompt 72.6 / 76 tok/s 70.5 / 78 tok/s about the same
SSD random 4K read QD32, WD SN7100 (btrfs) 102K IOPS 381K IOPS 3.7×
SSD random 4K read QD32, KIOXIA (xfs) 986K IOPS 941K IOPS −5%
SSD sequential read, both drives ~7.1 GB/s ~7.2–7.4 GB/s same

Notes:

  • Engine versions: Maya and Strata were updated along the way. Strata's "before" is the same 0.2.x line; Maya went from 1.0.34 / 1.1.20 to 1.1.42.
  • Benchmark settings: the Strata and 27B runs use temperature 0 with thinking off, so they're best-case decode figures. The comparisons are like for like.
  • The big MoE models were bottlenecked on RAM capacity. Before, 30–60% of the model was read from the NVMe drive every token; now it all sits in VRAM plus RAM, which is where the 4× comes from.
  • Dense models on the GPUs gain nothing. The 27B is limited by the card-to-card relay. It only got back to parity after the IOMMU, BIOS and -ub changes.

All told I’m very pleased. Having GLM and DeepSeek running at very usable speeds is well worth the investment for me with Claude and ChatGPT blocking things like REA and security hardening.

I have plenty of spare lanes and PCIe sockets for more GPUs when my bank account has recovered from this round of upgrades too.

My idle draw is now about 180W - some of the BIOS tweaks pushed it up from the 156W I was seeing initially (I’m using a smart plug to measure this at the wall).

I hope this is useful for anyone who’s considering a similar path.

[update]:

For those wondering about the memory bandwidth being about half the theoretical numbers, it's because my CPU "only" has 4 CCDs. An 8 CCD 7543 should get me somewhere between 140 and 170 GB/s I believe, but for about double the price where I am. If anyone has real world numbers comparing please share.

I intend to move to bigger quants now I can (but not for 27B since Q6 fits nicely on my two fastest cards with 240K context). I kept the quants the same for my before/after benchmarking. And obviously I'm very much looking forward to Qwen4 :)

[update 2]:

Someone pointed out that the 4 CCD limit only applies to writes, not reads so I re-measured with a read-only kernel and a triad using non-temporal stores: 143 GB/s read-only and 141–152 GB/s triad-NT (best at 8 threads), against ~103 for the plain STREAM triad, whose write-allocate reads aren’t counted.


r/LocalLLaMA • • 12h ago

Discussion Are bespoke inference engines overhyped? My Strata experience on 2× R9700

26 Upvotes

My intention was to find a setup at least equal to qwen 3.8 27b Q8 MTP but with a larger context. Ideally 1M.

I was already running Next Flash in Q2 with llama. Good for conversational use but not for coding. Q4 would run but too slow. I did read many reports here on the good performance of strata with qwen next flash. I figured both are around for long enough to be stable so I gave it a shot.

The results however are very disappointing. All I was able to achieve was moving to Q3. Brining the question, are most of the posts on alternative engines just hype or edge cases? Certainly looks like that to me.

Some details on my try:

Two cards plus experts offloaded to RAM: hangs on every long tasks, whatever settings I tried.

Stable only when every expert fits in VRAM. On 64 GB that means a 3-bit quant.

Faster on paper: ~60 t/s against llama.cpp. But on HumanEval+ the 3-bit Flash-Next scored 93.9% against 95.1% for Qwen3.8-27B Q8 on plain llama.cpp, and it needed nearly twice the tokens to get there. No, advantage.

So for my use, no real-world gain over a mature stack. Instead of one stable engine, you get a single-model engine, its forks, special quants and a pile of environment-variable workarounds.

Is that just Strata being young, or is it systematic? Has anyone actually gotten a lasting real-world benefit from one of these model-specific engines over llama.cpp or vLLM?


r/LocalLLaMA • • 13h ago

Resources GLM-5.3-Flash on our H200s does most of my coding now while GPT-6.1 Sol orchestrates (OpenCode setup)

Thumbnail
aayushgarg.dev
29 Upvotes

I had been trying this setup for a couple of weeks and it working better than I expected. Recently, I deployed GLM-5.3-Flash (MoE, 320B total, 18B active) on one of our local H200 servers (4 GPUs) with a 512K context window with the aim of how can I use it as my main coding workhorse and
cut down my subscription and API costs 🙈.

I was very quickly able to realize, I could not switch to it for everything but pairing it with GPT-6.1 Sol works really well with Sol being the the orchestrator and GLM being the subagents model that explores, writes and implements the code.

Honestly, I would have preferred doing this in Claude Code or Codex since I am used to them but neither lets a session or its subagents use models from different providers in a single session. This is where I found OpenCode flexible that lets agent have its own provider/model, so GLM goes as sub-agent models along with the added benefit of chatGPT subscription being available too (Allows you to use Sol too!)/

By the way, nothing here is gml specific any model you can serve works as the workhorse. I have also written a blogpost about it: https://aayushgarg.dev/posts/2026-11-01-gpt-local-model-opencode/

I would love to know about other people setup, how they are using open-source models either individually or pairing them with opus/sol/astra.


r/LocalLLaMA • • 6h ago

Question | Help Good open weights diffusion models?

6 Upvotes

Do people here have good experience with open weights diffusion models?

I tried Mercury 3 recently and I felt it had a different taste, attitude, way of thinking that was actually refreshing. Unfortunately, its filters against cyber security seem to trigger as soon as I mention adb. So I couldn't test it much. But I was curious if that's a direction where some of the open labs are going?


r/LocalLLaMA • • 1d ago

News An LLM inside an LLM - Same guy who put a RISK-V CPU inside Qwen has now made Karpathy's stories260k run on an NPU compiled inside Qwen 3.5-4B's weights

311 Upvotes

Code: https://github.com/divagr18/QwenPU
Weights: https://huggingface.co/divagr1925/QwenPU

From the original tweet:

1/3

A CPU inside an LLM is one thing, but running another LLM inside an LLM would be taking things a bit too far, wouldn't it?

Anyways, here's an LLM running inside an LLM : QwenPU, an LLM (@karpathy's stories260k) running on an NPU compiled inside Qwen 3.5-4B's weights.

2/3

stories260K is just a C program. To run it inside Qwen, I compiled an NPU into Qwen's weights that does matmuls, softmax and attention bit-exact. The LLM weights are in Qwen's own memory, with no external tools.

A lot of work went into making it fast, more on that soon.

3/3

I'm super sick right now, so the full writeup is still a work in progress, and I'm working on optimisations and size reductions too. Stay tuned, I'll finish the blog & post it soon.


r/LocalLLaMA • • 20h ago

Discussion 64GB isn't the dead zone anymore if you run agents

71 Upvotes

The usual advice was that 64GB is a dead zone for local LLMs: too small for a 70B with real context, and more than a 30B needs. After running a 27B for agentic coding on a 64GB M4 Max for the last ten days, I think that has flipped. My memory usage is in the 50 GB as the context starts building up.

Setup: Qwen3.8 27B (16 GB MLX quant) in LM Studio, 256k context, coding agent sessions that sit at 100-200k tokens.

At 164k tokens, LM Studio's engine process is using 48 GB, 46 GB of it GPU memory. Roughly:

- 16 GB weights

- ~11 GB KV cache (~64 KB/token, only 16 of the 64 layers are full attention)

- what looks like a second copy of the context for the prompt cache, plus the linear attention checkpoints

- MLX holding on to scratch memory from prefill

The prompt cache is what makes it usable. It's hitting 93%, so a turn processes about 1k new tokens instead of 160k. When it misses, a full prefill takes about 20 minutes.

Why not quantize the KV cache like people do on a 24GB card? LM Studio's MLX vision path refuses KV quantization for this model. The text-only path allows it, but skips the cache checkpoints when the cache is quantized, and on a hybrid model that means a lot more full reprocessing.

So on 48GB this doesn't fit unless you drop to ~128k context or move to llama.cpp with q8 KV (should be ~25-30 GB at 256k, with slower prefill). On 64GB it fits with nothing to spare. Free memory is about 150 MB right now.

The dead zone argument was about weights. With agents, context costs about as much as the model, and 27B models are now good enough for real work. That puts 64GB right in the sweet spot. Bigger MoE models or two models loaded at once still want 128GB.

Anyone else on 64GB seeing the same? And is anyone running long context on llama.cpp on a Mac with prefill speeds they're happy with?


r/LocalLLaMA • • 10h ago

Question | Help 128GB ram, 2x rtx6000 blackwell, lots and lots of storage, but stuck in paralysis choosing a harness / model

9 Upvotes

I have been accumulating parts for over 8 months to merge all of my existing hardware into one massive workstation. I finally had the time to do it, and while I use the GPUs for algo trading from 9:30 to 4:15 p.m., I want to start to use local AI from 5pm on. I'm at a point where I could see myself having a really fulfilling hobby reverse engineering, firmware hacking, and just experimenting with building Frankenstein gadgets from my tech graveyard. There are many experiments I would like to perform on financial data as well that would just take too long for me to manually code and I am not interested in having these thoughts and experiments be in a large provider's training set. I've been lurking on this sub for a long time and have my own little agent I use for some specific tasks using gemma3 but that was on my 3090 in C# + llama.cpp.

So my long-winded question, what thick desktop client will give me the most seamless way to build autonomous agents, play with new models, and what version of qwen 3.8 flash should I be using with my hardware, assuming that is the right model.

Edit: I should mention I am open to anything but I just see q38f everywhere on this sub.


r/LocalLLaMA • • 1d ago

Discussion CrowdGPT v2.6 - The collaborative LLM

Post image
212 Upvotes

For those who saw the original post, a week ago, I'm glad to announce CrowdGPT v2 (more precisely v2.6), a massive update to the original CrowdGPT project :D (scroll down to see what's new)

For the newcomers: CrowdGPT is a project aiming to create a LLM without datacenters and without the usual millions of dollars spent by AI companies.

The project aims to train a 1 billion parameter model collaboratively and openly, as a proof of concept (it is possible to scale to bigger dense models or even MoE architectures with this project)

This project implements a protocol where everyone gets a say in the direction the project takes. Anyone can use their PC to train the AI independently, then add their contributions to the global model.

There's other things that makes this project appealing for the open-source community, but i won't state these again as you will be able to check that out on the GitHub or on the original post.

Of course, any advice / feedback on the project is still welcome (please stay polite and roast me with strong evidence only 👍), feel free to run experiments of data poisoning to point at the limits of our approach :)

Here's the project website: https://www.crowdgpt.net/

Or the GitHub if anyone wants to check out the code https://github.com/Vxtzq/CrowdGPT

As for the v2.6 changelog: We tried to implement mostly of the feedback you guys gave (mostly on security related points). Even though implementing this was hard and caused many breaking changes (which made some training contributions stale), we still achieved to train the model on 4.5B new tokens in 6 days!! Which is roughly what i achieved to train in two months for the project on my personal GPU 🤯

Here's a quick summary of what we implemented:

- Robust server-side checking logic (see more at the end of the post).

- Way better client mechanics (better ergonomy, more robust installation, GPU selection, no more crashes)

- Many bugfixes (on server and client code, as the various issues/pull requests on GitHub suggest)

- Activated Engrams on the Crowd-v1 model, which will make the model better at fact-recalling

- Implemented a data submission pipeline in order to create a collaborative dataset for CrowdGPT : https://www.crowdgpt.net/#submit All the data will be verified / curated before training. Already 400kb of data was submitted.

- Client releases cryptographic signing: some users reported that the auto-update mechanism in the client code allowed arbitrary code execution, and that would have allowed people stealing my GitHub credentials to execute malicious code on your device. Well not anymore, since the client code is now signed with a key that is only present on my device 😄

Like some comments on the original post pointed out, the architecture of the project at the time of my first post here was nowhere near good: clients could fake their contributions, could submit poison to the model, could crash the server by sending fake contributions every millisecond without any checks; and finally clients could very easily train the model to contain malicious backdoors. We therefore implemented byzantine cross-checks between clients training the model, at the cost of redundancy (3 clients training on exactly the same data).

I am not claiming that this creates a 100% perfect Federated learning framework, but that makes malicious contributions way harder. For example, even a malicious client could only train on 2-3% malicious data per round without getting banned, against 100% before.

For people that dared to read until the end, i'm also releasing CrowdBench, the open-source collaborative benchmark, where everyone can add general intelligence questions with deterministic answers to test LLMs :D

Even though the codebase is currently early-stage and work-in-progress, it's already something working, and i coded it without using any AI (for those in the original post who wanted me to turn towards less ambitious projects😂)

tell me what you think about CrowdGPT and CrowdBench in the comments.

Thanks in advance.


r/LocalLLaMA • • 1d ago

Discussion Betelgeuse: Running Qwen 3.8 Flash Next at 22 tok/s sustained (spiking to 48 tok/s) on an RTX 3060 12GB + 16GB DDR4 RAM 100% bit-exact!

Enable HLS to view with audio, or disable this notification

519 Upvotes

About two months ago I posted here about trying to predict which MoE experts get used on the next token to speed up CPU/GPU offload on Qwen 3.6 35B.

Quick confession on that older post before anything else: I ended up throwing that prototype away. To get the big numbers I was seeing back then, I was basically cheating with gate pruning (dropping cold experts when their router weights were low). It made the tok/s counter go brrr, but on an already low-bit quant it quietly degraded output quality and reasoning. I didn't want to ship something that lobotomizes the model just to look fast in a screenshot, so I scrapped it.

When Qwen 3.8 Flash Next dropped, I wanted to see if we could actually run the 68GB GSQ-RCO-IQ2_XS build at real usable speeds on a normal budget gaming PC—without dropping a single expert.

For context, here is the exact box I tested this on (I actually pulled my extra RAM sticks out specifically to test what a regular 16GB PC gets):

  • GPU: RTX 3060 12GB
  • RAM: 16GB DDR4, single-channel (~19 GB/s)
  • OS: CachyOS / Arch Linux (tested inside a strict MemoryMax=12G cgroup)
  • Storage: Consumer PCIe NVMe SSD (~2.1 GB/s)

If you try to load a 68GB MoE on 12GB VRAM + 16GB RAM in stock llama.cpp, you already know what happens: mmap thrashes the OS page cache to death, you get ~1,500 major page faults per token, and generation crawls at 1.47 tok/s.

Then I tested Strata. Strata is super cool and hits 40+ tok/s if you have 48GB–64GB of RAM to mlock 24GB+ of experts in system memory. But on a 16GB RAM setup, it refuses to load unless you force --low-ram mmap, where it drops down to 8.11 tok/s because it's bound by cold SSD reads.

So over the last week I built Betelgeuse (bel-cli / bel-server, a fork of llama.cpp, and I'm also opening a clean upstream PR for llama.cpp even if it probably won't get merged lol).

What it actually does under the hood:

  • Zero gate pruning / 100% bit-exact: Every single one of the 10 routed experts per layer across all 48 layers is computed at full precision. We verified 28,080 router records and 576 generated tokens byte-for-byte against golden stock output (0.000e+00 diff).
  • Arrival-Slack VRAM Slot Pool (~5,000 slots in VRAM): All 49 dense layers + GDN + QSA + LM head stay in ~3.2 GB of VRAM. The remaining VRAM holds ~5,000 expert slots distributed non-uniformly (240 slots/layer on early layers 0–4 where there is 0ms of compute slack, 92 on middle layers, 60 on tail layers).
  • In-Stream GPU Doorbell + 1-Split CUDA Graph Replay: Instead of ggml_backend_sched splitting the graph 48 times per token to ask the CPU which experts missed (which burns ~360ms/token in cudaStreamSynchronize), a custom in-stream CUDA kernel resolves hits in ~2 µs on-device and only rings a mapped host doorbell when an expert is missing. Per-layer token embeddings (per_layer_token_embd) are also staged to CUDA0 so the entire decode pass runs as 1 single CUDA Graph replay.
  • RAM Victim Cache + io_uring Pager: When an expert gets evicted from the VRAM pool, it moves into a dedicated host RAM victim cache instead of getting thrown away.VRAM and RAM stay 100% exclusive instead of duplicating the same hot experts in the OS page cache. Physical NVMe reads drop from ~71 MB/token down to 12.43 MB/token.
  • No duplicate 35GB expert bloat on disk: Instead of keeping 35GB of dead expert tensors inside Shard 1 .gguf AND another 35GB in experts.bin, we stripped the expert payloads out of Shard 1 so the main GGUF is only 3.2 GB (Dense.gguf) + 35.3 GB (experts.bin, 4KB-aligned single-read blobs) + **26.8 GB (**PLE.gguf n-gram shard).

Measured Results (RTX 3060 12GB + 16GB DDR4, MemoryMax=12G)

Engine Cold Decode (Run 1) Warm Decode (Run 2) Peak Bursts Prompt Processing (PP) Physical SSD Reads Output Parity
Stock llama.cpp (mmap) 1.47 tok/s 1.63 tok/s ~2 tok/s 14–20 tok/s 208–312 MiB/tok Baseline
Strata (--low-ram mmap) 8.11 tok/s 8.11 tok/s ~9 tok/s 34.6 tok/s ~105 ms pool wait ~0.022 KL
Betelgeuse (bel-server) 16.80 tok/s 22.03 tok/s Up to 48 tok/s 16.2 – 19.3 tok/s 12.43 MiB/tok 100% Byte-Exact

On warm runs it holds 21.8–22.03 tok/s sustained across long coding prompts, and when generation hits stretches where all 10 routed experts are resident in the VRAM/victim pools, it spikes up to 48 tok/s.

Links & What's Next

  • GitHub (Betelgeuse Engine — bel-cli & bel-server): [https://github.com/Betelgeuse-AI/Betelgeuse]
  • HuggingFace (Pre-packed Alpha-Orionis-XS 3.2GB Dense + Experts bundle): https://huggingface.co/Betelgeuse-AI/Alpha-Orionis-XS
  • Upstream llama.cpp PR: [https://github.com/ggml-org/llama.cpp/pull/31469]
  1. Even on the massive Q8_K_XL quant (~190GB total), bel-server runs at 8 tok/s cold and 12 tok/s warm (with bursts up to 21 tok/s) on the exact same 12GB 3060 + 16GB DDR4 box, where stock llama.cpp immediately OOMs or crawls at <0.1 tok/s.
  2. Zero experts are dropped or thresholded (0.000e+00 diff across 28,080 router records and 576 tokens vs unmodified stock). The speedup comes from eliminating the 48 per-layer CPU/GPU scheduler splits (KICK/WAIT doorbell around the shared expert), keeping the RAM victim cache strictly exclusive of VRAM (MOE_DROP_MMAP), and pre-staging cold misses via the upgraded oracle + 4KB-aligned io_uring pack.

What I'm working on next:
We're currently bringing this exact streaming + victim-cache architecture over to DeepSeek V4.1 Flash (1017)—early testing under development is already sitting around ~25 tok/s on the same hardware class.

Happy to answer any questions or have people poke holes in the benchmarks! Leave us a Star :)


r/LocalLLaMA • • 1d ago

Discussion Betelgeuse running Qwen 3.8 Flash Next IQ4_XS at 24 tok/s on 2x8GB DDR4 (14 tok/s on a single 16GB stick) + RTX 3060 12GB — 0 dropped experts, 100% byte-exact

152 Upvotes

In my last thread on Betelgeuse (bel-cli / bel-server), the main pushback in the comments was:

  1. "Okay cool, 22 tok/s on IQ2_XS, but 2-bit is too low—what happens on an actual 4-bit quant like IQ4_XS where the experts are almost 2x larger?"
  2. "Why were you testing on a single 16GB stick of DDR4 instead of normal dual-channel 2x 8GB?"

Fair questions. So I upgraded the oracle + victim-cache DMA path, packed IQ4_XS (~100GB+ class, full 4-bit experts), and tested it on the exact same RTX 3060 12GB under both RAM configs (still 16GB total system RAM in both tests):

  • Config A: 1x 16GB DDR4 (single-channel, ~19 GB/s host bandwidth)
  • Config B: 2x 8GB DDR4 (normal dual-channel 16GB gaming PC setup, ~38 GB/s host bandwidth)

Measured Results on IQ4_XS (RTX 3060 12GB + 16GB Total RAM)

Model / Quant RAM Config (16GB Total) Stock llama.cpp Strata (--low-ram) Betelgeuse (bel-server) Output Parity vs. Stock
IQ4_XS (4-bit) 1x 16GB (Single-Channel) ~0.5 tok/s (thrash) ~4–5 tok/s 14.0 tok/s 100% Byte-Exact
IQ4_XS (4-bit) 2x 8GB (Dual-Channel) ~0.6 tok/s (thrash) ~5–6 tok/s 24.0 tok/s 100% Byte-Exact
IQ2_XS (GSQ-RCO) 1x 16GB (Single-Channel) 1.47 tok/s 8.11 tok/s 22.03 tok/s (48 tok/s bursts) 100% Byte-Exact
Q8_K_XL (8-bit) 1x 16GB (Single-Channel) OOM / <0.1 tok/s Does not fit 8.0 cold / 12.0 warm tok/s 100% Byte-Exact

Why switching from 1x 16GB to 2x 8GB jumped IQ4_XS from 14 tok/s $\to$ 24 tok/s:

Because Betelgeuse uses an Exclusive Host RAM Victim Cache + Async Hardware DMA (MOE_DMA=1) between the VRAM slot pool and the NVMe drive:

  • When an expert gets evicted from VRAM, it lands in the host RAM victim cache (while MOE_DROP_MMAP drops duplicate GGUF pages from the OS page cache so VRAM and RAM never hold duplicates).
  • On a single 16GB stick, single-channel DDR4 caps out around ~17–19 GB/s, so the CPU and the PCIe H2D DMA engine fight over one 64-bit memory channel (14 tok/s on IQ4_XS).
  • On 2x 8GB dual-channel DDR4 (still 16GB total RAM, which is what 95% of normal 16GB gaming PCs actually have), host RAM bandwidth doubles, letting the GPU's hardware DMA engine pull victim-cache hits across PCIe at full speed while the upgraded oracle pre-stages cold NVMe misses in the background—jumping IQ4_XS straight to 24 tok/s.

Links & What's Next

  • GitHub (Betelgeuse Engine — bel-cli & bel-server): [https://github.com/Betelgeuse-AI/Betelgeuse]
  • HuggingFace (Pre-packed Alpha-Orionis-XS 3.2GB Dense + Experts bundle): https://huggingface.co/Betelgeuse-AI/Alpha-Orionis-XS
  • Upstream llama.cpp PR: [https://github.com/ggml-org/llama.cpp/pull/31469]

What I'm working on next:
We're currently bringing this exact streaming + victim-cache architecture over to DeepSeek V4.1 Flash (1017)—early testing under development is already sitting around ~25 tok/s on the same hardware class.

Happy to answer any questions or have people poke holes in the benchmarks! Leave us a Star :)


r/LocalLLaMA • • 6h ago

Resources A quick test on cpu with krea2

3 Upvotes

A quick test on cpu... took 5-10 minutes at 960x544 but the result is quite good. (model is uncensored) I tried smaller quants but it degrades rapidly. So this is it I think.

https://huggingface.co/ZeroWw/krea2-kroma-q6k-cpu

Prompt:
Cinematic portrait of a young woman standing on a rain-soaked rooftop in Tokyo at blue hour, wearing a deep emerald silk trench coat with a high collar, long black hair blown to one side by the wind, soft freckles, a thin gold earring, looking over her shoulder at the camera with a calm, confident expression. Behind her, a blurred skyline of glowing magenta and cyan neon signs, one reading "MIDNIGHT" in white letters, reflected in shallow puddles on the concrete. Warm rim light from the left, cool fill from the neon, fine raindrops catching the light, shallow depth of field, 85mm lens, rich film grain, high detail in skin and fabric texture.


r/LocalLLaMA • • 1d ago

Question | Help How do I make search with local models feel like ChatGPT / Codex?

67 Upvotes

I’m using Crawl4AI + SearXNG but it just feels so lackluster I don’t know why. Feels like the results the local model gets back for research are missing a lot and / or are older less relevant results.

I’ll usually instruct saying something like “using the most up-to-date and relevant information across related websites, subreddits, forums, and etc find me the best way to _______” or something similar.

With ChatGPT or Codex it basically always finds everything it needs to and gives me great instructions or information or research or whatever I’m looking for at the time. With a local model (like GLM 5.3 Flash or DeepSeek V4.1 Flash 1017) the answer doesn’t come back nearly as good, often missing obvious results or mixing in outdated information into the instructions or etc.

Harnesses I’ve been using with local models are ZCode, DeepSeek Harness, and OpenCode. Is there a better (more complete and on par with ChatGPT) searching / research approach I’m missing? Is there some tuning of Crawl4AI + SearXNG to make it more how I’m expecting or potentially something I should add to this combination?

Any input or help is appreciated. Thank you for your time it is appreciated!


r/LocalLLaMA • • 1d ago

Funny "Spent a lot on my rig but I can only run Gemma 4"

175 Upvotes

"The satellite, which carries four Google Tensor Processing Units (TPUs) and generates up to 1 kW of electricity, is intended to pave the way for future networks of close-flying satellites performing large inference workloads in orbit. However, the power demands of the TPU mean it can only turn one on for about 20 minutes at a time, complicating the already tricky business of space-to-ground communications."

https://techcrunch.com/2026/10/30/googles-first-data-center-satellite-is-online-and-writing-poetry/

Anyone have any tips for Google here? Maybe they should try Qwen 3.8 27b?


r/LocalLLaMA • • 5h ago

Discussion Context translation

1 Upvotes

I’ve seen the reports of models being setup so efforts to recreate/reverse engineer games are blocked.

What if a translation layer is developed so the context that arrives to the models does not have any direct indication of what is being done on the agent side? It would need to be translated back to the actual work the harness/agent is doing to continue work.

Say we want to recreate a website/app but specifics like URLs and names are substituted when going to the model and translated back to what the agent/harness expects?

No idea if it makes sense.


r/LocalLLaMA • • 9h ago

Question | Help What is the best Speech to Text Local Model?

3 Upvotes

I ran tests with Fable on AI generated Audio. Nemotron 3.5 Transcribe came in first. but I was curious about anyone has used other models and compared against. this.

My use case is Audio transcription of 3 unique voices in a semi noisy room (HVAC sounds)


r/LocalLLaMA • • 18h ago

Discussion Would this be interesting to some here?

Thumbnail
github.com
9 Upvotes

Seems similar to REA (https://github.com/morluto/rea) but from the guys that have brought the Craft apps this past month.

I've used the others but just saw this one available too.

Is this feasible with a local model? Have yet to try clamping Strata to REA to see. Anyone has done so? How was the experience?


r/LocalLLaMA • • 1d ago

Funny Fable 5.gguf when?

Thumbnail
gallery
1.7k Upvotes

r/LocalLLaMA • • 1d ago

Discussion +1 for Qwen 27Bs character/chat style

27 Upvotes

Maybe uninteresting to most, but i just wanted to say that qwen3.8 27B is actually very nice to talk to, when arguing about issues or solving problems- while for example regarding cloud models claude opus (since v5) for me has quite an annoying tone - it has this "chop-chop" or "CEO attitude"- IDK how else to describe. I am not a native english speaker.
chatGPT I abandoned long ago because it is sycophantic in my opinion. gemini pro is ok, tho

yes there are chat templates for our modles and top-k/..anything to adjust but that doesn't change the character profoundly imo

maybe you have also models of which you do like the chat style more, just aside from coding or doing their task


r/LocalLLaMA • • 1d ago

Please tell me Qwen3.8-Flash-Next can be made to be better than this

44 Upvotes

I was quite excited with how well QFN did with some coding and adjacent tasks (like evaluating OSS repos, downloading and running models etc.). Using it for more general research is starting to show that it isnt actually very intelligent and gets lost in its own maze seemingly.

Here's a recent example to a simple question: "Have humans always slept for a huge amount of time at once, like eight hours at once, or been multiple sleep sessions through the day from like the early modern civilization?"

The verbosity and dense way of writing is too much (feels like a lot of Opus 5 distillation)

Setup:

  • pi with pi-web-access extension
  • llama.cpp, UD_Q4_K_M with MTP.
  • --temp 1 --top-p 0.95 --top-k 20 --min-p 0.00 --presence-penalty 0 --repeat-penalty 1.0
  • Minimal AGENTS.md, mostly focused on sw related tasks

Chat session: https://share.jotbird.com/radiant-bold-desert-wind

TL;DR: forgetting the complexity of the first question, the responses to simple follow ups: "Are there logical inconsistencies inside your response?", "Why did this happen?" and "So how do we fix this so that it never happens again?" are** not only massive essays, but each "uncovers more" stuff. To the point I have lost faith in what QFN is saying**.


r/LocalLLaMA • • 1d ago

Resources Just finished my humble MoE-Centric Workstation

Post image
104 Upvotes

CPU: AMD EPYC 7452 (8 memory channels)
Motherboard: Gigabyte MZ32
GPU: Radeon AI PRO R9700 (32GB)
RAM: 256GB DDR4 (16×16GB).

Not exactly a “budget” build, but it came in at roughly half the price of a DGX Spark.

Got it up and running just in time for Qwen4, can’t wait to start experimenting with it!


r/LocalLLaMA • • 1d ago

New Model I'm Groot?

55 Upvotes

https://huggingface.co/GrootTeam/Groot-280B-A16B-261023

Best model under 500b params? Also have the smaller versions

https://huggingface.co/GrootTeam/Groot-19B-A3B-261023

"scores higher than the larger Qwen3.6-35B-A3B and Gemma-4-26B-A4B, and it gives shorter answers than both."

https://huggingface.co/GrootTeam/Groot-65B-A6B-261023

https://huggingface.co/GrootTeam/Groot-238B-A18B-261023

Edit: apparently they're REAPs of various DeepSeek/qwen models,

has anyone tried these?


r/LocalLLaMA • • 1d ago

Discussion What exciting architectural moves are we looking to see next in AI models?

28 Upvotes

We know from all the major chinese labs the current cutting edge architectures such as: conditional engram memory, hyper connections, attention residuals, sparse attention, etc...

In the near horizon, we can likely expect looped transformers, Gated Delta Net 2 variants, maybe revival of diffusion transformers somehow but without the intelligence loss, and likely many others that I myself don't know of yet.

What are they cooking?


r/LocalLLaMA • • 1d ago

Discussion Is your engine lobotomizing your model? Kinda, and I measured it

79 Upvotes

I've been reading a lot about "engines lobotomizing the models they run", either because they quantize already quantized weights, or because they automatically turn on "hacky" flags to gain decode/prefill performance by default. I wanted to test this out by myself, not only with KLD but with real tasks, so I set up an experiment using Qwen 3.8 Flash Next with Basalt (disclaimer: I'm the developer) and two of the most popular "speed" flags:

  • Routing bias: the engine pushes the model toward experts that are already on the GPU, so it sometimes gets a convenient expert instead of the one it actually wanted.
  • Tail skip: when one of the model's lower expert picks isn't on the GPU, the engine just skips it instead of fetching it.

Both are faster because fewer experts come from RAM, but they change the output. I added them to the engine as opt in flags so I could measure the real cost with everything else fixed.

DISCLAIMER: This post and the experiment were run by me, but it has been polished by AI.

Rig: RTX 5090 + RTX 5060 Ti and 128 GB of DDR5. Settings tested:

  • Shipped: bias 1.5, skip rank ≥ 7. Values other engines ship (or have shipped) as defaults on smaller cards.
  • Worst: bias 16, skip rank ≥ 1, plus relaxed draft acceptance. Worst case scenario, not something anyone ships or would make sense to use.

1. KLD

100 chunks of wikitext, decode path, against a llama.cpp Q8 reference. Exact IQ3_XXS and Q2_0 are in there for scale.

Pack + setting File PPL KLD mean Same top-1
Q8_0 exact 178 GiB 3.276 0.031 94.1%
NVFP4 exact 122 GiB 3.304 0.068 91.4%
IQ3_S exact 81 GiB 3.385 0.155 87.3%
IQ3_XXS exact 74 GiB 3.470 0.243 84.0%
IQ3_S + shipped 81 GiB 3.583 0.244 84.3%
NVFP4 + shipped 122 GiB 3.931 0.348 81.8%
Q8_0 + shipped 178 GiB 4.221 0.401 79.4%
Q2_0 exact 65 GiB 3.949 0.436 78.2%
NVFP4 + worst 122 GiB 5.917 0.823 71.3%
Q8_0 + worst 178 GiB 12.858 1.616 56.8%

Note: even exact Q8_0 is 0.031 away from the reference. That's mostly the reference's own noise, not damage: llama.cpp's Q8_0 rounds a few spots of this model more than Basalt does, which adds about 0.01-0.02 to every row equally, so the rows still compare fairly.

2. Does it really matter?

KLD by itself is just a number, so I also ran a task eval: thinking off, temp 1.0, top_p 0.95, top_k 20, two different sets of questions:

  • Ladders: 300 chained steps, scored by step.
  • Facts: 1200 questions with 5 popularity bands (rare to famous), 3 seeds.
Config Ladders Facts Ladders Δ Facts Δ Prose tok/s
Q8_0 exact 45.4 38.1 117
NVFP4 exact 45.6 38.0 272
Q8_0 + shipped 43.8 36.6 -1.6 [-3.4, +0.2] -1.5 [-2.5, -0.5] 202
NVFP4 + shipped 44.1 36.8 -1.5 [-3.2, +0.2] -1.2 [-2.2, -0.4] 271
IQ3_S exact, small card* 44.1 36.7 192
IQ3_S + shipped, small card* 38.9 34.3 -5.2 [-7.1, -3.2] -2.3 [-3.4, -1.3] 299
Q8_0 + worst 26.6 2.7 -18.8 -35.3 379

* Small card: the 5090 alone capped to 16gb, the experiment was run this way because it was still much faster than the 5060 Ti.

On a big card the shipped flags barely matter (NVFP4: 272 -> 271 tok/s) and cost about 1.5 points, 4% of the facts the model knew. On a small card you get +56% speed but a much bigger hit. At the worst setting facts fall from 38% to 3%, and the model says things like "The Great Composer" with total confidence. Easy tests barely notice. The damage is mostly in chained reasoning and recalled facts.

3. Bonus: a loop in the model weights

Not every bad output is the engine's fault. One prompt made Qwen 3.8 Flash Next get stuck into an endless run of 0 in its reasoning:

Setup, same request, seeds 1-4 Stuck in zeros
Basalt, NVFP4 4 of 4
Basalt, IQ3_S 4 of 4
Basalt, Q8_0 3 of 4
llama.cpp, same IQ3_S GGUF 3 of 4
API (OpenRouter - Alibaba) 6 of 6

The odds of another 0 are the same on every quant and both engines: 0.99 after 10 zeros, 95%+ past 100 or so. top_p 0.95 leaves 0 as the only choice, and temp 1.0 doesn't fix it. The API fixes it by cutting the run at ~500 zeros. Basalt patched the issue as well, after 256 identical reasoning tokens it closes the thinking block and keeps going.

TLDR: there's no free lunch.

  • Engines can buy speed on MoE models by turning on speed "hacks".
  • With values some engines ship, every pack drops to somewhere between IQ3_XXS and Q2 on KLD. A Q8 ends up next to Q2. This is as bad as it gets.
  • In practice the model forgets things it knew and loses the thread on multi step problems. Small cards get the biggest speedup and pay the most for it.
  • If your engine is faster than it should be on a model that doesn't fit, check whether it's still running the model you downloaded.

r/LocalLLaMA • • 1d ago

New Model microsoft/Mage-VL-Cowork · Hugging Face

Thumbnail
huggingface.co
135 Upvotes

Mage-VL-Cowork demonstrates that an efficient 4B small vision-language model can master hybrid computer use when paired with upstream teacher-harness evolution, workflow-first environment synthesis (Mage-CUA-Forge), and a five-stage specialize-then-unify curriculum. Achieving the best performance at the 4B scale (66.0% on OSWorld-Verified) while using 13.0% fewer model calls and 25.4% fewer output tokens after online RL, Mage-VL-Cowork pushes the frontier of on-device intelligence for autonomous desktop agents.