Jedinica 2 / 11

Token i logika određivanja cijena

Dobici:

  • Objasnite koncept tokena, razlike ulazno/izlaznih tokena i tokenizacije.
  • Može izračunati cijenu zahtjeva i mjesečno opterećenje iz broja tokena i jedinične cijene
  • Može uporediti uticaj izbora modela i brze dužine na cenu

Ne možete izgraditi rješenje u velikom obimu bez razumijevanja ekonomije LLM API-ja. Demo se pokreće jednom; Glavna stvar je da možete predvidjeti koliki će biti račun kada se mjesečno obavi hiljade poziva. U ovoj jedinici postavljamo novčanu stranu stvari: šta je token, zašto ulazne i izlazne cijene imaju različite cijene, kako izračunati trošak zahtjeva i kako planirati mjesečno opterećenje. Ove informacije vam omogućavaju da izmjerite povrat tehnika optimizacije (keširanje, odabir modela, serija) u narednim jedinicama.

Šta je token?

Token je najmanja jedinica u kojoj model obrađuje tekst. Riječ nije uvijek znak; token je obično dio riječi. Grubo govoreći, na engleskom, 1 token je ≈ 4 znaka ≈ 0,75 riječi. U turskom i kodu, omjer varira: turske riječi se često dijele na više leksema nego u engleskom zbog svoje strukture sufiksa i pisma. Stoga je potrebno mjeriti broj tokena pomoću alata za brojanje tokena provajdera, a ne nagađanjem na oko.

Tokenizacija (proces razdvajanja teksta u tokene) može biti različita za svaki model. Ovo ima dvije praktične posljedice: (1) Isti tekst može dati različite brojeve tokena u različitim modelima; (2) Predviđanja napravljena sa tokenizerima drugih provajdera (npr. OpenAI-jeva biblioteka tiktokena) će biti netačna za Claudea — koristite savjet za brojanje tokena za model koji koristite.

Hint: "Koliko tokena otprilike?" Ne odgovarajte na pitanje slijepo. Proslijedite reprezentativni tekst kroz API za brojanje tokena; Odluke o budžetu zasnivati ​​na mjerenju.

Ulazni i izlazni tokeni

Račun se sastoji od dvije stavke:

  • Ulazni tokeni: sve što pošaljete modelu - sistemski prompt, prošli obilasci, korisnička poruka, dokumentacija ako postoji. Oni se obrađuju odjednom.
  • Izlazni tokeni: Odgovor koji proizvodi model. Za svaki izlazni token, model izvodi proračun korak po korak.

Kod većine provajdera izlaz je nekoliko puta skuplji od inputa. Razlog je jednostavan: čitanje ulaza odjednom je jeftinije od proizvodnje izlaznog token-by-token. Poznavanje ove asimetrije objašnjava zašto su optimizacije poput „zahtevaju koncizne odgovore“ tako efikasne.

Cijene uzoraka (po 1 milion tokena, USD)

Tabela ispod je referenca; Cijene se mogu mijenjati s vremenom, molimo potvrdite trenutnu listu vašeg provajdera.

klasa modela

uzorak modela

Unos ($/1M)

Izlaz ($/1M)

Tipična upotreba

brzo/jeftino

Haiku 4.5

1.00

5.00

Klasifikacija, označavanje, jednostavan sažetak

uravnotežen

sonet 5

3.00

15.00

Opće namjene, kodiranje, agentski rad

jaka

Opus 4.8

5.00

25.00

Složeno razmišljanje, dugoročni zadaci

U svakoj klasi, izlaz je 5 puta veći od inputa; Štaviše, čak je i unos moćnog modela 5 puta veći od unosa jeftinog modela. Ove dvije ose (ulaz↔izlaz i klasa modela) čine okvir vaših odluka o troškovima.

Kako izračunati trošak?

Formula je jednostavna:

trošak = (ulaz_token / 1,000,000) × ulazna_cijena + (izlazni_token / 1,000,000) × izlazna_cijena

Uzorak računa. Zahtjev sa Sonetom 5: 1.500 ulaznih tokena, 400 izlaznih tokena.

