In-Context Learning
Контекстное обучение (англ. 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 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.
Примечания
- ↑ What is In-Context Learning (ICL)? // Lakera.ai
- ↑ In-Context Learning (ICL) // Hopsworks.ai
- ↑ In-Context Learning, In Context // The Gradient
- ↑ Why Can GPT Learn In-Context? Language Models Secretly Perform Gradient Descent as Meta-Optimizers // arXiv, 2022.
- ↑ Understanding In-Context Learning // Stanford Human-Centered AI, 2023.