Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

0.1.44 refuses GGUFs whose attention.compress_ratios is all zeros (OrcaRouter Qwen3.8-Flash-Next-Uncensored)

Aperta Adatta ai principianti
#2,396 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
70/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
cpp

Direzione di ricerca

Il controllo che rifiuta il file si trova in read_geometry in include/strata/artifact/gguf_reader.hpp, dove attention.compress_ratios viene letto per ogni layer e confrontato con full_attention_interval. Inizia confermando che la lista composta solo da zeri provoca l'errore sul layer 3. È completato quando una lista solo di zeri viene ignorata, una lista con almeno una voce diversa da zero viene ancora validata come prima e i file GGUF segnalati si caricano.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
C++
Stelle
11.6k
Fork
1k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Niko1221/Strata

Tutte le issue di Niko1221/Strata

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.