OpenAI
Šis puslapis buvo išverstas mašininiu būdu. Peržiūrėti originalų straipsnį anglų kalba.

Žetonų supratimas ir skaičiavimas

Sužinokite, kaip įvesties, išvesties, podėlio ir protavimo žetonai veikia API naudojimą, modelių ribas ir išlaidas.

Atnaujinta: 6 days ago

Apžvalga

Žetonai yra vienetai, kuriuos OpenAI modeliai naudoja tekstui apdoroti. Žetonas gali reikšti ženklą, žodžio dalį, visą žodį arba skyrybos ženklą. Tarpai taip pat turi įtakos teksto skaidymui į žetonus.

Žetonų skaičius nėra tas pats, kas žodžių skaičius. Tas pats tekstas gali sudaryti skirtingą žetonų skaičių, priklausomai nuo modelio, jo koduotės ir kalbos.

Supraskite, kaip tekstas paverčiamas žetonais

Kai siunčiate tekstą modeliui:

  1. Tekstas suskaidomas į žetonus.

  2. Modelis apdoroja šiuos žetonus.

  3. Modelis generuoja išvesties žetonus. Jie gali apimti gaunamą tekstą, o protavimo modeliuose – ir vidinius protavimo žetonus, kurie atsakymo tekste nerodomi.

Anglišką tekstą vertinkite apytiksliai

Šie apytiksliai dydžiai gali padėti įvertinti angliško teksto apimtį:

  • 1 žetoną sudaro maždaug 4 ženklai.

  • 1 žetonas sudaro maždaug tris ketvirtadalius žodžio.

  • 100 žetonų sudaro maždaug 75 žodžius.

Tai apytiksliai, o ne tikslūs skaičiai. Sakinių ir pastraipų ilgis skiriasi, o kitose kalbose ženklų, žodžių ir žetonų santykis gali būti kitoks.

Atsižvelkite į tarpus ir didžiąsias raides

Žodis gali būti skaidomas į skirtingus žetonus, atsižvelgiant į jo rašybą, didžiąsias raides ir aplinkinį tekstą.

Pavyzdžiui, red, Red ir red nėra visiškai vienodas tekstas: paskutinis pavyzdys prasideda tarpu. Koduotė gali juos pateikti skirtingai.

Žetonų ID taip pat priklauso nuo koduotės. Nemanykite, kad pavyzdinis žetono ID tinka kiekvienam modeliui.

Atskirkite įvesties ir išvesties žetonus

KategorijaKą ji apibūdina
Įvesties žetonaiŽetonai, pateikiami modeliui užklausoje. Jie taip pat vadinami užklausos žetonais.
Išvesties žetonaiModelio sugeneruoti žetonai. Chat Completions juos vadina užbaigimo žetonais.
Podėlyje saugomi įvesties žetonaiĮvesties žetonai, pakartotinai naudojami taikant užklausų podėliavimą. Jų kaina gali skirtis nuo podėlyje nesaugomų įvesties žetonų kainos.
Protavimo žetonaiŽetonai, kuriuos protavimo modelis naudoja viduje prieš pateikdamas matomą atsakymą.

Protavimo žetonai atsakymo tekste nerodomi, tačiau jie įskaičiuojami į išvesties naudojimą ir apmokestinami kaip išvesties žetonai.

Todėl trumpam matomam atsakymui gali būti sunaudota daugiau žetonų, nei galima spręsti iš rodomo teksto.

Suskaičiuokite žetonus prieš siųsdami užklausą

Skaičiuokite grynojo teksto žetonus

Norėdami pamatyti, kaip tekstas skaidomas į žetonus, naudokite žetonų skaidymo priemonę.

Norėdami programiškai skaidyti grynąjį tekstą į žetonus, naudokite tiktoken. Pasirinkite tiksliniam modeliui skirtą koduotę, pavyzdžiui, naudodami tiktoken.encoding_for_model(model).

Grynojo teksto žetonų skaičius nebūtinai apima visus API užklausos žetonus. Visam įvesties žetonų skaičiui gali turėti įtakos pranešimų struktūra, įrankiai, schemos, vaizdai ir failai.

