О чём урок
В прошлом уроке вы собрали BasicTokenizer: он учит BPE на сырых байтах текста, без оглядки на то, где кончается одно слово и начинается другое. Этого достаточно, чтобы понять механику алгоритма, но для токенизатора, которым реально пользуются GPT-2 и GPT-4, этого мало. В этом уроке вы разберёте, как регулярное выражение предварительно режет текст на куски до обучения BPE, как это решает проблему «размноженных» токенов вроде dog. и dog!, как устроены специальные токены и зачем они нужны для безопасности промптов, и наконец как minbpe восстанавливает слияния токенизатора GPT-4 из данных библиотеки tiktoken. После урока вы сможете обучить собственный regex-токенизатор на смеси языков, добавить в него специальный токен и сверить его поведение с официальным tiktoken.
Неофициальный курс AI University по открытому коду (MIT). В уроке приводится код из karpathy/minbpe © Andrej Karpathy, лицензия MIT; комментарии переведены на русский, объяснения написаны нашей командой. Курс не связан с автором кода и не одобрен им.
Представьте, что в обучающем тексте встречаются фразы «хороший пёс.», «хороший пёс!» и «хороший пёс,». Наивный байтовый BPE не знает, что точка, восклицательный знак и запятая это разные с точки зрения смысла символы, не связанные со словом «пёс». Если пара байтов пёс. встречается в тексте достаточно часто, алгоритм сольёт её в отдельный токен, и у вас появится токен «pёс.», отдельно от токена «pёс!» и отдельно от «pёс» перед пробелом. Модель будет вынуждена учить, что эти токены означают почти одно и то же, вместо того чтобы один раз выучить представление слова «пёс» и отдельно обработать знак препинания.
Та же проблема возникает с числами: токен «100» и токен «100.» это разные последовательности байтов, и BPE, ничего не зная о границах, слепо сливает то, что чаще встречается рядом в обучающих данных. В результате словарь раздувается токенами-дублями, а модель хуже обобщает арифметику и работу с пунктуацией.
Решение, которое используют токенизаторы GPT, простое и элегантное: прежде чем…
План урока
- Проблема наивного BPE: слова, пунктуация и границы
- Шаблоны GPT2_SPLIT_PATTERN и GPT4_SPLIT_PATTERN
- RegexTokenizer: обучение с учётом кусков
- Специальные токены и безопасность промптов
- GPT4Tokenizer: совместимость с tiktoken
- Практические следствия токенизации
- Попробуйте сами
- Итоги
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.