OpenAI
Ang page na ito ay isinalin ng AI. Tingnan ang orihinal na artikulo sa English.

Pag-unawa at pagbibilang ng mga token

Alamin kung paano nakaaapekto ang mga input, output, cached, at reasoning token sa paggamit ng API, mga limitasyon ng modelo, at gastos.

Na-update: 15 days ago

Pangkalahatang-ideya

Ang mga token ang mga unit na ginagamit ng mga modelo ng OpenAI upang magproseso ng text. Maaaring kumatawan ang isang token sa isang character, bahagi ng salita, buong salita, o bantas. Nakaaapekto rin ang mga space sa paghahati ng text sa mga token.

Hindi magkapareho ang bilang ng token at bilang ng salita. Maaaring magresulta sa magkakaibang bilang ng token ang parehong text depende sa modelo, encoding nito, at wika.

Unawain kung paano nagiging mga token ang text

Kapag nagpapadala ka ng text sa isang modelo:

  1. Hinahati ang text sa mga token.

  2. Pinoproseso ng modelo ang mga token na iyon.

  3. Bumubuo ang modelo ng mga output token. Maaaring kabilang dito ang text na natatanggap mo at, para sa mga nangangatwirang modelo, ang mga internal na token ng pangangatwiran na hindi ipinapakita bilang text ng sagot.

Gumamit ng mga tantiya para sa text sa English

Makakatulong ang mga tantiyang ito upang matukoy ang laki ng text sa English:

  • Ang 1 token ay humigit-kumulang 4 na character.

  • Ang 1 token ay humigit-kumulang tatlong-kapat ng isang salita.

  • Ang 100 token ay humigit-kumulang 75 salita.

Mga tantiya lamang ito, hindi mga eksaktong bilang. Nag-iiba-iba ang haba ng pangungusap at talata, at maaaring magkaiba sa ibang wika ang ugnayan ng mga character, salita, at token.

Isaalang-alang ang mga space at capitalization

Maaaring hatiin ang isang salita sa magkakaibang token depende sa baybay, capitalization, at nakapaligid na text.

Halimbawa, hindi magkapareho ang text ng red, Red, at red: may nauunang space ang huling halimbawa. Maaaring magkaiba ang paraan ng isang encoding sa pagkatawan sa mga ito.

Nakadepende rin sa encoding ang mga ID ng token. Huwag ipagpalagay na naaangkop sa bawat modelo ang isang halimbawang ID ng token.

Tukuyin ang pagkakaiba ng mga input at output token

KategoryaInilalarawan nito
Mga input tokenMga token na ibinibigay sa modelo sa isang request. Tinatawag din ang mga ito na mga prompt token.
Mga output tokenMga token na binubuo ng modelo. Tinatawag ng Chat Completions ang mga ito na mga completion token.
Mga cached input tokenMga input token na muling ginagamit sa pamamagitan ng prompt caching. Maaaring iba ang presyo ng mga ito sa mga input token na hindi naka-cache.
Mga token ng pangangatwiranMga token na internal na ginagamit ng nangangatwirang modelo bago buuin ang nakikita nitong sagot.

Hindi nakikita bilang text ng sagot ang mga token ng pangangatwiran, ngunit kasama ang mga ito sa paggamit ng output at sinisingil bilang mga output token.

Kaya maaaring gumamit ang isang maikling nakikitang sagot ng mas maraming token kaysa sa ipinahihiwatig ng ipinapakitang text nito.

Bilangin ang mga token bago magpadala ng request

Bilangin ang plain text

Gamitin ang Tokenizer upang makita kung paano hinahati ang text sa mga token.

Para i-tokenize sa pamamagitan ng program ang plain text, gamitin ang tiktoken. Piliin ang encoding para sa target mong modelo, gaya ng paggamit ng tiktoken.encoding_for_model(model).

Hindi palaging kasama sa bilang ng token ng plain text ang lahat ng token sa isang API request. Maaaring makaapekto sa kabuuang bilang ng input ang istruktura ng mensahe, mga tool, schema, larawan, at file.

Bilangin ang kumpletong input ng Responses

Para sa kumpletong input ng Responses API, gamitin ang API sa pagbibilang ng input token.

