In-Context Learning(ICL) 이란 ICL은 모델이 별도의 파인튜닝 없이 입력 Context(Prompt)만을 기반으로 새로운 작업을 학습하는 능력을 의미한다. 즉, 예제 몇 개를 보여주었을 때 다음에 오는 질문에 대해 모델이 잘 대답할 수 있는 능력을 학습하는 방법론으로 볼 수 있다.
널리 알려진 학습 방법인 Few-shot Learning, Zero-shot Learning 등이 ICL 방법론에 포함되며, 전체 모델을 다시 학습할 필요 없이 Prompt 조정만으로 다양한 문제를 해결할 수 있다는 장점이 있다.
학습 방법(Learning)
Gradient Descent | ICL(Conditioning) | |
학습 방식 | Weight를 업데이트하면서 점진적으로 학습 | Weight를 변경하지 않고 Context 기반 임시 학습 |
매커니즘 | Loss Function을 줄이기 위해 역전파 수행 | 제공된 Input을 기반으로 모델이 패턴을 찾아 예측 |
유형 | Supervised, Unsupervised, RL | Few-shot, Zero-shot, CoT(Chain of Thought) |
시간 소요 | 학습 데이터가 많을 수록 학습 시간이 길어짐 | 새로운 데이터가 들어와도 즉시 적용 |
적용 방식 | 데이터 셋을 기반으로 모델 학습 | 새로운 데이터를 입력 Prompt에 추가하는 것으로 적용 |
모델 업데이트 | 새로운 데이터가 들어올 경우 다시 학습 필요 | 학습 없이도 Input을 바꾸면 다른 결과 생성 |
위와 같이 In-Context Learning 또한 이미 "학습하는 방법을 학습"했다는 점에서 Meta-Learning과 비슷한 관점으로 바라볼 수 있다(특히 Model-base Meta-Learning).
[학습 방법 1: Supervised In-Context Learning]
MetaICL
- 기존 In-Context Learning은 shot의 개수가 어느 수준이 되었을 때 결국 Supervised 방법론보다 성능이 떨어진다.
- 따라서 Train에서도 시뮬레이션을 수행하는 것이 필요하다.
- Meta-train 단계에서는 Prompt를 기반으로 In-Context 능력을 학습하고, Meta-test 단계에서는 비워져 있는 부분이 있는 Prompt를 주어 적응시킨다.
In-Context Tuning(ICT)
- MetaICL과 비슷한 시기에 나왔으며 내용 자체가 크게 다르지 않다.
- 잘 알려진 Oversensitivity Issue(Example order, Choice, Instruction Wording 등)를 다룬다.
[학습 방법 2: Self-supervised In-Context Learning]
Pre-training for In-Context Learning(PICL)
- Context로 제공된 예제만보고 ICL 능력을 구축
- 자동적으로 Retriever에서 Few-shot ICL Task를 구축
- Pretraining 과정에서 ICL 능력을 향상시키는 것이 목적
In-Context Learning은 어떻게 작동할까?
1. Distribution of Training data
- ICL이 Few-shot Learning에서 잘 작동하는 이유는 Pre-training 과정에서 이미 다양한 Distribution에 대한 일반화 능력을 학습했기 때문이다.
- 다시 말하면, Pre-training 과정에서 이미 다양한 패턴을 봤기 때문에 새로운 패턴이 들어와도 비슷한 방식으로 처리할 수 있다는 의미이다.
- 때문에 Rare Class가 많아질수록, Label이 여러개 할당될 수록 ICL 능력이 향상된다.
2. Learning Mechanism
- Attention 매커니즘을 사용하여 Weight 업데이트 없이도 마치 Memory처럼 작동하는데, 모델이 입력된 정보를 바탕으로 즉석에서 패턴을 찾아내기 때문이다.
- 때문에 ICL은 Implicit한 Fine-Tuning을 한다고 볼 수 있다.
- 전체적인 모델 구조로 보았을 때 학습 과정에서 Weight를 조정하는 In-weights learning과 In-context learning의 균형을 맞추는 것이 좋은 성능을 내기위해 중요하다.
Task Learning vs Task Recognition
1. Task Learning
- 모델이 특정 Task를 수행하는 법을 학습
- 일반적인 머신러닝에서는 학습 데이터로 특정 Task를 학습, ICL에서는 Pretrain 모델이 Prompt 안에 있는 예제를 보고 새로운 Task를 수행
2. Task Recognition
- 주어진 입력이 어떤 Task인지 인식하는 과정(주어진 Prompt나 Input이 어떤 Task인지를 먼저 판별)
In-Context Learning을 바라보는 관점
In-Context Learning은 결국 사전 학습된 구조를 가지고 Context를 학습하기 때문에 메타러닝과 베이지안 관점으로 해석할 수 있다.
- ICL을 메타러닝적인 관점으로 보면, 모델 가중치를 직접 업데이트하지 않으면서 Pretrain된 Meta-structure를 활용해 새로운 Task에 적응하는 과정이라고 볼 수 있다.
- 반면 베이지안적인 관점에서 보면 사전학습된 구조에 Context를 추가해 학습하는 과정이 Bayes Inference 과정과 유사하고 볼 수 있다.
General Purpose ICL
- 특정 도메인에 국한되지 않고 다양한 Domain, Task에서 Context 정보를 바탕으로 모델이 새로운 문제를 풀 수 있는 능력
- 이 경우, Task가 일정 수준이 되기 전까지는 성능이 잘 안오르다가 어느순간 팍 오른다.
'AI & CS 지식 > 메타러닝' 카테고리의 다른 글
[메타러닝] 8. Continual Learning (0) | 2025.02.07 |
---|---|
[메타러닝] 7. Hyperparameter Optimization (0) | 2025.02.02 |
[메타러닝] 6. AutoAugment (0) | 2024.12.31 |
댓글