Комментарии 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 (матрицы весов), чтобы модель могла меняться и тренировать свое внимание.
В качестве аналогий часто приводятся наименования: "запросы", "ключи" и "значения", которые облегчают понимание механизма.
Все легче, чем кажется.
Если есть конкретные вопросы, то я на них отвечу.

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