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.

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.