Кодирование байт-пар для начинающих

Основы кодирования байт-пар для новичков

Подробное руководство по токенизатору BPE на простом языке

Изображение автора

В этой статье мы рассмотрим один из наиболее известных алгоритмов токенизации под названием Byte-Pair Encoding (BPE). Он используется во многих современных моделях большого языка, таких как семейство BERT, BART и GPT.

Давайте начнем.

Byte-Pair Encoding (BPE)

Byte-Pair Encoding (BPE) – это алгоритм токенизации подслов на основе корпуса. Он основан на корпусе, поскольку использует обучающий корпус для изучения часто встречающихся символов (или символов) и объединяет их в один символ. И это токенизатор подслов, поскольку разбивает текст на единицы, меньшие (или равные) словам.

На изображении ниже показана токенизация подслов в предложении “it is raining”. Обратите внимание, что “it” и “is” являются полноценными словами, а “rain” и “ing” являются подсловами слова “raining”.

Алгоритм BPE состоит из двух основных частей: обучение токенов и сегментация токенов.

1. Обучение токенов: это занимается обучением корпуса текста и созданием словаря, содержащего токены. Этот корпус действует как обучающий корпус.

Токенизатор обучает корпус текста и создает словарь - изображение автора

2. Сегментация токенов: это берет некоторый текст, такой как предложение, и разделяет его на токены. Этот текст является тестовыми данными. Мы используем знания, полученные на предыдущем шаге обучения, для токенизации тестовых данных на этом шаге.

Токенизатор преобразует предложение в его токены - изображение автора

Стоит отметить, что

“Byte Pair Encoding (BPE) (Gage, 1994) – это старый метод сжатия данных, который итеративно заменяет наиболее частую пару байтов в последовательности одним неиспользуемым байтом”[1].

Текущий алгоритм BPE, который мы знаем для токенизации, адаптирует этот алгоритм, но вместо объединения частых пар байтов он объединяет частые символы (или…