Как работает In-Context Learning (ICL)?
Интересный пост от Stanford AI Lab: https://ai.stanford.edu/blog/understanding-incontext. Они наводят теории для понимания ICL, показывают её состоятельность на синтетическом и реальных датасетах.
ICL это когда модель выполняет поставленную задачу (классификация, суммаризация, ...) без дополнительного обучения, то есть без обновления параметров. Это эмерджентное свойство обычно наблюдается у гигантских моделей после большого претрейна.
Авторы предлагают рассмотреть ICL как байсовский вывод латентной переменной (концепта), обуславливаясь на промпт, который делает возможным решение поставленной задачи. Этот нывык модель приобретает за счет того, что тексты в обущающем датасете связные и "держать у себя в голове" некий порождающий концепт оказывается полезным.
Они составили небольшой синтетический датасет, в котором их предположение верно (тексты определяются концептами, как на рисунке 1), обучили на нем трансформер и lstm, ICL возник в обоих случаях.
Далее, анализируя качество ICL классификации на реальных датасетах, они выделяют 4 аспекта:
- распределение x-ов
- распределение y-ов
- связь между x и y (является ли этот ответ y верным для данного x)
- формат
Из неожиданных выводов: оказалось, что связь между x и y не критична. То есть в промпте можно для x выбирать случайный y и от этого просадка в качестве будет небольшой (рисунок 2). Но важно показать модели то, как выглядят входы и какие существуют метки ответов. На языке их теории: модель робастна к шуму и может выводить нужный концепт из достаточно сильного сигнала из распределений отдельно x, отдельно y, и формата; все 4 аспекта излишни.
Интересно, если обучить относительно небольшую модель на синтетическом датасете, который способствует возникновению ICL, а потом дообучить на реальных данных, можно ли добиться того, что и в небольших моделях ICL будет хорошо работать?
Post #27
538
- 🔥 7
- 👍 3
- 🤔 1