tgoop.com/quant_prune_distill/279
Last Update:
Your Transformer is Secretly Linear
[Статья][Пост в телеге][Пост на Хабре][Код]
Интересное релевантное исследование от коллег из AIRI/Сколтеха. Кратко, ибо все хорошо и доступно изложено самим автором в постах в телеге и на Хабре.
Метод
Оказывается, что активации трансформера в соседних блоках связаны почти что линейным преобразованием. В качестве меры линейности используется linearity score, который по существу является r2 (коэффициентом детерминации) . Сам по себе факт не столь удивителен, ибо норма skip-connection обыкновенно значительно больше преобразования в attn/mlp. Но даже если вычесть skip connection выделяется явная линейная и нелинейная компонента.
Проанализировав ряд промежуточных чекпоинтов открытых моделей, авторы замечают что норма линейной компоненты уменьшается в процессе предобучения, но возрастает в ходе файнтьюна . И предложенная регуляризация на нелинейность улучшает качество.
Исходя из наблюдений, предлагается прунить самые “линейные” слои, а для восстановления качества заместо запруненного блока учится линейный слой. И такой адаптер неплохо восстанавливает качество.
Эксперименты
Рассматривают большое число открытых моделей - от GPT-2 (когда-то OpenAI был действительно открытым), Bloom до свежих Phi-3.
Рост линейности имеет место для всех моделей и задач. Прирост качества от регуляризации хоть и невелик, но все же заметен. Интересно, насколько он будет иметь место на большом масштабе?
Несколько нетипичный сетап замера перплексии - короткие последовательности вместо обычно используемого 2к/4к контекста (как на обучении), но общая суть от сего не меняется.
BY КПД
Share with your friend now:
tgoop.com/quant_prune_distill/279