Preskoči na sadržaj

Koliko LLM tokeni zapravo koštaju i kako platiti za manje njih

Blog / Objavljeno 

Svaki API račun za jezični model je račun za tokene, a gotovo nitko nema intuiciju koliko tokena ima određeni dio teksta. Rezultat je isto iznenađenje dva puta mjesečno: značajka koja se činila jeftinom u testiranju košta četrdeset puta više u proizvodnji ili kontekstni prozor koji bi "trebao odgovarati" odbija zahtjev. Oba su aritmetički problemi, a aritmetiku vrijedi jednom naučiti.

Token nije riječ

Modeli ne čitaju znakove ili riječi. Oni čitaju žetone — dijelove koje proizvodi koder parova bajtova koji je naučio, tijekom obuke, koje se sekvence pojavljuju dovoljno često da zaslužuju vlastiti simbol. Uobičajene engleske riječi su jedan token. Rijetki se cijepaju. Tako token je jedan i tokenization je tri, dok je slučajni niz poput x7Qp2 može koštati pet.

Opća pravila koja vrijedi imati na umu:

Opća pravila služe za procjenu. Kad je bitno, računajte: LLM token i kalkulator troškova tokenizira ono što zalijepite i ispisuje broj, a također može prikazati tekst s označenim granicama tokena, što je najbrži način da shvatite zašto je jedan od vaših upita neočekivano skup. Vidjeti kako se vaša vlastita imena identifikatora raspadaju na četiri dijela, svaki objašnjava mnogo toga.

Output košta nekoliko puta više od inputa

Pojedinosti o cijenama koje ljudi propuštaju: pružatelji usluga naplaćuju odvojeno tokene koje šaljete i tokene koje model generira, a izlaz je obično četiri do osam puta veći od ulazne stope. Unosom dominira upit s 10 000 tokena konteksta i odgovorom od 200 tokena. Uputom s 500 tokena uputa koja proizvodi esej od 4000 tokena dominira - snažno - rezultat.

Ovo preokreće mnoge instinkte za optimizaciju. Skraćivanje odzivnika sustava s 900 na 600 tokena štedi vrlo malo ako model piše dugačke odgovore na svaki poziv. Reći modelu da odgovori u tri rečenice umjesto u tri odlomka, uvelike se štedi. Pitajte na kojoj se strani transakcije zapravo nalazi vaše radno opterećenje prije nego što optimizirate pogrešnu.

Kalkulator procjenjuje isti tekst u odnosu na svaki model u svojoj tablici i po ulaznoj i po izlaznoj stopi, tako da možete usporediti jeftini model koji radi cijeli posao sa skupim modelom koji radi samo dio posla. Referentne cijene pohranjuju se lokalno i povremeno se provjeravaju na stranicama pružatelja usluga — smatrajte ih pomoći pri planiranju i potvrdite na stranici s cijenama pružatelja usluga prije nego što se posvetite proračunu, jer se cijene mijenjaju.

Chat je kvadratičan i tu umiru proračuni

Jednokratni API poziv košta onoliko koliko košta. Razgovor ponovno šalje cijelu povijest na svakom koraku, tako da razgovor od dvadeset poteza ne košta dvadeset puta jedan potez — košta otprilike zbroj rastućeg niza. Turn twenty plaća za redove od jedan do devetnaest opet.

Dvije posljedice. Prvo, dugotrajne petlje agenta su najskuplji oblik upotrebe LLM-a i onaj koji će najvjerojatnije biti prototipiran bez mjerenja. Drugo, brzo predmemoriranje važnije je od bilo koje promjene teksta: pružatelji popusta na tokene koji ponavljaju prefiks koji su već vidjeli, što znači stavljanje vašeg stabilnog sadržaja — upit sustava, shemu, primjere — na samo početak, a varijabilni dio na kraj. Promijenite redoslijed istog upita tako da promjenjiva vremenska oznaka stoji na vrhu, a vi ste poništili predmemoriju pri svakom pozivu, a ništa drugo niste promijenili.

Smanjivanje upita prije slanja

Većina prevelikih upita preveliki su iz dosadnih razloga: netko je zalijepio cijelu datoteku kada su tri funkcije bile relevantne, a datoteka je pola komentara i praznih redaka. The LLM kontekstni kompresor cilja točno na to - uklanja komentare koda, sažima nizove praznih redaka, udubljenja i uklanja riječi za popunjavanje iz proze, a zatim izvješćuje koliko je tokena skraćivanje spremilo. Na stvarnoj izvornoj datoteci koja rutinski radi 20–40% bez dodirivanja bilo čega što model treba.

Ručni rezovi koje vrijedi napraviti prije toga:

  1. Šaljite izvatke, ne datoteke. Manekenska pažnja također nije besplatna; irelevantan kontekst mjerljivo degradira odgovore i košta novac.
  2. Očistiti trupce u neuspjelu regiju. Deset tisuća redaka uspješnog startup izlaza ne doprinosi dijagnozi.
  3. Ispustite ponovljenu predlošku ploču. Zaglavlja licence, generirani uvozi, isto odricanje od odgovornosti na svakom zapisu.
  4. Sažeti umjesto ponovnog slanja. U dugom razgovoru, zamjena okretaja od prvog do petnaestog odlomkom stanja najveća je moguća ušteda.

Kada unos uistinu ne odgovara

Kontekstni prozori sada su veliki, ali "veliki" je još uvijek ograničen, a knjiga, godina dnevnika ili puni prijepis će premašiti jedan. Razdvajanje je standardni odgovor, a važno je gdje dijelite: rezanje u sredini rečenice ili u sredini funkcije proizvodi dijelove koje model mora pogoditi. The brzi razdjelnik dijeli tekst u dijelove u veličini koju odaberete poštujući granice i numerira dijelove tako da ih možete unositi u nizu s dosljednim uputama priloženim uz svaki.

Napomena o jedinicama: tokeni nisu bajtovi. The UTF-8 brojač bajtova odgovara na drugačije pitanje - koliko prostora zauzima tekst na žici ili u stupcu baze podataka - a dva se broja oštro razlikuju za nelatinični tekst, gdje broj bajtova po znaku raste u isto vrijeme kada se broj znakova po tokenu smanjuje. Koristite bajtove za ograničenja pohrane i tokene za ograničenja modela i nikada ne zamjenjujte jedno za drugo.

Uspješni primjer

Pretpostavimo da odgovorite na dvadeset pitanja u odnosu na dokument od trideset stranica. Trideset stranica je oko 15.000 riječi, dakle otprilike 20.000 tokena. Naivno, sa svakim pitanjem šaljete dokument: 20 × 20 000 = 400 000 ulaznih tokena, plus možda 20 × 300 izlaznih tokena.

Stavite dokument na prvo mjesto i održavajte ga identičnim u svim pozivima, a većina davatelja će poslužiti ponovljeni prefiks iz predmemorije uz djelić brzine. Najprije izrežite dokument od uzorka i baza će se također smanjiti. Skupite pet pitanja po pozivu umjesto jednog i šaljete dokument četiri puta umjesto dvadeset. Isti zadatak, isti model i red veličine između neoprezne verzije i one pažljive - što je cijela poanta brojanja prije slanja.

I brojač i kompresor pokreću se u potpunosti u vašem pregledniku: upit o cijeni ne učitava se nigdje kako bi se izmjerio.

Napisao Ján Turský

Tvorac TextArray — stvaranje besplatnih alata koji su na prvom mjestu privatnosti i koji se u potpunosti pokreću u vašem pregledniku.