Так, обещала обзор на адаптеры, делаю на весь зоопарк PEFT



В общем-то недавно, все резко вспомнили о существовании параметрической эффективной настройки, ну а чтобы было привычно для слуха, про PEFT. (Тык по ссылочке🥁)



(решение которое на самом деле выходило еще в те годы, когда появлялись большие модели по типу Bert. Тогда как раз и предлагали эффективные решения для обучения путем обучения не на всех параметрах)



В приложении предлагаю посмотреть👀 на целый зоопарк таких методов. Увидеть, что на самом деле их большое множество. Они делятся на группы. Можно наверняка уже заприметить знакомые слуху сокращения



Давайте рассмотрим по группам:



Adapters

Идея очень проста: наверняка все слышали о способе transfer learning, когда мы замораживаем слои, добавляем новые, и дообучаем только [добавленные нами]/[добавленные и те, что мы не заморозили в сетке]. Вот тут идея такая же, мы добавляем отдельные слои в разные части сетки, которых в целом может быть сколько угодно. И так обучаемся. В чем проблема? Сеть становится слишком глубокой, это накладывает ограничение при ее инференсе



Selective methods

Теперь представьте, что мы можем не бездумно выбирать/добавлять слои для обучения, а указывать модели какие именно параметры стоит учить на основе, например, статистических методов



Soft promts

Теперь отойдем от добавляемых слоев, и подумаем, что аналогично вышеперечисленному можно оптимизировать, чтобы заморозить все остальные веса? Я бы не придумала, а умные люди поняли, что можно подать вместе с запросом, еще некоторую подсказку и оптимизировать только эту подсказку. Соответсвенно остальные веса входной последовательности заморозить. Тем самым мы уменьшаем количество параметров во время тренировки и тратим меньше ресурсов



Вот именно методы soft prompts и adapters на самом деле представляли изначально общую группу под названием additive methods. Название говорит само за себя. И, как можно было уже догадаться, суть этой группы в том, чтобы добавить что-то новое, что будет пересчитываться во время ft, а остальное будет заморожено



Ну и на десерт Reparametrization-based methods

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



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



Го марафон разбора каждого метода в отдельности? Пишите в комментах с чего начать🤓



#PEFT