questionet

LLM Trend Note (2) Foundation Model과 Emergent Abilities, Instruction Tuning 그리고 Chain-of-Thought Prompting 본문

Deep learning

LLM Trend Note (2) Foundation Model과 Emergent Abilities, Instruction Tuning 그리고 Chain-of-Thought Prompting

orthanc 2023. 6. 27. 13:34

1. Statistic LM, Neural LM, Pre-trained LM 그리고 LLM

Foundation Model

foundation model 이라는 개념에 대해 들어보셨나요?
통계적 언어모델, 신경망 언어모델을 거쳐 Transfomer 아키텍쳐 등장 이후,
우리는 사전 훈련된 모델을 사용해 downstream task를 수행하는 패러다임을 지나가고 있습니다.
2022년에 발표된 논문 On the Opportunities and Risks of Foundation Models 에서는
지금까지 나온 모든 Pre-trained LM(이하 PLM)들을
foundation model 이라는 개념으로 지칭하며 새로운 패러다임을 제시합니다.

논문의 저자들은 foundation model을 두 가지 특징으로 정의합니다.
하나는 emergence, 다른 하나는 homogenization 입니다.

논문에 따르면, 2019년 이전에 언어 모델을 사용한 self-supervised learning은
본질적으로 NLP의 하위 영역이었으며 NLP의 다른 개발과 병행하여 진행되었습니다.
RNN(LSTM)을 활용한 언어모델링과 seq2seq 아키텍쳐, 그리고 트랜스포머는
성능과 태스크상의 차이로 그 위계가 분류되긴 했었지만
비교적 동등한 수준에서 NLP의 가지를 이루고 있었다는 뜻입니다.

2019년 이후 언어 모델을 사용한 self-supervised learning은
BERT를 사용하는 것이 표준이 되면서 NLP의 기반이 되었습니다.
단일 모델이 이러한 광범위한 작업에 유용할 수 있다는 건 foundation model 패러다임의 시작을 의미합니다.
거의 모든 최첨단 NLP 모델은 이제 BERT, RoBERTa, BART, T5 등과 같은 몇 가지 기본 모델 중 하나에서 채택됩니다.
이것이 foundation model의 homogenization(균질화)가 의미하는 바입니다.

이러한 homogenization는 매우 높은 레버리지를 가집니다.
백본 모델로 쓰이는 몇가지 모델만 개선되면, NLP 전반에 즉각적으로 그 개선에 의한 이점이 퍼지게 되니까요.
반대로 모든 AI 시스템은 몇 가지 기본 모델의 동일한 문제(데이터의 편향 등)을 물려받을 수도 있습니다.

그렇다면 foundation model의 또 다른 특징인 emergence란 무엇일까요?
우리는 이 노트를 통해 emergence란 무엇인지,
그리고 emergence를 둘러싼 다양한 관점과
이를 뒷받침하는 최신 NLP 논문 및 모델들에 대해 살펴볼 것입니다.

foundation model 패러다임은 머신러닝과 딥러닝에서 다루는 모든 종류의 model과 task를 망라합니다.
저희는 NLP를 보다 심도 있게 공부하기 위해 모였으니 LM에 집중해서 이야기를 해야겠죠?

그럼 Emergence로 가기 위한 첫 관문인 LM 그중에서도 LLM에 첫발을 내딛어 보겠습니다.

LLM

일반적으로 논문이나 깃헙에 공개된 레포짓에 나와 있는 모델 설명을 보면
모델 이름 뒤에 small, base, large, XL 등 모델의 크기를 덧붙여 모델 이름을 지은 걸 볼 수가 있습니다.
BERT-Large, XLM-R Base, Flan-T5-XXL 와 같은 식으로 말이죠.
또 어떤 모델들은 m2m100_418M, GPT-NeoX-20B 처럼 구체적인 모델 파라미터 개수를 적기도 합니다.

위 그림은 지난 몇 년간 발표된 주요 모델들의 파라미터 스케일의 변화를 보여주는 그래프입니다.
Transfer learning의 효시라 부를 수 있는 ELMo에서 시작해 매 해마다 LM의 크기는 10배씩 증가했습니다.

"크기"란 상대적인 개념입니다.
2018년에 발표된 BERT의 large모델은 340M (3억 4천만) 개의 파라미터를 가지고 있습니다.
그 당시로선 같은 해 나온 ELMo와 비교한 다면 "Large" language model 이라 부르는 게 타당해보입니다.

