In-Context Learning

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

Контекстное обучение (англ. In-Context Learning, ICL) — это фундаментальная способность больших языковых моделей (LLM) обучаться новым задачам «на лету», используя только примеры (демонстрации), предоставленные в контексте (промпте) запроса. Ключевой особенностью является то, что этот процесс адаптации происходит без обновления весов (параметров) модели, то есть без традиционного дообучения (fine-tuning)[1][2].

Этот механизм позволяет моделям демонстрировать поразительную гибкость, решая задачи, для которых они не были специально натренированы. ICL стал одним из ключевых прорывов, который сделал большие языковые модели настолько мощными и универсальными[3].

Механизмы работы

Точное понимание того, как работает ICL, остаётся активной областью исследований, однако существует несколько ведущих теорий, объясняющих этот феномен.

Трансформер как мета-оптимизатор

Одна из популярных теорий гласит, что архитектура Трансформера во время предварительного обучения учится реализовывать алгоритмы обучения в своих прямых проходах (forward passes). Когда модель получает промпт с примерами, она неявно выполняет своего рода оптимизацию для решения представленной задачи, настраивая свои внутренние состояния (активации), а не веса[4].

Байесовский вывод

Другая теория рассматривает ICL как форму байесовского вывода. Модель, предварительно обученная на огромных массивах данных, имеет априорное представление о множестве концепций. Примеры в контексте служат свидетельствами, которые позволяют модели уточнить своё апостериорное распределение вероятностей по скрытым концепциям. Иными словами, примеры помогают модели «понять», какую именно из тысяч известных ей задач нужно решить в данный момент[5].

Типы In-Context Learning

В зависимости от количества предоставленных примеров ICL делят на три основных типа.

  • Few-shot Learning (обучение на нескольких примерах): Это самый распространённый и сбалансированный подход. Модели предоставляется несколько (обычно от 2 до 10) демонстрационных примеров.

Пример (классификация тональности):

Текст: "Какой прекрасный день!"
Тональность: Позитивная

Текст: "Я ненавижу стоять в пробках."
Тональность: Негативная

Текст: "Этот фильм был довольно средним."
Тональность:

Ожидаемый ответ:

Нейтральная
  • One-shot Learning (обучение на одном примере): Модели даётся только один пример. Этого часто достаточно, чтобы задать формат ответа и значительно улучшить производительность по сравнению с zero-shot подходом.
  • Zero-shot Learning (обучение без примеров): Модели не предоставляются примеры, а только инструкция или описание задачи. В этом случае модель полностью полагается на знания, полученные во время предварительного обучения.

Практическое применение

Правильное применение ICL позволяет решать широкий спектр задач без дорогостоящей разработки и дообучения.

  • Для творческих и стилистических задач (генерация кода в определённом стиле, написание текста в манере конкретного автора):
    • Рекомендуется Few-shot Learning.
    • Примеры помогают модели уловить нужный стиль, формат и структуру вывода.
  • Для простых задач с чёткими инструкциями (перевод, суммаризация, ответы на простые вопросы):
    • Часто достаточно Zero-shot Learning.
    • Современные модели достаточно хорошо справляются с такими задачами, если они были частью их предварительного обучения.
  • Для задач, где важен формат вывода (генерация JSON, извлечение сущностей):
    • Рекомендуется One-shot или Few-shot Learning.
    • Даже один пример может чётко задать требуемую структуру ответа, предотвращая ошибки форматирования.

Преимущества и недостатки

Сравнение преимуществ и недостатков ICL
Преимущества Недостатки
  • Гибкость и скорость: Мгновенная адаптация к новым задачам без необходимости переобучения.
  • Экономия ресурсов: Не требует сбора данных, разметки и вычислительных мощностей для дообучения.
  • Доступность: Позволяет пользователям без экспертизы в ML настраивать модели с помощью простых текстовых примеров.
  • Ограничения контекстного окна: Количество примеров лимитировано максимальной длиной контекста модели.
  • Чувствительность к примерам: Результат сильно зависит от качества, порядка и формата предоставленных демонстраций.
  • Высокие затраты на этапе вывода: Длинные промпты с множеством примеров увеличивают стоимость и время генерации.
  • Риски для безопасности: Передача конфиденциальной информации в качестве примеров может быть небезопасной.

Сравнение с другими парадигмами

ICL vs. Fine-tuning

Fine-tuning (дообучение) изменяет веса модели, «впечатывая» в неё новые знания. Это делает модель экспертом в узкой области, но снижает её общую гибкость. ICL, напротив, не меняет веса и является более гибким, но может уступать в производительности на узкоспециализированных задачах, где требуется глубокое знание домена.

ICL vs. RAG (Retrieval-Augmented Generation)

Оба метода расширяют контекст модели, но для разных целей:

  • ICL использует примеры, чтобы научить модель как выполнять задачу (демонстрация навыка).
  • RAG использует извлечённую информацию, чтобы сообщить модели факты, необходимые для ответа (предоставление знаний).

На практике ICL и RAG часто комбинируют для достижения наилучших результатов.

Литература

  • Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
  • Dai, D. et al. (2022). Why Can GPT Learn In-Context? Language Models Implicitly Perform Gradient Descent as Meta-Optimizers. arXiv:2212.10559.
  • Panwar, M.; Ahuja, K.; Goyal, N. (2024). In-Context Learning through the Bayesian Prism. arXiv:2306.04891.
  • Müller, S. et al. (2021). Transformers Can Do Bayesian Inference. arXiv:2112.10510.
  • Garg, S. et al. (2022). What Can Transformers Learn In-Context? A Case Study of Simple Function Classes. arXiv:2208.01066.
  • Min, S. et al. (2022). Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?. arXiv:2202.12837.
  • Wang, X. et al. (2023). Explaining and Finding Good Demonstrations for In-Context Learning. arXiv:2302.13971.
  • Xie, S. et al. (2024). A Survey on In-Context Learning. arXiv:2301.00234.
  • Yu, Z.; Ananiadou, S. (2024). How Do Large Language Models Learn In-Context? Query and Key Matrices of In-Context Heads Are Two Towers for Metric Learning. arXiv:2402.02872.
  • Wibisono, K. C.; Wang, Y. (2024). From Unstructured Data to In-Context Learning: Exploring What Tasks Can Be Learned and When. arXiv:2406.00131.
  • Chan, J. K. et al. (2022). Data Distributional Properties Drive Emergent In-Context Learning in Transformers. arXiv:2205.05055.
  • Hahn, M.; Goyal, N. (2023). A Theory of Emergent In-Context Learning as Implicit Structure Induction. arXiv:2303.07971.

Примечания