Ano ang mga token?
Ang mga token ang mga pangunahing yunit ng tekstong pinoproseso ng mga modelo ng OpenAI. Maaaring kasing-ikli ang mga ito ng isang karakter o kasinghaba ng isang buong salita, depende sa wika at konteksto. Lahat ng espasyo, bantas, at bahagi ng mga salita ay kasama sa bilang ng token. Ganito panloob na hinahati ng API ang iyong teksto bago bumuo ng tugon.
Mga kapaki-pakinabang na tuntunin para sa Ingles:
1 token ≈ 4 na karakter
1 token ≈ ¾ ng isang salita
100 token ≈ 75 salita
1–2 pangungusap ≈ 30 token
1 talata ≈ 100 token
~1,500 salita ≈ 2,048 token
Nag-iiba ang pag-tokenize ayon sa modelo at encoding. Gamitin ang tool na Tokenizer o ang tiktoken.encoding_for_model(model) para makuha ang eksaktong bilang para sa iyong target na modelo.
Mga Halimbawa
Narito ang ilang halimbawa ng aktuwal na teksto at ang tinatayang bilang ng token ng mga ito:
Ang sipi ni Wayne Gretzky na “Hindi mo maipapasok ang 100% ng mga tira na hindi mo sinusubukan” = 11 token
Ang OpenAI Charter = 476 token
Ang Deklarasyon ng Kalayaan ng US = 1,695 token
Paano kinakalkula ang bilang ng token
Kapag nagpapadala ka ng teksto sa API:
Hinahati sa mga token ang teksto.
Pinoproseso ng modelo ang mga token na ito.
Binubuo ang tugon bilang sunod-sunod na mga token at saka muling kino-convert sa teksto.
Sinusubaybayan ang paggamit ng token sa ilang kategorya:
Mga input token – mga token sa iyong kahilingan.
Mga output token – mga token na binuo sa tugon.
Mga naka-cache na token – mga token sa history ng pag-uusap na muling ginamit (madalas singil sa mas mababang rate).
Mga token ng pangangatwiran – sa ilang advanced na modelo, may mga karagdagang “hakbang ng pag-iisip” na isinasagawa sa loob bago ibigay ang pinal na output.
Lumalabas ang mga bilang na ito sa metadata ng tugon ng API at ginagamit sa pagsingil at pagsubaybay sa paggamit.
Para higit pang tuklasin ang pag-tokenize, magagamit mo ang aming interactive na tool na Tokenizer, na nagbibigay-daan sa iyong kalkulahin ang bilang ng mga token at makita kung paano hinahati sa mga token ang teksto.
Bilang alternatibo, kung gusto mong i-tokenize ang teksto sa pamamagitan ng programming, gamitin ang Tiktoken, isang mabilis na BPE tokenizer na partikular na ginagamit para sa mga modelo ng OpenAI.
Mga Limitasyon ng Token
Ang bawat modelo ay may maximum na pinagsamang limitasyon ng token (input + output). Sinusuportahan ng mga kasalukuyang modelong may mataas na kapasidad ang hanggang daan-daang libong token sa konteksto, bagama't maaaring mag-iba ang praktikal na limitasyon depende sa bersyon ng modelo at antas ng paggamit mo.
Kung lalampas ka sa limitasyon, maaari mong:
Paikliin o baguhin ang pagkakasulat ng mga prompt.
Hatiin ang mahabang teksto sa mas maliliit na bahagi.
Ibuod o paunang iproseso ang mga input bago ipadala ang mga ito.
Pagpepresyo ng Token
Ang paggamit ng API ay sinisingil kada token, at nag-iiba ang presyo ayon sa modelo at kung input, output, o naka-cache ang mga token. Tingnan ang page ng pagpepresyo ng OpenAI para sa mga kasalukuyang rate. Maaaring gumamit ang ilang modelo ng pangangatwiran ng mas maraming token sa loob, ngunit layunin nilang pahusayin ang kahusayan sa pamamagitan ng pagbawas sa bilang ng token na kailangan sa bawat natapos na gawain.
Hindi pare-pareho ang pamantayan ng mga token sa lahat ng modelo o provider ng AI. Maaaring magproseso o bumuo ang iba't ibang modelo ng parehong teksto gamit ang magkakaibang bilang ng token, kaya ang mas mababang presyong inanunsyo kada isang milyong token ay hindi nangangahulugang mas mababa rin ang kabuuang gastos.
Hindi rin ipinapakita ng nakikitang haba ng tugon ang buong larawan. Gumagamit ang ilang modelo ng mga token ng pangangatwiran sa loob bago bumuo ng sagot, kaya ang mas mahabang nakikitang tugon ay hindi nangangahulugang mas maraming token ang ginamit ng modelo sa kabuuan.
Kapag naghahambing ng mga modelo, isaalang-alang ang kabuuang bilang ng token na kailangan at ang gastos sa bawat matagumpay na resulta. Maaaring maging kapaki-pakinabang na panimulang batayan ang mga benchmark, ngunit ang pagsubok sa mga modelo gamit ang sarili mong mga sitwasyon ng paggamit ang pinakamahusay na paraan para maunawaan ang aktuwal na gastos at performance ng mga ito.
Paggalugad sa mga token
Tinatrato ng API ang mga salita ayon sa konteksto ng mga ito sa data ng corpus. Kinukuha ng mga modelo ang prompt, kino-convert ang input sa isang listahan ng mga token, pinoproseso ang prompt, at muling kino-convert ang mga hinulaang token sa mga salitang nakikita natin sa tugon.
Ang dalawang salitang mukhang magkapareho sa atin ay maaaring buuin bilang magkaibang mga token depende sa pagkakaayos ng mga ito sa teksto. Tingnan kung paano bumubuo ang API ng mga value ng token para sa salitang ‘red’ batay sa konteksto nito sa teksto:
Sa unang halimbawa sa itaas, ang token na “2266” para sa ‘ red’ ay may kasamang espasyo sa hulihan (Tandaan, mga halimbawang token ID lamang ito para sa pagpapakita).
Ang token na “2296” para sa ‘ Red’ (may espasyo sa unahan at nagsisimula sa malaking titik) ay iba sa token na “2266” para sa ‘ red’ na may maliit na titik.
Kapag ginamit ang ‘Red’ sa simula ng pangungusap, walang espasyo sa unahan ang nabuong token. Ang token na “7738” ay iba sa dalawang naunang halimbawa ng salita.
Mga Obserbasyon:
Kung mas malamang o mas madalas lumitaw ang isang token, mas mababa ang numero ng token na itinatalaga rito:
Pareho ang token na binuo para sa tuldok (“13”) sa lahat ng 3 pangungusap. Ito ay dahil halos magkakatulad ang paggamit ng tuldok ayon sa konteksto sa buong data ng corpus.
Nag-iiba ang token na binuo para sa ‘red’ depende sa puwesto nito sa pangungusap:
Maliit na titik sa gitna ng pangungusap: ‘ red’ - (token: “2266”)
Malaking titik sa gitna ng pangungusap: ‘ Red’ - (token: “2297”)
Malaking titik sa simula ng pangungusap: ‘Red’ - (token: “7738”)
