# Введение

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

В этой главе вы узнаете, как обучить совершенно новый токенизатор на корпусе текстов, чтобы затем его можно было использовать для предобучения языковой модели. Все это будет сделано с помощью библиотеки 🤗 Tokenizers, которая предоставляет «быстрые» токенизаторы в 🤗 Transformers. Мы внимательно рассмотрим функции, предоставляемые этой библиотекой, и выясним, чем быстрые токенизаторы отличаются от «медленных» версий.

Темы, которые мы рассмотрим:

- Как обучить новый токенизатор, аналогичный тому, который используется конкретной моделью, на новом корпусе текстов
- Особенности быстрых токенизаторов
- Различия между тремя основными алгоритмами токенизации составных частей слов, используемыми сегодня в NLP.
- Как создать токенизатор с нуля с помощью библиотеки 🤗 Tokenizers и обучить его на собственных данных

Методы, представленные в этой главе, подготовят вас к разделу главы 7, где мы рассмотрим создание языковой модели для исходного кода Python. Давайте начнем с рассмотрения того, что значит «обучить» токенизатор.