LongNet: Scaling Transformers to 1,000,000,000 Tokens
https://arxiv.org/abs/2307.02486
Прошло полтора месяца с выхода работы от DeepPavlov, где они скейлили контекстное окно до 1 миллиона токенов, and now we’re here 😐
Как всегда предлагают работать с главным боттленком трансформера, а именно с аттеншеном, который вычисляется за квадратичное время. Тут они «прореживают» матрицы K, Q, V, как показано на картинке – каждую из них делят на квадратные куски некоторой длины, и внутри каждого куска выбирают значение ряда и колонки с некоторым отступом. Очень похоже на то, как делают stride в сверточных сетках, когда проходятся по картинке
Далее для каждого квадратного куска аттеншн считается отдельно, а потом опредленным образом считается их взвешенная сумма
Помимо того, что можно ранжировать размер сегмента и dilution, в разных головах аттеншена эти сегменты также смещают, чтобы захватить больше разнообразной информации из исходных матриц
В эвалюейшн показывают, что модель ведет себя нормально и с контекстом 2к токенов, и с контекстом 32к (и при этом еще требует меньше компьюта и показывают ниже perplexity, чем обычный трансформер). Тестировали правда на одном датасете и не сравнивали ни с чем, кроме FlashAttention. Пока не хватает, имхо, оценки на разных задачах, качество смотрели только на the Stack (датасет с кодом) и только через перплексити, без других метрик
Post #965
3.88K

- 🔥 13
- 👍 6
- ❤ 1