Наконец добралась до этой статьи: "Why Can GPT Learn In-Context?

Language Models Secretly Perform Gradient Descent as Meta-Optimizers"



В ней авторы исследуют феномен zero-shot learning (или, более точно, in-context learning (ICL)) в больших языковых моделях типа GPT-3. Напомню, что феномен этот состоит в том, что GPT-3 на вход можно подать текст с парой примеров решения какой-либо задачи и попросить решить эту же задачу на следующем примере. И модель это сделает.

Например, подаем на вход

'''

cheese -> fromage

bread -> pain

milk -> ...

'''



и GPT-3 дополняет текст: "lait". Т.е. языковая модель, которая не обучалась под задачу машинного перевода, внезапно по паре примеров понимает, что от нее хотят, и дальше может решать эту новую задачу на новых примерах. Важно, что никакого обучения (вообще никакого обновления весов) при этом не происходит.



Так вот. Авторы статьи взяли GPT-3 и посмотрели, что происходит с выходами слоев attention при подаче на вход сети подобного промта (как выше). Оказалось, что выходы слоев attention имеют тот же вид, какой бы они имели, если бы модель была реально обучена нескольких примерах из промта. То есть, как если бы мы взяли пары вида "cheese -> fromage" и "bread -> pain" и дообучили на них GPT-3 с помощью градиентного спуска.



Заметим, что верно это только для определенного вида attention: linear attention. Но это все равно позволяет предположить, что для других видов attention механизм идейно похож.



Еще стоит сказать, что авторы статьи не первые, кто придумал смотреть на attention и SGD под подобным углом. На ICML-22 была другая статья, где авторы нашли связь между полносвязными слоями, обученными с помощью SGD, и слоями attention. Они показали, что обычный линейный слой, обученный с помощью SGD, можно представить в виде слоя attention, в котором query — это текущий вход слоя, key — данные, на которых слой был обучен, values — градиенты слоя во время обучения.



Ну и последнее: чтобы показать, что идейная связь между attention в GPT-3 и SGD точно есть, авторы статьи чуть модифицировали слой attention так, чтобы имитировать использование momentum в SGD. И GPT с таким аттеншеном действительно стала работать лучше.



В общем, прочитала я это, и теперь сижу думаю. Моя первая ассоциация в связи с этим всем — это что дообучение выглядит как загрузка информации в долгосрочную память модели, а вот эта возможность модели "обучаться" на контексте — как краткосрочная память. Типа, обратил внимание на данные, запомнил, решил задачу, забыл.



Ну и то, что люди начинают смотреть на модели глубже и находить такие интересные связи между слоями, attention и SGD — это супер круто. Может, мы скоро действительно начнем понимать, как именно работают нейронки)



Статья

А нашла я ее в канале AbstractDL