Transformers — это библиотека на Python для обучения state-of-the-art моделей в обработке естественного языка. Разработкой библиотеки занимается компания HuggingFace. Transformers предоставляет API для использования таких архитектур трансформеров, как BERT, RoBERTa, GPT-2 или DistilBERT.
Архитектуры трансформера показывают наиболее точно решают задачи текстовой классификации, вычленения информации из текста, вопросно-ответных систем и текстовой генерации. Трансформеры в библиотеке предобучены и доступны в виде набора весов.
Чтобы начать работать с библиотекой, достаточно установить ее через pip с помощью команды pip install transformers. Недавно в библиотеку добавили поддержку TensorFlow 2.0. Теперь библиотека доступна для работы с Keras, TensorFlow Extended и TPU.
Структура библиотеки
Transformers базируется на идее предобучения трансформер моделей. Трансформер модели доступны в разных формах, размерах и архитектурах. На вход трансформеры принимают данные в токенизированном формате.
В библиотеке есть три основных класс: конфигурация, токенизатор и модель. Класс конфигурации содержит информацию о параметрах модели. Параметрами могут быть количество слоев и количество механизмов внимания в модели. Класс токенизатора отвечает за конвертацию Python строки с текстом в тензоры с числами, которые являются индексами в словаре модели. Токенизация варьируется в зависимости от выбранной архитектуры модели. Класс модели содержит нейросеть. Если используется TensorFlow, класс модели наследует tf.keras.layers.Layer. Это значит, что модель может быть обучена с помощью Keras fit API.
Стандартизированность
Преимуществом Transformers является в стандартизированности API для любой архитектуры модели. Загрузка предобученной модели и ее токенизатора может быть осуществлена за пару строк кода. Ниже пример на TensorFlow с загрузкой BERT, GPT-2 и их токенизаторами.