Обновить

Трансформер своими руками: с нуля до Numpy реализации и обучения

Уровень сложностиСредний
Время на прочтение51 мин
Охват и читатели12K
Всего голосов 32: ↑32 и ↓0+37
Комментарии6

Комментарии 6

Глубокоуважаемый Максим! Большое спасибо за Ваш гигантский труд. Отличные рисунки, красивый человеческий русский язык.

Спасибо!
Если знаете кого-то кому нужна такая статья, то приводите их сюда. Буду ждать.

Статью сохранил, летом с ребёнком проработаем

Пишите вопросы, даже самые глупые. Постараюсь ответить на все.

Огромный труд. Спасибо большое. Хотелось бы больше простых аналогий/примеров для понимания (механизм внимания в первую очередь).

Спасибо за интерес к моей статье. Ниже некоторые разъяснения работы внимания.

Суть самовнимания в том, что каждая текстовая единица в последовательности (тексте) имеет отношение ко всем остальным, выраженное математически в конкретных числах.

Пример без батча:
На вход поступает тензор X [T D], а на выходе должно быть некое переработанное представление тех же данных Z [T D], где главное выделено, а несущественное отброшено.

Технически (в плане формы) мы можем взять X [T D] и умножить на транспонированный вариант Xt [D T], и получить таблицу токенов A [T T]. А потом "взвесить" эти же данные X полученной таблицей A [T T] * X [T D] = Z [T D], и за одно вернуть их к первоначальной форме [T D]. Но в реальности мы работаем с проекциями данных: вход умножаются на три разных обучаемых параметра QKV (матрицы весов), чтобы модель могла меняться и тренировать свое внимание.

В качестве аналогий часто приводятся наименования: "запросы", "ключи" и "значения", которые облегчают понимание механизма.

Все легче, чем кажется.
Если есть конкретные вопросы, то я на них отвечу.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации