‹ Lecture 4 18 / 20

GPT-3

GPT-3는 GPT-2의 autoregressive LM recipe를 크게 확장하고, task별 weight update 없이 context의 instruction과 demonstrations로 task를 수행하는 능력을 본격적으로 비교한다. 여기서 learning은 test-time parameter 학습과 다르다. Prompt가 달라지면 forward computation이 달라지지만 pretrained weights는 고정되어 있다.

Scaling the GPT-2 Recipe

Parameters는 GPT-2의 1.5B에서 175B로 약 117배, layers/width는 48/1600에서 96/12288로 늘어난다. Context는 1024에서 2048, training data는 40GB WebText에서 300B sampled tokens가 된다. 300B는 더 큰 data pool에서 sampling하여 실제 학습에 사용한 token 수다. 강의는 더 크고 다양한 filtered data mix와 125M–175B의 8개 model sizes를 소개한다.

GPT-2 style Decoder라는 연속성은 남으며, dense Attention과 locally banded sparse Attention을 교대로 사용한다. Dense는 이전 token 전체를, local band는 가까운 이전 token을 읽는다. 슬라이드의 strided pattern은 일정 간격의 token을 읽는 sparse pattern을 비교한 그림이며, 그 그림의 모든 pattern을 GPT-3가 동일하게 사용했다는 뜻은 아니다. Model이 커질수록 계산 자원이 중요해지는 흐름은 Lecture 3의 Attention 비용과 연결된다. GPT-2의 단계적 weights 공개와 달리 GPT-3는 weights 대신 API access로 소개된다.

Demonstrations in the Context

Zero-shot은 instruction만, one-shot은 한 demonstration, few-shot은 context에 들어가는 여러 demonstrations를 준다. 강의의 일반적인 범위는 10–100개다. Fine-tuning이라면 examples로 gradient를 계산해 weights를 update하지만, ICL에서는 원래 training pair로 줄 법한 examples를 입력 context에 넣어 이어질 answer를 생성한다.

GPT-3 175B / LAMBADAAccuracy
Zero-shot76.2%
One-shot72.5%
Few-shot86.4%

Few-shot 86.4%는 슬라이드의 prior SOTA 68.0%와 비교된다. 그러나 one-shot이 zero-shot보다 낮은 결과도 있으므로 demonstration 수 증가가 언제나 성능 증가를 보장하지 않는다. TriviaQA few-shot closed-book은 71.2, SuperGLUE few-shot은 71.8이며 fine-tuned SOTA는 89.0이다. 적은 examples를 context로 주어 task를 수행했다는 성과와, 충분한 data로 fine-tuning한 모든 모델을 이겼다는 주장은 다르다.

How Context Can Change the Computation

강의는 ICL을 설명하는 네 연구 관점을 소개한다. 하나를 모든 ICL의 유일한 원인으로 정하기보다, 각 관점이 어느 계산이나 실험을 설명하는지 보는 것이 중요하다.

Learned Update Rules

Synthetic regression 실험에서는 Attention layers의 forward computation이 gradient-descent-like update를 구현할 수 있다. Context의 examples를 읽으면서 예측에 사용하는 내부 계산이 학습 update와 비슷해지는 것이다. 이는 forward 안에서 update rule과 닮은 계산을 한다는 설명이지, inference마다 실제 model parameters에 backpropagation을 적용한다는 뜻은 아니다. 강의는 von Oswald (2023), Dai (2023)를 연결한다.

Bayesian Task Inference

Xie (2021)의 관점에서는 prompt가 latent task에 대한 posterior를 바꾼다. Examples를 보기 전에는 여러 task가 가능하지만, input/output pair를 보고 나면 “지금 수행해야 할 task는 무엇인가”의 가능성이 달라진다. Weights를 바꾸지 않고도 주어진 context에 조건부로 다른 prediction을 만드는 것을 task inference로 해석한다.

Task and Format Inference

