Jedinica 2 / 11

Token i logika određivanja cijena

Dobici:

  • Objasniti pojam tokena, razlikovanja ulazno/izlaznih tokena i tokenizacije.
  • Može izračunati trošak zahtjeva i mjesečno opterećenje iz broja tokena i jedinične cijene
  • Može usporediti utjecaj odabira modela i brze duljine na trošak

Ne možete izgraditi veliko rješenje bez razumijevanja ekonomije LLM API-ja. Demo se izvodi jednom; Glavno je moći predvidjeti koliki će biti račun kada se mjesečno obavi tisuće poziva. U ovoj jedinici postavljamo novčanu stranu stvari: što je token, zašto ulaz i izlaz imaju različite cijene, kako izračunati trošak zahtjeva i kako planirati mjesečno radno opterećenje. Ove vam informacije omogućuju mjerenje povrata tehnika optimizacije (spremanje u predmemoriju, odabir modela, serija) u sljedećim jedinicama.

Što 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, u engleskom jeziku 1 token je ≈ 4 znaka ≈ 0,75 riječi. U turskom jeziku i kodu, omjer se razlikuje: turske riječi su često podijeljene na više tokena nego u engleskom jeziku zbog strukture sufiksa i abecede. Stoga je potrebno izmjeriti broj tokena davateljevim alatom za brojanje tokena, a ne pogađati na oči.

Tokenizacija (postupak dijeljenja teksta u tokene) može biti različita za svaki model. To ima dvije praktične posljedice: (1) Isti tekst može dati različit broj tokena u različitim modelima; (2) Predviđanja napravljena s tokenizatorima drugih pružatelja (npr. OpenAI-jeva biblioteka tiktokena) bit će netočna za Claudea — upotrijebite savjet za brojanje tokena za model koji koristite.

Savjet: "Otprilike koliko tokena?" Ne odgovarajte na pitanje slijepo. Proslijedite reprezentativni tekst kroz API za brojanje tokena; Temeljite proračunske odluke na mjerenju.

Ulazni i izlazni žetoni

Faktura se sastoji od dvije stavke:

  • Ulazni tokeni: Sve što pošaljete modelu — upit sustava, prošli obilasci, korisnička poruka, dokumentacija ako postoji. Sve se obrađuju odjednom.
  • Izlazni tokeni: Odgovor koji proizvodi model. Za svaki izlazni token, model izvodi izračun korak po korak.

Kod većine pružatelja izlaz je nekoliko puta skuplji od ulaza. Razlog je jednostavan: čitanje ulaza odjednom je jeftinije od proizvodnje izlaza token po token. Poznavanje te asimetrije objašnjava zašto su optimizacije poput "zahtijevaju sažete odgovore" toliko učinkovite.

Ogledne cijene (za 1 milijun tokena, USD)

Tablica u nastavku je referenca; Cijene se mogu promijeniti tijekom vremena, molimo potvrdite trenutni popis vlastitog pružatelja usluga.

razred modela

ogledni model

Unos ($/1M)

Izlaz ($/1M)

Tipična uporaba

brzo/jeftino

Haiku 4.5

1,00

5.00

Klasifikacija, označavanje, jednostavan sažetak

uravnotežena

sonet 5

3.00

15.00 sati

Opća namjena, kodiranje, agentski rad

snažna

Opus 4.8

5.00

25.00 sati

Složeno razmišljanje, dugotrajni zadaci

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

Kako izračunati trošak?

Formula je jednostavna:

trošak = (input_token / 1.000.000) × input_price + (output_token / 1.000.000) × output_price

Ogledni račun. Zahtjev sa Sonetom 5: 1500 ulaznih tokena, 400 izlaznih tokena.

ulaz = 1,500 / 1,000,000 × 3,00 = 0,0045 USD izlaz = 400 / 1,000,000 × 15,00 = 0,0060 USD ukupno = 0,0105 USD (oko 1 cent)

Jedan poziv izgleda jeftino. Ali pomnožite s količinom: 20 000 poziva dnevno → 210 USD dnevno, ~6 300 USD mjesečno. Ovdje dolazi do izražaja razmjer.

Predložak mjesečnog proračuna

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

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

Prebacivanje ovog uzorka u proračunsku tablicu i gledanje kako se zbroj odigrava kada promijenite model utjelovljuje odluke o odabiru modela (jedinica 5) i predmemoriju (jedinica 6).

Skraćivanje upita pomoću predložaka koji se mogu kopirati

Većina troškova dolazi od nepotrebno dugih upita i uzaludnog ispisa. Predlošci u nastavku omogućuju izravnu uštedu.

# Ograničite duljinu izlaza. Odgovorite s najviše 3 stavke. Dodajte obrazloženje ili uvodnu rečenicu.

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

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

# Sažeti dugi govor (spremanje unosa) Sažeti ovaj govor u 5 stavki. Koristit ću ovaj sažetak umjesto cijele prošlosti u sljedećim krugovima. Govor: """{{past}}"""

Slab upit / Jak upit (u smislu cijene)

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

# SNAŽNO (ograničava izlaz, jeftino i predvidljivo) Klasificirajte ovaj zahtjev za podršku. Samo vratite sljedeći JSON:{"category":"invoice|technical|refund|other","urency":"low|medium|high"}Nemojte pisati opis.

