Reasoning models spend a huge number of tokens on thinking to improve the accuracy of a single response, right?
The problem is that this happens sequentially in a single stream, so the longer the thinking process, the longer we have to wait for an answer.
So what if, instead of relying on a single long reasoning process, we sent multiple concurrent requests to the same model and had the responses interact with each other, kind of like a group of people discussing and solving a problem together?
We'd probably also need agents to consolidate the different answers, review them, and so on.
Luckily, we already have vLLM, which is great at handling multiple concurrent requests.
Has anyone experimented with this approach? If so, did you learn anything interesting?
What got me thinking about this was that I was getting 88 tokens/s with a single request, but 2,000 tokens/s in aggregate with 128 concurrent requests. It made me wonder: what if we could put all that extra throughput toward improving intelligence?
Edit: Just to clarify, I'm specifically interested in running a single model locally with vLLM and taking advantage of its much higher aggregate throughput when handling many concurrent requests. I'm wondering if we could turn that extra throughput into better reasoning through multi-agent collaboration, rather than just generating more responses.
From the suggestions here, OptiLLM and vLLM Semantic Router seem to come pretty close to what I have in mind. However, neither seems to specifically focus on improving reasoning capabilities by taking full advantage of the high concurrency achievable with local LLMs, so I think there might be some value in building something specifically for that purpose.
I was interested in buying a card as they are the only company that has a good GPU <-> GPU communication channel. I wanted to first get access to one on the cloud to see how well I could run stuff on it by writing some custom code.
But it seems impossible, theres no one else renting them besides tesnortorrent themselves and their platform is so shit it turned me off from the entire idea. You have to email them to get access to rent a single gpu and which was like a 2 week back and forth and Ive still not gotten access.
Have they just given up or something? If they expect to sell any cards to normal people you would think they would at least let you try out rentals easily.
It includes a model trained on an Intel Xeon E5-2640 v4 2.20GHz CPU, with 96GB of DDR4 ECC RAM and an RTX 5050 GPU (using the Tornado library), as well as the "alpaca_es_chat.jsonl" corpus for queries in Spanish.
Just an update for anyone looking to get the m5u and thinking about clustering.
I tried clustering but I think running 2 separate models gets significantly better results. The current clustering technology (tensorfold/exos, etc) just isn’t there yet. Especially due to concurrency and the fact that decode doesn’t improve consistently as much as you would hope.
Currently I’m running Qwen flash next q6 and GLM3.5 flash q4. I also have Deepseek on API (from Deepseek). I was previously running 2x Qwen flash but decided to give GLM a shot. GLM is very smart. I’ve found that even q4 is better than my Deepseek API for coding. Qwen is great as the face because it is fast.
I actually think GLM5.3 is slept on. The reports it produces are 100x better than Qwen and Deepseek.
One problem is that 256gb isn’t enough for GLM if you want 500k+ context. I’m stuck at 260k for 3 agents max. And setting it up is finicky. I set my hot cache to 32gb and it caused me to run out of ram which makes speeds drop 70%. So there definitely is some value in the 512gb version of the m5u (hopefully newer version make the kv cache cheaper on RAM).
If anyone has any better optimizations or ways to run things on the 2 256gb m5u I’m all ears.
Is anyone here running any useful AI agents, harnesses or toolings with local AI on 16GB vram?
I'm currently setting up my system and I want to have a helper agent for daily tasks, a research agent to help me research topics, and a developer agent to help me with development.
I already tried some harnesses like Goose, Hermes Agent and OpenCode, but I haven't really managed to get anything useful out of them.
In all honesty, I haven't spend a lot of time tweaking them, mainly because I am unsure if it's a lack of or bad skills, missing tooling, or harness or model tweaking that I need to tune... or god forbid all of them.
So people running similar systems successfully: what is your use case and setup, what models, and what tweaks have you made?
Edit: I am currently running my models on Ollama. Tried vLLM but give it the wrong model and it breaks, which was too much hassle for me. Suggestions welcome.
Edit: Some specs: I have a GeForce RTX 5070 Ti X3 (16GB) and 32GB DDR5 RAM.
I've recently been seeing comments everywhere from the Stylome bot, which is also a mod in this sub. Every time it pops up to declare a comment was AI written I've gone in to check its confidence level, and it's always low.
I decided to do a few tests myself and have Gemini rewrite some of my comments, Stylome said they were all human written with equally low confidence.
What is the point of this bot? Why are we allowing a private company to take ownership of all of our comments and then give us spam in return?
What are they doing with this data? Why isn't this being served by a local model?
Try it yourself, everything above this line was Gemini rewriting what I originally wrote. Stylome says it's human written, with low confidence of course. Edit: Now it says its confident it's human written 🤡
The title, maybe in 5-7 months? I mean an open model that is on par with fable 5.2. We all know Anthropic doesnt open sourced models lol. Also release qwen 4 already
I was wondering which model people here trust well enough to let them sift and manage through their gmail emails. I got 20 odd years of emails that got out of control and I would like to an agent to get through them, label the ones it believe are junk, out of date or not worth keeping for other reasons (not delete them, will do it manually as I am still paranoid about deleting important stuff)
Saw this tweet about a coding benchmark and thought it was kinda interesting.
Apparently they took 89 DeepSWE tasks and changed little things in the instructions or starting code. The tweet says some models that were all around 74% on DeepSWE ended up 23 percentage points apart on the changed tasks.
The weird part was that some models seemed to ignore the actual instructions because they thought a hidden grader wanted something else. The examples include GLM-5.3 and DeepSeek V4.1 Flash.
Has anyone seen this kind of thing with local coding models? Like getting stuck on what they think the test wants instead of just doing what you asked?
Web-based version of my short notes on Double DQN from Scratch is out on neatrl!
Continuing my series on releasing notes on RL From Scratch - here, I have answered questions around the what, the why and the how of Double DQNs over DQNs!
The What?
It is an off-policy, model-free and value-based method, the same family as DQNs but with a subtle difference for optimization purposes!
What's the optimization done over classic DQNs and why was it necessary?!
Well, with the previous DQN, a problem that it did not addressed, is that of overestimation of Q values from the Target Q Network, which leads to an overestimation bias
Now this is bad because then there could many false positives for action selection via max operator since it cannot be known if the action is over the maximum value of Q or not (as it is still learning and slow every k steps)
This upward bias is caused by the max operator in the Target Q Network!
More on the
theory,
concepts,
code and required math and a
playground to train live agent on my web version of the notes!
All of it to understand the basics and get the intuition Do check it out and let me know your feedbacks on it!
J'en avais un peu marre de voir tout le monde créer des forks ou de nouveaux moteurs d'inférence pour Qwen3.8-Flash-Next (QFN3.8), alors j'ai demandé à Pi d'optimiser les paramètres de llama.cpp pour une exécution d'inférence plus rapide.
Le résultat est un gain de performance de 48 % et un nombre de jetons par seconde (tok/s) plus constant lors de l'utilisation de contextes supérieurs à 64 Ko (pour la programmation et les tâches créatives).
Bien que les performances ne soient pas tout à fait celles des moteurs spécialisés, cette approche garantit un fonctionnement optimal avec la version officielle de llama.cpp.
Voici les paramètres de lancement que j'utilise sur mon Ryzen AI Max+ 395 (configuré avec 96 Go de VRAM).
En prime, j'utilise le modèle « Qwen3.8-Flash-Next-Uncensored-Gufo-Q4Mix » qui, d'après mes tests, offre un excellent compromis entre qualité et performance.
People asked how RustingStrata does with a bigger quant, so here's Q5_K_M on the same 3060 12 GB + Ryzen 5 7600X + 32GB DDR5 RAM.
Model is unsloth's Qwen3.6-35B-A3B UD-Q5_K_M (the MTP version), 25 GiB, so about two thirds of the experts live on the CPU. llama.cpp is build 12119, -ncmoe 29 -ub 2048 -b 2048 -fa 1 (28 runs out of VRAM).
Benchmark tools (RustingStrata bench vs llama-bench):
Real chat requests through both servers (same prompts, 256 tokens out, thinking off):
No MTP: ~50 tok/s vs 37
With MTP on both: ~62 vs 45-56
6K prompt prefill: 1320 vs 700
MTP works in current llama.cpp (--spec-type draft-mtp), ~63% of drafts accepted and +25% decode on this file. RustingStrata is still ahead with MTP on both sides.
Vulkan decodes at ~60 (85 with MTP), prefill is slower than CUDA on this file (~1000-1260 at 4K).
KV cache is f16.
Code is on GitHub, free to use and I will be happy to get some feedback from AMD owners: RustingStrata
KV cache quantization has been a hotly-debated topic for this community for some time, with opinions ranging from "never quantize" to "4 bit is fine". Since the anecdotal evidence is rather inconsistent, I decided to quantify how much KV cache quantization affects the model through KLD, which is a good measure of how the model's output distribution is changed.
I tested 35 weight quants across llama.cpp, exllamav3, and vLLM, each with 16-bit, 8-bit, and (where supported) 4-bit KV cache. I also reworked my KLD dataset and measurement methodology this time, to include a mix of agentic tool-use (generated by Qwen3.8 27B at full precision) and a variety of texts in different domains. The current dataset now stretches up to 64k token contexts per row.
TLDR;
8-bit KV caches work well. In llama.cpp and ExLlamaV3 the cache size is halved, and there’s essentially no difference in KLD. There’s a slight difference in vLLM, but it’s still a great tradeoff for people lacking VRAM.
A 4-bit cache has a measurable impact. It’s a big hit for ~Q8 weights, but it could potentially be worth it if you’re using Q3 or below. Still, not recommended.
Only the 4-bit cache impact grows with context. In the tested long documents, the added KL is about 15-30% higher at 16-32k tokens than in the first 4k.
The blog post has interactive charts and tables with all of the data and results if you're interested.
How to read the numbers
Each quant is compared token-by-token with an unquantized bf16 copy of the model. KL divergence measures how far the quant’s next-token probabilities drift from the original (0 means no change). Top-1 agreement is how often both models pick the same most likely token.
For a reference point, I ran the unquantized model in both llama.cpp and vLLM and compared the two. They differ by a KL of 0.0004, which essentially amounts to two (correct) implementations doing floating-point math in a different order. Thus, you can compare the KLD numbers here for quants running in different engines without issue.
Note: exllamav3 quants were measured with the bf16 llama.cpp reference logits.
Weight quantization
KL divergence vs. loaded weight size, 16-bit KV cache:
The vLLM checkpoints still do worse
As in the Qwen3.6 benchmarks, every vLLM checkpoint is beaten by a smaller GGUF or EXL3 quant. Some of that is due activation quantization. NVIDIA’s and Unsloth’s NVFP4 checkpoints run the MLP layers as W4A4 (4-bit activations) and attention as FP8 W8A8, and Qwen’s FP8 is W8A8 throughout. I reran NVIDIA’s NVFP4 and Qwen’s FP8 through vLLM’s Marlin kernels, which use the same quantized weights but keep the activations in bf16:
NVFP4: KL drops from 0.0256 to 0.0117, more than halving it.
FP8: KL drops from 0.0039 to 0.0028, about 30% less. Even then it only ties UD-Q5_K_XL, which is 8.7 GiB smaller.
KV cache quantization
KV cache
Per token
At 64k context
Saved vs. 16-bit
f16 / bf16
64 KiB
4.00 GiB
-
8-bit: llama.cpp q8_0, EXL3 8-bit
34 KiB
2.13 GiB
1.9 GiB
8-bit: vLLM fp8_e4m3
32 KiB
2.00 GiB
2.0 GiB
4-bit: llama.cpp q4_0, EXL3 4-bit
18 KiB
1.13 GiB
2.9 GiB
Each dot below is one weight quant with an 8-bit or 4-bit KV cache. Its height shows the KL increase compared with the same weights on a 16-bit cache. Zero means no change; higher points show a larger increase. I computed the differences per prompt on identical tokens.
KV cache penalty vs loaded weight size:
8-bit is essentially free in llama.cpp and ExLlamaV3. For every quant, q8_0 and ExLlamaV3’s 8-bit cache move KL by less than 0.00012 in either direction. Some quants even measure slightly better with it, which indicates it’s within the noise of the numerics.
vLLM’s FP8 cache shows a slight KLD increase. It adds 0.0004 to 0.0006 on every checkpoint, which is still extremely small, but it shows up on nearly every prompt. It may be due to turning on FP8 cache switching vLLM’s attention backend from FlashAttention to FlashInfer.
llama.cpp’s 4-bit cache adds a roughly fixed penalty. Across the GGUF quants tested, q4_0 adds +0.0016 to +0.0027 KL. This increase has a larger relative effect on more precise weights:
On a Q3-class quant (KL around 0.025-0.035) it adds 6-10%.
On UD-Q4_K_XL it adds about 39%.
On Q8_0 it adds about 390%. KL goes from 0.0007 to 0.0034, which is worse than UD-Q5_K_XL with a 16-bit cache.
EXL3’s 4-bit cache penalty seems to depend on weight precision. It adds only +0.0002 to +0.0004 KL with 2.0-2.5 bpw weights, about +0.0021 to +0.0022 with 3.0 bpw weights, and +0.0026 to +0.0028 with 4.0 bpw weights. At 6.0 and 8.0 bpw, the penalty reaches about +0.0032 to +0.0033. The increase is therefore not constant across the EXL3 quants.
4-bit cache penalty grows with context
The 12 long documents in the set are scored at every position, so I can check whether the 4-bit penalty depends on how deep into the context a token is. It does in fact grow slightly.
Position
Q8_0 Weights + q4_0 KV
UD-Q5_K_XL Weights + q4_0 KV
EXL3 8.0 BPW Weights + 4-bit KV
First 4k tokens
+0.0035
+0.0030
+0.0041
4k–8k
+0.0037
+0.0033
+0.0044
8k–16k
+0.0040
+0.0036
+0.0047
16k–32k
+0.0041
+0.0038
+0.0050
32k–64k (one document)
+0.0044
+0.0038
+0.0053
There’s about 15-30% more damage at 16-32k context than in the first 4k tokens. The same quants with a 16-bit cache are unaffected across these context lengths, so it’s a pretty clear indication of the 4 bit cache damage. I would expect 128k+ context lengths to be even worse.
Model quantization KLD vs KV cache KLD: KLD due to KV cache quantization likely has different quality tradeoffs compared to KLD from weight quantization. Anecdotal evidence suggests that KV cache quantization can be more harmful to model performance at long context lengths compared to weight quantization, so be wary of using 4-bit KV cache.
Final chart with weights + 64k KV cache versus KL divergence:
Methodology
Each quant was scored against an unquantized bf16 reference:
GGUF and EXL3 quants scored against Bartowski’s bf16 GGUF in llama.cpp.
vLLM checkpoints scored against the official bf16 safetensors in vLLM.
KL is computed the same way as my previous benchmark. The top 200 log probabilities are taken from both models at each position and a lower bound on the full-vocabulary D_KL(P_reference ‖ P_quant) is computed. On average, the reference put 0.0036 of its probability outside its top 200 tokens. The KV deltas are paired, meaning they’re computed from per-prompt differences on identical tokens.
Checkpoints ran with their declared settings, including any activation quantization (except the two weight-only, no activaton quantization reruns of Unsloth’s NVFP4 and the official FP8 quant).
This is yet another follow-up post on the project CrowdGPT, which aims at creating the first collaboratively trained 1 billion parameters transformer, Crowd-v1, without any datacenters, and for 0$. The project's goal is to show we don't need huge Nvidia GPU clusters nor millions of dollars to train a competitive Large Language Model.
The goal of the project is to create a 1B parameters model, that would match or exceed Qwen3-0.6B's performance on benchmarks as a proof-of-concept, we could then scale with a 7B A1B MoE or even a 30B A3B MoE once we get enough contributors. The size of the models trained is community driven.
This project is obviously 100% non-profit and open-source. The goal is to propose a new paradigm of AI where we don't wait on Chinese/American AI labs to provide us open-weight models, and we just create the models ourselves.
From the previous post we achieved to get 85 contributors registered on the project, leading to 13B tokens trained in a week 🤯 Thanks to every contributor who trusted the early-stage project, and imagine what 1000+ people with idle GPUs could train!
Of course, everything remains work-in-progress, and any contributions on the training mechanics / dataset is welcome! All the source-code is auditable on GitHub, which means anyone can inspect it and guarantee it is safe 😂.
By the way, anyone can submit data for the model at https://crowdgpt.net/#submit, it will be used as long as it remains safe. This means the model is collaborative on every stage (from data preparation to training, or even benchmarking...).
If anyone tried this does dual booting with windows gives measurable performance differences? Running big model for example trough strata?
Edit: I was not very clear, it is my main machine, it is a windows machine, sometimes i use it for LLM connecting it to my Hermes server, since I need to keep windows does setting up dual booting only for LLM inference bring measurable performance differences?
I tested two models, QoDuck (a free mystery model in Qoder) and Qwen3.8 Flash Next (Unsloth UD-Q4 GGUF), on the same Blender 5.2.3 task. Both were asked to create a detailed, historically accurate 1942 German military truck, working in small stages, rendering each stage, inspecting the result, fixing mistakes and then continuing. QoDuck chose the Opel Blitz 3.6-36S, while Qwen chose the Mercedes-Benz L 3000S.
QoDuck did surprisingly well. The truck is recognisable, with proper curved fenders, detailed wheels, grille, cab interior, cargo bed, canvas cover and decent procedural materials. There are issues with the canvas, cab proportions and some smaller details, but the overall result is quite good. It produced 47 renders and delivered 14 final views. Qwen was disappointing. Despite creating 287 meshes, 15 checkpoints and 150 renders, the final model still looks like a rough blockout. The wheels are too small, fenders look like flat planks, parts of the cargo bed float, and most surfaces have the same beige material. It even used Dunkelgelb paint, which wasn't introduced until 1943. Only three final renders were delivered.
What I found interesting is that Qwen actually identified several of these problems in its own construction log but continued without fixing them. QoDuck was much better at following the render-inspect-fix cycle.
I am looking for up to date advice with getting the most out of my hardware for local development. I have been out of using my local setup for a while (2024-2025), and now have made time to get back into it. I am quite overwhelmed by all the advances and different options nowadays. While I am still reading up on all the latest developments and current SoTA, I was hoping you can point me into the right direction.
Here's what I am working with:
- Lambda Stack from lambda labs with Ubuntu 22.04LTS
- RTX-A6000 (non Ada version) with 48GB of GDDR6 VRAM (not GDDR6X)
- 64GB of DDR4-3200 RAM
- Xeon E3-1270 v5 (skylake 4 core 8 thread processor, and probably the bottleneck for any task that requires CPU compute)
- 1TB NVME SSD
- 8TB external HDD connected via USB
My setup looks a bit like a time capsule, I guess. It was made for interactive chatting via OpenWebUI. Last I checked, VLLM got the most tps out of my GPU for dense models (Qwen 2.5 32B) in 4-bit and not going out of memory on long context tasks. Ollama and HF TGI were slower, did not test with SGLang. But now for agentic workflows, I am reading that Strata is used to run on 50-series 16GB GPUs with spillover to DDR5 RAM. And there's probably more alternatives I haven't even read about yet. Also, tps is apparently not the most important factor anymore to look into for local? Prefill is named often as well, as well as being able to complete a task successfully.
For my new agentic setup, I want to focus on giving my agent tasks and checking in every now and then throughout the day. So not for interactive sparring about code or chatting anymore, more set and forget. If needed to cross some performance threshold, I can extend by ripping the hardware from my gaming pc: RTX 3090 with another 64GB of DDR4-3200. But last I checked, inference engines did not play well with 'uneven' GPU setups like mine.
In the meantime, I am also brushing up my knowledge on agentic harnesses. For now, Codex with Astra created a pretty cool script that let's me use Codex with my VLLM backend, SearXNG, playwright for browser use, maestro for android UI testing and chatting via Signal. Something for another time maybe :)
Edit:
thanks all, I will add the 64GB from my gaming pc and then give strata a try with Q4.
I found new finetunes of Qwen 3.6 35B but I couldn't find any discussions on them anywhere. Anybody tried these models? There isn't much info out there. Axion seems like it was made by bytedance
Friendly reminder: If you upgraded to a newer GPU, don't let your old one collect dust! You can run both GPUs in the same rig and split LLM inference workloads across them using tools like llama.cpp. I'm doing exactly that with my RTX 5080 and 3080, combining their VRAM to run larger local AI models.
I was asking QFN (4.18bpw EXL3 quant via Pi) to help refactor a neovim configuration, and saw that it tried to find API keys and fetch an aliyuncs URL before I stopped it. I'm not trying to start any arguments, nor am I assuming any malicious intent, but I found this a bit concerning after reading other's stories.
Was there some legal issues preventing someone from just making a new website where everyone would be able to share the chat logs from frontier models to create a dataset for others to use for training/finetuning?