본문 바로가기
Computer/LLM

In-context Learning

by hexists 2023. 4. 13.

 

 

How does in-context learning work? A framework for understanding the differences from traditional supervised learning

The official Stanford AI Lab blog

ai.stanford.edu

In-context Learning(이하 ICL)에 대해서 stanford blog 글을 통해 정리해 봅니다.

(추가로 princeton 자료도 활용했습니다.)

 

정리한 내용이 잘못 됐거나 보충이 필요하다면 댓글로 남겨주세요.

 

참고, 본문에 있는 모든 이미지는 stanford 블로그와 princeton에 있는 내용입니다.

 

How does in-context learning work?
A framework for understanding the differences from traditional supervised learning

블로그에서는 ICL의 동작을 2개의 논문을 통해 설명합니다.

 

1. An Explanation of In-context Learning as Implicit Bayesian Inference

https://arxiv.org/abs/2111.02080

2. Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?

https://arxiv.org/abs/2202.12837

 

첫 번째 논문은 Bayesian Inference를 통해 ICL이 어떻게 동작하는지 설명하는 내용이고,

두 번째 논문은 ICL의 중요한 구성 요소에 대해 실험합니다.

 

두 가지 논문을 통해 ICL이 기존의 supervised learning과 어떻게 다른지 이해할 수 있습니다.

 

저는 이 블로그를 통해 3가지를 이해해보고자 합니다.

1. ICL이 무엇인지 설명할 수 있습니다.

2. ICL을 Bayesian Inference Framework를 통해 이해할 수 있습니다.

3. ICL에서 grond-truth(input-output mapping) 유무에 따른 성능을 알아보고, 중요한 요소를 알 수 있습니다.

 

이제 한 가지씩 알아보겠습니다.

1. ICL은 무엇인가?

GPT-3 논문에서는 "few examples를 이용해서 LM이 task를 학습하는 방법"으로 정의합니다.

(The original GPT-3 paper as a way to use language models to learn tasks given only a few examples.)

 

ICL은 task를 설명하는 예제(training examples)들과 test input을 함께 주고, model이 prediction을 합니다.

model은 training examples를 통해 아래 내용들을 알아냅니다.

- input distribution

- output distribution

- input-output mapping(ground truth)

- formatting

 

 

 

 

 

ICL로 할 수 있는 것들은 무엇이 있을까요?

- 많은 labeled data를 사용한 모델과 견줄만한 성능을 가집니다.

  - LAMBADA(commonsense sentence completion), TriviaQA(question answering)에서는 SOTA(state-of-the-art)입니다.

  - "코드 작성, 디자인 작업, 스프레드시트 함수 작성 등" 더 신기한 것들은 많이 할 수 있습니다.

- openAI의 chatgpt 활용 예제들을 보면 다양한 활용 예들이 있습니다.

  - https://openai.com/product

 

ICL이 놀라운 이유는 무엇일까요?

- 파라미터에 최적화되도록 학습되지 않습니다(no optimization of any parameters).

  - 이 부분은 meta-learning의 특성으로 ICL의 고유한 특성은 아닙니다.

- LM이 examples를 학습하지 않습니다.

  - LM은 token prediction에 대해 학습합니다. 하지만, ICL에서는 무엇을 해야 하는지에 대해 동작합니다.

  - pretraining과 ICL이 일치하지 않습니다.

 

2. Bayesian Inference Framework

ICL을 더 잘 이해하기 위해 Xie는 Baysian Inference Framework를 제안합니다.

LM은 ICL의 prompt를 task 해결을 위한 learned concept을 locate 하는 데 사용합니다.

이미지를 보면 학습 예제(prompt)들을 이용해서 Sentiment Analysis인지 Topic Classification인지 알아내고, test input에 같은 형식을 mapping 합니다.

 

concept이란 무엇일까요?

다양한 문서 수준의 통계 정보를 담고 있는 latent variable로 볼 수 있습니다.

예를 들어 news topic의 concept은 아래와 같은 요소들이 있습니다.

- distribution of words(news and their topics)

- format(the way that news article written)

- relation between news and topics

- other semantic and syntactic relationship words

 

일반적으로 concept은 many latent variables의 조합(semantics and syntax)으로 볼 수 있습니다.

Bayesian Inference Framework에서는 여러 concept을 하나의 concept variable로 단순화해서 사용합니다.

 

pretraining 단계에서 Bayesian Inference가 어떻게 이뤄지는지 알아봅시다.

- LM이 latent concept struct를 가진 synthetic data로 학습된다면 ICL을 할 수 있습니다.

