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

Převodník llama.cpp devět měsíců přehlížel doporučený postih za opakování

Oprava z 24. srpna 2026 mění v převodníku llama.cpp jediný řádek: doporučený postih za opakování se nově čte i pod jménem repetition_penalty. Dosud se hledal jen pod jménem penalty_repeat, které nastavení modelů z Hugging Face nezná, takže se do souborů GGUF nedostal.

Vytažená zásuvka lístkového katalogu plná katalogových lístků
Kdo hledá pod heslem, které v katalogu není, odejde s prázdnou. Foto: יעל י, Wikimedia Commons (CC BY-SA 3.0)

Do llama.cpp přibyla 24. srpna 2026 oprava o jednom řádku. Převodník ze safetensorů do GGUF od té chvíle bere doporučený postih za opakování i z klíče repetition_penalty, ne jen z penalty_repeat. Rozdíl mezi těmi dvěma jmény je celý ten problém: první z nich je standardní jméno z knihovny Transformers, druhé je vlastní jméno llama.cpp a v nastavení stažených modelů se prakticky nevyskytuje.

Co ten postih vlastně dělá

Postih za opakování snižuje pravděpodobnost slov, která už v odpovědi padla. Hodnota 1,0 znamená vypnuto, vyšší číslo tlačí model od opisování sebe sama. Tvůrci modelů si ji ladí spolu s teplotou a prahy top_ktop_p a zapisují ji do souboru generation_config.json, který leží v repozitáři vedle vah.

Právě odtud si ta čísla od listopadu 2025 bere i llama.cpp. Převodník je zapíše do hlavičky souboru GGUF pod klíče general.sampling.* a server je pak použije jako výchozí nastavení. Pořadí je dané: přednost má přepínač na příkazové řádce, po něm doporučení uložené v modelu a teprve nakonec zabudovaná výchozí hodnota. Ta je u postihu za opakování 1,00, tedy vypnuto; výjimkou je jediný nástroj na syntézu řeči, kde je 1,05.

Klíč, který v nastavení modelů nikdo nepíše

Převodník takhle přebírá dvanáct hodnot. Čtyři z nich se jmenují stejně jako v knihovně Transformers, takže sedí bez další práce: temperature, top_k, top_pmin_p. Několik dalších jsou samplery, které existují jen v llama.cpp a jinde protějšek nemají, takže na vlastním jménu nic divného není. Postih za opakování ale protějšek má. Ve zdrojovém kódu Transformers se to pole jmenuje repetition_penalty a řetězec penalty_repeat v něm nestojí ani jednou.

Kolik modelů se to týká, jsme si změřili sami. Vzali jsme sto dvacet nejstahovanějších modelů pro generování textu na Hugging Face a stáhli jim generation_config.json; k 24. srpnu 2026 ho má devadesát tři z nich. Klíč repetition_penalty je ve dvaceti, u devatenácti s jinou hodnotou než 1,0 – čtrnáctkrát 1,05 a pětkrát 1,1. Klíč penalty_repeat, tedy ten, který převodník až dosud hledal, nemá ani jeden z nich.

Všech devatenáct jsou modely řady Qwen, hlavně Qwen2.5 a Qwen3-Coder; část z nich jsou cizí kvantizace téhož modelu. Nejnovější Qwen3.8 už postih za opakování nenastavuje vůbec, takže na něj oprava nedopadne.

Na hotovém souboru je to vidět

Že to není teorie, se dá ověřit bez stahování stovek gigabajtů: hlavička GGUF leží na začátku souboru, takže si stačí vyžádat prvních pár desítek megabajtů a přečíst z nich seznam klíčů. Vzali jsme převod modelu Qwen3-Coder-30B-A3B-Instruct z července 2026 ve variantě Q4_K_M. V hlavičce jsou tři klíče ze jmenované čtveřice: general.sampling.top_k 20, general.sampling.top_p 0,8 a general.sampling.temp 0,7. Přesně ta čísla stojí v nastavení původního modelu. Ve stejném souboru je ale i repetition_penalty 1,05 – a klíč general.sampling.penalty_repeat v GGUF chybí.

Kdo tenhle soubor spustí a nic si nenastaví, dostane teplotu i prahy podle přání autorů modelu a postih za opakování vypnutý. Ne proto, že by ho autoři vypnout chtěli, ale proto, že se jejich hodnota po cestě ztratila. Ručně se dá dosadit přepínačem --repeat-penalty.

Vydaná sestavení opravu zatím nemají

Změna je v hlavní větvi, ne v hotovém programu. Slučovací commit vznikl 24. srpna ve 14:01 UTC, kdežto poslední zveřejněné sestavení b10612 je z 13:41 UTC téhož dne, tedy o dvacet minut starší. Kdo si k večeru toho dne stáhl nejnovější binárku, opravu v ní nemá; do některého z dalších sestavení se dostane sama.

Druhá věc je horší a čas ji nevyřeší: oprava se týká jen převodu. Soubory GGUF, které už na Hugging Face visí, se tím nezmění – doporučenou hodnotu v sobě prostě nemají a dostane se do nich, teprve až je někdo převede znovu. U populárních modelů to obvykle netrvá dlouho, protože kvantizované varianty se sázejí po každé větší změně. U starších převodů, ke kterým se nikdo nevrátí, tam ta hodnota nebude nikdy.

Postih za opakování se řeší i jinde

Ta hodnota není maličkost, se kterou by si nikdo nelámal hlavu. Před dvěma týdny změnila Ollama svoje výchozí nastavení z 1,1 na 1,0 s odůvodněním, že nikdo z tvůrců modelů v její knihovně hodnotu 1,1 nedoporučuje a že postih navíc bere výkon spekulativnímu dekódování. Obě rozhodnutí míří stejným směrem: přestat hádat za autory modelu. Rozdíl je v tom, že llama.cpp k tomu potřebovala hodnotu, kterou si autoři modelu opravdu napsali, a devět měsíců si ji četla ze špatné kolonky.

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

    Ornith 1.5 nese v repozitáři obrazový kodér, jeho karta uvádí jen generování textu

    Tři velikosti modelu Ornith 1.5 vyšly 18. srpna 2026 s obrazovým kodérem, procesorem videa a šablonou rozhovoru, která počítá obrázky. V balíčcích GGUF k nim leží…

  2. U sebe doma

    Kalibrační text pro kvantizaci do GGUF se projeví až pod čtyřmi bity na váhu

    Vydavatel kvantizovaných kopií modelů, který na Hugging Face vystupuje jako bartowski, zveřejnil 17. srpna novou kalibrační sadu a měření, které za ní stojí. Nad zhruba…

  3. U sebe doma

    Unsloth Desktop odsune při přetečení kontextu nejstarší část chatu do archivu

    Unsloth vydal 20. srpna 2026 verzi 0.1.801-beta své desktopové aplikace. Dlouhý chat v ní po přetečení kontextového okna nekončí chybou: okno se vyprázdní, starší kola…

  4. U sebe doma

    Ollama 0.32.15 přestala číst metadata GGUF při každém dotazu

    Server Ollamy otevíral soubor GGUF a četl z něj metadata při každém dotazu na chat i generování; autor změny odhaduje tu režii na 300 ms za volání. Verze 0.32.15 z 19.…