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:
Hinahati ang text sa mga token.
Pinoproseso ng modelo ang mga token na iyon.
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
| Kategorya | Inilalarawan nito |
| Mga input token | Mga token na ibinibigay sa modelo sa isang request. Tinatawag din ang mga ito na mga prompt token. |
| Mga output token | Mga token na binubuo ng modelo. Tinatawag ng Chat Completions ang mga ito na mga completion token. |
| Mga cached input token | Mga 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 pangangatwiran | Mga 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.