ulaz = 1.500 / 1.000.000 × 3.00 = 0.0045 $ izlaz = 400 / 1.000.000 × 15.00 = 0.0060 $ ukupno = 0.0105 $ (oko 1 cent)

Jedan poziv izgleda jeftino. Ali pomnožite sa obimom: 20.000 poziva dnevno → 210 USD po danu, ~6.300 USD mesečno. Ovdje razmjer dolazi u obzir.

Predložak mjesečnog budžeta

Da biste izdvojili mjesečni trošak radnog opterećenja, koristite ovaj predložak:

1) Prosječni ulazni token po zahtjevu: ......2) Prosječan izlazni token po zahtjevu: ......3) Broj zahtjeva po danu: ......4) Radni dani u mjesecu: ......5) Cijena po zahtjevu = (1)/1M×cijena_unosa + (2)/1M×cijena_izlaza6) Mjesečni trošak = (5) × (3) ×

Prelivanje ovog uzorka u proračunsku tabelu i gledanje kako se zbir odigrava kada promijenite model utjelovljuje odabir modela (jedinica 5) i odluke keširanja (jedinica 6).

Skraćivanje upita s predlošcima koji se mogu kopirati

Većina troškova dolazi od nepotrebno dugih upita i izgubljenog rezultata. Predlošci u nastavku pružaju direktne uštede.

# Ograničite izlaznu dužinu. Odgovorite sa najviše 3 stavke. Dodajte obrazloženje ili uvodnu rečenicu.

# Vrati samo traženo polje Vrati samo sljedeći JSON, ne dodaj nikakav drugi tekst:{"category": "...", "urgency": "low|medium|high"}

# Uklonite nepotreban kontekst. Uklonite samo datum i iznos iz sljedećeg teksta. Nemojte ponavljati cijeli tekst. Tekst: """{{text}}"""

# Sažmi dugi govor (čuvanje unosa) Sažmi ovaj govor u 5 stavki. Koristit ću ovaj sažetak umjesto cijele prošlosti u narednim rundama. Govor: """{{prošlost}}"""

Slaba brza / Jaka brza (u smislu troškova)

# SLABO (objavljuje izlaz, skupo) Analizirajte ovaj zahtjev za podršku i napišite mi sveobuhvatnu recenziju.

# JAKO (ograničava izlaz, jeftino i predvidljivo) Klasificirajte ovaj zahtjev za podršku. Samo vratite sljedeći JSON:{"category":"faktura|tehnički|povrat novca|ostalo","urgency":"niska|srednja|visoka"}Ne pišite opis.

Slaba verzija proizvodi možda 500 izlaznih tokena; jaka verzija ~15. Pošto je izlaz skup, ovo je značajna razlika po pozivu i množi se sa jačinom zvuka.

Tri mini futrole

Slučaj 1 — Skriveni trošak dugog upita. Kako je računovodstvena automatizacija sortirala svaku fakturu, dodala je „knjigu pravila“ od 40 stranica kao ulaz za svaki zahtjev: ~12.000 ulaznih tokena po zahtjevu. Sa Sonetom 5 12,000/1M×3 = 0,036 $ upravo uneseno. 5.000 računa dnevno → 180 dolara po danu. Keširanjem pravilnika (jedinica 6) ulazni troškovi su pali za ~90%.

Slučaj 2 — Isplata smanjenja modela. Jedan tim je radio jednostavno “pozitivno/negativno” označavanje sentimenta sa Opusom 4.8: 300 ulaznih + 10 izlaznih tokena. Opus cijena 300/1M×5 + 10/1M×25 = 0,00175 USD. Prelazak na Haiku, 300/1M×1 + 10/1M×5 = $0,00035 — 5x jeftinije, razlika u preciznosti je bila nemjerljiva. Na 3 miliona poziva mjesečno, razlika je $5,250 → $1,050.

Slučaj 3 — Otpuštanje izlaza. Kada je marketinški tim izradio opis proizvoda, nije postavio ograničenja u pogledu proizvodnje; model je ponekad rekao 1.500 žetona. Kada sam dodao instrukciju "maksimalno 60 riječi", prosječni izlaz je pao sa 900 na 90 tokena. Kako je štampanje bilo skupo, mjesečni račun je smanjen za trećinu, a tekstovi su postali korisniji.

