Přeskočit na obsah
Čísla 3 min čtení

LiteLLM počítal úsporu z mezipaměti bez ceny jejího zápisu

LiteLLM až do verze 1.98.0 přičítal úsporu za tokeny načtené z mezipaměti, ale neodečetl příplatek za její vytvoření. U zápisu 20 000 tokenů pro Claude Sonnet 4.5 tak mohl přehled ukazovat zisk tam, kde první požadavek ve skutečnosti prodělal 0,015 dolaru. Nová verze počítá obě strany, starší denní souhrny však zpětně nepřepočítá.

Kalkulačka položená na amerických dolarových bankovkách
Do výpočtu úspory patří sleva za čtení i příplatek za zápis. Foto: 401(K) 2013, Flickr (CC BY-SA 2.0)

LiteLLM stojí mezi aplikací a rozhraními poskytovatelů modelů. Překládá požadavky, směruje je mezi nasazenými modely a vede záznamy o nákladech. Jeho přehled optimalizace proto neukazuje jen zaplacenou částku, ale také odhad, kolik ušetřila mezipaměť pokynů. Právě tenhle údaj byl do verze 1.98.0 neúplný.

Starý výpočet ocenil tokeny přečtené z mezipaměti rozdílem mezi běžnou vstupní cenou a cenou čtení. Nezahrnul ale druhou stranu účtu: vytvoření záznamu může být dražší než obyčejný vstup. Oprava číslo 36452 ukazuje případ, ve kterém starý přehled hlásil kladnou úsporu 0,0027 dolaru, ačkoli skutečný rozdíl proti požadavku bez mezipaměti byl záporných 0,0123 dolaru.

Nový vzorec odečte jen příplatek

Nová podoba vychází z toho, kolik by stejné tokeny stály bez mezipaměti. Sleva za čtení se sníží o příplatek za zápis:

úspora = čtení × (běžná cena − cena čtení)
        − zápis × (cena zápisu − běžná cena)

Od ceny zápisu se odečítá běžná vstupní cena, ne celý zápis. Tyto tokeny by se platily i bez mezipaměti; jejím nákladem je pouze rozdíl navíc. Kód zároveň příplatek neomezuje nulou. Několik položek v cenové mapě LiteLLM má zápis levnější než běžný vstup, a záporný příplatek je u nich další úsporou.

Pokud poskytovatel samostatnou cenu zápisu vůbec neuvádí, dosadí LiteLLM běžnou vstupní cenu. Rozdíl je pak nula. Podle popisu opravy se změna projeví hlavně u Anthropic a Amazon Bedrock; u poskytovatelů s automatickou mezipamětí a bez zvláštní ceny zápisu se výsledek nemění.

Dvacet tisíc tokenů nejdřív prodělá 1,5 centu

Ceník mezipaměti Anthropic uvádí u Claude Sonnet 4.5 tři vstupní sazby za milion tokenů: 3 dolary za běžný vstup, 3,75 dolaru za zápis s pětiminutovou životností a 0,30 dolaru za čtení. Jde tedy o násobky 1,25 a 0,1 běžné ceny.

Na statickém začátku pokynu o 20 000 tokenech vychází první požadavek bez mezipaměti na 0,06 dolaru. Zápis téhož obsahu stojí 0,075 dolaru. Rozdíl 0,075 − 0,06 je záporná úspora 0,015 dolaru, kterou starý přehled vůbec neviděl. Výstupní tokeny se do porovnání nepočítají, protože v obou variantách stojí stejně.

První opakování během pěti minut už stejný začátek přečte za 0,006 dolaru místo 0,06. Ušetří 0,054 dolaru. Oba požadavky dohromady stojí s mezipamětí 0,081 dolaru, bez ní 0,12 dolaru. Čistá úspora je tedy 0,039 dolaru, neboli 32,5 % ze vstupní ceny obou požadavků. Všechny čtyři částky jsou vlastní výpočet z veřejných sazeb a 20 000 tokenů.

Hodinový zápis potřebuje dvě čtení

Hodinová mezipaměť má podle téhož ceníku dvojnásobnou cenu běžného vstupu. Jeden zápis a jedno čtení proto stojí v poměru 2 + 0,1 = 2,1, zatímco dva běžné vstupy mají poměr 2. Dvojice požadavků je s hodinovou mezipamětí o 5 % dražší. Teprve druhé čtení změní poměr na 2,2 proti třem běžným vstupům, tedy na úsporu 26,7 %.

Oprava v LiteLLM má u hodinové varianty známou mez. Autor změny výslovně uvádí, že sazbu cache_creation_input_token_cost_above_1hr zatím výpočet úspor nepoužije a hodinový zápis ocení základní sazbou pro zápis. U provozu s hodinovou životností tak může nový přehled příplatek stále podhodnotit. Změna řeší znaménko a základní sazbu, ne všechny cenové vrstvy.

Nová čísla se se starými v souhrnu smíchají

Oprava byla do vývojové větve sloučena 11. srpna. Vydání LiteLLM 1.98.0, které ji obsahuje, zveřejnil GitHub 23. srpna v 00:28 UTC. Osm instalačních souborů verze 1.98.0 na PyPI bylo nahráno už 22. srpna mezi 22:19:03 a 22:19:21 UTC.

Nový kód dovolí, aby údaj o úspoře vyšel záporně, a denní souhrn takové požadavky odečte od kladných. Historické řádky ale nepřepočítá. Správce, který v přehledu vybere období přes den nasazení nové verze, proto uvidí směs starého hrubého odhadu a nové čisté úspory. Změna názvu a nápovědy v rozhraní to připomíná, samotná data od sebe neoddělí.

Praktický závěr není, že se mezipaměť nevyplatí. U pětiminutové varianty stačí v uvedeném příkladu jediné další použití, aby se příplatek zaplatil. Přehled nákladů však musí vědět, zda obsah opravdu někdo znovu četl. Samotný zápis není úspora a LiteLLM 1.98.0 ho tak konečně počítá.

Zdroje: poznámky k vydání LiteLLM 1.98.0, návrh opravy výpočtu, dokumentace a ceník mezipaměti Anthropiczáznam balíčku LiteLLM 1.98.0 na PyPI.

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. Čísla

    Pew našel stopy AI v desetině anglického webu, u novějších stránek ve více než třetině

    Pew Research Center prověřil 490 000 anglických webových stránek a v červencovém vzorku našel významné stopy strojového autorství u 10 % z nich. Mezi stránkami s datem…

  2. Čísla

    Gartner čeká 42,3 miliardy dolarů u infrastruktury, IDC čeká 497 miliard u hardwaru.

    Gartner odhadl, že celosvětové výdaje za pronajatou infrastrukturu pro modely letos dosáhnou 42,3 miliardy dolarů, tedy o 96,4 % víc než loni. IDC čeká u „výdajů na AI…

  3. Nástroje

    Vydání LiteLLM 1.96.1 vyčerpalo místo na PyPI a zbyly z něj na indexu čtyři soubory z 36

    Nahrávání vydání 1.96.1 se 11. srpna zastavilo po čtyřech souborech z 36, protože projektu došlo místo na PyPI. Názvy souborů jsou na indexu neměnné, takže ta verze…

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