Suskaičiuokite visos Responses įvesties žetonus

Norėdami suskaičiuoti visos Responses API įvesties žetonus, naudokite įvesties žetonų skaičiavimo API.

Ji priima Responses įvesties formatus, įskaitant pranešimus, vaizdus, failus, įrankius ir pokalbius. Į skaičių įtraukiami užklausos struktūrai naudojami formatavimo žetonai, pavyzdžiui, pranešimų vaidmenys ir ribos.

Įvesties žetonų skaičius neparodo, kiek išvesties žetonų sugeneruos modelis.

Patikrinkite faktinį žetonų naudojimą

Pateikę užklausą, peržiūrėkite jos naudojimo informaciją. Laukų pavadinimai priklauso nuo prieigos taško:

  • Chat Completions pateikia prompt_tokens, completion_tokens ir total_tokens.

  • Responses pateikia input_tokens, output_tokens ir total_tokens.

Naudojimo suvestinėje taip pat galite peržiūrėti veiklą per tam tikrą laikotarpį. Instrukcijas, įskaitant srautinio perdavimo naudojimą, žr. API naudojimo ir išlaidų peržiūra.

Neviršykite modelio ribų

Modelio dokumentacijoje patikrinkite jo konteksto langą ir didžiausią išvesties apimtį. Šios ribos gali skirtis priklausomai nuo modelio.

Konteksto langas riboja žetonų, kuriuos modelis gali apdoroti vienoje užklausoje, skaičių. Modeliai taip pat turi išvesties ribą. Naudodami protavimo modelius palikite vietos ne tik matomam atsakymui, bet ir protavimo žetonams.

Jei įvestis per didelė, galite:

  • Sutrumpinti arba perfrazuoti užklausą.

  • Pašalinti nereikalingą arba pasikartojantį kontekstą.

  • Didelę įvestį padalyti į mažesnes dalis.

  • Prieš siųsdami tekstą jį apibendrinti arba iš anksto apdoroti.

Naudokite prieigos taško ir modelio palaikomą išvesties žetonų nuostatą. Chat Completions naudoja max_completion_tokens, o Responses – max_output_tokens.

Šios užklausos dydžio ribos nesusijusios su API dažnio, mėnesio naudojimo ar išlaidų ribomis. Peržiūrėkite naudojamo modelio dokumentaciją.

Supraskite žetonų kainodarą

Kai API kaina grindžiama žetonais, tarifas priklauso nuo modelio ir žetonų kategorijos. Įvesties, podėlyje saugomos įvesties ir išvesties žetonų kainos gali skirtis. Kitoms API funkcijoms gali būti taikomi kitokie atsiskaitymo vienetai.

Dabartinius tarifus rasite API kainodaros puslapyje.

Lygindami modelius atsižvelkite į bendrą užduočiai atlikti reikalingų žetonų skaičių ir kainą. Mažesnė milijono žetonų kaina nebūtinai reiškia mažesnes bendras išlaidas: modeliai tą patį tekstą gali skirtingai skaidyti į žetonus ir sugeneruoti skirtingą išvesties ar protavimo apimtį.

Išbandykite tipines užduotis, o ne lyginkite vien matomo atsakymo ilgį.

Atsižvelkite į kelis užbaigimus

Kai prieigos taškas ir modelis palaiko kelių užbaigimų generavimą, papildomiems užbaigimams taip pat naudojami žetonai.

Chat Completions nuostatoje n nurodžius didesnę nei 1 reikšmę, sugeneruojami keli variantai. Mokate už visuose šiuose variantuose sugeneruotus žetonus.

Pasenusioje Completions API best_of gali sugeneruoti kandidatų, kurie bus grąžinti ne visi. Pavyzdžiui, best_of = 3 visuose kandidatuose gali sugeneruoti iki 3 × max_tokens užbaigimo žetonų.

Šie parametrai priklauso nuo prieigos taško. Nemanykite, kad n arba best_of palaikomas kitoje API ar kitame modelyje.

Ar šis straipsnis buvo naudingas?