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

SGLang odstranil přepínač pro kvantizaci, který v devíti vydáních jen hlásil chybu

Přepínač --torchao-config končil v SGLangu chybou ImportError, ať mu uživatel předal kteroukoli z povolených hodnot. Rozbil ho skok verze knihovny torchao, který se svezl s úpravou testovacího prostředí. Devět vydání si toho nikdo nevšiml; ve verzi 0.5.18 přepínač i s celou závislostí zmizel.

Detail ovládacího panelu s páčkovými přepínači a kontrolkou
Přepínač, který nic nepřepíná, se pozná až po zapnutí. Foto: Shixart1985, Wikimedia Commons (CC BY 2.0)

Server pro běh jazykových modelů SGLang vydal 22. srpna verzi 0.5.18 a mezi nekompatibilními změnami je jedna, která nemá nástupce. Zmizel přepínač --torchao-config, kterým se dala váha modelu při načítání převést do menší přesnosti. Podle poznámek k vydání proto, že u každé přijímané hodnoty končil chybou ImportError od chvíle, kdy projekt posunul připnutou verzi knihovny torchao na 0.17.0.

Co ten přepínač dělal, dokud fungoval

Kvantizace znamená uložit váhy modelu v menším počtu bitů, než v jakém se natrénovaly: model se tím vejde do menší paměti a počítá se s ním rychleji, za cenu jisté ztráty přesnosti. SGLang jich umí několik a torchao byla jedna z nich – knihovna od týmu PyTorche, kterou přepínač zapínal až po načtení vah, ne podle toho, co je uložené v kontrolním bodu.

Dokumentace k tomu měla vlastní oddíl s hotovým příkazem: spustit server s modelem Llama 3.1 8B a --torchao-config int4wo-128. Ten příkaz v ní stál až do 14. srpna, kdy návrh změny #34304 smazal celou funkci i s dokumentací, testy a závislostí.

Rozbilo to zvýšení verze, které mířilo jinam

Rozbor v úkolu #34295 z 10. srpna vede stopu k jedinému řádku. Návrh změny #23119 se 19. dubna 2026 jmenoval „per-job uv venv isolation and upgrade CI version to Cuda 13“, tedy úklid testovacího prostředí, a mimo jiné v něm torchao==0.9.0 vystřídalo torchao==0.17.0.

Mezi těmi dvěma verzemi je třináct měsíců vývoje – 0.9.0 vyšla 28. února 2025, 0.17.0 letos 30. března – a hlavně jedna změna rozhraní. Ve verzi 0.16.0 z 10. února 2026 torchao přejmenovalo své tovární funkce na datové třídy: soubor torchao/quantization/__init__.py vyváží ještě ve značce v0.15.0 jména jako int4_weight_only, kdežto ve značce v0.16.0 už jen Int4WeightOnlyConfig. Stará jména z něj zmizela bez náhradního aliasu. Je to vlastní porovnání obou souborů v repozitáři; poznámky k vydání torchoa tenhle bod nezmiňují.

SGLang tu verzi přeskočil. Jeho kód importoval pět starých jmen naráz jedním příkazem, takže se nerozbila část hodnot, ale všechny. Samostatný návrh #20338 „Bump up torchao to 0.16.0“ z března 2026, který by rozhraní porovnal cíleně, se do hlavní větve nikdy nedostal a v květnu ho někdo zavřel.

Devět vydání a žádné hlášení

Rozbor mluví o čtyřech měsících, což platí pro hlavní větev. Uživatelé to dostali později. Podle souboru python/pyproject.toml v jednotlivých značkách nesla verze 0.5.10.post1 z 9. dubna ještě torchao==0.9.0, kdežto 0.5.11 z 5. května už 0.17.0. Táž hodnota pak zůstala ve všech dalších vydáních až po 0.5.17 z 8. srpna – je jich devět a mezi prvním a posledním je 95 dní. Ve verzi 0.5.18 už řádek s torchoem v souboru není. Počty i data jsou vlastní odečet z těch značek.

Za celou tu dobu nikdo nezaložil hlášení o chybě. Autor rozboru to bere jako údaj o využívání: kdyby se přepínač používal, ozve se někdo první týden.

Proč to nikomu nespadlo dřív

Sešly se dvě věci. Testy k torchou existují, ale leží ve složce test/manual/, kterou si projekt sám popisuje jako testy mimo automatické kolo, určené k místnímu ladění a zvláštním sestavám. Průběžná integrace je tedy nepustí a rozbité rozhraní se v ní neprojeví.

Druhá věc je starší a působí neškodně. Návrh #17626 „Lazy import torchao“ přesunul v lednu 2026 import dovnitř funkce, až za podmínku, která se při prázdném přepínači hned vrací. Cílem bylo umlčet varování při startu a povedlo se to; vedlejším účinkem je, že chybějící jméno nezastaví server při spuštění, ale teprve toho, kdo přepínač opravdu použije. Kdo ho nezapnul, nepoznal nic.

Zrušeno bez lhůty a s jedním vedlejším nálezem

Obvyklý postup by byl označit funkci za zastaralou a po pár vydáních ji vyhodit. Rozbor to odmítá s odůvodněním, že lhůta na přechod dává smysl u něčeho, co funguje, a tady není z čeho přecházet. K tomu dodává, že torchao dnes nenabízí nic, co by SGLangu chybělo: nabídka přepínače končila u osmi a čtyř bitů celočíselně a u fp8, formáty typu NVFP4 nebo MXFP4 v ní nebyly vůbec.

Odstranění samo se neobešlo bez následku. Týž den, kdy změna prošla, musel návrh #34869 dorovnat překryvné načítání vah při startu, které si na zrušené nastavení pořád sahalo – tedy tu část serveru, u níž jsme měřili podíl na délce startu. Ve stejné opravě přibyl i test, který nastavení sestaví z aktuálních parametrů serveru, aby příští smazaná volba spadla už v automatickém kole. Do vydání 0.5.18, které kromě toho omezilo stahování vzdálených médií na 64 MiB, se tak dostala už dorovnaná verze.

Kdo má --torchao-config v příkazové řádce, dostane po přechodu na 0.5.18 chybu o neznámém parametru místo chyby o chybějícím importu. Věcně se pro něj nemění nic: kvantizovaný model nedostal ani předtím.

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

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

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

  3. U sebe doma

    Ollama 0.33.3 čte doporučené hodnoty vzorkování přímo ze souboru modelu

    Ollama do teď používala vlastní výchozí teplotu a top_p vždycky, když je nepřepsal Modelfile nebo požadavek. Verze 0.33.3 z 2. září 2026 se nejdřív podívá, co si o sobě…

  4. U sebe doma

    Hugging Face zveřejnil 207 WebGPU kernelů pro prohlížeč, loader k nim vyšel jako náhled

    Organizace webgpu-kernels na Hubu nese 207 výpočetních programů pro grafický čip pod licencí Apache 2.0 a balíček @huggingface/kernels je z prohlížeče stáhne a spustí.…