Что такое токен?

Токен — это минимальная единица текста, которая может проходить через слои в архитектуре. Токеном может быть слово, часть слова или даже отдельный символ в зависимости от используемой модели и метода токенизации. В контексте языковых моделей, таких как GPT, текст сначала разбивается на токены, которые затем передаются на вход модели для обработки.

Токены — это основа работы нейросетей, так как они разбивают текст на более управляемые части. Это также важно для оптимизации обработки больших текстов: чем больше контекста модель может охватить за один раз (то есть, сколько токенов она может обработать), тем лучше её результаты.

Пример:

В предложении "Нейросети меняют мир" токенами могут быть отдельные слова: "Нейросети", "меняют", "мир", или же части этих слов.

Как работает токенизация?

Чтобы разбить ваш запрос на части, модель использует процесс токенизации. В нейронных сетях это важный этап, так как модели лучше работают с данными в виде числовых последовательностей. Каждый токен переводится в числовой код, и на основе этих кодов модель обучается распознавать закономерности и создавать ответы.

Токенизация также помогает работать с языками, в которых одно слово может иметь несколько значений в зависимости от контекста. Чем точнее токенизация, тем лучше модель сможет "понимать" текст. Существуют разные методы токенизации, которые помогают разбивать текст на токены по-разному в зависимости от задачи и типа текста.

Основные методы токенизации

Токенизация по словам: каждый токен — это отдельное слово.

Например, фраза "Я учу машинное обучение" будет разделена на ["Я", "учу", "машинное", "обучение"].

Токенизация по подсловам: текст разбивается на более мелкие части.

Например "машинное" может быть разделено на ["машин", "ное"], что полезно при работе с редкими словами.

Токенизация по символам: каждый символ становится отдельным токеном.

Например, фраза "машинное" будет разделена как ["м", "а", "ш", "и", "н", "н", "о", "е"].

Н-граммная токенизация: текст разбивается на группы из нескольких слов или символов.

Например, "машинное обучение" может быть разделено на ["машинное обучение"] или ["машин", "ное", "обучение"] в зависимости от настроек.

Токенизация с использованием BPE (Byte-Pair Encoding): часто используемый метод, который сначала разбивает текст на символы, а затем объединяет часто встречающиеся пары символов или подслов, чтобы сократить длину текста.

Допустим, у нас есть предложение: "машинное обучение помогает".

1. Первый шаг
— текст разбивается на отдельные символы, поскольку мы начинаем с самого базового уровня. Мы получаем следующие токены:
м, а, ш, и, н, н, о, е,  , о, б, у, ч, е, н, и, е,  , п, о, м, о, г, а, е, т

2. Объединение часто встречающихся пар символов
— на этом этапе мы начинаем искать часто встречающиеся пары символов и объединяем их:

Самая частая пара символов, например, может быть "о" и "б", которая объединяется в "об"
Далее может быть объединена пара "н" и "о", чтобы получился токен "но"
Постепенно предложение начинает группироваться по подсловам.

м, а, шин, но, е,  , об, у, ч, е, н, и, е,  , п, о, м, о, г, а, е, т

3. Следующие шаги — продолжается объединение часто встречающихся пар, пока не будут сформированы более крупные подслова. Итогом может быть следующее:
машин, ное, обучение, помогает

Таким образом, метод BPE позволяет эффективно кодировать текст, разделяя его на подслова, что помогает уменьшить размер словаря, сохранив при этом информацию о словах и их частях, что важно для нейронных сетей.

Сколько токенов могут обрабатывать модели?

Количество токенов, которое модели могут обработать, зависит от контекстного окна, также известнго как входное окно. Так, например, у GPT4o оно составляет 128,000 токенов. Подробнее об этом мы рассказываем в статье "Трансформеры" раздела Архитектуры, на которых основаны модели в GPTunneL.

Поделиться Гайдом
Попробовать в GPTunneL