본문 바로가기
AI & CS 지식/메타러닝

[메타러닝] 9. In-Context Learning

by rahites 2025. 2. 15.

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

댓글