Нейролента - подборка новостей о нейронных сетях, ChatGPT

Небольшая заметка об изменении архитектуры трансформера с 2017...

Небольшая заметка об изменении архитектуры трансформера с 2017 года. Читая статьи про LLM, можно увидеть фразы вроде "мы используем стандартную архитектуру трансформера". Но что означает "стандартная", и есть ли изменения с момента выхода оригинальной статьи? Давайте на примере языковой модели (т.е. decoder-only) LLaMa-2 посмотрим на основные крупные архитектурные улучшения для LLM:

Post LayerNorm → Pre LayerNorm. Это делает сходимость более устойчивой. Теперь процесс идет так, что исходные эмбеддинги просто идут сквозь блоки декодера, и к ним прибавляются “корректировки” из FFN и Attention. Выглядит изящно, на мой взгляд.

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

Функция активации ReLU → SwiGLU. Gated Linear Units (семейство методов, к которому принадлежит SwiGLU. В нем добавляется операция поэлементного умножения матриц, одна из которых прошла через сигмоиду и таким образом контролирует интенсивность сигнала, проходящего из первой матрицы) немного докидывают к качеству на ряде задач.

LayerNorm → RMSNorm. RMSNorm вычислительно проще, но работает с тем же качеством.

Модификации Attention, например, использование одной K-V пары матриц сразу на группу Q матриц. Это улучшение в основном уже влияет на оптимизацию инференса. Но здесь есть и огромное число методов, направленных в сторону снижения квадратичной сложности операции, писал об этом подробнее здесь и здесь.