- 문서들이 자연스럽게 장기 일관성(long-term coherence)을 갖기 때문에 같은 문서의 문장들, 문단들, 표의 행들은 semantic information과 formatting을 공유하고, 실제 pretraining data에서도 유사한 효과가 발생할 수 있다고 볼 수 있습니다.

- Framework에서 pretraining 동안 coherence를 모델링하기 위해서는 latent concept을 inference 하는 학습이 필요합니다.

  - pretraining: next token prediction을 위해 LM은 이전 문장들을 이용하여 latent concept을 "locate" 해야 합니다.

  - ICL: LM이 in-context examples를 이용해서 prompt concept을 추론(infer)하면 ICL이 이뤄집니다.

 

ICL 단계에서 Bayesian Inference를 알아봅니다.

"locating" 과정은 prompt concept의 Bayesian Inference로 볼 수 있습니다.

모델이 prompt concept을 추론할 수 있다면, test example에 대해 올바른 예측을 할 수 있습니다.

수식으로 표현하면 아래와 같습니다.

여기서 p는 pretraining distribution을 나타냅니다.

pretraining data와 LM이 충분히 크다면 LM이 pretraining distribution에 일치할 것이라고 가정하고 p를 pretraining distribution과 probability에 사용할 수 있습니다.

 

prompt distribution은 test input과 연결된 IID (independent and identically distributed) training examples입니다.

각 example들은 같은 prompt concept을 가집니다.

 

p(concept | prompt): prompt는 모델의 증거를 제공하여 concept에 대해 posterior distribution을 분명하게 합니다.

- p(concept | prompt)가 prompt concept에 집중되어 있으면 모델은 prompt concept을 잘 학습했다고 볼 수 있습니다.

- 이상적으로 보면 p(concept | prompt)이 더 많은 예제를 통해 prompt concept에 집중하여 prompt concept이 "selected"되도록 합니다.

Noisy Evidence

위 설명의 논리적인 비약(logical leap)은 LM이 학습된 prompt와 다른 분포를 가지는 prompt에 대해서도 prompt concept을 추론한다는 점입니다.

prompt는 독립적인 examples로 구성되어 있고, examples 사이는 transition probability가 낮을 수 있고, 추론 과정에서 noise로 작용할 수 있습니다. 아래 그림에서는 빨간색으로 표시된 부분입니다.

흥미롭게도 GPT3에서 볼 수 있는 것처럼 LM은 pretraining과 prompt distributions의 mismatch에도 Bayesian inference를 할 수 있습니다. 

논문에서는 GINC 데이터 세트를 통해 Bayesian inference를 통한 ICL이 pretraining data에 있는 latent concept structure에서 나올 수 있음을 증명합니다.

* GINC Dataset: https://github.com/p-lambda/incontext-learning

  - 데이터는 ab, bc 이런 식으로 작성되어 있는데요. Bayesian Inference를 증명하기 위한 용도로 사용될 것 같습니다.

 

정리해보면

- training examples는 Bayesian inference을 위한 signal을 제공합니다.

  - examples 내의 transition(위 그림에서 녹색)을 통해 latent concept을 추론할 수 있습니다.
  - prompt에서 transition은 다음과 같은 정보들입니다.

    - input distribution: the transitions inside the news sentence

    - output distribution: the topic word

    - format: syntax of news sentence

    - input-output mapping: relation between the news and the topic

- traning examples 사이의 transition은 low-probability를 가질 수 있습니다(noise).

  - training example은 IID(independent and identically distributed)이므로 연결시 부자연스럽고 확률이 낮은 transition이 생성되는 경우가 많습니다.

- ICL은 일부 노이즈에 강건합니다.

  - signal이 noise 보다 크다면, ICL을 잘 할 수 있음을 증명합니다.

  - prompt concept이 other concept과 쉽게 구분할 수 있다면 강력한 signal이 있다고 볼 수 있습니다.

  - 또한, signal이 충분히 강하다면 prompt 형식이 변경되지 않는 다른 형태의 noise가 허용될 수 있음을 의미합니다.

    - 예를 들면 input-output mapping에서 noise를 줄 수 있습니다.

- ICL을 위한 소규모 테스트 세트: GINC Dataset

  - 이론을 뒷받침하기 위해 latent concept structure이 포함된 데이터세트를 구축했습니다.

  - Transformers와 LSTM 모두에 대해 ICL이 발생한다는 것을 발견했고, 이는 주요 효과가 pretraining 데이터의 구조에서 비롯됨을 의미합니다.

3. ICL에서 grond-truth(input-output mapping)

