Přeskočit na obsah
U sebe doma 4 min čtení

Ternární Bonsai 2 vyšel v baleních, která přečte jen fork llama.cpp

Prism ML vydal druhou generaci svého ternárního přebalení modelu Qwen3.8-27B: 5,95 GB proti 53,8 GB u souboru v F16. Oba zveřejněné soubory ale nesou typy tenzorů, které hlavní větev llama.cpp neumí přečíst, a vydavatel to bere jako výhodu.

Firma Prism ML nahrála 16. září na Hugging Face repozitář Ternary-Bonsai-2-27B-gguf a o den později do něj uložila jedinou revizi se jménem „Bonsai2“. Je to ternární přebalení modelu Qwen3.8-27B od Alibaby: každá váha nese jen hodnotu −1, 0, nebo +1 a na každých 128 vah připadá jedno společné měřítko v F16. Karta modelu slibuje 5,95 GB tam, kde původní model v F16 zabírá 53,8 GB.

Bonsai javoru trojklaného v miskové nádobě
Bonsai javoru trojklaného. Model se jmenuje po stromu, který zůstane celý, jen menší. Foto: Peggy Greb, USDA, Wikimedia Commons (volné dílo)

Ta čísla sedí. Soubor Ternary-Bonsai-2-27B-PTQ1_0.gguf má podle výpisu Hugging Face 5 946 648 928 bajtů, jeho větší sourozenec PQ2_0 7 206 168 928 a srovnávací soubor v F16 53 808 408 928. Ten menší z nich je proti F16 devětkrát lehčí.

Co v tom souboru je

Hlavička formátu GGUF leží na jeho začátku, takže se dá přečíst rozsahovým dotazem HTTP bez stažení vah. V obou souborech je 851 tenzorů a 49 klíčů s metadaty. Ternární kódování nese 402 tenzorů a 26,87 miliardy parametrů; zbytek, tedy 96 tenzorů v BF16 a 353 v F32, dělá dohromady 26,2 milionu parametrů. To je 0,098 % celku a přesně ten podíl, který karta modelu uvádí jako váhy ponechané ve vyšší přesnosti.

Z velikosti souboru děleno počtem parametrů vychází 1,77 bitu na váhu u balení PTQ1_0 a 2,14 u PQ2_0 (vlastní výpočet: bajty krát osm děleno 26 895 998 464 parametrů). Karta modelu uvádí 1,75 a 2,13 – rozdíl dělá slovník tokenizéru a metadata, která v souboru leží vedle vah. U běžných nízkobitových sestav bývá ten rozdíl větší: karta sama uvádí, že rozšířená „dvoubitová“ stavba téhož modelu má ve skutečnosti 2,8 bitu na váhu.

Dva typy, které hlavní větev nezná

Hlavička říká i to, čím se ten model liší od ostatních. Tenzory nesou typy s čísly 142 a 143, jenže výčet typů ve vydání v0.4.1 knihovny ggml končí u čísla 42. Ve forku Prism ML obě čísla jsou a v kódu je u nich komentář „Prism-private“. K tomu si soubor nese sadu klíčů prism.hadamard.*: váhy jsou uložené v otočené soustavě a běhové prostředí musí tutéž transformaci použít na aktivace, jinak z modelu nic rozumného nevypadne.

Vydavatel to nezakrývá. Karta vývojového repozitáře Ternary-Bonsai-2-27B-gguf-dev, kam 17. září přibyl tentýž model v běžném typu Q2_0, píše, že takový soubor hlavní větev načte, protože typ i architekturu zná, a bez jediného varování vydá nesmysl. U typů 142 a 143 se naopak zastaví s chybou. Poslední věta toho odstavce zní, že právě proto se v hlavním repozitáři distribuují ony dva a ne tenhle. Jméno souboru to opakuje natvrdo: Ternary-Bonsai-2-27B-Q2_0-prism-fork-required.gguf.

Předchozí generace variantu pro hlavní větev měla

V červenci vydané Ternary-Bonsai-27B stálo na starším Qwen3.6-27B a vedle balení pro fork v něm ležel soubor Ternary-Bonsai-27B-Q2_g64.gguf. Jeho karta u něj měla poznámku: pro sestavení z hlavní větve llama.cpp použijte tenhle. V repozitáři druhé generace takový soubor není a ani odvozeniny, které první generace měla – například rozbalené váhy nebo návrhový model pro spekulativní dekódování –, u ní zatím nikde nevisí.

O podpoře ve dvoubitových formátech llama.cpp jsme psali už v srpnu, tehdy ještě u první generace. Jiný postup nad týmž základním modelem, smíšenou kvantizaci od DASLabu, popisuje starší text; ta skončila na 8,4 GB a běží v běžných nástrojích. Ternární balení, na které běžný nástroj také nestačí, vyšlo v srpnu i od Syzygy Research; tam ale scházely rovnou váhy v čitelném tvaru.