Uobičajene greške

  • Pogađanje znaka na oko: možete pogriješiti, posebno u turskom i kodu. Mjera.
  • Pod pretpostavkom da su ulaz i izlaz isti: Izlaz je obično mnogo skuplji; Većina optimizacije dolazi od skraćivanja izlaza.
  • Nemojte da vas zavara jeftinoća jednog poziva: odluka se donosi na osnovu količine. 0,01 $ × milion = 10 000 $.
  • Predviđanje sa tokenizerom drugog provajdera: Daje netačne rezultate; Koristite modelov alat za brojanje žetona.
  • Neograničeno povećanje istorije razgovora: Svaki krug se dodaje unosu; rezimirati u dugim razgovorima.
  • Održavanje `max_tokena` nepotrebno visokim: Sakriva plan budžeta i rizik od smanjenja; Dajte realnu vrijednost.

Dublje: Kontekstni prozor i duga cijena unosa

Važno je vidjeti kako se cijena slaže "u toku razgovora", a ne samo "po zahtjevu". Ukupna količina teksta koju model može obraditi naziva se kontekstni prozor; Zbir ulaza i izlaza mora stati u ovaj prozor. Moderni modeli nude veoma velike prozore (stotine hiljada, čak i milione tokena), ali to ne znači da ih možete "puniti beskonačno" - sve što stavite u prozor se naplaćuje kao ulaz.

Zamka u dugim razgovorima je sljedeća: sa svakom novom rundom iznova šaljete cijelu historiju (apatridi u jedinici 1). U razgovoru od 20 rundi, 20. zahtjev nosi cijelih prvih 19 rundi kao ulaz. Stoga, kako razgovor postaje duži, cijena po zahtjevu raste kumulativno, a ne linearno. Razgovor od 50 rundi sa asistentom agenta može proizvesti ulazne troškove desetine puta u odnosu na prvu rundu.

Postoje dva načina za upravljanje ovim. Prvi je sažetak: komprimiranje starijih rundi u jedan blok sažetka, zadržavajući samo nekoliko posljednjih rundi sirovim. Drugi je promptno keširanje (jedinica 6): čitanje fiksnog konteksta po desetini cijene umjesto da ga više puta obrađuje po punoj cijeni. Zajedno, oni značajno smanjuju račun za duga, kontekstualno intenzivni radna opterećenja. Dakle, ekonomija tokena se odnosi na dizajn cijele sesije, a ne na jedan zahtjev.

Ukratko

Token je najmanja jedinica u kojoj se tekst obrađuje; input i output se određuju odvojeno, a izlaz je često mnogo skuplji. Trošak je broj tokena pomnožen jediničnom cijenom, a stvarna odluka se donosi po količini. Skraćivanje brzine, ograničavanje izlaza i odabir najlakšeg modela koji ispunjava zadatak su najdirektnije poluge koje višestruko smanjuju troškove.

Zadatak aplikacije

Odaberite svoj zadatak. (1) Odredite broj ulaznih i procijenjenih izlaznih tokena za reprezentativni prompt (mjerite pomoću alata za brojanje tokena ako je moguće). (2) Izračunajte cijenu po zahtjevu za tri klase modela. (3) Procijenite svoj dnevni broj zahtjeva i izvedite mjesečni budžet za tri modela. (4) Dodajte instrukciju za skraćivanje rezultata i zabilježite očekivane uštede.

kontrolna lista

  • [ ] Mogu objasniti koncept tokena i ta tokenizacija varira ovisno o modelu.
  • [ ] Znam zašto ulazni i izlazni tokeni imaju različite cijene.
  • [ ] Mogu izračunati cijenu zahtjeva pomoću formule.
  • [ ] Mogu kreirati mjesečni budžet za radno opterećenje koristeći šablon.
  • [ ] Mogu pokazati na primjeru prednosti skraćivanja izlaza i smanjenja modela.