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.

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 a #8961 včetně diskuse pod nimi, #8951 k přístupu po síti, karta sady openai/mrcr a modelu Qwen3.5-4B-MTP-GGUF na Hugging Face.