OpenAI
Тази страница е машинно преведена. Вижте оригиналната статия на английски език.

Какво са токените и как да ги броим?

Актуализирано: 15 days ago

Какво са токените?

Токените са градивните елементи на текста, който моделите на OpenAI обработват. Те могат да бъдат кратки колкото един знак или дълги колкото цяла дума в зависимост от езика и контекста. Интервалите, пунктуацията и части от думи също участват в броя на токените. Така API вътрешно сегментира текста ви, преди да генерира отговор.

Полезни ориентири за английски:

  • 1 токен ≈ 4 знака

  • 1 токен ≈ ¾ от дума

  • 100 токена ≈ 75 думи

  • 1–2 изречения ≈ 30 токена

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

  • ~1 500 думи ≈ 2 048 токена

Токенизацията може да варира според езика. Например „Cómo estás“ (испански за „Как си“) съдържа 5 токена за 10 знака. Текстът на езици, различни от английски, често води до по-високо съотношение токени към знаци, което може да повлияе на разходите и лимитите.

Примери

Ето няколко реални текстови примера с приблизителния им брой токени:

  • Цитатът на Уейн Грецки „Пропускаш 100% от ударите, които не отправяш“ = 11 токена

  • Хартата на OpenAI = 476 токена

  • Декларацията за независимост на САЩ = 1 695 токена

Как се изчислява броят токени

Когато изпратите текст към API:

  1. Текстът се разделя на токени.

  2. Моделът обработва тези токени.

  3. Отговорът се генерира като последователност от токени, след което се преобразува обратно в текст.

Използването на токени се проследява в няколко категории:

  • Входни токени – токените във вашата заявка.

  • Изходни токени – токените, генерирани в отговора.

  • Кеширани токени – повторно използвани токени в историята на разговора (често таксувани на по-ниска ставка).

  • Токени за структурирано анализиране – при някои усъвършенствани модели вътрешно се включват допълнителни „стъпки на мислене“, преди да се създаде крайният резултат.

Тези бройки се показват в метаданните на отговора от API и се използват за таксуване и проследяване на използването.

За да разгледате по-подробно токенизацията, можете да използвате нашия интерактивен инструмент Tokenizer, който ви позволява да изчислите броя токени и да видите как текстът се разделя на токени.

Алтернативно, ако искате да токенизирате текст програмно, използвайте Tiktoken като бърз BPE токенизатор, използван специално за моделите на OpenAI.

Лимити на токените

Всеки модел има максимален комбиниран лимит на токени (вход + изход). Настоящите модели с голям капацитет поддържат до стотици хиляди токени в контекста, макар че практическите лимити може да варират според версията на модела и вашето ниво на използване.

Ако надвишите лимита, можете да:

  • Съкратите или преформулирате подканите.

  • Разделите големия текст на по-малки части.

  • Обобщите или предварително обработите входните данни преди изпращане.

Ценообразуване на токените

Използването на 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

В първия пример по-горе токенът „2266“ за „ red“ включва интервал отпред (забележка: това са примерни 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

Токенът „2296“ за „ Red“ (с интервал отпред и започващ с главна буква) е различен от токена „2266“ за „ red“ с малка буква.

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“ е различен от предишните два примера за думата.

Наблюдения:

Колкото по-вероятен/често срещан е даден токен, толкова по-малък е номерът на токена, присвоен на него:

  • Токенът, генериран за точката, е един и същ („13“) и в трите изречения. Това е така, защото в контекст точката се използва доста сходно в целите корпусни данни.

  • Токенът, генериран за „red“, варира според позицията му в изречението:

    • С малка буква в средата на изречение: „ red“ - (токен: „2266“)

    • С главна буква в средата на изречение: „ Red“ - (токен: „2297“)

    • С главна буква в началото на изречение: „Red“ - (токен: „7738“)

Беше ли Ви полезна тази статия?