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



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



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



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



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



Adapters

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



Selective methods

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



Soft promts

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



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



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

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



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



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