Min (2022)의 실험에서는 demonstration의 label을 잘못 주어도 영향이 작고, input distribution·label space·format이 중요한 경우가 나타났다. Examples가 항상 새로운 input→label mapping을 정확히 학습시키는 역할만 하는 것은 아니라는 뜻이다. 어떤 입력을 읽고 어떤 종류의 label과 형식으로 답해야 하는지 알려주는 효과도 구분해야 한다. 이 결과를 모든 model과 task에서 wrong label이 무해하다는 주장으로 일반화하지 않는다.

Circuits and Function Vectors

Induction head는 A B … A ? 같은 pattern에서 앞의 A 뒤에 있던 B를 이어 복사하는 동작과 연결된다. 교수님은 이런 역할을 설계자가 특정 head에 미리 지정하는 것이 아니라, 학습 중 해당 pattern을 구현하는 circuit이 나타난다는 점을 강조했다. Olsson (2022)의 관측은 이러한 circuit과 ICL 성능의 관계를 본다.

Todd (2024)의 function-vector 예에서는 hot→cold, big→small 같은 examples에서 task 관련 vector를 추출하여 개입하고, demonstrations가 없는 fast→?에서도 slow를 출력하는 효과를 본다. 앞의 pattern을 복사하는 설명과 task를 표현하는 내부 vector의 설명은 다른 수준의 관점이다. 각 연구는 해당 model·task·intervention의 결과이며, 여러 mechanism이 함께 작동할 수 있다.

Pre-training · Fine-tuning · In-Context Learning

학습 data를 어디에 사용하고 weights를 언제 바꾸는지 비교하면 세 과정을 혼동하지 않는다.

AspectPre-trainingFine-tuningICL
목표일반 언어 backbone 학습Task / instruction / domain adaptationPrompt context의 task 수행
Weights업데이트업데이트Test time 고정
입력/신호Self-supervised corpus targetsTask labels / text / instructions 등Instructions / demonstrations
대표 흐름BERT MLM / GPT causal LMULMFiT / BERT head / FLANGPT-3 zero/one/few-shot

Fine-tuning을 head-only 학습과 동의어로 쓰지 않는다. 전통적인 full fine-tuning에서는 backbone도 update한다. ICL은 parameter backprop 대신 주어진 prompt 안에서 task를 수행한다.

GPT-1 · GPT-2 · GPT-3

AspectGPT-1GPT-2GPT-3
규모117M1.5B175B
Context51210242048
데이터BooksCorpusWebText 40GB300B sampled tokens
InterfaceTask-specific labeled fine-tuningZero-shot text patternZero/one/few-shot ICL
공통Causal next-token LMCausal next-token LMCausal next-token LM

Scale만이 아니라 fine-tuning → text completion → context의 demonstrations로 task 수행 interface가 바뀌는 흐름을 함께 기억한다.

Check

Fine-tuning과 ICL의 learning은 weights와 context 중 무엇이 변하는가?

Answer

Fine-tuning은 training으로 weights를 업데이트한다. ICL은 test-time weights가 고정된 채 prompt의 지시/예시에 조건화해 계산한다.

ICL의 GD-like updates 해석을 test-time backprop으로 읽으면 왜 틀리는가?

Answer

Attention forward computation이 특정 task에서 update-like 규칙을 표현할 수 있다는 해석이다. 실제 weights의 gradient update를 수행했다는 뜻은 아니다.

One-shot이면 Zero-shot보다 항상 좋은가?

Answer

아니다. LAMBADA 표의 One-shot72.5%가 Zero-shot76.2%보다 낮다. Demo 수뿐 아니라 task/format/quality/평가 조건을 본다.

ICL에서 learning이라는 이름이 test-time backpropagation을 뜻하지 않는 이유는?

Answer

Demonstrations는 training update의 data가 아니라 입력 context로 들어간다. 고정된 weights가 context에 따라 다른 Attention과 states를 계산한다. Forward가 GD-like update를 구현할 수 있다는 연구 해석도 실제 parameters를 gradient로 update한다는 주장과 다르다.

Test-time weight update 없이 instructions/demonstrations를 context로 사용해 task에 적응하는 방식은?

Answer

In-Context Learning (ICL). 실제 fine-tuning과 weights update 여부가 다르다.

Contents