2022년 기준 가장 큰 모델은 540B 개의 파라미터를 가진 Google의 PaLM 입니다.
(위 그래프에 top-right에 있는 Megatron-Turing NLG 530B는
NVIDIA에서 발표한 모델로 PaLM에 조금 못 미치는 크기입니다.)
BERT는 PaLM에 비하면 더 이상 large model이라 부를 수 없을 것 같습니다.
단위가 million에서 billion으로 바뀌었으니까요.
따라서 앞으로 (trillion 단위의)더 큰 사이즈의 모델이 나온다고 했을 때, "Large"의 기준단위는 계속 바뀌어 나갈 것 입니다.

그러나 이제부터 우리가 지칭할 Large Language Model (이하 LLM) 에서 Large의 의미는
'크기의 상대적인 개념'에 구속되지 않습니다.

다시 말해, 크기의 절대적인 기준이 있습니다.
수백억에서 수천억개의 파라미터를 가진 Pretrained Language Model (이하 PLM) 을 LLM 이라고 부릅니다.
(물론 이 기준 또한 낮아질 수 있습니다. 아마 그러할 가능성이 매우 농후해보입니다.)

참고로 LLM은 Mixture-of-Expert (MoE) 기법의 사용유무에 따라
dense transformer models 과 sparse mixture-of-expert (MoE) models로 구분할 수 있는데
후자는 전자보다 훈련/추론 계산 시 더 많은 모델 파라미터를 가집니다.
dense transformer models에는 Jurassic-1, gopher, Megatron-Turing NLG 530B, LaMDA 등이 있고,
sparse mixture-of-expert (MoE) models에는 Glam, switch transformers 등이 있습니다.

그렇다면, 수백억 이상의 파라미터 스케일을 가진 PLM을 LLM으로 분류할 때,
이러한 LLM과, 그보다 작은 사이즈의 LM 사이에는 어떤 차이점이 있는 것일까요?

인간의 뇌에는 대략 860억 개에 달하는 뉴런과 100조 개 안팎의 시냅스가 있다고 알려져 있습니다.
PaLM을 위시한 LLM의 파라미터 개수만 놓고 보면, 인간의 뇌에 꽤 근접했다고 말할 수 있습니다.
그런데 인간의 뇌는 언어와 관련된 기능만 수행하지 않죠.

두뇌 용량을 넘어서는 LLM을 만드는 것만이 과연 최선의 방법일까요? 여러분들은 어떻게 생각하시나요?
Model scale과 Performance는 양의 상관관계를 가지고 있을 거라는 가정은 일면 타당해보입니다.
뒤에서 우리는 또 다른 해석이 가능할 수 있다는 관점들을 보게 될 것입니다.

조금 더 구체적으로 살펴보겠습니다.

2. Emergnet abilities를 위한 배경지식

In-context learningEmergent Abilities

일단 LLM으로 분류되는 파라미터 스케일 기준의 배경부터 살펴보겠습니다.
아래 그림은 2019년부터 2023년 초까지 발표된 모델 중 10B 이상의 파라미터를 가진 모델들만 추려놓은 그림입니다.
(이 노트에 언급되는 대부분의 모델들은 이 그림에서 찾아보실 수 있습니다)

이 중에서 우리가 눈여겨 볼 LLM은 2020년에 발표된 GPT-3 입니다.

GPT-3는 175B (1천 750억)개의 파라미터를 트랜스포머 디코더 기반 아키텍쳐에 집어 넣은 LLM 입니다.
흥미롭게도, 파라미터 수가 일정 수준을 초과한 LLM은 BERT와 같은 million 단위의 소규모 LM에 없는 성능을 나타냅니다.
GPT-3를 개발한 OpenAI의 연구자들은 Language Models are Few-Shot Learners논문에서
“in-context learning” 의 일종인 zero-shot, one-shot, few-shot 이라는 개념으로 이 성능을 정의했습니다.

그리고 2년 후 Google Research, Stanford University, UNC Chapel Hill, 그리고 DeepMind의 연구자들은
이 성능이 어디서부터 기인하는 지를 가리켜 Emergent Abilities 라는 개념을 공론화하였습니다. (참고)

그렇습니다.
바로 Emergent abilities가 수백억개를 초과하는 LLM이 가진 특징이자, 바꿔 말해 소규모 LM에서는 발견되지 않는 특징입니다.

