Kolik tokeny LLM ve skutečnosti stojí a jak zaplatit za méně z nich
Každý účet za API pro jazykový model je účtem za tokeny a téměř nikdo nemá intuici, kolik tokenů daný kus textu je. Výsledkem je stejné překvapení dvakrát za měsíc: funkce, která se při testování zdála levná, stojí ve výrobě čtyřicetkrát více nebo kontextové okno, které „by se mělo hodit“, požadavek odmítne. Oba jsou aritmetické problémy a aritmetika stojí za to se jednou naučit.
Token není slovo
Modelky nečtou znaky ani slova. Čtou tokeny – kusy vytvořené kodérem bajtových párů, který se během tréninku naučil, které sekvence se vyskytují dostatečně často, aby si zasloužily svůj vlastní symbol. Běžná anglická slova jsou jedním tokenem. Vzácné se rozdělují. Tak token je jedna a tokenization je tři, zatímco náhodný řetězec jako x7Qp2 může stát pět.
Základní pravidla, která stojí za to nosit:
- anglická próza: zhruba čtyři znaky na token nebo asi 0,75 tokenu na slovo. Článek o tisíci slovech se pohybuje kolem 1300 tokenů.
- Kód: podstatně horší. Všechny identifikátory odsazení, interpunkce a camelCase jsou fragmenty. Rozpočet se blíží třem znakům na token a miniifikovaný kód považuje za svou vlastní katastrofu – tokenizuje se špatně právě proto, že je neobvyklý.
- Nelatinková písma: zase mnohem horší. Čínština, japonština a korejština se běžně přibližují k jednomu tokenu na jeden nebo dva znaky, takže stejný obsah v japonštině může stát několikanásobek toho, co anglická verze. Mezi tím sedí azbuka a řečtina.
- JSON: interpunkce jsou skutečné peníze. Každá uvozovka, složená závorka, dvojtečka a čárka je alespoň částí tokenu a hluboce vnořené struktury s dlouhými názvy klíčů mohou utratit více za syntaxi než za hodnoty.
Základní pravidla slouží k odhadování. Když na tom záleží, počítejte: LLM token a kalkulačka nákladů tokenizuje to, co vložíte, a vytiskne počet a může také zobrazit text s vyznačenými hranicemi tokenu, což je nejrychlejší způsob, jak pochopit, proč je jeden z vašich výzev nečekaně drahý. Když se vaše vlastní názvy identifikátorů roztříští na čtyři kusy, každý z nich mnohé vysvětluje.
Výstup stojí několikanásobně více než vstup
Podrobnosti o cenách lidem chybí: poskytovatelé účtují zvlášť za tokeny, které odešlete, a tokeny, které model vygeneruje, a výstup je obvykle čtyř až osminásobek vstupní sazby. Výzvám s 10 000 tokeny kontextu a odpovědí s 200 tokeny dominuje vstup. Výzva s 500 tokeny instrukce, která vytvoří esej o 4 000 tokenech, dominuje – výrazně – výstup.
To převrací mnoho optimalizačních instinktů. Oříznutí systémové výzvy z 900 na 600 tokenů ušetří velmi málo, pokud model píše dlouhé odpovědi na každé volání. Řekněte modelu, aby odpověděl ve třech větách místo tří odstavců, hodně ušetří. Než optimalizujete tu špatnou, zeptejte se, na které straně transakce vaše pracovní zátěž skutečně žije.
Kalkulačka oceňuje stejný text u každého modelu ve své tabulce při vstupních i výstupních sazbách, takže můžete porovnat levný model, který dělá celou práci, s drahým, který dělá její část. Referenční ceny jsou uloženy lokálně a pravidelně kontrolovány se stránkami poskytovatele – považujte je za pomůcku při plánování a potvrďte je na vlastní cenové stránce poskytovatele, než se zavážete k rozpočtu, protože sazby se pohybují.
Chat je kvadratický a v tom umírají rozpočty
Jednorázové volání API stojí to, co stojí. Konverzace v každém tahu znovu odešle celou historii, takže dvacetitahový chat nestojí dvacetkrát jedno kolo – stojí zhruba součet rostoucí série. Zatáčka dvacet platí opět za zatáčky jedna až devatenáctá.
Dva důsledky. Za prvé, dlouhotrvající smyčky agentů jsou nejdražším tvarem použití LLM a s největší pravděpodobností budou prototypovány bez měření. Za druhé, rychlé ukládání do mezipaměti je důležitější než jakákoli změna formulace: poskytovatelé zlevňují tokeny, které opakují předponu, kterou již viděli, což znamená umístit váš stabilní obsah – systémovou výzvu, schéma, příklady – úplně na začátek a proměnnou část na konec. Změňte pořadí stejné výzvy tak, aby se měnící časové razítko nacházelo nahoře a vy jste zrušili platnost mezipaměti při každém volání a nic jiného neměnili.
Zmenšení výzvy před jejím odesláním
Většina nadměrných výzev je příliš velká z nudných důvodů: někdo vložil celý soubor, když byly relevantní tři funkce, a soubor je polovina komentářů a prázdných řádků. The LLM kontextový kompresor přesně na to cílí – odstraňuje komentáře ke kódu, sbaluje řady prázdných řádků, odřezává a odstraňuje výplňová slova z prózy a poté hlásí, kolik tokenů střih uložil. Na skutečném zdrojovém souboru, který běžně běží 20–40 %, aniž by se dotkl čehokoli, co model potřebuje.
Manuální řezy, které stojí za to udělat před tím:
- Posílejte úryvky, nikoli soubory. Ani pozornost modelek není zadarmo; irelevantní kontext měřitelně degraduje odpovědi a stojí peníze.
- Odstraňte protokoly do selhávající oblasti. Deset tisíc řádků úspěšného startovacího výstupu nepřispívá k diagnóze.
- Odhoďte opakovaný kotelník. Záhlaví licencí, generované importy, stejné odmítnutí odpovědnosti na každém záznamu.
- Místo opětovného odeslání shrňte. V dlouhém rozhovoru je nahrazení zatáček od jedné do patnácti odstavcem stavu tou největší dostupnou úsporou.
Když vstup skutečně nesedí
Kontextová okna jsou nyní velká, ale „velké“ je stále konečné a kniha, rok protokolů nebo úplný přepis překročí jeden. Rozdělení je standardní odpovědí a záleží na tom, kde rozdělujete: seříznutím střední věty nebo střední funkce vytvoříte kusy, které musí model uhodnout. The promptní rozdělovač rozděluje text na části o velikosti, kterou si zvolíte, přičemž respektuje hranice, a očísluje části, abyste je mohli podávat postupně s konzistentními pokyny připojenými ke každé.
Poznámka k jednotkám: tokeny nejsou bajty. The Čítač bajtů UTF-8 odpovídá na jinou otázku – kolik místa zabírá text na drátě nebo ve sloupci databáze – a tato dvě čísla se u textu, který není latinkou, výrazně liší, kde bajty na znak rostou současně s klesajícími znaky na token. Používejte bajty pro limity úložiště a tokeny pro limity modelu a nikdy jeden nenahrazujte druhým.
Zpracovaný příklad
Předpokládejme, že odpovíte na dvacet otázek oproti třicetistránkovému dokumentu. Třicet stránek je kolem 15 000 slov, tedy zhruba 20 000 tokenů. Naivně posíláte dokument s každou otázkou: 20 × 20 000 = 400 000 vstupních tokenů plus možná 20 × 300 výstupních tokenů.
Umístěte dokument na první místo a udržujte jej bajtově identický pro všechna volání a většina poskytovatelů poskytuje opakovanou předponu z mezipaměti za zlomek rychlosti. Nejprve ořízněte dokument štítku a základna se také zmenší. Dávkujte pět otázek na hovor místo jedné a dokument pošlete čtyřikrát místo dvaceti. Stejný úkol, stejný model a řádová velikost mezi nedbalou verzí a opatrnou verzí – což je celý smysl počítání, než odešlete.
Počítadlo i kompresor běží zcela ve vašem prohlížeči: výzva, kterou stanovíte, se nikde nenahrává, aby ji bylo možné měřit.
Tvůrce TextArray – vytváření bezplatných nástrojů na ochranu soukromí, které běží výhradně ve vašem prohlížeči.