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

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 konverzace se přesunou do prohledatelného archivu do nového okna se přenese jen doslovný výpis dosavadních pokynů uživatele. Z trojice výhod, které k tomu autor změny napsal, mu vlastní měření dvě nepotvrdilo a on je odvolal.

Archivní vozík před regály plnými svazků
Vystěhovaná část chatu se neztratí. Stane se z ní archiv, ve kterém model musí hledat. Foto: -JvL-, Flickr (CC BY 2.0)

Unsloth vydal 20. srpna 2026 verzi 0.1.801-beta své desktopové aplikace pro běh modelů na vlastním počítači. Mění se v ní to, co se stane ve chvíli, kdy se dlouhý chat přestane vejít do kontextového okna modelu – tedy do množství textu, které model dokáže zpracovat naráz.

Z chybové hlášky na reset okna

Do téhle verze taková chvíle znamenala konec: prompt se nevešel, generování skončilo chybou. Nové vydání to řeší třemi návrhy změn naráz a všechny se sloučily 20. srpna.

První (#8961) zavedl klouzavé okno: jakmile prompt přeteče, zahodí se nejstarší celá kola konverzace, kdežto systémový pokyn a rozepsaný dotaz zůstávají. Uložený přepis chatu se nemaže, mizí jen z toho, co model vidí. Druhý (#9074) k tomu přidal archiv, ve kterém vyhozená kola zůstanou dohledatelná. Třetí (#9162) nahradil postupné ořezávání jednorázovým resetem.

Co si nový úsek vezme s sebou

Po resetu obsahuje okno jen systémový pokyn, blok označený <carried_forward> a poslední dotaz uživatele. Všechno starší je dostupné přes nástroj search_conversation, kterým se model doptá.

Ten blok je doslovný výpis trvalých pokynů, které uživatel dal v kolech, jež se právě vyhazují – tedy vět typu „odpovídej vždycky česky“. Skládá se bez zavolání modelu, takže tu není žádné shrnutí, které by mohlo selhat. Ve zdrojovém souboru checkpoint.py má tři meze: nejvýš 1 024 tokenů, nejvýš desetinu rozpočtu promptu a nejvýš osm položek. Pokyn, který se do meze nevejde, se vynechá celý a nezkracuje se: půlka pokynu se čte jako celý. Nic z toho se neukládá, blok se počítá znovu při každém požadavku.

Reset má dvě pojistky a obě jsou odmítnutím. Okno se nevyprázdní, dokud vyhozená kola opravdu leží v archivu, a nevyprázdní se ani u modelu, kterému nejde nástroj na hledání nabídnout. Shrnování starých kol autor vyzkoušel a zavrhl: podle poznámek k vydání přineslo málo a přidalo asi 190 s ke každému úklidu.

Měření, které si autor sám opravil

Čísla k té změně nikdo nezopakoval – všechna pocházejí od jejího autora, běžela na jednom vzorku a v návrhu změny je k nim vidět postup. Měřilo se na sadě MRCR od OpenAI, kterou autor označuje jako v2 a která do dlouhé konverzace schová několik skoro shodných odpovědí a pak chce doslova jednu konkrétní z nich. Modely byly Qwen3.5-4B a Qwen3.6-35B-A3B, oba v kvantizaci UD-Q4_K_XL.

Z toho vyšlo zjištění, na kterém stojí celý návrh: samotné hledání funguje, jenže model se k němu nemá. Když se pro archiv rozhodl, správnou odpověď našel pokaždé; větší z obou modelů ale nástroj nezavolal u 56 % úloh. Proto první hledání spustí aplikace sama, hned na tom kole, kde k úklidu došlo.

Zajímavější je, co se stalo pak. Autor napsal do popisu návrhu, že reset ušetří přepočítávání promptu, protože okno se nehne osmkrát, ale jednou. Pak si to přeměřil a tvrzení stáhl. Na scéně, kde má každé kolo dvacet tisíc znaků, tedy zhruba 5 000 tokenů proti rozpočtu 12 000, se okno resetuje častěji, ne méně často: za dvanáct kol desetkrát proti pěti u klouzavého okna. Úsek totiž stihne pojmout jen kola, která jsou proti oknu malá.

Podruhé odvolal i výhodu v dohledání starší informace. Do konverzace se schovaly čtyři sledovací kódy a v prvním běhu si nová správa kontextu vybavila všechny čtyři proti jednomu u klouzavého okna; v opakování si obě strany vybavily čtyři ze čtyř. Je to podle autora rozptyl mezi běhy u srovnání na jediném vzorku proti čtyřmiliardovému modelu, takže výhoda v dohledávání prokázaná není. Potvrdit by ji musel běh s víc opakováními na každou variantu, a ten autor nepustil.

Obstálo jedno tvrzení a je to zrovna to, kvůli kterému funkce vznikla. Trvalý pokyn, který se do vystěhovaných kol dostane, model po klouzavém okně přestal plnit, i když si ho z archivu vytáhl jako čtyři úryvky. Po resetu ho plní, protože ho má před sebou. V doloženém běhu na 4B modelu s oknem 16 384 tokenů zbylo po resetu 195 tokenů promptu proti 6 180 u klouzavého okna a přenesený blok měl 806 znaků.

Experimentální, a přesto výchozí

Poznámky k vydání označují úklid za experimentální. V kódu je ale zapnutý bez ptaní: proměnná UNSLOTH_CONTEXT_POLICY má výchozí hodnotu checkpoint a předchozí chování se vrací tím, že se přepne na rolling. Testů k tomu přibylo 21; v celé sadě pro serverovou část prošlo 26 056 testů proti 26 034 na základu, se stejnou sadou dřívějších pádů na obou stranách.

Přístup z telefonu na téže síti

Druhá novinka vydání je přístup k aplikaci po místní síti (#8951). Studio poslouchalo jen na 127.0.0.1, takže se k němu z telefonu na téže Wi-Fi nedalo dostat vůbec; nově se v nastavení zapne druhý posluchač na každé nalezené neloopbackové adrese a aplikace k němu ukáže odkaz i QR kód. Ve výchozím stavu je vypnutý a zapnout ho nejde, dokud si uživatel nezmění vygenerované heslo správce.

Aplikace vyšla 11. srpna 2026 pod licencí AGPL-3.0, kdežto trénovací knihovna Unslothu zůstala pod Apache 2.0; rozdíl se projeví právě u zveřejnění po síti. Instalátory nového vydání se k 22. srpnu 2026 stáhly 17 365krát, z toho 10 086krát ten pro Windows.

Co z toho plyne pro toho, kdo si model pouští doma: dlouhý chat nově doběhne místo toho, aby spadl, a trvalý pokyn v něm vydrží. Kolik přepočítání promptu to bude stát navíc, se pozná až podle toho, jak dlouhé jsou jednotlivé zprávy – a doložit dohledávání starších faktů zatím nikdo nezopakoval.

Zdroje: poznámky k vydání 0.1.801-beta, návrhy změn #9162, #9074#8961 včetně diskuse pod nimi, #8951 k přístupu po síti, karta sady openai/mrcrmodelu Qwen3.5-4B-MTP-GGUF na Hugging Face.

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 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.…

  2. U sebe doma

    llama.cpp přidal k nočním sestavením verze 0.1.x, postup je zatím rozdělaný

    llama.cpp má od 17. srpna vedle nočních značek s písmenem b i značky v0.1.0 až v0.1.2. Nová značka vznikne jen tehdy, když se soubory jeho vnitřní kopie knihovny ggml…

  3. U sebe doma

    llama.cpp vypnul mapování modelu do paměti na části integrovaných grafik

    llama.cpp od 11. srpna 2026 nemapuje soubor s váhami do paměti všude, kde to jde. Nový výchozí režim mapování vypne, jakmile některé ze zapojených zařízení ohlásí, že ho…

  4. U sebe doma

    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…