Emergent abilities 가 무엇인지 본격적으로 살펴보기 전에 먼저 그 배경이 되는 핵심 개념들을 슬쩍 엿보겠습니다.

3. Instruction Tuning 과 Chain-of-Thought Prompting

instruction tuning

GPT-3 논문에서 소개하고 있는 zero-shot, one-shot, few-shot 은
모델의 inference 단계에서 이뤄지는 작업입니다.
즉, gradient를 계산해 모델 파라미터 업데이트를 함으로써 학습하는 방법이 아니라는 뜻입니다.
zero-shot, one-shot, few-shot을 간단히 설명하면 아래와 같이 요약할 수 있습니다.

> zero-shot : 적절한 instruction이 담긴 지시문을 모델에 던져서 원하는 답변을 이끌어 내는 것입니다.  
> one-shot, few-shot : 단순히 지시문만 주는 게 아니라 구체적인 예제를 던져서 원하는 답변을 이끌어 내는 것입니다.

LLM에 사용되는 위와 같은 추론 방법들은 후에 prompt learning 이라고도 불리게 됩니다.
적절한 instruction 내지 prompt를 주었을 때 더 모델로부터 더 나은 답변을 얻어 낼 수 있게 하는 것이지요.
GPT-3 논문에서 소개된 이 방법들은 이후 instruction tuning, prompt engineering 같은 방법론으로 발전하게 됩니다.

instruction tuning은 앞서 살펴본 그림에서 Google이 발표한 FLAN 논문에 처음 등장합니다.

prompt engineering의 한 방법인 chain-of-thought prompting은 같은 그림에서 역시
Google이 발표한 PaLM 논문에 자세한 설명이 실려 있습니다.

먼저 instruction tuning을 살펴보도록 하겠습니다.

FLAN : Finetuned Language Models Are Zero-Shot Learners

FLAN 논문의 저자들은 zero-shot learning abilities를 개선하는 방법을 제안하는 것이 논문의 목적이라고 말합니다.
이를 위해 연구진들은 LaMDA (이하 람다) 모델을 사용했습니다.
람다는 GPT-3보다 좀 더 작은 137B 사이즈의 디코더 기반 트랜스포머 모델로 instruction tuning을 활용해
GPT-3보다 더 나은 성능의 zero-shot learning abilities를 달성했다고 합니다.

람다에 대한 자세한 설명은 LaMDA: Language Models for Dialog Applications논문을 참고하세요.

instruction tuning의 핵심은 다양한 종류의 NLP task를 instruction과
그에 상응하는 label로 이뤄진 pair dataset으로 fine-tuning한 후
한 번도 보지 못한 task에서 inference를 하여 만족할 만한 성능을 내는 튜닝방법입니다.

예를 들어, commonsense reasoning task의 경우
위 그림에서처럼 instruction 지문에서 질문 내용에 참고가 될 목표를 지시해준 후
상식선에서 추론 가능한 답변을 target으로 주는 dataset을 모델에 fine-tuning 시킵니다.

더 정확히는, 먼저 아래 그림과 같이 기존에 공개된 데이터셋들을 총 12개 카테고리로 분류합니다.

그 다음, 각 데이터셋들을 instruction 형식으로 수정합니다.
구체적으로는 각 데이터셋 마다 10개의 instruction template을 만든 다음,
전체 데이터 셋에서 무작위로 template을 뽑아 fine-tuning을 수행합니다.

기존의 downstream task 별 fine-tuning 과 prompting 그리고 instruction tuning의 차이는 분명해보입니다.
일반적인 fine-tuning은 PLM을 특정 task 수행 능력에 특화시킵니다.
BART처럼 Pre-train 단계에서 여러 가지의 까다로운 pre-training objective 를 풀게 하여
서로 다른 복수의 downstream task에서 월등한 성능을 낸다하더라도
그 성능은 결국 풀고자 하는 특정 downstream task에 fine-tuning한 결과입니다.

prompting도 마찬가지입니다. GPT-3에서 제시한 few-shot은 결국
user가 의도적으로 prompting을 해야만 성능을 이끌어낼 수 있는 방법입니다.

instruction tuning은 서로 다른 종류의 downstream task를 instruction 형태의 데이터셋으로
한번에 fine-tuning하여
user가 prompt engineering을 할 필요 없이,
모델로 하여금 자연스럽게 user의 instruction에 따르는 답변을 내놓도록 하는 학습방법이라는 데 의의가 있습니다.