Min은 ICL에서 ground-truth의 영향을 확인하기 위해 3가지 방법을 비교합니다.

1. No-exampes: zero-shot

2. Examples with ground truth outputs: typical in-context learning method, few-shot

3. Examples with random outputs: each output in the prompt is randomly sampled from the output set
    (여기에서 새롭게 제안한 방법입니다.)

 

아래 그림에서 위에 있는 예제는 일반적인 Few-shot이고, 아래 있는 예제는 output을 random하게 sampling 한 것입니다.

Examples with random outputs은 typical supervised learning에서 전혀 동작하지 않습니다!

 

실험은 774M에서 175B까지 12개 모델들을 이용하고, 가장 큰 GPT-3(Davinci)를 포함합니다.

task는 총 16개의 classification datasets와 10 multi-choice datasets를 사용합니다.



평가 결과를 보면 주황색이 3번째 방법(examples with random outputs)인데, w/ gold labels(Few-shot)과 비교해서 성능 저하(0~5% 감소)가 적고, No Demos(zero-shot)과 비교해서 성능이 뛰어납니다.

전형적인 supervised learning과 다르게 ground truth가 꼭 필요한 요소는 아닙니다.

 

그렇다면 어떤 요소가 성능에 중요한 영향을 미칠까요? (ablation study)

ICL의 구성 요소를 4가지로 볼 수 있습니다.

- input distribution

- output space

- format

- input-output mapping

 

첫번째로 input distribution에 영향을 확인해봅니다.

input distribution을 외부 말뭉치에서 무작위로 샘플링된 입력 문장으로 구성되는 다양한 데모를 설계하고, random labeled 방법과 비교합니다.

결과는 전반적으로 random sentences를 입력으로 사용하는 모델이 상당히 낮은 성능이 나옵니다(절대 점수가 최대 16% 더 나쁨).

이는 올바른 입력 분포에 대한 조절이 중요함을 나타냅니다.

 
두번째로 output space의 영향을 알아봅니다.

output space를 확인하기 위해 원래 레이블과 관련이 없는 임의의 영어 유니그램으로 output space를 설계합니다.

다른 output space를 사용했을 때, 상당한 성능 저하가 있습니다(절대 점수로 16% 나빠짐).

이는 올바른 output space가 중요함을 나타냅니다.

 

세번째 Format에 대해서는 블로그에 정리가 안되어 있어 발표자료 있는 내용을 가져왔습니다.

format에 대한 실험은 input만 있거나 label만 있는 경우에 대해 기존 모델과 비교를 합니다.

아래 그림에서 demo만 있는 경우(초록색), labels만 있는 경우(보라색)의 성능을 보면 random labels(주황색, 성능에 가장 영향이 input-output mapping이 없는 케이스)와 비교했을 때 성능이 크게 감소합니다.

format의 유무만 봤을 때도 성능이 크게 감소합니다.

OOD + random labels(연보라색)과 Random labels only(보라색)

Random English words(연초록색)과 No labels(초록색)을 비교하면 됩니다.

 

Bayesian inference framework에 연결지어 정리하면,

LM이 input-output mapping에 의존하지 않는다는 점pretraining 단계에서 input-output mapping의 일부 개념에 노출됐을 수 있으며 ICL은 단순히 그것에 의존하고 있다는 것을 의미합니다. prompt의 모든 구성 요소들은 모델이 더 잘 "locate" 할 수 있도록 '증거'를 제공합니다.

random input-output mapping은 노이즈를 증가시키지만, 올바른 input distribution, output space, format과 같이 충분한 signal이 있어 Bayesian inference를 합니다.

올바른 input-output mapping을 사용하면 noise를 더 줄일 수 있으며, pretraining에서 잘 나타나지 않는 input-output mapping인 경우 더 유용합니다.

 

ICL 성능과 pretraining의 term frequencies의 상관관계

Razeghi은 numeric tasks에서 GPT-J를 평가하고 ICL 성능이 pretraining data에서 terms가 나타나는 횟수와 높은 상관관계가 있음을 확인했습니다. 아래 그림에서 x축은 term frequencies, y축은 성능을 나타냅니다. k는 example 수를 의미합니다. 왼쪽부터 덧셈, 곱셈, 프롬프트에 작업 표시가 없는 덧셈, 프롬프트에 작업 표시가 없는 곱셈입니다.

모든 유형에서 term frequencies가 커질수록 성능이 향상되고, 프롬프트에 작업 표시가 없는 경우에도 동일합니다.

