OpenAI
Бұл бет машиналық аударма арқылы жасалған. Түпнұсқа ағылшын мақаласын қараңыз.

Токендер деген не және оларды қалай санауға болады?

Жаңартылған: 8 days ago

Токендер дегеніміз не?

Токендер — OpenAI модельдері өңдейтін мәтіннің құрылымдық бөлшектері. Олар тіл мен контекске байланысты бір таңбадай қысқа немесе толық сөздей ұзын болуы мүмкін. Бос орындар, тыныс белгілері және сөз бөліктері де токен санына кіреді. API жауап жасамас бұрын мәтініңізді ішкі түрде осылай сегменттейді.

Ағылшын тіліне арналған пайдалы шамамен ережелер:

  • 1 токен ≈ 4 таңба

  • 1 токен ≈ сөздің ¾ бөлігі

  • 100 токен ≈ 75 сөз

  • 1–2 сөйлем ≈ 30 токен

  • 1 абзац ≈ 100 токен

  • ~1 500 сөз ≈ 2 048 токен

Токенизация модель мен кодтауға байланысты өзгереді. Мақсатты модель үшін нақты санды алу үшін Tokenizer құралын немесе tiktoken.encoding_for_model(model) пайдаланыңыз.

Мысалдар

Мұнда шамамен токен сандары көрсетілген нақты мәтін үлгілері берілген:

  • Уэйн Гретцкидің «Сіз жасамаған соққыларыңыздың 100%-ын мүлт жібересіз» деген дәйексөзі = 11 токен

  • OpenAI хартиясы = 476 токен

  • АҚШ Тәуелсіздік декларациясы = 1 695 токен

Токен сандары қалай есептеледі

API-ге мәтін жібергенде:

  1. Мәтін токендерге бөлінеді.

  2. Модель осы токендерді өңдейді.

  3. Жауап токендер тізбегі ретінде жасалып, кейін қайтадан мәтінге түрлендіріледі.

Токен пайдалануы бірнеше санатта бақыланады:

  • Кіріс токендері – сұрауыңыздағы токендер.

  • Шығыс токендері – жауапта жасалған токендер.

  • Кэштелген токендер – әңгіме тарихында қайта пайдаланылған токендер (көбіне төмендетілген тарифпен есептеледі).

  • Ой қорыту токендері – кейбір жетілдірілген модельдерде соңғы шығысты жасамас бұрын ішкі қосымша «ойлау қадамдары» қосылады.

Бұл сандар API жауабыңыздың метадеректерінде көрінеді және төлем мен пайдалануды бақылау үшін қолданылады.

Токенизацияны әрі қарай зерттеу үшін интерактивті Tokenizer құралын пайдалануға болады; ол токен санын есептеуге және мәтіннің токендерге қалай бөлінетінін көруге мүмкіндік береді.

Баламалы түрде, мәтінді бағдарламалық жолмен токендерге бөлгіңіз келсе, OpenAI модельдері үшін арнайы қолданылатын жылдам BPE токенизаторы ретінде Tiktoken пайдаланыңыз.

Токен шектеулері

Әр модельдің ең жоғары біріктірілген токен шегі бар (кіріс + шығыс). Қазіргі жоғары сыйымдылықты модельдер контексте жүздеген мыңға дейін токенді қолдайды, бірақ практикалық шектер модель нұсқасына және пайдалану деңгейіңізге қарай өзгеруі мүмкін.

Шектен асып кетсеңіз, мына әрекеттерді орындай аласыз:

  • Көмексөздерді қысқартыңыз немесе басқаша тұжырымдаңыз.

  • Үлкен мәтінді кішірек бөліктерге бөліңіз.

  • Кірістерді жібермес бұрын қорытындылаңыз немесе алдын ала өңдеңіз.

Токен бағасы

API пайдалану ақысы әр токен бойынша есептеледі және модельге, сондай-ақ токендердің кіріс, шығыс немесе кэштелген болуына қарай өзгереді. Ағымдағы тарифтерді OpenAI-дың бағалар бетінен қараңыз. Кейбір ойлайтын модельдер ішкі түрде көбірек токен пайдалануы мүмкін, бірақ орындалған әр тапсырмаға қажет токен санын азайту арқылы тиімділікті арттыруға ұмтылады.

Токендерді зерттеу

API сөздерді корпус деректеріндегі контекстіне қарай өңдейді. Модельдер көмексөзді алып, кірісті токендер тізіміне түрлендіреді, көмексөзді өңдейді және болжанған токендерді жауапта көретін сөздерге қайта түрлендіреді.

Бізге екі бірдей сөз болып көрінуі мүмкін нәрсе мәтіндегі құрылымына байланысты әртүрлі токендерге айналуы мүмкін. API мәтіндегі контекстіне қарай «red» сөзі үшін токен мәндерін қалай жасайтынын қарастырайық:

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

Жоғарыдағы бірінші мысалда « red» үшін «2266» токені соңынан бос орынды қамтиды (Ескерту: бұлар көрсету мақсатындағы мысал токен ID-лері).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

« Red» үшін «2296» токені (алдында бос орын бар және бас әріптен басталады) кіші әріппен жазылған « red» үшін «2266» токенінен өзгеше.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

«Red» сөйлем басында қолданылғанда, жасалған токенде алдындағы бос орын болмайды. «7738» токені осы сөздің алдыңғы екі мысалынан өзгеше.

Бақылаулар:

Токен неғұрлым ықтимал/жиі болса, оған тағайындалған токен нөмірі соғұрлым төмен болады:

  • Нүкте үшін жасалған токен барлық 3 сөйлемде бірдей («13»). Себебі контекст тұрғысынан нүкте корпус деректері бойынша біршама ұқсас қолданылады.

  • «red» үшін жасалған токен оның сөйлемдегі орнына байланысты өзгереді:

    • Сөйлем ортасындағы кіші әріп: « red» - (токен: «2266»)

    • Сөйлем ортасындағы бас әріп: « Red» - (токен: «2297»)

    • Сөйлем басындағы бас әріп: «Red» - (токен: «7738»)

Бұл мақала пайдалы болды ма?