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

Ollama vypnula výchozí postih za opakování u modelů, které si ho samy nenastaví

Verze 0.32.10 z 12. srpna mění jednu výchozí hodnotu serveru: model, který si postih za opakování sám neurčí, dostane napříště 1,0 místo 1,1, tedy vypnuto. Ollama to zdůvodňuje tím, že žádný z tvůrců modelů v její knihovně hodnotu 1,1 nedoporučuje a že postih stojí spekulativní dekódování část výkonu. Starším modelům může kvůli tomu začít ujíždět opakování, které jim postih dosud zakrýval.

Kdo si pouští jazykový model u sebe přes Ollamu, dostával k téměř každému modelu jeden parametr navíc, aniž o něm věděl: postih za opakování repeat_penalty ve výši 1,1. Verze 0.32.10 z 12. srpna 2026 ho vypnula – výchozí hodnota je nově 1,0, což v tomhle parametru znamená „žádný postih“.

Otevřený notebook MacBook Pro 16 s čipem M1 Pro na stole
Otevřený notebook MacBook Pro 16 s čipem M1 Pro. Ollama měřila dopad postihu na novějším stroji s čipem M5 Max. Foto: Premeditated, Wikimedia Commons (CC BY-SA 4.0)

Změna je jeden řádek, dosah má na celou knihovnu

Celý zásah je commit 6a261db7 a v kódu se týká jediného řádku v souboru api/types.go: funkce DefaultOptions() vrací místo RepeatPenalty: 1.1 hodnotu 1.0. Druhá změna je řádek v dokumentaci.

Že to zasáhne skoro všechno, plyne z toho, jak Ollama nastavení skládá. Volby požadavku vznikají vrstvením: nahoře to, co pošle klient, pod tím parametry, které k modelu vydal jeho autor, a úplně vespod výchozí hodnoty serveru. Model, který postih za opakování ve svých parametrech neuvádí, tedy propadne až na to dno – a do verze 0.32.10 tam našel 1,1.

Ostatní prostředí ten postih zapnutý nemají

Ollama v odůvodnění tvrdí, že je v tom mezi běhovými prostředími sama. To se dá ověřit ve zdrojových souborech.

  • llama.cpp tutéž hodnotu opustil už 19. března 2024 commitem nazvaným „common : disable repeat penalties by default“, který v common/sampling.h přepsal penalty_repeat1.10f na 1.00f. V dnešním souboru common/common.h stojí tatáž jednička s komentářem „1.0 = disabled“.
  • vLLM má v sampling_params.py zapsáno repetition_penalty: float = 1.0.
  • SGLang má v svých parametrech vzorkování rovněž 1.0 a u kontroly rozsahu si to sám popisuje jako „1.0 = no penalty“.
  • Transformers od Hugging Face mají ve výchozí konfiguraci generování tutéž jedničku.

Druhá půlka odůvodnění se týká samotných modelů: podle Ollamy hodnotu 1,1 nedoporučuje ani jeden z tvůrců modelů, které má v knihovně. Buď postih ve svém souboru generation_config.json vůbec neuvádějí, což znamená 1,0, nebo v něm mají 1,05. U Qwenu to sedí do puntíku – Qwen2.5-7B-Instruct i Qwen3-Coder mají v tom souboru "repetition_penalty": 1.05.

K tomu Ollama přidává námitku o obsahu: postih, který běží pořád, kazí i výstup, ve kterém se tokeny opakují po právu. Jmenuje kód, JSON a dlouhé úvahové stopy.

Nejvíc na tom tratí spekulativní dekódování

Spekulativní dekódování je zrychlení, při kterém malý draft model navrhne několik tokenů dopředu a velký cílový model je pak jedním průchodem jen ověří. Ollama ho v podobě techniky DFlash dostala do hlavní větve na začátku srpna.

Postih tuhle mechaniku rozlaďuje, protože každá strana pracuje s jinými pravidly: návrhy vznikají bez postihu, kdežto cílový model je posuzuje s ním, takže je odmítá. Řídicí prvek pak zkrátí hloubku, na kterou se spekuluje, a zrychlení se ztrácí.

