Считаем токены с tiktoken

Урок 34 из 299 курса «OpenAI Cookbook»: официальный курс OpenAI Academy (ОпенАИ) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

tiktoken — это быстрый токенизатор с открытым исходным кодом от OpenAI. Имея текстовую строку (например, "tiktoken is great!") и кодировку (например, "cl100k_base"), токенизатор может разбить текстовую строку на список токенов (например, ["t", "ik", "token", " is", " great", "!"]). Разбиение текстовых строк на токены полезно, поскольку модели GPT воспринимают текст в виде токенов. Знание количества токенов в текстовой строке может подсказать вам (а) не слишком ли длинна строка для обработки текстовой моделью и (б) сколько стоит вызов OpenAI API (поскольку использование тарифицируется по токенам). Кодировки определяют, как текст преобразуется в токены. Разные модели используют разные кодировки. tiktoken поддерживает три кодировки, используемые моделями OpenAI: Название кодировки Модели OpenAI o200k_base gpt-4o, gpt-4o-mini cl100k_base gpt-4-turbo, gpt-4, gpt-3.5-turbo, text-embedding-ada-002, text-embedding-3-small, text-embedding-3-large p50k_base Codex models, text-davinci-002, text-davinci-003 r50k_base (or gpt2) GPT-3 models like davinci Вы можете получить кодировку для модели, используя tiktoken.encoding_for_model() следующим образом: Обратите внимание, что p50k_base существенно пересекается с r50k_base, и для приложений, не связанных с кодом, они обычно выдают одинаковые токены. Для кодировок o200k_base, cl100k_base и p50k_base: Python: tiktoken .NET / C#: SharpToken, TiktokenSharp Java: jtokkit Golang: tiktoken-go Rust: tiktoken-rs Для кодировок r50k_base (gpt2) токенизаторы доступны на многих языках. Python: tiktoken (или альтернативно GPT2TokenizerFast) JavaScript: gpt-3-encoder .NET / C#: GPT Tokenizer Java: gpt2-tokenizer-java PHP: GPT-3-Encoder-PHP Golang: tiktoken-go Rust: tiktoken-rs (OpenAI не поддерживает и не гарантирует работу сторонних библиотек.) В английском языке токены обычно имеют длину от одного символа до одного слова (например, "t" или " great"), хотя в некоторых языках токены могут быть короче одного символа или длиннее одного слова. Пробелы обычно группируются с началами слов (например, " is" вместо "is " или " "+"is"). Вы можете быстро проверить, как строка токенизируется, на OpenAI Tokenizer или стороннем веб-приложении Tiktokenizer. При необходимости установите tiktoken с помощью pip: Используйте tiktoken.get_encoding() для загрузки кодировки по имени.

План урока

  1. Кодировки
  2. Библиотеки токенизаторов по языкам
  3. Как обычно токенизируются строки
  4. 0. Установка tiktoken
  5. 1. Импорт tiktoken
  6. 2. Загрузка кодировки
  7. 3. Преобразование текста в токены с помощью encoding.encode()
  8. 4. Преобразование токенов в текст с помощью encoding.decode()

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды