В этой статье пойдет речь об одной из самых сложных и интересных архитектур — трансформере, лежащей в основе современных моделей от OpenAI и Google DeepMind. И это не научпоп для обывателя с наивным уровнем объяснения, а полноценный учебный материал, который поможет вам понять работу трансформера на фундаментальном уровне без черных ящиков типа TensorFlow и Pytorch.
А для того чтобы лучше вникнуть, давайте напишем настоящий мини-трансформер на процедурном Python и обучим его!
Данный материал можно изучать в разных режимах:
* Как объяснение архитектуры для общего представления;
* Как полноценный гайд с чтением кода и самостоятельной практикой;
* Как основу для собственных экспериментов.
Вы сами можете выбрать тот режим, который нужен для ваших целей на данный момент.
Наш трансформер будет довольно простым: со статическим графом и одноблочными энкодером и декодером. Сам код написан в парадигме процедурного программирования (за исключением некоторых модулей) и может быть прочитан на любом уровне и без знания ООП. И все же это будет полноценный обучаемый трансформер с мультиголовым вниманием, батчами данных, параллельным вычислением и множеством параметров.
Для закрепления материала, выполните Домашнее задание, которое ждет вас в конце статьи.