Five Qwen3.8-27B models match Fable 5 Using GVS5H Harness
Posted by rzk 2 days ago
Comments
Comment by vikramkr 2 days ago
> The updated release of the dataset with problems released between May 2023 and Apr 2025 containing 1055 problems
means essentially guarenteed contamination.
I have no idea if this harness is any good. Agressive orchestration could be interesting given how hard models are RLed on orchestration? But the methods used to evaluate this harness are not informative
Comment by binsquare 2 days ago
Comment by R1ck404 2 days ago
Comment by hirako2000 2 days ago
Comment by chvid 2 days ago
It is not public knowledge how Fable 5 works - it is all hidden away behind a web service - for what it is worth it might a hybrid architecture with harness, loops, tools etc. combined with a traditional llm like what is done here.
Comment by hirako2000 2 days ago
Comment by stymaar 2 days ago
> No comparison to astra/6.1 sol/fable 5.1/opus 5.5
I mean, should a 27B model beat Fable 5 but not Fable 5.1 that would still be an incredible achievement.
Comment by vikramkr 2 days ago
Though point taken that in a case where they didn't even bother making sure they were using the same qwen quants for every run or even test fable in their harness probably that is the least of the issues here.
Comment by badsectoracula 2 days ago
Every role but the verifier is the same
underlying model, called in a fresh context
and coordinating through a shared workspace on disk:
<ws>/task.md - the problem statement
<ws>/plan.md - the manager’s overarching plan
<ws>/tasks.json - a debug mirror of the task list
<ws>/notes.md - curated ideas / findings / partial proofs
<ws>/solution.py - the current solution
Then they describe how there is a ping-pong between manager and worker with fresh context for the worker, but i wonder, is that part or even the worker really necessary?My use of Qwen 3.8 27B (which is the only model i use almost since it came out) is really doing something very similar to the above where first a task is described, a `PLAN.md` file is made with the (current) plan and tasks are either in the plan file or in a separate issue tracker the LLM has access to via a CLI tool, a `STATUS.md` that tracks the current status and a `GOTCHAS.md` file for writing down various notes/tidbits/gotchas (TBH this is largely because Qwen 3.8 27B does want to note down stuff anyway so it mainly acts as an attractor for not writing its notes down in the other two places :-P).
There isn't any real harness driving this, i just give it a task, tell it how it'll be handled and off it goes. I guess i'm playing the "role" of the harness there as i tell it to not go and do everything in one go :-P but i never bother with fresh contexts, Pi's "rolling" approach to compaction (i.e. summarizing the older messages to make space while keeping the recent messages as-is) make it almost a non-issue.
I have considered making it a planning tool, though as some tool it can use via the CLI (it is running in a container), not a harness - but at the same time it feels like it can do the same thing with the `PLAN.md`/`STATUS.md`/`GOTCHAS.md` triplet. The only thing the tool would help with is to provide a UI for me to check what it's currently doing, but even then i usually just stop it and ask it directly :-P then tell it to continue.
Perhaps at some point i'll make some custom benchmark with stuff that are vaguely similar to what i work on and try a bunch of different approaches. It is something i want to do anyway to see how and if Qwen4 27B (whenever that comes it) is an improvement over 3.8.
Comment by Vaushite 2 days ago
The tool that implements this is the harness. An LLM by itself cannot "go off" and "do things" - it can only complete text blocks. A harness bridges this to real world actions or just a chat box interface.
Comment by badsectoracula 2 days ago
Comment by BubbleRings 2 days ago
Comment by badsectoracula 2 days ago
However there is a bug somewhere between my instructions and the model - i think it is the jinja template, though i'm not sure as i haven't actually looked too deep into it - that in some cases make my last message be sent repeatedly to the model after each tool call, making the model think that i'm getting impatient or something :-P. When i notice it, i tell the model that this is some harness bug and it can ignore the repeated messages, which it does.
It seems to happen when i stop it while it is thinking after a tool call but i'm not certain. I try to stop it while some tool call is in process so it cancels the call as that seems to avoid the issue. Restarting llama-server also seems to make the issue go away so it might be a llama.cpp bug, but TBH i haven't found a clear repro case aside from it happening when i interrupt it while it is thinking. I think it is more common when the context is close to full, or at least i mainly remember it happening when i've been using a session for some time (i.e. not in fresh sessions, which does make reproducing it a bit harder).
In any case, the model itself seems to deal with all the above fine (and accepts the bug explanation for repeated messages), it is the rest of the stack that can show an issue with interrupting it (but even that is relatively rare).
Comment by BubbleRings 2 days ago
Comment by 3836293648 2 days ago
Comment by badsectoracula 2 days ago
Comment by verdverm 2 days ago
It's really interesting to see the progress in the 27-30B range, they have gotten quite good but still make noticeably more hallucinations or bad assumptions (ime).
Comment by octoberfranklin 2 days ago
IMHO you need at least 500B weights before the confabulation problem is really under control. i.e. DeepSeek 4.1 or GLM.
I admit some days I'm just lazy and throw a whole Kimi or QwenMax at it.
Comment by verdverm 2 days ago
It's definitely much better at bigger sizes, but I've still seen it at the frontier when coworkers ask me about changes their Ai made to code I originally wrote. (a good habit that organically emerged on the dev team)
Comment by electroglyph 2 days ago
Comment by octoberfranklin 2 days ago
It used to be my go-to "cheap model". I'm glad I have 4.1 now for that.
Comment by guregodevo 2 days ago
The main issue i found is that Qwen3.8-27B thinks a lot. On a hard problem the planner runs 32K tokens of reasoning and never writes the plan. Even with thinking off on Cerebras, a problem takes roughly 3 minutes and the 100 problems about 1.5 hours.
Comment by Olscore 2 days ago
Comment by hartator 2 days ago
Comment by zrg 2 days ago
Comment by sail0rm00n 2 days ago
Comment by jacquesm 2 days ago
Comment by chr15m 2 days ago
Comment by K0balt 2 days ago
If you want 1KW reliably off grid (24/7 with 24kwh battery) (let’s assume 5 hrs solar insulation) you’ll need around 20kw of panels. Even then, you’ll have occasional shortages in inclement weather.
If you are on the grid (theoretically unlimited battery, just averaging over the year) you’ll need 4.8 kw of panels.
Batteries are the hard part of solar.
Comment by jacquesm 1 day ago
Comment by chr15m 1 day ago
Comment by K0balt 1 day ago
Comment by jacquesm 2 days ago
Angle of incidence, time of the year, daylight hours, battery charging.
Comment by Datagenerator 2 days ago
Comment by forgingahead 2 days ago
Comment by verdverm 2 days ago
I'm currently using the Pi harness as well, it's closer to OpenCode v1 with a few plugins. However, I have zero faith in their security or maturity after several communications with the CEO. Pi is also developed by an Israeli team, if that is something that matters to you, re: Mossad concerns or Palestinians rights.
I'm going to go back to my own custom harness and do a full rewrite, now that I have seen what 6+ other harnesses offer.
Comment by octoberfranklin 2 days ago
Comment by verdverm 2 days ago
You can decide for yourself: https://github.com/earendil-works/pi/issues/10895
Anthropic, OpenAi, and OpenCode all support this feature, we have non-developers to support and MDM is widely used.
For comparison, this excellent reply from Aiden on the OpenCode team: https://github.com/anomalyco/opencode/pull/54921#issuecommen...
Comment by octoberfranklin 2 days ago
... which is a foolish mistake.
Also, they have an economic incentive to make themselves the kitchen sink.
Comment by verdverm 2 days ago
Why do you think it is mistake?
How do we provide org / ops determined configuration that users and agents cannot change while still giving them some flexibility to set the values we do not determine?
Comment by cvanelteren 2 days ago
Comment by verdverm 2 days ago
https://github.com/earendil-works/pi/issues/10895
The lack of professionalism or seriousness was mainly in a private email chain with Armin. He added a single comment to this issue after that chain which was the gist of a couple of his replies, less snarky. Either way, the interaction left me disappointed, not a founder who seems interested in listening or learning imo.
Comment by cvanelteren 2 days ago
Comment by verdverm 2 days ago
Comment by cvanelteren 1 day ago
Comment by pianopatrick 2 days ago
But it's not optimized for coding specifically. It can edit files fine using Aider style edits. I've used it to write to do lists as a test. But I more designed it with the idea to be my personal debugging tool if I ran into any weird things while using Linux on a laptop.
github.com/patrickjh/ssa
Comment by forgingahead 1 day ago
Comment by pianopatrick 1 day ago
I heard in a youtube video of a conference talk that many of the more modern models have been designed to output correct JSON. Like the model creators have done something with the next token prediction. When you are asking for JSON, they do some special stuff to basically force the model to output correctly escaped JSON. In the past, getting all output as JSON could lead to malformed JSON and parsing problems. With modern models that basically does not happen any more.
If you are doing a single HTML file harness, you have access to javascript. You might consider getting all model output as JSON. Should be pretty easy for you to parse and then use the output with javascript.
Dealing with JSON in posix sh would have been too many loc for my harness. So I used other techniques. But you don't have to do that.
Comment by badsectoracula 2 days ago
llama-server --model Qwen3.8-27B-UD-Q4_K_XL.gguf --ctx-size 131072 --parallel 1 --cache-type-k q8_0 --cache-type-v q8_0 --host 0.0.0.0 --port 8080 --spec-type draft-dflash --spec-draft-model dflash-Qwen3.8-27B-Q4_0.gguf --spec-draft-n-max 3 --spec-draft-type-k q8_0 --spec-draft-type-v q8_0 --mmproj mmproj-BF16.gguf --no-mmproj-offload --image-min-tokens 2048 --reasoning-preserve
It just barely fits in my RX 7900 XTX's 24GB of VRAM (TBH i'm not sure if dflash is much better than MTP - which is included as part of the GGUF - and MTP saves ~1GB of VRAM). I'm using Linux with Xorg/Window Maker as my DE so it uses no VRAM at all (Qt-based stuff - and i guess modern Gtk too - tend to use some VRAM for themselves, even opening Kate shows up in amdgpu_top :-P). The above gives me on average ~50 tokens/sec generation (drops to about 35 when the context is close to full) and ~700 tokens/sec prompt processing, which while not particularly speedy is fine for agentic stuff as i just give the AI a task and leave it in the background doing things. To save some VRAM i run the multimodal projector for vision on the CPU (the --no-mmproj-offload) and only one task is ever executed at the same time (--parallel 1). Also the kvcache is quantized to q8_0 - supposedly this makes the model a bit dumber, though the extra VRAM needed for the full f16 kvcache makes it more than ten times slower :-P (and AFAIK dense models like the 27B aren't as affected by it as MoE models are).
I'm using Pi[1] (a slightly older version that i've had remain offline and disabled the telemetry) for now (will replace it at some point since i'm not a fan of the ~500MB dependency tree, the almost-dark patterns for online access/telemetry and the increasingly worrying push for the devs' services, but i do like how it approaches compaction and that for the most part it doesn't need any handholding when some error happens - which is ideal for "let the AI do something and check it some time later").
It is running inside a container so it doesn't get any access to my real stuff (mainly to avoid the LLM making any mess - of which it sometimes does in the container, but well, it is contained :-P). In the container Pi gives the LLM some basic tools - read, write, edit and bash - and the last one is basically used to do most of the work (i've also made a bunch of tools the LLM can use via the CLI).
[0] https://huggingface.co/unsloth/Qwen3.8-27B-GGUF/blob/main/Qw...
[1] https://pi.dev/
Comment by orsorna 2 days ago
Comment by badsectoracula 2 days ago
Comment by otekengineering 2 days ago
Comment by ianm218 2 days ago
On one hand, self hosting will always be niche so you could pass a law like “if your serving inference at scale you need to have safeguards/ classifiers in place” since > 95% of inference will go through hosted services in the long run … but that could turn into thought policing dystopia real quick.
Comment by whatshisface 2 days ago
Comment by NegativeLatency 2 days ago
Comment by nialv7 2 days ago
This is literally just how I've been using QFN all this time.
Comment by 112233 2 days ago
Comment by SwellJoe 2 days ago
If someone has one or two 32GB GPUs with decent bandwidth (faster than the Strix Halo or DGX Spark), the dense model is the obviously better choice, and I think that case is more common for the average developer.
Comment by sureglymop 2 days ago
But for coding and cybersec tasks I think GLM 5.3 might be the best one to use still.
Comment by SwellJoe 2 days ago
Comment by sams99 2 days ago
Then ignore the rules of the bench (which is a pretty obsolete one anyway), give it an agentic loop of sorts via delegation and python eyes and then win.
Sorry but this is not how benchmarking works
Comment by esafak 2 days ago
Comment by verdverm 2 days ago
Comment by msikora 2 days ago
That times 5 is steep!
Comment by verdverm 2 days ago
https://spark-arena.com/leaderboard
(you'll have to filter model yourself, no query params)
Comment by yipinwong 2 days ago
The smarter LLMs get, you apply less, as LLM takes care of pre-existing harnesses.
This is a shitty, unreliable, and unmaintainable way of using harness because the harness is built around for the sake of getting good benchmark scores (someone mentioned overfitting in comments, so that)
Comment by pang_claw 1 day ago
Comment by shishuanglu21 2 days ago
Comment by ReDress 2 days ago
Comment by mabunday 2 days ago
I think even if you have the world's best model (not my opinion, but seems to be the popular consensus these days with Anthropic), if the harness around it sucks none of that intelligence is going to matter.
Comment by fastball 2 days ago
Comment by aenis 2 days ago
I am routinely using swarms of agents, with complex sequencing between them and agents watching other agents, and then triggering forks and/or new design cycles. My normal flow is to have a few design tasks open per codebase during the day, with each design agent aware of the other sessions, and having an unattended nightly build which sometimes takes 8hrs and also requires coordination for tests, merges, and so on.
Comment by magicalhippo 2 days ago
I experienced a regression some days ago, where Claude Code with Opus 5.5 wouldn't progress as expected, getting stuck on steps. So I had to repeatedly ask it what the status was and to proceed with X, and so on.
But that was just one day, the days before and after it has done lots of fairly autonomous work, including spinning off multiple subagents to run conformance tests which take 30-50 mins and work on other stuff in the meantime, then acting on the results autonomously.
Comment by Nexus_2077 1 day ago
Comment by aschla 2 days ago
I use Copilot CLI at work, and Claude Code at home, and all harnesses are pretty good these days.
Comment by bcherny 2 days ago
Comment by fractorial 2 days ago
Comment by octoberfranklin 2 days ago
Secondly yeah, all models have issues with foreground vs background subagents. So I just modified my harness to delete foreground subagents. No more confusion. If they need the subagent's output tokens they can read it from the session transcript.
"Take away tools" is often the best solution for model-gets-confused problems. Narrow down your toolset until there's only one way to do things, and then make it the maximally-powerful way.