tgoop.com/quant_prune_distill/223
Last Update:
DenseFormer: Enhancing Information Flow in Transformers via Depth Weighted Averaging
[Статья] [Код]
Skip connections позволяют обучать по-настоящему глубокие сети. Впервые они появились в статьях про ResNet и UNet, и с тех пор было предложено множество их вариаций - DenseNet connections, CSP, и зоопарк вариаций. Тот же трансформер унаследовал структуру skip connections от ResNet.
В этой работе по существу воплотили DenseNet в трансформере.
Метод
DenseNet-like skip connections реализованы следующим образом: ключи и значения в данном блоке получаются как взвешенная сумма ключей и значений с этого и всех (или не только лишь всех) предыдущих блоков. Дополнительного оверхеда по памяти нет ❌, так как kv-кэши активации с прошлых блоков все равно придется сохранять для backpropagation или авторегрессивной генерации.
Чтобы воспроизводить поведение стандартного трансформера - веса с прошлых блоков инициализируются нулями.
Однако, все равно приходится делать массу сложений, что замедляет работу сети. Потому авторы предлагают две модификации:
1️⃣ Dilated DenseFormer. Считается взвешенная сумма только через k-слоев.
2️⃣ Periodic DenseFormer. Добавление kv проводится только для каждого k-го токена.
Обе модификации снижают объем вычислений, не снижая качество.
Эксперименты
Модели обучают OpenWebText и смотрят на перплексию на валидационной выборке. Бейзлайновые сети довольно глубокие (48 - 90 блоков) и узкие 8 голов по 64 канала. При том же числе параметров DenseFormer немного лучше трансформера по перплексии, но и медленнее. Потому авторы сравниваются еще и в сетапе с заданным временем инференса, и DenseFormer оказывается все еще эффективнее.
Dilated и Periodic опции заметно ускоряют модель, при этом не просаживая по качеству с полносвязным Denseformer.
Далее смотрят на величину выученных коэффициентов. Ожидаемо, наибольший вес имеют коэффициенты в данном блоке, но еще сильны skip connections с первым блоком. Многие веса малы по величине, тем не менее важны, и прунинг даже небольшой доли самых малых весов сажает качество.
Вывод
Дешевая и вроде бы эффективная настройка над трансформером. Однако постановка экспериментов изначально неблагоприятна для базовой модели, так как глубокие узкие модели имеют свойство тяжело обучаться. Вероятно, более широкий трансформер с тем же числом параметров отработал бы лучше. А для неглубоких сетей, скорее всего, выигрыш от конструкции незначителен. Да и много что, дающее выигрыш на малых экспериментах не воспроизводится на масштабе...
BY КПД
Share with your friend now:
tgoop.com/quant_prune_distill/223