Během dvou dnů o podporu požádal někdo zvenčí

18. září otevřel uživatel vystupující jako mikestaub v evidenci llama.cpp žádost #29058. Píše v ní, že s Prism ML nijak spojený není a že na to narazil při importu veřejných souborů; stejně prý selže i příkaz create v Ollamě, která llama.cpp obsahuje. Žádá jedno ze dvou: buď oba typy začlenit, nebo je alespoň odmítat hlasitě a se jménem typu.

Téhož dne přidal QuentinDanblon návrh změny #29077, který oba typy i tu transformaci doplňuje. Automat projektu ho označil za popis psaný modelem a správce repozitáře pod něj napsal, ať si to Prism ML podá sám. Odpověď od vydavatele přišla za několik hodin: oba typy nejspíš zůstanou jen ve forku, protože každý nový typ znamená údržbu navíc, a cílem je dostat do oficiálního Q2_0 podporu té rotace. PTQ1_0 podle vydavatele vzniklo proto, že existující ternární typ TQ1_0 pracuje se skupinami po 256 vahách, kdežto tenhle model má 128. Kus té cesty už v hlavní větvi je: návrh #27779 od vývojáře firmy se začlenil 18. září a přidává vstup v F16 do rychlé Walshovy-Hadamardovy transformace.

Testy si změřil vydavatel

Průměr ze čtrnácti testů uvádí karta jako 84,78 proti 86,32 u F16, tedy 98,2 %. Měřilo se nástrojem EvalScope nad vLLM na kartě H100 v režimu uvažování, všechno v režii Prism ML; nikdo jiný ta čísla zatím nezopakoval. Matematika klesla z 97,06 na 96,57 a programování skončilo těsně nad plnou přesností, zato znalostní část spadla z 85,55 na 79,86 a obrazová ze 71,36 na 66,19. Volání nástrojů ztratilo necelé dva body.

Jeden údaj z přehledu nahoře je starší, než vypadá. Rychlost 47 tokenů za sekundu na notebooku s čipem M5 Max pochází z tabulky, u které tatáž karta o pár odstavců níž píše, že je naměřená na starším sestavení před zavedením rotace a čeká na přeměření. Čerstvě změřený řádek pro Apple je jen jeden, M5 Pro s 28,1 tokenu za sekundu.

Licence je na obou stranách Apache 2.0 a soubor NOTICE.txt v repozitáři uvádí, z čeho model vznikl, i prosbu o uvedení původu při nasazení. Kdo si tedy chce 27miliardový model pustit na notebooku, dostane ho legálně – jen k němu musí stáhnout i binárku z forku. A podle vydavatele to tak nejspíš ještě chvíli zůstane.

Zdroje

Diskuse

Zatím tu nikdo nediskutuje. Můžete být první.

Napsat příspěvek

Diskutovat můžete i bez účtu. S registrací se ale příspěvek zveřejní hned a nemusíte pokaždé vyplňovat jméno. Účet už máte? Přihlaste se.

Nezveřejňujeme ho, slouží jen redakci.

Podporuje zápis Texy: **tučně**, *kurzíva*, odrážky, odkazy.

Dál k tématu

  1. U sebe doma

    Ollama vrací Codexu shrnutí konverzace jako prostý JSON v poli encrypted_content

    Testovací verze Ollamy 0.34.0 přidává do rozhraní kompatibilního s OpenAI koncový bod /v1/responses/compact a rozumí spouštěči kompakce, který Codex posílá na konci…

  2. U sebe doma

    llama.cpp sloučil pro DeepSeek V4 zhruba 137 uzlů do jednoho spuštění

    Backend Vulkan v llama.cpp dostal tři sloučené operace pro hyperpropojení DeepSeeku V4. Při dekódování na Strix Halo naměřil autor změny 16,77 místo 11,16 tokenu za…

  3. U sebe doma

    llama.cpp počítal u sedmi architektur normalizaci jinak než jejich referenční kód

    Vektory dotazů a klíčů v hybridní vrstvě Gated DeltaNet dělil llama.cpp odmocninou ořezanou zdola, kdežto knihovna, ke které se jejich referenční kód hlásí, k té…

  4. U sebe doma

    llama.cpp nechá některé velké vkládací tabulky na disku místo v operační paměti

    Projekt llama.cpp vydal 4. září 2026 verzi 0.4.0 s volbou --lazy-mode: vybraná vkládací tabulka zůstane v souboru na disku a program z ní čte řádky až ve chvíli, kdy je…