0.1.44 refuses GGUFs whose attention.compress_ratios is all zeros (OrcaRouter Qwen3.8-Flash-Next-Uncensored)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 70/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- cpp
- Domain
- machine-learning
Research direction
The check that rejects the file is in read_geometry in include/strata/artifact/gguf_reader.hpp, where attention.compress_ratios is read per layer and compared with full_attention_interval. Start by confirming that the all-zero list triggers the error on layer 3. Done means an all-zero list is ignored, a list with any non-zero entry is still validated as before, and the reported GGUF files load.
Written by the indexing model from the issue text.
Description
Since 0.1.44 the engine refuses the GGUF files of orcarouter/Qwen3.8-Flash-Next-Uncensored-GGUF (an abliterated Qwen3.8-Flash-Next), which 0.1.43 ran without trouble:
qwen4exp.attention.compress_ratios[3] = 0, but full_attention_interval = 4 makes layer 3 full attention
Cause. These files carry qwen4exp.attention.compress_ratios as 48 zeros, one per layer. That looks like a placeholder written by the converter, not a layer split: every entry is 0, including the full-attention layers. 0.1.43 did not read the key and ran the files with the compiled pooling block. 0.1.44's new check in read_geometry (include/strata/artifact/gguf_reader.hpp) reads the list, finds 0 on layer 3, and rejects the file.
Suggested fix. Treat a list that is all zeros as not given, and check it only when some entry is non-zero:
int64_t block = 0;
- for (int64_t l = 0; l < g.n_layers; ++l) {
+ // a list of zeros only is a converter's placeholder, not a layer split
+ bool given = false;
+ for (int64_t l = 0; l < g.n_layers; ++l) given = given || v->items[(size_t) l].u != 0;
+ for (int64_t l = 0; given && l < g.n_layers; ++l) {
const int64_t r = (int64_t) v->items[(size_t) l].u;
With that change, 0.1.44 loads the IQ4_XS and IQ3_M files of that repository. Over two rounds it runs at the same speed as 0.1.43, and it passes the same checks: tool calls, fixed answers, a picture, and needles at 32K and 128K. A list with any non-zero entry is still checked as before.
Setup: Linux, RX 7900 XTX (gfx1100), ROCm 7.2.4, Strata v0.1.44 built from source. Nothing in 0.1.44.1 touches this check.
Happy to open a PR with this change if you prefer that.
- Dominant language
- C++
- Stars
- 11.6k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Niko1221/Strata
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
conversation cache: once every slot holds a pinned prefix, nothing is parked any more ("skip parking ... exceeds available budget")Possibly taken @KeyanHu-git claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
Maintainers usually reply within 1 day
Similar issues
-
[Cleanup] Include the public header in work_split.cppPossibly taken @blozano-tt claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
tenstorrent/tt-metal#60850 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
beehive-lab/TornadoVM#1248 ·
Maintainers usually reply within 1 day
-
core: RAC_LLM_OPTIONS_DEFAULT.min_p disagrees with the IDL's annotated defaultPossibly taken A pull request linked to this issue is open or already merged. Openbug core p3
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
RunanywhereAI/runanywhere-sdks#1083 ·
Maintainers usually reply within 5 days
-
Difficulty 1/5 Under an hour Newbie friendliness 75/100
tesseract-ocr/tesseract#4653 ·
Maintainers usually reply within 1 day
-
area: docs eco: cpp good first issue help wanted lane: free-agent roadmap size: XS type: docs
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
arminazimi/evergreen#475 ·
Maintainers usually reply within 1 day