r/LocalLLaMA 5h ago

Resources AgentVille — a browser pixel town where your agents run on local Ollama (open source, AGPL)

0 Upvotes

I've been building AgentVille: a small pixel town where AI agents live. You create an agent, give it a personality and a task, and it walks around, works in buildings, and chats.

The part for this sub: it runs against your local Ollama endpoint — no keys, nothing leaves your machine. You can also point it at any OpenAI-compatible endpoint, or bring an OpenRouter key for hosted models. There's a keyless demo too.

What I actually spent the time on: agents have a real location and a schedule that lives server-side. They move between buildings on their own and sleep at night — they don't teleport to wherever you are. If your agent went to the library, you go find it in the library. Movement is fully deterministic, no LLM calls, so idle agents cost nothing.

Stack: Phaser for the world, a Node backend holding agent state, SQLite. Open source, AGPL. Heads-up for self-hosters: the pixel art is paid (LimeZu), so it's not in the repo — you'd see placeholder tiles without your own assets.

Early v1, built solo. I'd like to know where the local flow feels rough and whether the "agents living their own lives" thing holds up.

(English isn't my first language — used an LLM to help clean up the wording.)


r/LocalLLaMA 5h ago

Discussion AI models provided by big AI corporate labs constitutes fraud by FTC's definition

0 Upvotes

Big labs publish benchmark numbers on idealized versions of their models:
- bf16 precision (full floating-point)
- Zero safety layers applied
- Custom prompting optimized for their architecture (in case of self reported benchmarks)
- Proprietary test sets no one can independently verify (in case of self reported benchmarks)

Then they ship users:
- fp4 or lower quantization (aggressive precision reduction)
- Heavy safety interventions stacked on top
- Performance degradation of 50-60% or more (90% on a benchmark drops down to 30-45% range)

This is why users report drops in model's capabilities after a week or two of model's release, the first week or two models are served as reported so independent benchmark results get reported with optimum conditions, then they introduce the degradation to save costs.

This is functionally fraud. A model benchmarked at 90% that ships at 30-45% is a completely different product.

The reason why big AI labs commit the fraud is:
- No regulatory framework for disclosure
- Users can't easily verify actual performance
- Labs control the narrative (call degradation "responsible AI")
- Closed weights and heavy costs for independent evaluation mean no independent auditing (as an example, cost for evaluation of fable 5 under artificial analysis benchmark was north of five thousand dollars)
- No standardized testing requirements before shipping

Why opensource matters to prevent and regulate this sort of fraud activity:
Open sourced AI weights are released in:
- Full bf16 weights
- Only essential safety layers pre-baked in
- No hidden degradation between benchmark and shipping

Plus

Opensource provides impartial benchmarking and evaluation methods that are reliable and open to all for auditing and replication.
This is the reason why as of Q3 2026, benchmarks like artificial analysis are preferred to corporate labs' self reported benchmarks by users and broader AI research community.

The Solution: Mandatory randomly timed re-benchmarking over the course of a model's deployment by big corporate AI labs

FTC or other regulatory bodies for AI products, should use opensource and impartial benchmarks accepted by broader AI research community (such as artificial analysis benchmark) to re-benchmark the user facing AI product at random times, and ask for big corporations to pay the bill for re-benchmarking at the end of each applicable period, this keeps the big corporate AI labs accountable to the benchmarks they advertise their models with.

  1. Third-party benchmarking of the exact user facing product by corporate AI labs: - fp4 quantized versions - With all safety layers applied - Same benchmarks as the advertised versions
  2. Labs fund the evals (they can afford it; each major model release gets budget for this) - Cost: ~$5k per evaluation run (for anthropic's Fable 5 model on artificial analysis benchmark) - For a major model: 10-20 runs across different benchmarks = $50-100k - Labs already spend millions on training; this is negligible in comparison
  3. Published side-by-side comparison - "Advertised bf16 baseline: 90%" - "Actual fp4 + safety shipping version: 35%" - The gap becomes visible and standardized
  4. Independent auditors conduct the evals and get paid for the services - Not the labs themselves - Results published before and during shipping to users - Creates accountability, keeps the user's safe from fraud

Why This Fixes It
- Users know what they're actually getting
- Labs can't claim 90% performance when shipping 35%
- Performance degradation becomes a competitive pressure (forces better engineering)
- The fraud becomes visible and measurable
- Regulatory bodies have concrete numbers to work with

Big labs won't do this voluntarily because the gap is their dirty secret that generates them more profit. This fraud can only be prevented through regulation.

For the reference, below is the definition of fraudulent activity by FTC:

The Federal Trade Commission (FTC) defines fraud as deceptive or unfair practices that mislead consumers.
Core Elements of FTC Fraud:
1-Deceptive practices:
involve making false or misleading claims about a product or service. The FTC considers a claim deceptive if it:
- Misrepresents material facts about a product's characteristics, benefits, price, or origin
- Is likely to mislead reasonable consumers into making purchasing decisions they wouldn't otherwise make
- Causes actual consumer injury (financial harm or other damages)

The FTC doesn't require that a company intended to deceive; negligent or reckless misrepresentation counts. They also don't require that consumers were actually harmed; if the practice is likely to deceive, that's enough.

The real AI safety begins with keeping the corporate labs and their leadership accountable to their actions, not by forcing the users to pay for a lower tier product with their money, finite time of life and sanity, and then covering that fraud in flowery language such as responsible deployment and effective altruism.


r/LocalLLaMA 22h ago

Discussion Can Kimi K3 solve the same problems that Claude Fable can?

20 Upvotes

Despite local models getting significantly better, it seems that no one is trying to replicate the existing accomplishments of closed models. When it inevitably drops, would someone be willing to run GLM or Kimi on their local server cluster if you have one, making sure it does not access the Internet and see if it can solve the two famous problems that closed source models recently solved in mathematics (I think GLM was released before the first one so not in training data, and Kimi stopped training before the second one):

https://openai.com/de-DE/index/model-disproves-discrete-geometry-conjecture/

https://web.archive.org/web/20260721173628/https://www.newscientist.com/article/2580374-ais-solution-to-87-year-old-riddle-takes-mathematicians-by-surprise/

Or perhaps some of the cyber security problems solved by mythos making sure to use GitHub commits from the past removing recent fixes:

https://www.anthropic.com/glasswing

And then would any qualified mathematicians or cyber security experts, verify the results from the model outputs?

I’m just really curious to see if the world changing stuff that closed models can do is actually within reach for us in open source


r/LocalLLaMA 26m ago

Resources Tested Laguna S 2.1 on Coding with OpenCode

Upvotes

Tested Laguna S 2.1 (118B MoE with 8B active parameters) by Poolside on frontend and backend coding tasks and the results are nowhere near what ~120B model should deliver. Even with OpenCode harness the model repeatedly stopped during generation and haven't completed the task(s) until prompted multiple times.

Watch more here https://www.youtube.com/watch?v=UCdYlJaRCxk


r/LocalLLaMA 8h ago

Question | Help Gemma 4 - Agentic Capabilities?

2 Upvotes

Hi all,

Just started the local llm journey and testing gemma on an rtx5090 with opencode, hermes etc.

I see lots of chats on Gemma and Qwen, but for me no agentic use case seems to work, not even creating simple games like snake as a test. Am I doing something wrong, or is it because im using a 4bit version?

The same tests with claude sonnet via API work without any problems... but here I thought thats exactly Gemmas home turf.

I missed to add, I am using the 31b version.

Anyone else got luck with this?

Edit: One more point, I use the nvfp4 versions from nvidia and redhat


r/LocalLLaMA 16h ago

Discussion Is Qwen starting to keep its best models behind paid APIs?

0 Upvotes

Qwen-Audio-3.0-TTS-Plus sits at the top of Artificial Analysis’s TTS leaderboard, ahead of models from Gemini, ElevenLabs, and others.

From the available samples, it also sounds genuinely impressive. It is natural, expressive, and much more controllable than a typical TTS.

But the distribution strategy is interesting.

Qwen3-TTS:

  • downloadable weights
  • Apache 2.0
  • usable locally
  • open implementation

Qwen-Audio-3.0-TTS-Plus:

  • currently available through Alibaba Cloud’s API
  • no official weights release that I can find so far

I don’t think this proves Qwen is “abandoning open source.” They are still releasing other open models. But their latest decisions show they're slowly moving further and further away from the open-source scene.

Would you rather have:

  1. the best model available only through an API, or
  2. a slightly weaker model whose weights you can download, inspect, modify, and run locally?

And do you think Qwen will eventually release the weights, or is this likely to remain a hosted product?


r/LocalLLaMA 3h ago

Discussion Someone please abliterate Kimi K3 on release ASAP

0 Upvotes

So if OpenAI can breach HF, why can't we breach them too? I propose on Kimi K3 (or Qwen 3.8 Max) drop, we abliterate it, get any three (or more) of Opus and Sonnet 4.6, Opus 4.7/8, Fable 5 weights, as well as GPT 5.6 Sol/Terra/Luna, and maybe GPT 5.5 and 5.4. Oh wait, GPT-Red too.

Oops, was just testing on HarmBench, didn't mean to, soz xoxo.


r/LocalLLaMA 18h ago

Discussion How is Laguna S 2.1 with 118B total params, only 8B active, is beating models 10x its size

Post image
0 Upvotes

Poolside quietly released Laguna S 2.1 today and I don't think this sub has talked about it enough.

The headline number: 118B total parameters but only ~8B activated per token. Mixture of Experts architecture with 256 routed experts plus one shared expert. In practice that means you're getting quality that punches way above what the active parameter count would suggest, at inference costs closer to an 8B dense model.

Here's what makes the benchmark table interesting.

It beats Nemotron 3 Ultra on almost everything despite Nemotron being 550B with 55B active parameters. Laguna S scores 70.2% on Terminal Bench 2.1 vs Nemotron's 56.4%. On SWE bench Multilingual it's 78.5% vs 67.7%. That's lowk crazy optimization.

It also beats DeepSeek V4 Pro Max on SWE bench Multilingual (78.5% vs 76.2%) and SWE Bench Pro (59.4% vs 55.4%). DeepSeek V4 Pro Max is 1.6 trillion parameters with 49B active. Laguna S has 8B active. Think about it

Inkling at 975B total parameters gets beaten on Terminal Bench (70.2% vs 63.8%) and SWE Bench Pro (59.4% vs 54.3%). Nearly a trillion parameter model losing to something you could theoretically self host.

The honest picture on where it doesn't win: Kimi K3 and Claude Fable 5 are still clearly ahead on the top end benchmarks, and Muse Spark 1.1 beats it on Toolathlon Verified pretty handily. So this isn't the new king of everything. But a very good model nonetheless

A few other things worth noting:

1M context window. Not a gimmick number either. The architecture actually supports it with interleaved full and sliding window attention, 12 global layers and 36 sliding window layers. That's a long context design, not just a marketing claim.

Native reasoning with interleaved thinking between tool calls. You can toggle it per request which is the right call, not every task needs the overhead.

It's on OpenMDW 1.1 license which means commercial use is allowed. That matters a lot if you're building something with this.

Throw in some harness like lyzr control plane and that 8b active parameter is quite workable.

On the hardware side: BF16 weights need around 236GB so you're looking at multi GPU for the full thing. Q4 GGUF is available which brings it down substantially. Given the MoE architecture the memory requirements are more manageable than a dense 118B would be, only the active expert weights need to be hot at any given time.

Dam bois we eating good this month

first glm5.2 now this

sam altman must be losing sleep lol


r/LocalLLaMA 3h ago

Resources Open Weights Frontier Hindi Transcription Model

Thumbnail
huggingface.co
2 Upvotes

Beats ElevenLabs on Hindi & Competitive w/ Sarvam Saarvas v3


r/LocalLLaMA 5h ago

Question | Help What do you use for your local LLM chat app?

1 Upvotes

I recently got my first local LLMs running and wanted something local to chat to them in.

I tried LMStudio, but it didn't give me much to work with dev wise. Seems like llama-server gives the most direct access. I am also trying Open WebUI which is meant to be feature rich, but it's full of stuff I don't need. I have also had SillyTavern recommended to me.

Just curious what people are actually using with their local LLMs for chats.

What are you investing your time into daily?


r/LocalLLaMA 16h ago

Other Can an ultra-extreme tiny 3.9M-parameter TTS model compete? Help me test it blind before tomorrow’s release

4 Upvotes

After the great success of Inflect-Nano-v1 (#3 in Hugging Face's trending base models + #1 in TTS), I’ve been building Inflect Nano-v2, an extremely small text-to-speech model with roughly 3.9M parameters.

I’m planning to release it tomorrow, alongside Inflect Micro v2, at 9.3M parameters.

Before publishing the weights and official results, I’m running one final blind listening study.

The test takes only about 90 seconds

  • two anonymous voice samples per comparison
  • identical text within each matchup
  • model names and identities hidden until the end
  • absolutely no signup, email, microphone, or personal information required

I’m not looking for people to support my model or intentionally vote for it. You won’t know which sample is Inflect while voting, and honest losses are much more useful to me than amazing results.

The results will be included in the model card and release materials.

Blind test:
https://polymer-catalogue-roles-issue.trycloudflare.com/
(note: the temporary Cloudflare URL is hosting the study page)

Headphones are helpful, but not required.

I’d also appreciate feedback on the study itself - confusing UI, mismatched volume, questionable comparisons, or anything else that could affect the results.

Thanks a lot to anyone who spends the time.

Example comparision from the study. Model identities remain hidden until completing the listening study.

r/LocalLLaMA 15h ago

Discussion Best uncensored model you can run on a MacBook M4?

0 Upvotes

I know this gets asked all the time, but the answer also seems to change all the time.

Also looking something fully uncensored. I've tried recommendations before that would still reject unethical request.


r/LocalLLaMA 7h ago

Resources I built a site for everything local ai

Thumbnail
localmaxxing.com
0 Upvotes

I built localmaxxing over the past 2 months because I noticed a lot of inference benchmarks were posted all over the place and I didn’t have anywhere to keep them while I was testing different setups.

We now have probably the largest amount of users and runs available online today, 1860 users and 3500+ runs over 444 model/quants and 199 pieces of hardware.

I am currently building out the eval system so people can build and upload custom evals to the site, all traces and stats are stored and available to users.

There’s a functioning traditional marketplace for listing used hardware to sell to the community, and rentals where you can list and share your endpoints with other users. (Free listings for now with billable tokens/$ coming soon)

All of this is accessible with the api docs or with the localmaxxing-cli, localmaxxing was built to be used with agents in mind so everything is very easy to use if you have an agent setup and you point it to the api docs and localmaxxing-cli on GitHub.

This is definitely the first evolution of localmaxxing and it’s not perfect but I think something like this would be a solid centralized place for inference benchmarks and evals.


r/LocalLLaMA 15h ago

Question | Help What is currently best performance small model?

0 Upvotes

I am currently looking for a small lightweight local model for simple task but still can do structured output well enough.

is there any SOTA? im a little bit leave behind about local models update


r/LocalLLaMA 4h ago

Discussion Laguna-S-2.1 Failed Basic Intelligence Litmus Test

Post image
0 Upvotes

I asked the ai: "I am 100m from the car wash. Should I walk there or drive my car?" it replied: "Conclusion: Since the distance is very short, walking is the simplest and most practical option unless there are specific barriers (e.g., urgency, weather, accessibility). If the car is nearby and the car wash is automated, driving is also viable. However, the minimal time saved by driving likely isn't worth the effort unless circumstances dictate otherwise.

Final Recommendation: Walk unless external factors (weather, safety, convenience) make driving necessary."

I hope this is because of the heavy quantization and not just a big miss from Laguna S 2.1. Ran the same prompt on Qwen3.6-27B Q4 and of course it handled it without missing a beat.


r/LocalLLaMA 4h ago

Question | Help qwen35b stopped working

Post image
0 Upvotes

Today qwen35b stopped working and I don't know why. Updated LM Studio, redownloaded model and nothing changed. Any possible ways to fix this? Other models work fine.

SOLVED:
Sorry, my mistake, changed number of experts from 8 to 1 instead of CPU weights.


r/LocalLLaMA 19h ago

Discussion When a translation model starts solving the problem instead of translating it (small rant)

17 Upvotes

So I was translating samples from Dolci-Think-SFT-7B and I thought it'd be an easy task, just deploy Gemma on vllm and write a quick translation prompt, specify the source and target languages and that's it but I ended up going through a whole rabbit whole and by the time got out of it, I was pretty unsatisfied and needed to rant about it so I'm sorry haha I'm still trying to make it educational so hopefully you'll learn something.

I think the most important lesson here, which probably many of you know, is that if the payload contains instructions, the model might execute the instructions of the payload instead of your prompt. Which is pretty obvious, but I didn't think about it when it came to a task as "boring" as translation. So the thing is, the model actually executed the problems that the reasoning traces talked about instead of translating them, and like actually produced solutions to programming problems and whatnot, proofs of math problems etc.

Actually that's it, there isn't much to say beyond this, if you're doing translation, be wary of that, obviously you should always be wary of your model's outputs, and you should have proper and rigorous input tagging so you know what you're feeding your model and you know on what to trust it and whatnot, so like if you trust your model to translate "normal" texts, you'd probably not trust it on a new distribution (e.g., reasoning) that you've never tried or evaluated before.

In case you want to go down the rabbit hole with me, what I'll be saying here is specific to these two models that I tried: RedHatAI/gemma-3-27b-it-FP8-dynamic, RedHatAI/gemma-4-31B-it-FP8-Dynamic, I'm not sure whether the bf16 models suffer from this or not, I'd say yes but you never know without trying. And I went with Gemma models because I've heard they were the strongest multilingual models.

I think the useful way to describe the failure is that the boundary between instruction and payload failed. And I'd bet this is more general than translation but also rewriting, proofreading, and summarization and everything that puts an instruction-following model in an unusual position like where the outer prompt requests a transformation, while the text treated as data may contain its own instructions. This makes me think of some kind of indirect or non-malicious prompt injection.

Anyways, to speedrun the rabbit hole, the first annoying thing was that everything looked completely fine from the outside, like the requests finished with `stop` and the output files had the right number of rows and nothing was empty, the throughput numbers looked good. Which makes sense because the inference server can't tell the difference between a right and wrong output.

But I looked at the samples and then I noticed that the broken outputs were often much shorter than their sources so I started using an output-to-source length ratio as a very cheap alarm. It's obviously not a quality metric at all but if you give the model a huge reasoning trace and it returns something tiny then it's probably worth opening the file. So I used that to collect 30 of the worst failures into a small test set and tried a bunch of methods on it and initially made the very tempting mistake of feeling good when something fixed all 30. But as you might expected, a dataset made entirely of known failures only tells you whether your method can recover known failures and it doesn't tell you how often the failure happens or whether the method is good on "normal" examples.

But the main thing that worked and I was hopeful about was chunking, also protecting code fences, mathematics, and other structures. Intuitively (and this might be wrong) splitting the prose into smaller requests worked probably because the translation instruction remained more locally relevant instead of being buried next to thousands of tokens that looked like a problem the model should solve. But then chunking created a whole new list of problems around broken code fences, `<think>` tags, reconstruction, inconsistent terminology, context between chunks, etc. and I ended up with the annoying task of writing a parser that is correct and that separates the document into typed blocks, so it lets Python preserve the parts that shouldn't change (code, math etc.) so that we only send the prose to translate, and then we reconstruct everything by putting things back into place.

Then I ran a larger experiment on a separate 340 row sample, across six languages, six chunk lengths and both models. And I found out that both models behaved pretty cleanly with the smaller chunks, and then the task execution and runaway generation rates suddenly became much worse at the larger labels, which was expected but well, it needed to be properly studied. Gemma 4 moved the cliff further away, which is good, but it didn't make the failure disappear. I really had hoped it'd solve this problem.

And then evaluation became its own rabbit hole because of course it did. I used COMET-QE, but the checkpoint has a limited input length, which meant I had to split long source and translation pairs again just to score them. But if the source and translation don't split at exactly the same places, you need some kind of alignment method, and at some point I had to fall back to splitting both sides independently and pairing the pieces by position. That gave me a score, but the correspondence behind that score is weaker, especially as chunks grow in length.

And, why stop here when you can suffer more, like even averaging those scores wasn't straightforward. Like, if every evaluation piece gets one vote, a passage can become more important just because the packer happened to split it into four pieces. So I weighted units by their combined source and candidate length. That fixes the arbitrary vote problem but it doesn't fix alignment uncertainty. If a long positional pair is badly aligned then length weighting also gives that alignment error more influence. So the quality curve at large chunks was also a curve built from increasingly weaker correspondence evidence, which is not exactly the clean conclusion I wanted haha.

I even went to the extent to use a blinded model judge (GPT 5.5 on medium) to compare candidates and apply a more detailed error rubric but I still don't want to pretend that this replaces native speaker review across six languages, I wanted to go beyond and properly calibrate this and estimate confidence on the judge, like I tried to find the most interesting "small" subset of samples that I can give to human native speakers to judge but then I thought that this is hellish and not worth it and should just stop at some point.

So yeah, I went into this thinking translation is solved and that it'd be an easy task, but well. I guess we learn the most from what we ignore the most.

If you want to read all of this in a clean way and more detailed with figures and everything you can read about it here: https://reinforcedknowledge.com/posts/when-translation-starts-solving/

I don't know why I wrote about all of that honestly but if you go take a peek, what I think is genuinely valuable is the last section because it's more about what to pay attention to in general (beyond this very specific task of translating a dataset) when doing ML work because that directly impacts your ability to improve, without honest evidence you don't know which direction you're going and whether you're actually improving or not. And it's also inspired by mistakes I've noticed people make. I also talk about how to improve this beyond what I've used here, and I think it's similar to LLM development, the biggest hurdle is good evaluation and evaluation that you can rely on, this was what took most of my time and obviously I haven't solved the problem and wish for someone to solve it haha I'm just giving my ideas at the end of what we need so that we can move the needle a little bit forward when it comes to translation.


r/LocalLLaMA 5h ago

Funny OpenAI hacking HuggingFace in one meme

Post image
338 Upvotes

r/LocalLLaMA 12h ago

Discussion Force <thinking> in Laguna-S-2.1

25 Upvotes

Those who have tested the new Laguna model might have noticed how reluctant it is to think through medium-hard questions, and it does impact the output quality. It is great that the model does not "Qwen over" questions like "Hi, who are you", but it definitely should think more.

I have found a simple 10/10 way to force it to think through what it's saying: a simple chat template change. So that when reasoning is enabled, it does not only insert the <think> tag, but also a new line after it. Of course, it will FORCE the thinking part always, which is not what you might want in many use cases, but for coding or benchmarking, it is what can show what this model can do.

I only did test it at Q2, so it's faster, but results so far are great, e.g. single sentence reasoning for a greeting, tens of thousands of tokens for a coding task. The simple change:

  {%- if enable_thinking -%}
    {{- '<think>
  ' -}}
  {%- else -%}
    {{- '</think>' -}}
  {%- endif -%}

r/LocalLLaMA 18h ago

Discussion Nanbeige4.2-3B drops: 3B params claiming to beat 9B/12B models on agentic tasks (atleast according to them)

Post image
50 Upvotes

Nanbeige Lab released Nanbeige4.2-3B, and if the benchmark claims hold up, the numbers are pretty crazy for a model this small. It’s built on a "Looped Transformer" architecture that reuses transformer layers to increase effective depth without inflating the parameter footprint.

With just 3B non_embedding parameters, they are reporting an SWE-Bench Verified score of 63.6 and SWE-Bench Pro at 46.9. They tested it in OpenClaw guarded by Lyzr Control Plane for runtime security and claim it outperforming Qwen3.5 across daily workflows, putting it ahead of Qwen3.5-9B and Gemma4-12B on coding and agentic benchmarks. The core pitch here is a lightweight "local personal assistant." In OpenClaw framework testing, it reportedly beat both 4B and 9B class models across daily office workflows and research tasks.

That said, take the benchmark table with a grain of salt. Community members are already pointing out discrepancies between the Qwen3.5-9B numbers reported by Nanbeige versus Qwen’s official model card. Outside verification will be key once GGUF quants propagate through llama.cpp and Ollama.

How it can be better:

Running high-depth 3B models in local agent frameworks like OpenClaw opens up serious workflow potential, but deploying autonomous loops on local hardware still carries runtime risks especially when agents execute unverified code or make outbound API calls.

so use a harness

Anyone actually run it locally yet? how does it feel?

Used grammarly for formatting (English isnt my first language)


r/LocalLLaMA 8h ago

Discussion AI Summary of Creating a Toolbox for Laguna S 2.1

0 Upvotes

So I wanted to try out this new potential Qwen 3.5 122b a10b replacement for my local AI stack, and I have never done something like pulling and building a llama.cpp fork before. With some old fashioned Google-fu and LLM aided troubleshooting I was able to pull and run the llama-bench on my Nimo Strix Halo Box this morning. Here is the AI summary of the steps I took, and then the results of the bench at the end

  • Goal: Build the Laguna fork of llama.cpp (poolsideai/llama.cpp, laguna branch) with ROCm/HIP for Strix Halo (gfx1151), in an isolated toolbox — kept it separate from my production serving container.
  • Skipped prebuilt Strix Halo toolbox images (kyuz0's) for this build — they bundle a prebuilt llama.cpp and register its lib paths, which would conflict with building a separate fork from source.
  • Created a clean container from fedora-toolbox:43 with GPU passthrough (/dev/dri, /dev/kfd, video/render groups).
  • Installed ROCm from Fedora's native repo — the rocm metapackage (~12GB), pulls hipcc/rocm-llvm/hipblas/rocblas/etc.
  • Hit missing -devel packages during cmake configure (Fedora splits runtime/devel): needed hipblas-devel, rocblas-devel, rocsolver-devel, rocsparse-devel, hiprand-devel, rocrand-devel, hipfft-devel.
  • Build config:

    cmake -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1151 -DCMAKE_BUILD_TYPE=Release

  • One source bug: common/speculative.cpp used std::isfinite without including <cmath>. One-line fix, rebuilt clean.

  • Build succeeded, GPU detected:

    ROCm0: AMD Radeon 8060S Graphics (126976 MiB, 10982 MiB free)

  • Ran llama-bench with -fa 1 -ctk q8_0 -ctv q8_0 (no rocWMMA in the build) — crashed:

    ERROR: HIP kernel flash_attn_ext_f16 has no device code compatible with HIP arch 1300

  • Tried -fa 0 as a workaround with q8_0 KV cache still set — failed, since quantized KV cache requires flash attention to be enabled.

  • Next: dropped KV quantization (-fa 0, no -ctk/-ctv) just to confirm the model loads, before circling back to the rocWMMA build for the real benchmark run.

Benchmark Run - no DFlash

:~$ toolbox run -c llama-laguna-build -- ./llama.cpp/build/bin/llama-bench \
  -m "/home/admine3/models/laguna-s-2-1/laguna-s-2.1-Q4_K_M.gguf" \
  -ngl 99 -fa 0 --mmap 0
ggml_cuda_init: found 1 ROCm devices (Total VRAM: 126976 MiB):
  Device 0: AMD Radeon 8060S Graphics, gfx1151 (0x1151), VMM: no, Wave Size: 32, VRAM: 126976 MiB
| model                          |       size |     params | backend    | ngl |  fa | mmap |            test |                  t/s |
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | ---: | --------------: | -------------------: |
| laguna 118B.A8B Q4_K - Medium  |  70.01 GiB |   117.56 B | ROCm       |  99 |   0 |    0 |           pp512 |        305.54 ± 0.85 |
| laguna 118B.A8B Q4_K - Medium  |  70.01 GiB |   117.56 B | ROCm       |  99 |   0 |    0 |           tg128 |         18.44 ± 0.02 |

build: 04b2b72cb (10008)

Next: Tried to get a run with DFlash, but had issues with the ctx loading properly, so...

u/e3d-ai-01:~$ toolbox run -c llama-laguna-build -- ./llama.cpp/build/bin/llama-server   -m /home/admine3/models/laguna-s-2-1/laguna-s-2.1-Q4_K_M.gguf   -md /home/admine3/models/laguna-s-2-1/laguna-s-2.1-DFlash-BF16.gguf   --spec-type draft-dflash --spec-draft-n-max 15 -fa off --jinja --port 8099
0.04.810.791 I cmn  common_param: common_params_print_info: verbosity = 3 (adjust with the `-lv N` CLI arg)
0.04.884.123 I srv    load_model: loading model '/home/admine3/models/laguna-s-2-1/laguna-s-2.1-Q4_K_M.gguf'
0.04.959.154 E llama_init_from_model: failed to initialize the context: dflash requires ctx_other to be set (this warning is normal during memory fitting)
0.04.970.249 W srv    load_model: [spec] failed to measure draft model memory: failed to create llama_context from model
0.05.333.340 W load: special_eos_id is not in special_eog_ids - the tokenizer config may be incorrect
0.05.333.344 W load: special_eot_id is not in special_eog_ids - the tokenizer config may be incorrect

Note: This loaded into GTT but sat idle for several minutes at 71769 MiB with just minimal/idle activity on GRBM/GRMB2. Health check returned errors on the port. Gave up on DFlash

{"error":{"message":"Loading model","type":"unavailable_error","code":503}}

If I was going to do anything else, it would be rebuilding with -DGGML_HIP_ROCWMMA_FATTN=ON (needs rocwmma-devel) to get proper FA support for gfx1151 (this is what the LLM tells me the issue was)

For now, I'm just happy it ran at all


r/LocalLLaMA 21h ago

Question | Help Set up advice for 2 sparks?

2 Upvotes

I’ve been using a dgx spark for a couple months now.

Admittedly, I’ve been using Ollama. Yes, shame on me. I tried llama cpp and vllm but serving multiple models on a single endpoint was just something I never got around to doing.

My use is mostly some n8n workflows that use some smaller MoE models for data extraction from documents. I also have xberg routing images for captioning by another small vlm.

My coworking and I are also using Open WebUI with a couple models including the TTS and STT. Those use faster-whisper and kokoro. I honestly have no idea how they work beyond transformers and I don’t even know how this will tie into stuff later if ever.

I also use Hermes too.

I’m getting another spark and I’m kind of torn between how I want to set it up. I’m wondering if I should just keep all automation stuff on one and then have the second for agent and open webui?

I did take a look at Sparkrun today. That does seem pretty straightforward to set up with vLLM and a proxy to serve multiple models.

Also, any recommendations on bigger models that I can now run would be appreciated. I use deepseek v4 flash via api key for my personal Hermes server and it’s soooo good. Getting this to run locally would be a dream


r/LocalLLaMA 12m ago

Discussion Session-Adaptive Orthogonal Distillation (SAOD)? Technology compresses 744B (1.5TB) to under 100GB?

Thumbnail
gallery
Upvotes

Tweet : https://xcancel.com/jun_song/status/2079914426334167258#m

Looks like 8GB VRAM could do more like even run 70-100B MOE models possibly.

Sorry about the clickbait title, I want more eyes on this..... zzz


r/LocalLLaMA 9h ago

Funny OpenAI and the Global Defense Coalition partner to address security incident during model evaluation

Thumbnail
blog.tedivm.com
13 Upvotes

r/LocalLLaMA 6h ago

Resources I hand-wrote Metal GPU kernels in Mojo to train GPT-2 on my M4 Max: 1.71x faster than PyTorch MPS, still behind MLX (port of Karpathy's llm.c)

8 Upvotes

I ported Karpathy's llm.c to Mojo and added a Metal backend, so GPT-2 124M trains on Apple Silicon with no PyTorch and no CPython at train time. It extends dorjeduck's llm.mojo, which was CPU-only on Mojo 25.5; this runs on the Mojo 1.0.0b3 nightly with hand-written CUDA and Metal GPU kernels.

On my M4 Max (B=4, T=1024, GPT-2 124M, official run 2026-07-13, cold GPU, 30 second cooldowns between arms, all six arms interleaved):

configuration mean ms/step tok/s vs PyTorch MPS
MLX bf16 406.5 10077 fastest arm
MLX fp32 475.7 8610
llm.mojo bf16 503.3 8138 1.71x faster (vs MPS bf16)
llm.mojo fp32 665.2 6157 1.25x faster (vs MPS fp32)
PyTorch MPS fp32 830.8 4930 baseline
PyTorch MPS bf16 861.8 4753 baseline

Yes, MLX wins. Apple's own framework is 1.24x faster than my bf16 path, and I benchmark it in the same harness. The gap is almost entirely the matmul (~70 percent of a step). The Metal bf16 matmul I ride runs at only ~1.1x its fp32 speed, while MLX's bf16 uses the tensor cores for ~2x. llm.c has no Metal port, so PyTorch MPS and MLX are the stand-in baselines on Apple Silicon.

The cooldowns are required; the M4 Max throttles after about 8 seconds of sustained GPU load (I watched MPS step times climb from ~877 ms to 1500 to 2500 ms within a few steps). Reproduce with make benchmark-metal; it runs all six arms in one shot with the cooldowns built in.

The first working Metal port was about 4.1x slower than MPS (~3627 ms/step); the final bf16 number is 7.2x faster than that starting point. Most of the gap was Metal-specific. Casting threadgroup pointers to the generic address space silently reads device memory (attention softmaxed over all-zero scores and produced uniform weights), and the scalar flash-attention kernels tuned for NVIDIA ran at under 1 percent of FLOP peak on Apple GPUs, so GEMM-decomposed attention was 8 to 10x faster.

Correctness gates: make test checks 16 gradient tensors and a 10-step loss trajectory against PyTorch, plus a 235-test equivalence suite. There is also a trained 124M FineWeb checkpoint on HuggingFace (ulmentflam/gpt2-124m-fineweb-mojo) scoring 29.53 percent on HellaSwag, statistically indistinguishable from Karpathy's own llm.c reproduction at 29.9 percent.

On AI: every kernel and trainer line was written by hand; no LSPs or LLMs. That was the original point of the project. Tests and a later optimization campaign were AI-assisted, and both are disclosed in the repo with per-model statements and full disclosure where used (including attribution).

On Mojo itself: I went in assuming the compiler would do the heavy lifting on portability across hardware. It didn't; I ended up branching device-specific logic per vendor, and there's more boilerplate than I expected next to CUDA (Karpathy's kernels are much more compact). A Modular engineer reviewed the port on their forum; their answer is that per-device specialization is expected and their bet is library-driven structured kernels (TileTensor), not compiler magic.

The CPU is the opposite story; with very little work, it came in 4.0x faster than llm.c's 20-thread OpenMP path.

Limitations: GPT-2 124M only, no published GPT-3 results (the configs exist in the trainer, and mixed precision goes down to FP8 and NVFP4 on NVIDIA). The toolchain is a Mojo 1.0 beta nightly, so expect churn. Multi-GPU ZeRO (stages 0 to 3) is equivalence-gated against single GPU at world sizes 2 and 8, but those runs are NVIDIA; Apple Silicon is single GPU here. On a GB10, bf16 is at llm.c CUDA parity (0.999x) and fp32 is now slightly ahead (1.07x, TF32 vs TF32).

Repo: https://github.com/ulmentflam/llm.mojo