Модификации RoPE: От тригонометрии к относительным позициям

Дружище, если ты следил за нашей предыдущей дискуссией о RoPE, то у меня для тебя нечто взрывное! Сегодня мы продолжим путь по этому бездонному океану информации и обнаружим все модификации RoPE, которые словно звезды на ночном небе освещают путь в мир глубокого обучения. Готовься, впереди нас ждет целых три поста, полных знаний, так что пристегнись!

Позиционное Кодирование: Зачем оно вообще нужно?

Прежде чем мы погрузимся в дебри модификаций, давай определим основное значение Positional Encoding — это как некое GPS для трансформеров, помогающее им ориентироваться в порядках слов. Оно предоставляет машине информацию о том, где именно находится слово в предложении. Мы тут говорим о относительных и абсолютных позициях, а если без заумств — это очень важно!

Вехи развития позиционного кодирования

Время в нашем повествовании идет стремительно, поэтому давай вернемся к основным вехам, начиная с 2017 года.

📅 2017 год

С выходом "ванильного" трансформера на сцену мир увидел тригонометрические функции, которые добавлялись к эмбеддингу каждого токена. Прелесть этого подхода в том, что он мог кодировать любую позицию, даже ту, которая превышает максимальную длину обучающей выборки. Но, как говорил великий философ (или это был просто мой друг с работы?), "в каждой бочке меда есть ложка дегтя". В нашем случае это была неэффективность работы с длинными последовательностями и нереальный уровень неоптимальности.

📅 2018 год

Годом позже пришел BERT с его новым гениальным подходом — вместо тригонометрии разработчики решили добавить обучаемый слой nn.Embedding. Представляешь, теперь модель сама учит, как выглядит позиция токена, как будто это новый стиль рисования! Она суммирует векторы слова и его позиции, и, о чудо, результат оказался лучше. Но тут опять закралась вышеприведенная проблема: модель не могла экстраполировать знания за пределы максимальной длины, как виртуоз без инструмента в незнакомом городе. Это, конечно, не весело, но мы это пережили.

Переход к относительным позициям

Но не всё потеряно! Именно в этот момент взорвался тот самую идею относительных позиций. Вместо того чтобы заморачиваться с абсолютными позициями — кто там знает, где какие токены находятся в предложении, когда ты читаешь стихи Пушкина, — авторы научили моделировать их относительные позиции. Зачем нам эта абсолютка, если у нас есть Relative Position Encoding (RPE)? Это как сравнивать температуру на солнце с температурой в тени, гораздо полезнее знать, насколько холодно или тепло по сравнению с чем-то, верно?

В итоге, новое позиционное кодирование стало частью механизма Attention. Оно добавляет информацию о позиции в запросы и ключи, как будто шепчет модели: "Эй, не забывай, где именно ты находишься среди этих токенов!"

Итак, мой дорогой читатель, это был краткий экскурс в мир позиционного кодирования. Жди следующую часть, где мы исследуем более интересные инсайты по RoPE и его модификациям. Оставайся с нами, будет жжот!



Обсуждение (0)

Войдите, чтобы оставить комментарий

Пока нет комментариев!



Вам также может понравиться

V-JEPA – это настоящий прорыв в мире видеомоделей! Представьте себе, что ваш компьютер стал бы проявлять видеопонимание на уровне человеческого восприятия. Этот магический инструмент не просто анализирует видео, а предсказывает события, словно гадалка с хрустальным шаром, только без фартука и с почти нулевой погрешностью! Он изучае... Читать далее