Slaba verzija proizvodi možda 500 izlaznih tokena; jaka verzija ~15. Budući da je izlaz skup, ovo je značajna razlika po pozivu i množi se s volumenom.

Tri mini kućišta

Slučaj 1 — Skriveni trošak dugog upita. Kako je računovodstvena automatizacija sortirala svaku fakturu, dodala je "knjigu pravila" od 40 stranica kao unos za svaki zahtjev: ~12 000 ulaznih tokena po zahtjevu. Uz Sonnet 5 12,000/1M×3 = upravo unesenih 0,036 USD. 5000 računa dnevno → 180 USD dnevno. Spremanjem pravilnika u predmemoriju (jedinica 6) ulazni trošak pao je za ~90%.

Slučaj 2 — Isplata smanjenja modela. Jedan tim radio je jednostavno označavanje "pozitivno/negativno" raspoloženja s Opusom 4.8: 300 ulaznih + 10 izlaznih tokena. Opus košta 300/1M×5 + 10/1M×25 = 0,00175 USD. Prelazak na Haiku, 300/1M×1 + 10/1M×5 = $0,00035 — 5x jeftinije, razlika u točnosti bila je nemjerljiva. Na 3 milijuna poziva mjesečno, razlika je 5250 USD → 1050 USD.

Slučaj 3 — Oslobađanje izlaza. Kada je marketinški tim izradio opis proizvoda, nije postavio ograničenja na izlaz; model je ponekad govorio 1500 tokena. Kad sam dodao instrukciju "maksimalno 60 riječi", prosječni rezultat je pao s 900 na 90 tokena. Kako je tiskanje bilo skupo, mjesečni račun smanjen je za trećinu, a tekstovi su postali korisniji.

Uobičajene greške

  • Pogađanje tokena na oko: Možete pogriješiti, posebno u turskom i kodu. Mjera.
  • Pod pretpostavkom da su input i output isti: Output je obično mnogo skuplji; Većina optimizacije dolazi od skraćivanja izlaza.
  • Neka vas ne zavara jeftinost jednog poziva: odluka se donosi prema količini. 0,01 USD × milijun = 10 000 USD.
  • Predviđanje s tokenizatorom drugog pružatelja: Daje netočne rezultate; Upotrijebite alat za brojanje tokena modela.
  • Neograničeno povećanje povijesti razgovora: Svaki krug se dodaje unosu; sažimaju u dugim razgovorima.
  • Držanje `max_tokens` nepotrebno visokim: skriva proračunski plan i rizik od rezanja; Dajte realnu vrijednost.

Dublje: Kontekstni prozor i dugi ulazni trošak

Ključno je vidjeti kako se cijena slaže "u cijelom razgovoru", a ne samo "po zahtjevu". Ukupna količina teksta koju model može obraditi naziva se kontekstni prozor; Zbroj ulaza i izlaza mora stati u ovaj prozor. Moderni modeli nude vrlo velike prozore (stotine tisuća, čak i milijune tokena), ali to ne znači da ga možete "beskonačno puniti" — što god stavite u prozor naplaćuje se kao ulaz.

Zamka u dugim razgovorima je sljedeća: sa svakom novom rundom iznova šaljete cijelu povijest (apatridnost u jedinici 1). U razgovoru od 20 rundi, 20. zahtjev nosi svih prvih 19 rundi kao ulaz. Stoga, kako razgovor postaje duži, cijena po zahtjevu raste kumulativno, a ne linearno. Razgovor od 50 rundi s pomoćnikom agenta može proizvesti ulazne troškove desetke puta više od prve runde.

Postoje dva načina da se to riješi. Prvi je rekapitulacija: sažimanje starijih rundi u jedan blok rekapitulacije, zadržavajući samo nekoliko posljednjih rundi u sirovom obliku. Drugi je brzo predmemoriranje (jedinica 6): čitanje fiksnog konteksta po desetini cijene umjesto opetovane obrade po punoj cijeni. Zajedno, oni značajno smanjuju račun za duga radna opterećenja koja su intenzivna u kontekstu. Dakle, ekonomija tokena odnosi se na dizajn cijele sesije, a ne na jedan zahtjev.

Ukratko

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

Zadatak aplikacije

Odaberite zadatak za sebe. (1) Odredite broj ulaznih i procijenjenih izlaznih tokena za reprezentativni upit (izmjerite alatom za brojanje tokena ako je moguće). (2) Izračunajte cijenu po zahtjevu za tri klase modela. (3) Procijenite svoj dnevni broj zahtjeva i odredite mjesečni proračun za tri modela. (4) Dodajte uputu za skraćivanje izlaza i zabilježite očekivane uštede.

popis za provjeru

  • [ ] Mogu objasniti koncept tokena i da se tokenizacija razlikuje ovisno o modelu.
  • [ ] Znam zašto ulazne i izlazne oznake imaju različite cijene.
  • [ ] Mogu izračunati trošak zahtjeva pomoću formule.
  • [ ] Mogu izraditi mjesečni proračun za radno opterećenje pomoću predloška.
  • [ ] Primjerom mogu pokazati korist od skraćivanja izlaza i smanjenja modela.