Koľko tokenov LLM v skutočnosti stojí a ako ich zaplatiť za menej
Každý účet za API pre jazykový model je účet za tokeny a takmer nikto nemá intuíciu, koľko tokenov má daný kus textu. Výsledkom je rovnaké prekvapenie dvakrát za mesiac: funkcia, ktorá sa pri testovaní zdala lacná, stojí vo výrobe štyridsaťkrát viac alebo kontextové okno, ktoré „by sa malo hodiť“, odmietne požiadavku. Oba sú aritmetické problémy a aritmetika sa raz oplatí naučiť.
Token nie je slovo
Modelky nečítajú znaky ani slová. Čítajú tokeny – kusy vytvorené kódovačom bajtových párov, ktorý sa počas tréningu naučil, ktoré sekvencie sa vyskytujú dosť často na to, aby si zaslúžili svoj vlastný symbol. Bežné anglické slová sú jedným znakom. Zriedkavé sa rozdelia. Takže token je jedna a tokenization je tri, zatiaľ čo náhodný reťazec ako x7Qp2 môže stáť päť.
Základné pravidlá, ktoré sa oplatí nosiť:
- anglická próza: približne štyri znaky na token alebo približne 0,75 tokenu na slovo. Článok s tisícimi slovami má približne 1 300 tokenov.
- kód: podstatne horšie. Odsadenie, interpunkcia a identifikátory camelCase sú fragmenty. Rozpočet sa približuje k trom znakom na token a miniifikovaný kód považuje za vlastnú katastrofu – tokenizuje sa zle práve preto, že je nezvyčajný.
- Písma iné ako latinka: opäť oveľa horšie. Čínština, japončina a kórejčina bežne pristávajú v blízkosti jedného tokenu na jeden alebo dva znaky, takže rovnaký obsah v japončine môže stáť niekoľkonásobok toho, čo anglická verzia. Medzi nimi sedí azbuka a gréčtina.
- JSON: interpunkcia sú skutočné peniaze. Každá úvodzovka, zložená zátvorka, dvojbodka a čiarka sú aspoň časťou tokenu a hlboko vnorené štruktúry s dlhými názvami kľúčov môžu minúť viac na syntax ako na hodnoty.
Orientačné pravidlá slúžia na odhadovanie. Keď na tom záleží, počítajte: LLM token a kalkulačka nákladov tokenizuje to, čo vložíte, a vytlačí počet a môže tiež zobraziť text s vyznačenými hranicami tokenu, čo je najrýchlejší spôsob, ako pochopiť, prečo je jeden z vašich výziev nečakane drahý. Vidieť, že sa vaše vlastné názvy identifikátorov rozpadajú na štyri časti, každý z nich veľa vysvetľuje.
Výstup stojí niekoľkonásobne viac ako vstup
Podrobnosti o cenách ľuďom chýbajú: poskytovatelia účtujú oddelene za tokeny, ktoré odošlete, a za tokeny, ktoré generuje model, a výstup je zvyčajne štvor- až osemnásobok vstupnej sadzby. Výzve s 10 000 tokenmi kontextu a odpoveďou s 200 tokenmi dominuje vstup. Výzve s 500 tokenmi inštrukcie, ktorá vytvorí esej so 4 000 tokenmi, dominuje – výrazne – výstup.
To obráti veľa optimalizačných inštinktov. Orezanie systémovej výzvy z 900 na 600 tokenov ušetrí veľmi málo, ak model píše dlhé odpovede na každý hovor. Ak poviete modelke, aby odpovedala tromi vetami namiesto troch odsekov, veľa ušetríte. Skôr než optimalizujete tú nesprávnu, opýtajte sa, na ktorej strane transakcie vaše pracovné zaťaženie skutočne žije.
Kalkulačka oceňuje rovnaký text pre každý model vo svojej tabuľke pri vstupných aj výstupných sadzbách, takže môžete porovnať lacný model, ktorý vykonáva celú prácu, s drahým modelom, ktorý vykonáva jej časť. Referenčné ceny sa ukladajú lokálne a pravidelne sa porovnávajú so stránkami poskytovateľa – zaobchádzajte s nimi ako s pomôckou pri plánovaní a predtým, ako sa zaviažete k rozpočtu, potvrďte ich na vlastnej cenovej stránke poskytovateľa, pretože sadzby sa pohybujú.
Chat je kvadratický a v tom umierajú rozpočty
Jednorazové volanie API stojí to, čo stojí. Konverzácia znovu odošle celú históriu na každom kroku, takže dvadsaťkrát trvajúci rozhovor nestojí dvadsaťkrát jedno kolo – stojí to zhruba súčet rastúcej série. Dvadsať zákrut platí opäť za zákruty jeden až devätnásty.
Dva dôsledky. Po prvé, dlhotrvajúce slučky agentov sú najdrahším tvarom použitia LLM a s najväčšou pravdepodobnosťou budú prototypované bez merania. Po druhé, rýchle ukladanie do vyrovnávacej pamäte je dôležitejšie ako akákoľvek zmena znenia: poskytovatelia zlacňujú tokeny, ktoré opakujú predponu, ktorú už videli, čo znamená, že váš stabilný obsah – systémovú výzvu, schému, príklady – umiestnia úplne na začiatok a variabilnú časť na koniec. Zmeňte poradie rovnakej výzvy tak, aby sa meniaca časová pečiatka nachádzala navrchu a pri každom hovore ste zrušili platnosť vyrovnávacej pamäte, pričom nič iné nemenili.
Zmenšenie výzvy pred jej odoslaním
Väčšina príliš veľkých výziev je príliš veľká z nudných dôvodov: niekto prilepil celý súbor, keď boli relevantné tri funkcie, a súbor je polovica komentárov a prázdne riadky. The LLM kontextový kompresor cieli presne na to – odstráni komentáre v kóde, zbalí série prázdnych riadkov, odrezkov a odstráni výplňové slová z prózy a potom nahlási, koľko tokenov orezanie ušetrilo. Na skutočnom zdrojovom súbore, ktorý bežne beží 20–40 % bez toho, aby sa dotkol čohokoľvek, čo model potrebuje.
Manuálne rezy, ktoré sa oplatí urobiť predtým:
- Posielajte úryvky, nie súbory. Ani pozornosť modelky nie je zadarmo; irelevantný kontext merateľne degraduje odpovede a stojí peniaze.
- Odstráňte denníky do zlyhávajúcej oblasti. Desaťtisíc riadkov úspešného štartovacieho výstupu neprispieva k diagnóze.
- Zahoďte opakovaný kotol. Hlavičky licencií, generované importy, rovnaké vylúčenie zodpovednosti na každom zázname.
- Namiesto opätovného odoslania zhrňte. V dlhom rozhovore je nahradenie otočenia od jedného do pätnástich odsekom stavu tou najväčšou dostupnou úsporou.
Keď vstup skutočne nesedí
Kontextové okná sú teraz veľké, ale „veľké“ sú stále konečné a kniha, rok denníkov alebo úplný prepis presiahnu jeden. Rozdelenie je štandardnou odpoveďou a kde rozdeľujete záležitosti: strihanie strednej vety alebo strednej funkcie vytvára kúsky, ktoré musí model uhádnuť. The promptný rozdeľovač rozdelí text na časti s veľkosťou, ktorú si vyberiete, pričom rešpektuje hranice, a očísluje časti, aby ste ich mohli postupne vkladať s konzistentnými pokynmi pripojenými ku každému.
Poznámka k jednotkám: tokeny nie sú bajty. The Počítadlo UTF-8 bajtov odpovedá na inú otázku – koľko miesta zaberá text na drôte alebo v stĺpci databázy – a tieto dve čísla sa výrazne líšia v prípade textu, ktorý nie je latinkou, kde bajty na znak stúpajú súčasne s klesaním znakov na token. Pre limity úložiska použite bajty a pre limity modelu tokeny a nikdy nenahrádzajte jeden druhým.
Spracovaný príklad
Predpokladajme, že odpoviete na dvadsať otázok oproti tridsaťstranovému dokumentu. Tridsať strán má okolo 15 000 slov, teda zhruba 20 000 tokenov. Naivne posielate dokument s každou otázkou: 20 × 20 000 = 400 000 vstupných tokenov plus možno 20 × 300 výstupných tokenov.
Vložte dokument na prvé miesto a ponechajte ho bajtovo identický vo všetkých hovoroch a väčšina poskytovateľov poskytuje opakovanú predponu z vyrovnávacej pamäte za zlomok rýchlosti. Najprv orezajte dokument štítku a základňa sa tiež zmrští. Dávkujte päť otázok na hovor namiesto jednej a dokument pošlete štyrikrát namiesto dvadsiatich. Rovnaká úloha, rovnaký model a rádovo medzi neopatrnou verziou a opatrnou verziou – čo je celý zmysel počítania pred odoslaním.
Počítadlo aj kompresor bežia úplne vo vašom prehliadači: výzva, ktorú stanovujete, sa nikde nenahráva na meranie.
Tvorca TextArray – vytváranie bezplatných nástrojov na ochranu súkromia, ktoré bežia výhradne vo vašom prehliadači.