Какой у тебя длинный... 🫢

Вход в transformer. 📝



Или пара вредных советов для создания вашего longformer...



Тут давече вышел хабропост про то, как из вашей модели сделать longformer и расширить вход за 512 seqlen.



Нас это зацепило и мы решили, что можем воспроизвести. Засучили рукава и принялись за работу. В процессе подготовки словили несколько факапов и набили пару шишек. Поэтому, думаю, дополнения от Жеского Дяди не помешает.



Итого, что советуем:



1. При расширении контекста, нужно довыровнять global position embeddings и attention, тк мы же увеличили seqlen. Для адаптации автор поста врубал MLM и фризил всё остальное,кроме указанных выше позиций и внимания. На данном этапе не забудьте расфризить MLM head.



2. Когда собрали и запустили код, обнаружили, что при сетапе из п1. у нас стали умирать конечные эмбеды. Наши метрики упали. А хотелось бы их сохранить. Поэтому автор предлагает 30% доливать коротких текстов. Но на модели с нашим числом весов (large) пришлось увеличить долю до 40%.



3. Но и доработки п.2 не хватало. Обнаружили проблемы с прогревом, снизили его с 15к шагов до 2-5к , иначе всё сходилось не к той области весов и после отключения прогрева разлетелось к чертям.



4. Катастрофическая забывчивость для малых текстов за 2-3 пункты поличилась, но зазор всё ещё был 2-3%

качества, а хотелось воспроизвести результат поста и получить минимум разницы или даже прирост.



Поэтому дядя вспомнил про ChatGPT и как там в RLHF PPO используют KLD регуляризации к reference модели. По сути self дистилляция. И тут мы врубили её к изначальной версии без выравнивания (она учитель) и только для коротких текстов.



Крч дописали ещё одну голову совместно с MLM. В итоге получили даже где-то прирост 0.5% , что радует.



Почему в посте на хабр так всё вышло гладко и сладко? Особенно для tiny модельки. Думаю дело в числе весов и модель успела быстро сойтись и не разлететься по лоссу не в том пространстве. Сетап изначально был напомню 1 в 1. Для больших моделей от large и выше пользуйтесь советами выше.



Как-то так. Дерзайте и кидайте свои наблюдения, советы в комментариях.