Ollama k tomu v textu commitu uvádí vlastní čísla. Měřila je sama, na stroji s čipem M5 Max s technikou DFlash, a nikdo jiný je zatím nezopakoval:

  • u modelu muse-glimmer 30B v úloze HumanEval stojí výchozí 1,1 podle Ollamy 13 až 16 % celkové propustnosti, a to stejně při hladovém výběru jako při teplotě 1;
  • u prózy při teplotě 0,8 klesá podíl přijatých návrhů z 0,44 na 0,30;
  • u modelu qwen3.6-35B se průměrná délka přijatého návrhu zkracuje ze 4,3 na 3,5 tokenu a u prózy prý řídicí prvek přestane spekulovat úplně.

Které modely z knihovny se posunou

Registr Ollamy vydá u každého modelu vrstvu s jeho parametry, takže si výčet z commitu jde přepočítat. Prošli jsme patnáct záznamů z knihovny a vyšlo tohle:

  • Beze změny zůstávají qwen3, qwen3.6 a qwen3.8, které mají repeat_penalty přišpendlený na 1, a qwen3-coder s hodnotou 1,05.
  • Postih ztrácí gemma4, deepseek-r1, qwen3.5, llama3.3, phi4, mistral, gpt-oss a glm4, které ho v parametrech nemají vůbec. Balení granite4, qwen2.5 a devstral nenese vrstvu s parametry ani jednu, takže spadají do téže skupiny.
  • Zvláštní případ je qwen3.5. Ten má v parametrech presence_penalty na hodnotě 1,5, a dosud se na to vršil ještě repeat_penalty 1,1 ze serveru. Odteď působí jen ten první.
  • Qwen2.5 se doporučení autora nedostane ani teď. Qwen k němu doporučuje 1,05, jenže balení v Ollamě žádné parametry neveze, takže se model posunul z 1,1 na 1,0. Aby seděl s doporučením, musela by mu Ollama parametry dopsat.

Modelů běžících u poskytovatele, tedy třeba kimi-k3 nebo deepseek-v4-flash, se to netýká vůbec – výchozí hodnoty serveru k nim nedoléhají.

Když se model rozjede do kolečka

Nepříjemnou půlku si Ollama napsala sama: menší a starší modely se teď můžou začít opakovat víc, protože jim to postih doteď zakrýval. Lékem podle jejích poznámek k vydání není zapnout postih zase všem, ale nastavit ho tomu jednomu modelu – parametrem v jeho Modelfilu, případně volbou v konkrétním požadavku. Postup jsme nezkoušeli, opisujeme ho z dokumentace; stránka o Modelfilu už novou výchozí hodnotu uvádí, byť příklad v posledním sloupci tabulky zůstal na 1.1. Souvisejícího repeat_last_n, tedy kolik tokenů zpátky se postih vůbec dívá, se změna netýká; zůstává na 64.

Pro čtenáře, který si model pouští u sebe, z toho plyne jedna praktická věc: po aktualizaci na 0.32.10 vrací stejné zadání jiný text, aniž kdokoli sáhl na nastavení. Kdo si prompt ladil podle výstupu, začíná s laděním znovu. A ze čtyř prostředí, která jsme prověřili, byla Ollama poslední, kde ten postih ještě běžel – bezmála dva a půl roku po llama.cpp.

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

    ONNX Runtime 1.29.0 sbírá data i na Linuxu, macOS, Androidu a iOS

    Vydání z 12. srpna přidalo do knihovny sběr telemetrie pro Linux, macOS, Android a iOS; dosud běžel jen na Windows. V oficiálních balíčcích je zapnutý ve výchozím stavu…

  2. U sebe doma

    Návod k modelu Ling-3.0-tiny radí zapnout zrychlení, které ten model nemá

    Karta modelu Ling-3.0-tiny radí spustit ho příkazem, který zapíná spekulativní dekódování NEXTN. V konfiguraci téhož modelu ale stojí, že pomocnou vrstvu pro ně nemá, a…

  3. U sebe doma

    vLLM 0.27.0 přeskočil PyTorch 2.12 a přechod na 2.13 stál čtyři ústupky v testech

    Vydání vLLM 0.27.0 z 10. srpna 2026 má v závislostech pevně zadaný torch 2.13.0 místo dosavadního 2.11.0. Mezi těmi dvěma čísly leží dvě vydání PyTorche, která projekt…

  4. U sebe doma

    Muse Glimmer v Ollamě má 21 GB a zatím běží jen na Apple Silicon

    Ollama 0.32.7 přidala třicetimiliardový multimodální model od Mety. Varianta pro MLX stahuje 21,2 GB dat, Meta nejmenší kvantizaci míří do 24GB paměťového rozpočtu a…