정리하면, FLAN의 의의는 GPT-3보다 더 작은 모델을 fine-tuning 하여
모델에게 instruction following 능력을 직접적으로 부여했다는 데 있습니다.
더 중요한 건, fine-tuning 때 학습하지 않은 task에 대해서도
user의 instruction에 following하는 능력을 가지게 되었다는 것입니다.

instruction following은 뒤에서 살펴볼 emergent abilities 중 하나에 속합니다.
그렇다면 이 방법이 prompting보다 우월한 방법인 걸까요?

GPT-3는 앞서 말했듯이 175B이라는 어마어마한 크기의 모델입니다.
이런 LLM을 fine-tuning하는 건 비용과 효율면에서 좋은 시도라고 보기 어렵습니다.
FLAN 연구진이 instruction tuning을 하기 위해 사용한 LaMDA가 GPT-3보다 작은 모델이라곤 하지만
137B도 결코 작다고 할 수 없는 큰 사이즈의 LLM 입니다.

우리는 처음에 LLM이 소규모 LM에서 발견되지 않는 우수한 성능의 emergent abilities를 갖고 있다는 전제에서 출발했습니다.
이 말의 의미는 아주 많은 파라미터로 엄청난 양의 데이터를 단순히 auto-regressive 한 방법으로 학습시켰을 때
모델이 어떤 의미에서는 인간이 명시적으로 가르쳐주지 않았음에도
스스로 탁월한 언어이해(NLU)와 언어생성능력(NLG)을 가지게 되었다는 걸 뜻하는 것 같습니다.
마치 사람이 하는 것처럼 생각하는 방법을 터득한 것처럼 말이죠.

우리는 종종 "의식의 흐름" 대로 글을 썼다거나 말을 한다는 표현을 하곤 합니다.
chain of thought, 말 그대로 "생각의 흐름"과 같은 방식으로 prompting 했을 때,
모델이 그 흐름 끝에 나올법한 답변을 내놓는 기술에 관한 이야기를 해보고자 합니다.
바로 chain-of-thought prompting 입니다.

Chain-of-Thought Prompting

앞서 살펴본 instruction tuning은 few-shot learning과 fine-tuning의 하이브리드라고 볼 수도 있습니다.
Google 연구진들은 "chain-of-thought prompting" 이라는 개념을 제안한 PaLM 논문에서
LLM의 규모를 극한으로 몰아붙였을 때, few-shot 능력이 얼마나 상승하게 될지를 실험했습니다.

PaLM논문에서
연구진들은 무려 540B에 달하는 파라미터를 탑재한 디코더 기반 트랜스포머 모델을 사용했습니다.
더불어 소셜 미디어 대화, 필터링된 웹 페이지, 책, Github, 다국어 Wikipedia 및 뉴스에서 가져온
자그마치 780B 개의 토큰을 가지고 pre-train을 했습니다.
('자그마치'라고는 했지만 앞선 노트에서 잠시 언급한 LLaMA는
PaLM의 1/8 수준인 65B 크기의 모델로
PaLM이 학습한 토큰의 두배를 넘는 1.4T 개의 토큰을 학습하여 훨씬 더 좋은 성능을 냈다는 사실을 기억해주세요.)

LM이 풀기 가장 까다로운 문제 중에 하나는 다단계의 추론을 통해 답변을 도출해내야 하는 형식의 문제입니다.
2021년 DeepMind에서 발표한 LLM인 Gopher에서는 단순히 모델 사이즈를 키우는 것만으로
논리적, 수학적 추론이 필요한 문제를 잘 풀어내기가 어렵다고 토로하고 있습니다. 참고

PaLM은 280B 짜리 모델인 Gopher 보다 2배 이상 큰 모델입니다.
Deepmind와 달리 Google의 연구진은 "chain-of-thought" (이하 CoT) 이라는 prompting 기법을 PaLM에 사용하여
Gopher가 어려움을 겪은 Multi-step reasoning에서 좋은 성능을 낼 수 있음을 보여주었습니다.
Multi-step reasoning 문제의 대표적인 예로는
Arithmetic reasoning(산술추론)과 Commonsense reasoning(상식추론) 이 있습니다.