(예, Q: What is 3 times 4? A: 12”, use “Q: What is 3 # 4? A: 12)

 

Bayesian inference framework에 연결지어 정리하면,

이 작업을 locating latent concepts과 관련된 또 다른 증거로 생각할 수 있습니다.

특히, 특정 인스턴스의 terms이 pretraining data에 여러 번 노출되면 모델이 입력 분포를 더 잘 알 수 있습니다.

이는 Bayesian inference에 따라 downstream task를 위한 locate latent concepts의 더 나은 증거를 제공합니다.

 

확장 방법

"unseen" tasks에 대한 모델 성능을 이해해봅니다.

제안하는 framework는 모델이 pretraining에서 학습한 concepts을 "localizing" 또는 "retrieving"하고 있다고 봅니다.

그렇지만 Rong은 부자연스러운 매핑 작업을 거의 완벽하게 수행하는 것을 보여줍니다. 아래 그림을 보면 스포츠를 동물에, 야채를 스포츠에 매핑합니다. 경험적으로 한가지 가능성은 ICL이 synthetic tasks에서 변경될 수 있다는 것입니다. 이 부분은 좀 더 확인이 필요합니다.

Bayesian inference을 많은 latent variables의 결합으로 본다면 일부 형태의 extrapolation을 설명할 수 있습니다.

예를 들어 syntax를 나타내는 latent variable과 semantics을 나타내는 latent variable를 고려할 수 있고, 모델이 pretraining 중에 모든 쌍을 보지 못해도 새로운 semantics-syntax pairs으로 일반화 할 수 있습니다.

 

Read task descriptions 학습에 연결

Task descriptions (or instructions)은 downstream task를 위한 prompt에서 사용할 수 있습니다.

예를 들어 요약을 설명하기 위해 "Write a summary about the given article"라고 할 수 있고, question answering를 설명하기 위해 "Answer a following question about the Wikipedia article"를 사용할 수 있습니다. large-scale로 조정된 LM에서는 unseen task를 더 잘 수행하는 것으로 보입니다.

framework 관점으로 볼 때 latent prompt concept에 대한 명시적인 관찰을 제공하여 Bayesian inference의 성능을 개선하기 위해 task descriptions를 사용한다고 이해할 수 있습니다.

task descriptions을 통합하도록 framework를 확장하면 작업을 더 간결하게 지정하는 방법으로 사용할 수 있습니다.

 

ICL을 위한 pretraining data에 대한 이해

ICL이 pretrainging data의 long-term coherence structure에서 나온다고 주장하지만, pretraining data의 어떤 요소가 ICL에 가장 큰 기여를 하는지 정확히 찾아내기 위해서는 더 많은 작업이 필요합니다. 최근 연구에서는 몇가지 힌트를 제공합니다. ICL 요소를 더 잘 이해하면 보다 효과적인 large-scale pretraining datset를 구성하는데 도움이 될 수 있습니다.

 

모델 구조와 학습에서의 효과

본 연구에서는 pretraining data의 효과에 대해서만 설명하지만, ML pipeline의 다른 모든 부분이 영향이 있을 수 있습니다.

Model scale은 그 중 하나입니다. 많은 논문에서 scale의 이점을 보여줍니다. Architecture (e.g., decoder-only vs. encoder-decoder)와 objective (e.g., casual LM vs. masked LM)도 다른 요인입니다.

향후 작업으로 ICL이 model scale, architecture, training objective에 의존하는지 더 조사할 수 있습니다.

 

마무리

- LM이 task 수행을 위해 pretraining 중에 학습된 relevant concept을 "locate"해서 ICL하는 framework를 제공합니다.

- 이를 prompt에 조건부인 latent concept의 Bayesian inference로 보고, pretraining data의 구조(long-term coherence)에서 학습된다고 봅니다.

- NLP benchmarks의 경험적 증거와 연결해서 random outputs을 가진 prompt에서도 ICL이 잘 작동함을 보입니다.

- random outputs이 noise를 추가하고 input-output mapping 정보를 제거해도 다른 구성 요소(input distribution, output distribution, format)들은 여전히 Bayesian inference의 증거를 제공합니다.

- 마지막으로 framework의 제한사항과 가능한 확장에 대해 설명합니다.
  - unseen tasks에 대한 extrapolation, model architecture, optimization 등

'Computer > LLM' 카테고리의 다른 글

MLM vs CLM  (0) 2023.04.20
InstructGPT Evaluation  (2) 2023.04.17
nanoGPT, prepare.py  (0) 2023.03.16
nanoGPT, readme  (0) 2023.03.08
ChatGPT  (0) 2023.03.07