Tumatanggap ito ng mga format ng input ng Responses, kabilang ang mga mensahe, larawan, file, tool, at pag-uusap. Kasama sa bilang nito ang mga formatting token na ginagamit sa istruktura ng request, gaya ng mga role at hangganan ng mensahe.

Hindi nahuhulaan ng bilang ng input kung ilang output token ang bubuuin ng modelo.

Suriin ang aktuwal na paggamit ng token

Pagkatapos ng request, suriin ang impormasyon sa paggamit nito. Nag-iiba-iba ayon sa endpoint ang mga pangalan ng field:

  • Iniuulat ng Chat Completions ang prompt_tokens, completion_tokens, at total_tokens.

  • Iniuulat ng Responses ang input_tokens, output_tokens, at total_tokens.

Maaari mo ring suriin sa Usage Dashboard ang aktibidad sa paglipas ng panahon. Para sa mga tagubilin, kabilang ang paggamit ng streaming, tingnan ang: Pagsusuri sa paggamit at mga gastos ng API.

Manatili sa loob ng mga limitasyon ng modelo

Tingnan sa dokumentasyon ng iyong modelo ang context window at maximum na output nito. Maaaring magkakaiba ang mga limitasyong ito depende sa modelo.

Nililimitahan ng context window ang mga token na magagamit ng modelo sa isang request. May limitasyon din sa output ang mga modelo. Para sa mga nangangatwirang modelo, maglaan din ng espasyo para sa mga token ng pangangatwiran bukod sa nakikitang sagot.

Kung masyadong malaki ang iyong input, maaari mong:

  • Paikliin o baguhin ang pagkakasulat ng prompt.

  • Alisin ang hindi kailangan o paulit-ulit na context.

  • Hatiin sa mas maliliit na bahagi ang malalaking input.

  • Ibuod o paunang iproseso ang text bago ito ipadala.

Gamitin ang setting ng output token na sinusuportahan ng iyong endpoint at modelo. Ginagamit ng Chat Completions ang max_completion_tokens; ginagamit ng Responses ang max_output_tokens.

Hiwalay ang mga limitasyong ito sa laki ng request mula sa mga rate limit ng API at buwanang limitasyon sa paggamit o gastos. Suriin ang dokumentasyon ng modelo para sa ginagamit mong modelo.

Unawain ang pagpepresyo ng token

Para sa pagpepresyo ng API batay sa token, nakadepende ang singil sa modelo at kategorya ng token. Maaaring magkakaiba ang presyo ng mga input, cached input, at output token. Maaaring gumamit ng ibang unit sa pagsingil ang iba pang kakayahan ng API.

Tingnan ang page ng pagpepresyo ng API para sa mga kasalukuyang singil.

Kapag naghahambing ng mga modelo, isaalang-alang ang kabuuang token at gastos na kailangan upang matapos ang iyong gawain. Hindi palaging mas mababa ang kabuuang gastos kapag mas mababa ang presyo bawat isang milyong token: maaaring magkaiba ang pag-tokenize ng mga modelo sa parehong text at ang dami ng output o pangangatwirang binubuo ng mga ito.

Subukan ang mga gawaing kumakatawan sa aktuwal na paggamit sa halip na ihambing lamang ang haba ng nakikitang sagot.

Isaalang-alang ang maraming completion

Kapag sinusuportahan ng isang endpoint at modelo ang pagbuo ng maraming completion, gumagamit din ng mga token ang mga karagdagang completion na iyon.

Para sa Chat Completions, bumubuo ng maraming pagpipilian ang pagtatakda sa n nang higit sa 1. Sisingilin ka para sa mga token na nabuo sa lahat ng pagpipiliang iyon.

Para sa legacy na Completions API, maaaring bumuo ang best_of ng mga candidate na hindi lahat ay ibinabalik. Halimbawa, maaaring bumuo ang best_of = 3 ng hanggang 3 × max_tokens na completion token sa lahat ng candidate.

Partikular sa bawat endpoint ang mga parameter na ito. Huwag ipagpalagay na sinusuportahan ng ibang API o modelo ang n o best_of.

Nakatulong ba ang artikulong ito?