산술추론은 아래 그림의 왼쪽 예제처럼 두 단계 이상의 추론을 거쳐야 풀 수 있는 산술문제를 가리킵니다.
상식추론은 우리가 살고 있는 세계에 대한 일반지식으로 적절히 추론해야 하는 문제를 가리킵니다.
예컨대 "집에 서둘러 가려고 했지만 신호등이 노란색으로 바뀌었다. 어떻게 해야할까?" 라는 질문에
모델은 (a) "기다리십시오" (b) "무단횡단을 하십시오" (c) "바다로 가십시오" 등의 옵션에서
하나를 선택해야 하는 문제를 풀어야 합니다.

이제 chain-of-thought prompting 의 원리는 이렇습니다.

위 그림의 왼쪽에서 볼 수 있듯이, LLM에 일반적인 few-shot learning을 시키면 모델이 잘못된 답을 내곤 합니다.
그러나 모델에게 prompt를 줄 때 문제에 대한 답을 바로 주는 게 아니라
문제를 푸는데 필요한 사고과정을 함께 준 뒤 유사한 문제를 풀게 시키면
놀랍게도 그 문제에 대한 답만 맞추는 게 아니라, 자신이 풀이한 과정까지 답변에 포함시켜 돌려주는 걸 볼 수 있습니다.

chain-of-thought prompting의 의의는, 모델의 추론결과를 토대로 오류분석이 가능해지고,
모델이 왜 그렇게 추론했는지에 대한 해석가능성을 높일 수 있다는 데 있습니다.

PaLM과 같은 LLM에 chain-of-thought prompting을 했을 때
얼마나 놀라운 언어능력이 emergent 되는지 엿볼 수 있는 사례 하나를 논문에서 인용해보겠습니다.
모델에게 농담하나를 들려주고,
그것이 왜 농담으로 해석될 수 있는지에 대한 설명과 함께, 농담으로 해석될 수 있는 문장을 input으로 주었습니다.

> I will explain these jokes:  
> "Always borrow money from a pessimist. They’ll never expect it back."
> 
> Explanation:  
> Most people expect you to pay them back when you borrow money,  
> however a pessimist is someone who always assumes the worst,  
> so if you borrow money from them, they will expect that you won't pay them back anyways.
> 
> Input:  
> I tried 10,000 random restarts of my neural network,  
> but I was accused of overfitting. I guess no good seed goes unpunished.

비관론자에게 돈을 빌리라 말이 왜 농담이 되는지 설명을 보면 선뜻 이해가 갑니다.
그런데 Input이 어떻게 농담이 될 수 있는지 바로 이해가 가시나요?
모델이 출력한 결과를 살펴보겠습니다.

Output: This joke is a pun. A neural network is a computer program that can learn from data.
A "seed" is a number that is used to initialize a random number generator.
A "good seed" is a number that produces a good random number generator.
The phrase "no good deed goes unpunished" means that if you do something good, you will be punished for it.

가히 놀라운 언어 이해 능력입니다.
언어모델을 만들어보신 분들은 LM이 사람의 농담을 이해하고 그 농담에 대한 해석까지 해줄 수 있게 만드는 것이
얼마나 어려운 일인지 아실텐데요, 심지어 저 농담은 신경망 학습과 오버피팅의 의미, 그리고 언어유희까지 이해했을 때야
비로소 농담으로 해석될 수 있는 수준 높은 농담이기 때문입니다.

이밖에도 PaLM은 번역, 요약, 질문답변 등 주요 NLP task에서 이전 모델들을 넘어섰고,
다국어로 해당 task를 수행했을 때도 더 좋은 성능을 냈습니다.
이렇게 강력한 LLM이다보니 PaLM은 윤리적으로 문제가 될 수 있는 문장역시 더 잘 생성해냈고,
연구진들은 이에 대해 추가 연구의 필요성을 언급했습니다.
(이 문제는 step4에서 좀 더 깊이 있게 다뤄보겠습니다)

어떠신가요?

LLM의 instruction following과 multi-step reasoning 능력에 대해 감을 좀 잡으셨나요?
그런데 PaLM의 CoT를 보면서 이런 궁금증이 들지는 않으셨나요?
"PaLM 같은 540B 사이즈 전후의 초거대 모델에서만 CoT가 먹히는 걸까?"
"그보다 훨씬 작은 모델에서 CoT prompting은 불가능한 것일까?"

다음 노트에서 이제 본격적으로 LLM의 emergent abilities 에 대해 알아보면서 위 질문에 답을 찾아보도록 합시다.

Comments