Yongil Kim

Seoul National University

A Survey of Large Language Models (2)

24 Dec 2023 » Transformer, PLM, LLM

[pdf] [github]

Wayne Xin Zhao, Kun Zhou, Junyi Li, Tianyi Tang, Xiaolei Wang, Yupeng Hou, Yingqian Min, Beichen Zhang, Junjie Zhang, Zican Dong, Yifan Du, Chen Yang, Yushuo Chen, Zhipeng Chen, Jinhao Jiang, Ruiyang Ren, Yifan Li, Xinyu Tang, Zikang Liu, Peiyu Liu, Jian-Yun Nie and Ji-Rong Wen

A Survey of Large Language Models (1) 에 이어서…

4. Pre-training

LLM 을 pretrain 하는데는 효율적인 알고리즘, model architecture, optimization technique 등이 모두 중요하다. 이번 섹션에서는 LLM 을 pretrain 하기 위한 세 가지 요소인 (1) data collection, (2) model architecture, (3) training technique 를 각각 살펴본다.

4.1. Data Collection and Preparation

LLM 을 학습하기 위해 높은 퀄리티의 dataset 을 확보하는 것은 매우 중요하다. 이번 section 에서는 data source, preprocessing methods, 그리고 pre-training data 가 LLM 에 미치는 영향 의 세 가지 측면을 살펴본다.

(1) Data Source

image

대부분의 LLM 은 위에 보이는 그림처럼 여러 data source 의 mixture 를 pretraining dataset 으로 활용한다. Dataset 들은 크게 두 가지로 나눌 수 있는데, 하나는 general text data, 다른 하나는 specialized text data 이다. General data 는 대부분의 LLM 에서 활용하는 dataset 으로 webpage, books, converational text 등이 속하며, 크기가 크고 (large) 다양하며 (diverse), 접근이 용이하기 때문에, generalization ability 를 높이기 위해 필요하다. Specialized data 에는 multilingual data, scientific data, code 와 같은 특정한 task-solving capability 를 부여하기 위해 사용된다.

※ 각 dataset 에 대한 자세한 설명은 논문 참조.

(2) Data Preprocessing

image

Pre-training corpus 를 준비한 이후에는 noisy, redundant, irrelevant, toxic data 를 제거하는 전처리가 필수적이다. 최근 Data-Juicer 라는 여러 전처리 방법을 담고 있는전처리 tool 이 release 되었다. 일반적인 전처리 pipeline 은 위의 그림과 같다.

  • Quality Filtering

Quality filtering 에는 일반적으로, classifier-based 방법과 heuristic-based 방법이 있는데, 기존에 많이 사용하던 classifier-based 방법은 방언이나 구어체 등을 제거할 확률이 높아 bias 를 높이는 경향이 있다. 따라서 최근 BLOOM 이나 GOPHER 등에서는 heuristic 방법을 쓰는데, 그 종류에는 Language based filtering, Metric based filtering, Statistic based filtering, Kyeowrd based Filtering 등이 있다.

  • De-duplication

최근 한 연구에서, 문장이 반복되는 duplication 문제가 training 을 unstable 하게 만들고 성능을 떨어뜨린다는 주장을 하였다. 이에 repeated word 를 가지는 low quality 문장을 제거하고 (sentence-level), n-gram 등을 기반으로 너무 많이 겹치는 documnet 를 제거하며 (document-level), dataset contimination 문제 해결을 위해 training set 과 eval set 의 overlap 을 해결한다 (set-level).

  • Privacy Reduction

흔히, PII 라고 부르는 personally identifiable information 를 pretraining corpus 에서 제거해야 한다. 한 가지 방법으로는 rule-based 로 name, address, phone number 등을 지우는 것이다.

  • Tokenization

이제 Tokenization 을 진행하면 된다. 최근에는 subword-level 기반의 tokenization 이 주로 사용되고, byte pair encoding (BPE), Wordpiece tokenization, unigram tokenization 등이 사용된다. BPE 는 multilingual setting 에서 장점을 보이며, GPT-2, BART, LLaMA 등에서 사용한다. Wordpiece 는 Google 의 subword tokenization 알고리즘으로, 처음에는 voice search system 을 위해 고안되었으나, 이후 MT 모델, 그리고 BERT 에서 사용되었다. Wordpiece 는 BPE 와 기본적으로 유사한 방법이지만, merge 하는 방법에서 조금의 차이점을 보인다. 마지막으로 Unigram tokenization 은 EM 알고리즘의 일종으로, old LM 을 활용하여 큰 vocab 에서 하나씩 제거해 나가며 dictionary 를 완성한 후, 다시 re-estimate 하여 vocab 을 만들고를 반복한다. T5, mBART 등에서 사용되었다.

OPT 와 GPT-3 가 GPT-2 tokenizer 를 사용한 것처럼, 기존에 있는 tokenizer 를 사용하는 것도 좋은 방법 중에 하나이지만, 모델이 학습하는 pre-training corpus 에 맞춰 specially designed tokenization 기법을 적용하는 것은 큰 도움이 된다. 따라서, 최근에는 BPE 와 unigram 기법을 합친 Sentence Piece library 를 활용하는 등 customized tokenizer 를 활용하는 경향성이 높다. 단, transfer learning 을 할 때 이러한 customized tokenizer 는 조심해야한다. LLaMA 의 경우, pretraining 시에 BPE 를 활용하기 때문에, non-english dataset 에 대해서는 fine-tuning 에 어려움이 있을 수 있다.

(3) Data Scheduling

image

Data scheduling 에는 두 가지가 중요하다 : data mixture, data curriculum.

  • Data mixutre

Data 를 섞을 때는 proportion 이 중요하다. 보통 upsampling, downampling 기법등을 이용한다. 최근 여러 연구에서 하나의 domain 의 data 를 너무 많이 배우는 것은 좋지 못한 성능을 낸다는 것을 검증하였다. 또, 몇몇의 연구에서는 heuristic 하게 proportion 을 결정하지 않고, model 을 활용하여 optimize 하는 방법을 제안하였다. 간단한 예로, downstream task 에 맞춰 그 task 에 맞는 pretraining corpus 의 비율을 증가시키는 것들이 있으나, 실용적이지는 못하다.

  • Data curriculum

Basic skill 을 배운 이후 traget skill 을 배우는 것이 효과적이라는 것이 몇몇 연구([1],[2])에서 검증되었다. 이에 따라 dataset 을 pretraining 할 때, 어떠한 것을 먼저 배울지 그 curriculum 을 정하는 것도 중요하다. 보통 target skill 은 coding, Mathematics, Long context modeling 세 가지에 대해 curriculum 을 많이 적용한다.

4.2. Architecture

이 섹션에서는 LLM 의 아키텍쳐 디자인 : mainstream architecture, pre-training objective, detail configuration 등을 살펴본다.

(1) Typical Architectures

image

LLM 의 backbone 은 Transformer 가 de-facto architecture 이다. 보통 크게 세 가지 major type 으로 나눈다 : encoder-decoder 구조, causal decoder 구조, prefix decoder 구조.

  • Encdoer-decoder Architecture : T5, BART 등
  • Causal Decoder Architecture : GPT-Series, OPT, BLOOM, Gopher 등 대부분의 LLM 들
  • Prefix Decoder Architecture : U-PaLM, GLM-130B 등

(2) Detailed Configuration

image

대부분 LLM 의 기반인 Transformer 의 네 가지 configuration 인 (1)Normalization method, (2) Normalization position, (3)Activation Functions, (4) Position embeddings 를 다룬다.

추가적으로, Attention mechanism 에 대해서는 (1) Full attention, (2) Sparse attention, (3) Multi-query/grouped-query attention, (4) FlahsAttention, (5) PagedAttention 등을 다룬다.

※ 각 configuration 및 method 에 대한 자세한 설명은 논문 참조.

(3) Pre-training Tasks
LLM 은 대부분 Langague ModelingDenoising Autoencoding 을 학습한다. ※ 관련 내용은 너무 유명하므로 생략, 논문 참조.

(4) Long Context Modeling
최근 PDF proecssing 이나 story writing 과 같은 long context modeling capacity 를 increasing 하기 위한 요구가 많다. GPT-4 는 128K context window 를 지원하고, Claude 2.1 (Anthropic 社) 은 200K context window 를 활용한다. Long context modeling 능력을 위해서는 대표적으로 두 가지 기법이 활용된다.

  • Scaling Position Embeddings

T5 Bias, ALiBi, xPos, NoPE 같은 position embedding 기법들 대부분이 maximum training length 안에서의 학습만으로 충분한 generalization 효과를 본다. 이를 extrapolation capability 라고 하는데, mainstream position embedding 중 하나인 Rotary Position Embedding (RoPE) 의 경우, 이 extrapolation capa 가 없다. 이에 아래 방법들을 통해 RoPE 를 longer text 에 scale 할 수 있다.

1) Direct model fine-tuning : LLM 을 단순하게 더 긴 text 에 fine-tuning 하는 방법이다. 보통 multi-stage approach (e.g. 2K->8K-> 32K) 를 활용한다. 매우 느리다는 단점이 있다.

2) Position interpolation : Long context 의 position index 들을 downcale 하여, original context window 크기로 맞추는 방법이다. 단순히 position index 들에 L/L’ (original context length L, target context lenth L’) 을 곱해주는데, 실험 결과 효과적으로, 그리고 효율적으로 Long context 로 extend 할 수 있지만, 짧은 텍스트에 오히려 adverse impact 가 있다.

3) Position truncation : out-of-distribution rotation angle 문제를 해결하기 위해, long context 의 longer relative position 을 truncate 해버리는 방법이다. ReRoPE 나 LeakyReRoPe 에서는 pre-difeined window length 를 정의한 후, window 안은 유지한채 그 바깥은 truncate 하거나 maximum context length 로 interpolate 하는 방법을 소개한다. 이 방법으로 local position relationships 을 유지하면서 extrapolation capacity 를 얻는 것을 확인한다. 단점은, attention matrix 를 두 번 계산하기 때문에, 추가적인 cost 가 든다.

4) Base modification : 이미 고정된 maximum training length (e.g. 4096 in LLaMA2) 에서, basis angle 인 $\theta$ 를 줄이면 longer text 처리가 가능하다.

  • Adapting Context Windows

LLM 이 학습 과정에서 고정된 context window 를 갖고 있기 때문에, long sequence 처리가 힘들다. 이 한계점을 극복하기 위해, 아래의 방법들이 고안되었다.

1) Parallel context window : Fusion-in-Decoder (FID) 와 같이, divdied-and-conquer 기술을 활용하여 input text 를 처리한다. 그러나 이러한 방법은 different segment 들을 구별할 수 없기 때문에, 성능에 제한이 있다.

2) Λ-shaped context window : 최근 연구들에서 LLM 은 attention weight 을 시작과 끝에 더 크게 allocate 하는 “lost in the middle” 현상을 보인다. 이 발견에 따라, LM-Infinite, StreamingLLM 등은 “Λ-shaped” attention mask 방법을 적용하여, scope 를 정한 후 그 바깥의 token 은 버린다. 이 방법은 long context 에의 확장성은 좋지만, long-range dependency 를 모델링 하는데 어려움이 있고 성능이 좋지 못하다.

3) External memory : Transformer 의 attention pattern 의 대부분이 small subset of token 에서 capture 된다는 발견을 바탕으로, past key 들을 external memory 에 넣은 후, k-NN search 를 통 k 개의 most relevant token 을 찾아 generation 에 활용한다.

(5) Decoding Strategy
LLM 이 학습된 이후에는 효과적인 generation 을 위한 decoding strategy 을 잘 선택해야할 필요가 있다. Greedy search, Beam search (+Length Penalty), Random Sampling, Top-k sampling, Top-p sampling (neclues sampling) 기법 등이 존재한다. 또한, LLM 의 decoding 방식은 memory wall 등의 문제로 효율적이지 못한데, 이를 해결하기 위해, Fast-Decoding 등이 고안되었다.

4.3 Model Training

LLM 을 학습하기 위한 중요한 setting 과 trick 들을 알아본다.

(1) Optimization Setting

  • Batch Training

Training stability 와 throughput 을 위해 batch size 는 어느 정도 크게 가져간다. (2,048 examples or 4M tokens) GPT-3 와 PaLM 에서는 dynamic 하게 batch size 를 키우는 새로운 기법을 소개한다. GPT-3 의 경우 32K token 부터 시작하여 3.2M 까지 증가한다. 이러한 dynamic schedule 이 LLM 학습에 안정성을 부여한다는 Empirical result 가 존재한다.

  • Optimizer

Adam 과 AdamW 가 LLM 학습에 많이 사용된다. Hyper-parameter 로는 $\beta_1=0.9, \beta_2=0.95, \epsilon=10^{-8}$ 를 사용한다. T5 와 PaLM 에서는 Adafactor 가 사용되었다.

  • Stabilizing the Trainig

LLM 학습시에 mode collapse 와 같은 training instability issue 가 발생하기 쉽다. 기존에 이러한 학습 안정성을 위해 gradient clipping 이나 weight decay 등이 제안되었지만, LLM 에서는 여전히 training loss spike 가 튀는 경우가 빈번하다. 이러한 학습을 위해서 PaLM 과 OPT 의 경우, spike 가 튀기 직전의 checkpoint 에서 restart 하는 나이브한 방법을 택하며, 문제가 되는 data 는 skip 한다. GLM 의 경우, spike 를 발생시키는 abnormal gradient 를 shirnk 한다.

(2) Scalable Training Techniques

LLM 학습 시에 두 가지 큰 issue 가 있다: 하나는 training throughput 이 너무 크다는 것이고, 다른 하나는 GPU memory 에 loading 할 때 모델이 크다는 것이다. 이를 해결하기 위한 기법들을 소개한다.

  • 3D parallelism

3D parallelism 은 흔히 사용되는 세 가지 병렬 처리 방식인 data parallelism, pipeline parallelism, tensor parallelism 을 모두 사용하는 것이다. Data parallelism 은 흔히 쓰이는 방식이므로 생략하고, pipeline 의 경우 consecutive layer 를 GPU 에 분산 배치하여 학습시키는 것이다. 이 때, GPU 가 다른 GPU 의 연산을 기다려야 하는 bubbles overhead 문제가 발생하는데, 이를 해결 하기 위해, GPipe 나 PipeDream 등의 기법이 개발되었다. Tensor parallelism 의 경우, matrix tensor 를 submatrix 로 split 하여 다른 GPU 에 올리는 것이다. Megatron-LM 등의 오픈 소스에서도 쓸 수 있다.

위의 기법들을 practice 에 적용할 때는 jointly 적용이 된다. 예를 들어, BLOOM 의 경우 384 개의 A100 이 사용되었으며, 8-way data parallelism, 4-way tensor parallelism, 12-way pipeline parallelism 이 사용되었다.

  • ZeRO

DeepSpeed library 에 존재하는 ZeRO 기법은 data parallelism 시 모든 data 를 모든 GPU 가 다 갖고 있지 않고, 일부만 가지고 있다가 필요시에 retrieve 하는 방식이다. Pytorch 에서는 ZeRO 와 유사한 기법으로 FSDP 가 구현되어있다.

  • Mixed Precision Training

32-bit float 연산을 16-bit (FP16), 더 나아가 8-bit (FP8) 로 줄인다. 그러나 일반적인 방법은 성능 저하를 불러 올 수 있기 때문에, 최근에는 Brain Floating Point (BF16) 이라는 것이 개발되었고, FP16 에 비해 더 많은 exponent bits 를 할당하여 FP16 보다 좋은 성능을 보였다.

5. ADAPTATION OF LLMS

Pre-training 만으로도 LLM 은 굉장한 퍼포먼스를 보이고, 높은 일반화 성능을 보여준다. 그러나, LLM 의 능력은 specific goal 을 달성하기 위해 충분히 adapted 될 수 있다. 보통 이러한 과정은 human values or preferences 와 align 하고자 함이다. 크게 두 가지 (1) Instruction Tuning 과 (2) Alignment Tuning 을 살펴볼 예정이고, 추가적으로 Param 관점과 Memory 관점에서 효율적인 Adaptation 방법을 소개한다.

5.1. Instruction Tuning

Instruction Tuning 은 자연어의 형태로 formatted 된 instance 의 collection 으로 LLM 을 fine-tuning 하는 방법이다. 기존의 SFT(Supervised Fine-tuning)나 multi-task prompt training 과 연관이 깊다. Instrution tuning 을 통해 unseen task 로의 generalization 성능이 비약적으로 증가하며, multilingual setting 에서도 효과적이다. 최근 한 연구 에서 instruction tuning 의 systemtic overview 를 한 것이 있으니 관심있으면 살펴보길 바란다.

5.1.1. Formatted Instance Construction

Instruction tuning 을 위해서는 Instruction-formatted instance 을 모아야 한다. Instruction-formatted instance 는 Instruction 이라고 불리는 task decription, optional input, corresponding output 등으로 이뤄진다. 앞의 소개글 에서의 Section 3.3 에서 Instruction tuning 을 위한 instance resource 들을 볼 수 있다. 여기서는 세 가지 formatted instance 를 구성하는 방법론을 다룬다.

image

(1) Formatting NLP Task Datasets
첫 번째는 text summarization, text classification, translation 등의 다양한 NLP task 에서 모으는 Dataset 이다. 이렇게 모인 dataset 들은, (보통 human-written인) 자연어 task decription 과 함께 multi-task training 으로 학습된다. 위의 그림의 (a)에서 human-written instruction 인 “Please answer this question” 과 함께 QA task 를 푸는 것을 볼 수 있다.

이 때 instruction (task decription)이 fine-tuning 에서 매우 중요한 역할을 한다. 같은 task 를 학습하더라도, instruction 이 없이 학습할 경우, generalization 성능이 매우 떨어진다(dramatic drop). Instruction 을 잘 생성하기 위해, PrompotSource 같은 크라우드소싱 플랫폼도 제안되고 있다.

(2) Formatting Daily Chat Data
NLP training instance 가 풍부함에도 real-world scenario 에는 mismatch 하는 경향이 있다. 이를 해결하기 위해 InstructGPT 의 경우, OpenAI API 를 활용하는 user 의 query 를 활용하여, 이 query 에 대한 answer 를 인간이 직접 쓰게 하여 instance 를 만들었다. 이렇게 collected user query - human written answer pair 를 하나의 instance 로 하여 학습데이터셋으로 활용한다.

(3) Formatting Synthetic Data.
LLM 을 활용하여 생성한 synthetic data 를 instruction tuning dataset 으로 활용하기도 한다. 이러한 Self-instruct method 는 보통 175개 정도의 instance 를 initial 로 하여 수많은 데이터셋을 만들어 낼 수 있다. 여기서 중요한 것은 quality 와 diversity 를 위한 filtering 과정이다. Machine 이 generate 하는 dataset 이기 때문에 무엇보다 이 filtering 과정이 필수불가결 하다.

하지만, Self-Instruct method 는 여전히 simplistic or lacking the diversity 의 문제점이 존재한다. 이를 해결하기 위해, WizardLM 의 경우, in-depth, in-breadth evloving 방법을 통해 diversity 를 증가시키는 방법을 제안하였으며, Self-Align 의 경우, multiple human-aligned principle 을 filtering criteria 로 활용하는 방법을 제안하였다.

5.1.2. Instruction Tuning Strategies

Instruction tuning 은 pre-training 과 비교하면 훨씬 효율적으로 학습될 수 있다. 언뜻보면 supervised setting 이라는 점에서, pre-training startegy 와 큰 차이가 없을 것 같지만, instruction tuning 은 보통 sentence-to-sentecne loss 를 활용하고 (pre-training 은 LM loss/classification loss), smaller batch size 와 smaller learning rate 를 갖는다. 이 외에도 다음의 네 가지 중요한 특징이 있다.

(1) Balancing the Data Distribution
Instruction tuning 은 보통 multi-task 로 학습하기 때문에, 여러 task 의 proportion 을 맞추는 것이 매우 중요하다. 가장 많이 사용되는 방법 중 하나는 examples-proportional mixing strategy 라는 방법으로, 모든 데이터셋을 combine 한 후, equally sampling 하는 것이다. 추가적으로, FLAN 이나 P3 같은 high-quality collection 의 sampling 비율을 높이는 방법 또한 고려될만 하다. 이런 경우, maximum cap 을 도입하여, 너무 많은 sampling 비율을 가져가지 않게 조절하는 것이 좋다.

(2) Combining Instruction Tuning and Pre-Training
Instruction tuning 의 학습 안정성을 위해, OPT-IML 의 경우, pre-training dataset 을 instruction tuning 중에도 함께 사용한다. 이는 model tuning 과정에서의 regularization 역할을 할 수 있다. 이러한 관점에서 몇몇의 연구에서는 pre-training 과 instruction-tuning 의 경계를 나누지 않고, pre-training 을 한 이후, mixture of pre-training and insturction tuning dataset 을 학습하는 것이 좋다고 주장한다. GLM-130B, Galactica 등에서 역시 이러한 방법으로 좋은 instruction tuning 결과를 얻었다.

(3) Multi-stage Instruction Tuning
NLP instruction instance dataset 이 daily chat dataset 보다 훨씬 수가 많다. Carefully 두 종류의 데이터셋들을 mixing 하는 것도 중요하지만, multi-stage instruction tuning strategy 를 고려할 수 있다. 먼저, 크기가 큰 NLP instruction instance dataset 들을 학습한 이후, daily chat dataset 을 학습하는 것이다. Capacity forgetting issue 방지를 위해, second stage 에 NLP instance 를 같이 배우는 것도 좋은 방법 중 하나이다.

(4) Efficient training for multi-turn chat data
Multi-turn chat 을 한 번에 배우는 것보다, multiple QA pair 로 쪼개서 학습하는 것이 효과적일 수 있다. Vicuna 의 경우, whole conversation 을 LLM 에 학습시키지만, loss mask 를 도입하여 chatbot 의 response 에만 loss 를 계산하도록 하였다. 이 방법은 compute cost 를 significantly 줄일 수 있다.

5.1.3. The Effect of Instruction Tuning

Instruction tuning 의 효과는 크게 세 가지가 있다. (1) Performance Improvement
Instruction tuning 을 진행한 smaller model 이 그렇지 않은 larger model 보다 훨씬 성능이 좋다. Pre-training 보다 훨씬 값싸게 그 이상의 효과를 볼 수 있는 것이다.

(2) Task Generalization
Instruction tuning 은 Pre-training 보다 unseen task 에 대한 generalization 성능이 뛰어나다 (애초에 이것을 위해서 instruction tuning 을 진행한다). 또한, repetitive generation or complementing the input without accomplishing a certain task 같은 LLM 의 고질병을 경감시키는 효과도 있다. 특히나 multi-lingual setting 으로의 확장은 instruction tuning 이 매우 필수적이다.

(3) Domain Specialization
Medicine, Law, finance 같은 전문가 domain 의 영역에서는 pre-training dataset 만으로는 매우 성능이 빈약하다. Pre-training dataset 들이 대부분 NLP 전반적인 내용을 다루고 있기 때문에, 이러한 domain-specific dataset 을 학습하는 것이 필요한데, instruction tuning 을 통해서 진행할 수 있다.

5.1.4. Empirical Analysis for Instruction Tuning

위에서 말한 것들을 실험적으로 검증을 해 본다.

(1) Instruction Dataset
Instruction dataset 으로는 앞서 말한 세 종류에 대해, Task-specific instruction 은 FLAN-T5 datset 을, Daily chat instruction 은 ShareGPT dataset 을, _Synthetic instruction_은 Self-Instruct 52K 를 활용하며, 이 중 FLAN-T5 의 크기는 매우 크므로 80,000개 sample 로 제한한다.

(2) Improvement strategies
Human written instruction 을 확보하는 것이 매우 좋지만, large scale 로 얻는 것은 어렵기 때문에, LLM 을 활용하여 insruction 을 synthetic 하게 얻을 수 있다. 그러나 이러한 방법은 too simple 하거나 too difficult 하여 좋지 않은 경우가 많다. 다음의 네 가지 방법은 실험에서 사용한, synthetic insturction 의 quality 를 증가시키는 방법들이다.

  • Enhancing the instruction complextiy : Wizard-LM처럼 서서히 complexity level 을 증가시키는 방법

  • Increasing the topic diversity : instruction 속의 topic diversity 를 증가시키는 방법 ; synthetic instance 의 경우 ChatGPT 를 활용하여 rewrite 한다.

  • Scaling the instruction number

  • Balancing the instruction difficulty : LLAMA-7B Perplexity score 를 기반으로 difficulty 를 측정하여 balancing 한다.

(3) Results and ANalysis

image

각각 LLaMA 7B 와 13B에 대해 위의 Row 는 mixing instruction dataset 의 효과, 그리고 아래는 improvement strategy 의 효과를 볼 수 있다. 결과를 자세히 분석하면 아래의 분석들을 얻을 수 있다.

  • Task-formatted instructions are more proper for the QA setting, but may not be useful for the chat setting.
  • A mixture of different kinds of instructions are helpful to improve the comprehensive abilities of LLMs.
  • Enhancing the complexity and diversity of instructions leads to an improved model performance.
  • Simply increasing the number of instructions may not be that useful, and balancing the difficulty is not always helpful.
  • A larger model scale leads to a better instruction following performance

5.1.5. Instruction Tuning Suggestions

image

LLM 의 instruction tuning 을 위한 기본제원은 위의 표에서 확인할 수 있다. 또한, LLM 을 처음 instruction tuning 한다면, Alpaca repository 의 code 를 follow 하는 것을 추천한다. Computational resource 가 갖춰져 있따면, LoRA 를 활용하여 parameter-effieicent tuning 을 할 수 있다.

5.2. Alignment Tuning

5.2.1. Background and Criteria for Alignment

(1) background
LLM 은 넓은 영역에 걸쳐 매우 좋은 성능을 보여주지만, 여러 가지 side effect 를 보인다: 잘못된 정보 생성(Hallucination; fabricating false information), and 잘못되거나 bias 되 표현 생성(producing harmful, misleading, and biased expressions) LLM 의 학습은 Language Modeling 인 Next word prediction 으로 학습되기 때문에, human values 나 human preference 를 반영하기 어렵다. 이를 위해 Alignment tuning 을 진행하는데, pre-training 이나 instruction tuning 과 다르게, 다양한 criteria 를 고려해야 한다(e.g. helpfulness, honesty and harmlessness).

(2) Alignment Criteria
Alignment Tuning 을 위한 다양한 Criteria 가 있을 수 있지만, 이 논문에서는 앞서 소개한 (instructGPT 에서 활용한) 3H value 인 Helpfulness, Honesty, Harmlessness 에 대해서 소개한다.

  • Helpfulness

Helpfulness 는 user 의 intent 에 맞게, task 를 solving 하는데 있어서 further clarification 을 제공할 수 있는지의 여부를 의미한다. 하지만 helpful behavior 에 대한 정의가 어렵기 때문에, 달성하기 어려운 criteria 중 하나이다.

  • Honesty

Uncertainty 가 높을 경우, 이상한 대답을 하지말고 모른다고 대답을 해야하는 경우이다(“know unknowns”). 한 연구에 따르면, 나머지 두 criteria 에 비해 비교적으로 henosty 가 더 objective 한 criterion 으로, human efforts 에 덜 의존적으로 학습될 수 있다.

  • Harmalessnes

Model 이 offensive 한 문장을 생성하지 않도록 하는 criterion 이다. Model 이 dangerous action 을 요구 받는다면, LLM 은 반드시 정중히 거절할 수 있어야 한다(politely refuse).

이 criteria 들은 모두 주관적이고, 따라서 optimization objective 를 formulation 하는 것이 어렵다. 가장 많이 사용되는 방법은 red teaming 으로, manual 혹은 automated 방법으로 adversary 하게 LLM 을 공격하여 그러한 output 들을 방지하도록 update 시키는 방법이 있다.

5.2.2. Collecting Human Feedback

위에서 봤듯이 Human values 에 대한 criteria 가 주관적이기 때문에, High-quality human feedback 을 필요로 한다.

(1) Human Labeler Selection
좋은 Feedback 을 위해 좋은 Labeler 를 구하는 것은 매우 중요하다. 따라서 보통 영어에 매우 능통하고, 교육의 수준이 높은 human labeler 를 구한다. 예를 들어, Sparrow 의 경우, 영국 영어를 잘 구사하며 대학 이상의 학력을 가진 labeler 를 활용하였다.

그럼에도 불구하고, LLM 개발자들과 human labeler 사이의 mismatch 가 LLM 이 unexpected output 을 생상하여 low-quality human feedback 으로 이어지는 경우가 빈번하다. 이를 위해, InstructGPT 의 경우, human labeler 와 researcher 사이의 agreement 를 통해 filtering 과정을 진행한다. Researcher 가 조금의 양의 label 을 먼저하고, 이후 human labeler 와 agreement 를 측정한다.

(2) Human Feedback Collection
Human Feedback 을 모으는 경로는 크게 아래의 세 가지 방법이 있다.

  • Ranking-based approach

이전 연구에서들에서,human labeler 가 model-generated output 을 평가할 때 fine-grained alginment criteria 를 고려하지 않았다. 그러나 다양한 labeler 들은 가장 적합한 candidate 의 선택에 대해 다양한 의견을 가질 수 있으며, 기존의 방법은 선택되지 않은 sample 을 무시하기 때문에 부정확하거나 불완전한 human feedback 으로 이어질 수 있다. 이 문제를 해결하기 위해 후속 연구들에서는 _Elo 평점 시스템_을 도입하여 후보 결과물을 비교함으로써 선호도 ranking 을 도출한다. 이 Ranking 은 모델이, 다른 것보다 더 선호하도록 이끄는 training signal 로 작용하여 더 신뢰할 수 있고 안전한 결과물을 유도한다.

  • Question-based apprach

LLM researcher 들의 question 에 대한 labeler 의 대답으로 human feedback 을 colleciton 할 수 있다.

  • Rule-based approach

많은 연구에서는 더 자세한 human feedback 을 제공하기 위해 Rule-based 방법을 사용한다. Sparrow 는 labeler 가 가장 좋다고 생각하는 응답을 선택하는 것뿐만 아니라 human alignment를 확인하기 위해 일련의 rule 을 사용한다. 이렇게 하면 두 종류의 human feedback 데이터를 얻을 수 있다: (1)response preference feedback 은 output 의 quality 을 짝지어 비교함으로써 얻어지며, (2) rule violation feeback 은 labeler 의 평가를 수집하여 생성된 output 이 rule 을 얼마나 위반했는지를 나타내는 점수를 얻을 수 있다.

5.2.3. Reinforcement Learning from Human Feedback (RLHF)

이러한 human feedback 을 학습하기 위해서는 강화 학습 (RL : Reinforcement Learning) 이 사용된다. 대표적인 알고리즘은 Proximal Policy Optimization (PPO) 알고리즘이다.

(1) RLHF System
RLHF 는 주로 세가지 요소로 구성된다: pre-trained LM to be aligned, reward model learning form human feedback, RL algorithm.

우선, Pre-trained LM 은 보통 generative model 이며, GPT-3 를 통해 InstructGPT (175B) 를 만들고, Gopher 를 통해 GopherCite model (280B)을 만든다. 두 번째 reward model 은 LM 이 생성한 text 에 대한 human preference 를 반영한 signal 이다. 보통 align 되는 LM 보다 훨씬 적은 parameter 의 모델을 사용한다. GPT-3 의 경우 6B 모델을 reward model 을, Gopher 의 경우 7B 모델을 사용한다. 마지막으로 RL algorithm 은 거의 Proximal Policy Optimization (PPO) 알고리즘을 사용한다.

(2) Key Steps for RLHF
image

RLHF 는 세 가지 step 으로 이뤄진다. 위의 그림에 세 가지 step 이 나와있다.

  • Supervised fine-tuning

LM 이 기대되는 행동(desired behavior)를 할 수 있게끔, 우선 fine-tuning 을 시킨다. 이 때 input 은 instruction(prompt) 과 함께 주어지며, desired output 이 output 으로 주어진다. 이 input-output 은 human labeler 에 의해 작성되며, task 의 다양성을 보장하는게 보편적이다. 예를들어, InstructGPT 는 “List five ideas for how to regain enthusiasm for my career” 를 input 으로 하여, “Open QA, brainstorming, chatting, and rewriting.” 등을 output 으로 하여 학습하였다.

  • Reward model training

두 번째 step 은 Human feedback data 를 활용하여 Reward Model 를 학습시키는 것이다. 우선 여러 prompt 에 대해 LM 이 output 을 생성하게한 후, human labeler 가 input-output pair 에 대해, human preference 를 ranking 으로 매긴다. 이후 reward model 이 ranking 을 맞추게끔 학습이 진행된다. 최근 한 연구 에서는 AI feedback 으로 Reward model 을 학습하는 RLAIF 를 제안하기도 하였다. Human feedback 이 harmless 를 줄이는 대신 helfpulness 를 덜 줄이는 evasion problem 문제가 발생하는 반면, AI feedback 은 그러한 문제가 덜하다.

  • RL fine-tuning

마지막으로, LM 과 reward model 을 활용하여 RL 알고리즘 (PPO) 를 통해 RL fine-tuning 을 진행한다. Pre-trained LM 이 policy 로, vocab 이 action space, 현재까지 생성된 token sequence 가 state 가 되며, reward model 에 의해 reward 를 부여 받는다.

(3) Practical Strategies for RLHF
Alignment tuning 에 있어, RLHF 가 promising 하지만 실제 구현은 쉽지 않다. 이 절에서는 RLHF 구현을 위한 practical 한 trick 들을 소개한다.

  • Effective reward model training

InstructGPT 가 6B 의 작은 모델을 reward model 로 사용하였지만, 후속 연구들에서 reward model 을 LLM 과 같은 크기 혹은 이상의 크기로 할 경우, alignment tuning 의 효과가 더 좋음을 검증하였다. 예를 들어, LLaMa2 의 경우, pretrained model checkpoint 가 reward model 의 initialization 으로 사용되었다. 이렇게 할 경우, reward model 과 LM 이 같은 pre-training knowledge 를 공유하기 때문에, information mismatch 를 줄일 수 있다고 한다. 그러나 큰 크기의 reward model 은 overfitting 의 염려가 있으므로, reward model 학습 시 input-output pair ranking 에 더해, 추가적으로 LM loss 까지 구성하여 regularizer 로 활용한다. 그리고 single reward model 에서 세 개(혹은 그이상)의 alignment criteria 를 다 만족시키기는 어려울 수 있기 때문에, 각각 criteria 에 상응하는 multiple reward model 을 학습시키는 것도 하나의 좋은 방법이다.

  • Effective RL training

RL 학습이 매우 불안정하기 때문에, RL 학습 전에 supervised finetuing 이 잘 되는 것이 매우 중요하다. 하나의 방법은 RL convergence 전에 LLM 이 prompt 의 best output (best-of-N) 을 생성하게 finetuning 하는 것이다. Given prompt 에 대해, LLM 이 sampling 기법을 통해 N 개의 output 을 생성하면, 이 중에서 reward model 이 best candidate 을 고르는 것이다.

5.2.4. Alignment without RLHF

RLHF 가 alignment tuning 에서 좋은 모습을 보이지만, limitation 들도 있다. 우선, RLHF 는 aligned 되기 위한 LM 외에 다른 LM 들도 필요로 하고, reward model 과 reference model 을 동시에 필요로 한다. 게다가, PPO 알고리즘은 complext 하며 hyper-param 에 굉장히 민감하다. 따라서, 그 대체로 RL 없이 학습하는 non-RL supervised fine-tuning 이 제안된다.

NOn-RL supervised learning 의 basic idea 는 high-quality alignment dataset 을 supervised 방식으로 학습하는 것이다. 이 것의 전제는 alignment dataset 안에, unsafe behavior 를 피하기 위한 golden rule 이 담겨있다고 가정하는 것이다. 따라서 이를 위해서는 alignment dataset 의 구성과, fine-tuning loss 의 design 에 대해서 생각해봐야 한다.

첫 번째 alignment datset 의 construction 에 대해서는, human feed back data 를 refine 하거나 reward model 이 high-rated 로 평가한 것들을 모으는 방법이 있다. 두 번째, fine-tuning loss 의 경우, instruction tuning loss 와 유사하게 가져가되, ranking response 혹은 contrasting instruction-respose pair 등의 auxiliary loss 를 추가한다.

5.2.5. Remarks on SFT and RLHF

마지막으로 간단하게, LLM 의 학습 방법인 SFT 와 RLHF 에 대해서 connection 과 difference 를 기반으로 살펴보자.

(1) Overall Comparison with RL Formulation
RLHF 는 앞서 설명한 대로, reward model 을 먼저 학습한 이후, LLM 을 학습시킨다. 반면, SFT 는 teacher-forcing 방법으로, LLM 이 expert 를 흉내내는 behavior cloning 을 학습하게 한다. SFT 는 token-level loss 로써 “local” optimization way 라면, RLHF 는 text-level loss 로써 “global” optimization way 이다.

(2) Pros and Cons of SFT
Pre-training 과 instruction tuning 에 사용되는 SFT 는 LLM 에 “능력을 부여하는” 역할을 한다. 그러나 SFT 는 LLM 에게 new ability 를 “inject” 하는 것은 불가능하다. 따라서, SFT 에 non-endogenous ability 를 stimulate 시키는 것은 매우 어려운 일이다.

그리고 SFT 의 학습만으로는 hallucination 문제가 많이 발생한다. 특히나 큰 모델을 작은 모델로 distillation 할 때 hallucination 문제가 더욱 발생한다.

또한, behavior cloning 방식의 학습이기 때문에, different annotator 의 writing style, quality 등이 SFT 학습에 영향을 줄 수 있다. 따라서, SFT 에 있어서 training datset 의 quantity 보다는 quality 가 매우 중요하다.

(3) Pros and Cons of RLHF
RLHF 는 앞서 언급했듯이 human preference 와 human value 를 LLM 에 반영시키는데 큰 역할을 하였다. 이러한 이유로는 RHLF는 (1) SFT 에서의 annotator 들의 discrepancy 를 크게 경감시켜줄 수 있고, (2) preference annotation 이 writing annotation 보다는 훨씬 쉽기 때문에 annotation quality 가 높다는 점이다. 또한, self-generated response 를 contrastive 하게 학습하기 때문에, external data 를 imitate 하려다 발생하는 hallucination 문제를 경감할 수 있다.

그러나 RLHF 는 역시 RL 의 알고리즘이므로, RL 의 고질병인, sample inefficiency 문제와 training instability 문제가 발생할 수 있다. 따라서 복잡한 iterative optimization 과정을 요구한다.

5.3. Parameter-Efficient Model Adaptation

이번 섹션에서는 몇 가지 paramter-efficient fine-tuning 기법을 소개하고, 이 방법들을 통해 fine-tuned 된 LLM 들을 소개한다.

5.3.1. Parameter-Efficient Fine-Tuning Methods

Transformer language model 을 위한 네 가지 parameter-efficient fine-tuning 기법들을 소개한다.

(1) Adapter Tuning
Adapter 라고 불리는 방법은 transformer self-attention layer 전에, 작은 dim 으로 projection 했다가 돌아오는 bottleneck network (adapter) 을 추가한 뒤, self-attention layer 등 original LM parameter 는 frozen 하고 adapter 만 학습하는 방법이다.

(2) Prefix Tuning
MLP (Multi-Layer perceptron) 을 활용한 reparameterization trick 을 통해, trainable continous vector 인 “prefix” 를 학습하는 방법이다. 이 ‘prefix’는 task-specific 한 virtual token embedding 으로 활약한다. 학습 이후 MLP 는 버려지고, 해당 task 학습을 할 때, 학습된 prefix vector 가 붙어서 학습된다.

(3) Prompt Tuning
LM 은 frozen 하고, input 앞단의 prompt projection 만을 학습하는 prompt tuning 이다. 대표적인 예로 P-tuning 이 있다.

(4) Low-Rank Adaptation (LoRA)
Matrix update 과정에서 low-rank approximation 을 이용한다. W ← W + ∆W 의 weight matrix update 에서 W 는 frozen 하고, ∆W 를 low-rank approximation 으로 쪼갠 다음 (∆W= A*B^T), A 와 B matrix 만을 학습한다. 이를 통해 memory 와 storage usage 를 매우 크게 줄일 수 있다는 장점이 있다.

5.3.2. Parameter-Efficient Fine-Tuning on LLMs

많은 Param-efficient fine-tuning method 중 LoRA 와 Adapter 가 가장 많이 open-source LLM 에 적용이 된다. Alpaca-LoRA 는 Alpaca (7B LLaMA 에 52K Alpaca finetuning set 을 학습한 모델)에 LoRA 를 적용한 모델이고, LLaMA-Adapter 는 LLama-Adapter 도 제안되었다. 최근 연구에서 GPT-J, BLOOM, LLaMA 7B 모델들에 adapter tuning 과 LoRA 를 적용하여, GPT-3.5 와 비교하였을 때, 어려운 task 에서는 성능 감소가 있었지만, simple task 에서는 유사한 정도의 성능을 보임을 검증하였다. 이를 바탕으로 LoRA 가 fewer trainable param 을 가지고도 좋은 성능을 낼 수 있는 finetuning method 임을 알 수 있다. 그러나 현존하는 대부분의 PEFT 방법은 7B 정도의 작은 사이즈의 Pre-trained LM 에 적용이 되어 실험되었기 때문에, large-sized language model 로의 efficient tuning 효과에 대한 조사가 더 필요하다.

5.4. Memory-Efficient Model Adaptation

LLM 모델이 매우 크기 때문에 inference footprint 등의 문제로 deploy 단계에서 문제점이 많다. 이를 위해 large-sized LLM 의 memory 크기를 줄여 inference latency 를 줄이고자 하는 연구가 많다.

5.4.1. Background for Quantization

이 장에서는 메모리를 줄이는 기법 중 하나인 Quantization 기법에 대한 배경을 설명한다. Neural network compression 에서, float 를 8-bit int형으로 바꾸는 INT8 Quantization 기법이 제안되었다. 수식적으로는 $x_q = R(x/S)-Z$ 이고, $S$ 와 $Z$ 는 scaling factor (clipping range 를 결정) 와 zero-point factor (symmetric/assymmtric 을 결정) 이고, $R$ 은 rounding operation 이다. 이후 dequantization 과정은 $\tilde{x} = S(x_q + Z)$ 이다.

5.4.2. Quantization Methods for LLMs

Quantization approach 는 크게 두 가지로 나뉜다: Quantizatino-aware training (QAT)Post-Training Quantization (PTQ). 전자는 full model retraining 을 요구하고, 후자는 medel retraining 을 요구하지 않는다. LLM 은 매우 큰 수의 parameter 를 갖고 있기 때문에, QAT 보다는 PTQ 가 선호된다.

Post-Training Quantization (PTQ)
아래에 여러 PTQ 방법론들을 소개한다.

  • Mixed-precision decomposition : LLM.int8 논문 에서 관찰되었듯이, model size 가 6.7B 이상이 되면 hidden activation 에서 extreme large value 가 나타난다. 이 것을 emergence of outlier 라고 부르는데, 이 outlier 는 특정 feature dimension 에 분포되어 있기 때문에, LLM.int8 에서는 이 outlier feature dimension 을 나머지 dimension 과 분리한 후, 각각 16-bit floating 과 8-bit integer 로 계산한다.

  • Fine-grained quantization : 전체 tensor 에 모두 quantization 을 적용하는 coarse-grained quantization 기법은 reconstruction 결과가 좋지 못하다. 이에 ZeroQuant 논문에서는 token-wise (정확히 말하면 group-wise) 을 진행한다.

  • Balancing the quantization difficulty : Activation 에 비해 weight 들이 quantized 되기 쉽다는 것을 고려하여, SmoothQuant 는 scaling transformation 을 incorporate 하여 둘 사이의 quantization difficulty 를 줄이는 연구를 진행하였다.

5.4.3. Empirical Analysis and Findings

INT8/ INT4 와 같은 어떠한 레벨의 precision 을 언제 적용하는지를 아는 것은 매우 중요하다.

Important Findings from Existing Work.
LLM.int8, GPTQA, QLoRA, GLM 과 같은 최근 연구에서 발견된 매우 중요한 technical detail 들에 대해 알아본다.

  • INT8 weight quantization can often yield very good results on LLMs, while the performance of lower precision weight quantization depends on specific methods : LLM 은 quantization 에 꽤 robust 하기 때문에, 실제로 작은 모델을 쓰는 것보다, 큰 모델에 quantization 이 적용된 모델을 쓰는 것이 더욱 효과가 좋다. (4-bit 60GB LLM 이 8-bit 30GB LLM 보다 좋은 성능을 보인다) 특히 in-context learning, COT, instruction following 등의 emergent capability 들이 4-bit weight quantization 에도 그 능력이 유지됨이 확인된다.

  • Activations are more difficult to be quantized than weights : 앞서 말했듯 6.7B 이상의 LLM 에서는 outlier 가 존재하여 reconstruction 이 힘들다. 이를 극복하기 위해 mixed-precision / fine-grained quantization / difficulty migration 등이 고안되었다. 따라서 LLM 보다 더 적은 모델이 quantization 에 robust 하다.

  • Efficient fine-tuning enhanced quantization is a good option to enhance the performance of quantized LLMs : QLoRA 와 같이 quantization 과 함께 PEFT 를 적용하는 것은 좋은 성능을 이끌어낼 수 있는 좋은 방법이다.

Empirical Analysis on Quantization Experiments

image

  • 8-bit / 4-bit weight quantization 에서 모두 16-bit model 과 비슷한 성능을 보인다.
  • 따라서, 실질적으로 4-bit weight quantization 을 먼저 고려하여 memory reduction 을 해보는 것이 추천된다.

5.4.4. Open-source Libraries and Quantized LLMs

이 절에서는 Quantization library 들을 소개한다.

Quantization Libraries

  • Bistandbytes
  • GPTQ-for-LLaMA
  • AutoGPTQ : HuggingFace PEFT library 와 연계 가능
  • llama.cpp

Quantized LLMs
HuggingFace 를 통해, BLOOM, GPT-J, ChatGLM 등의 qunatized 버전의 LLM 을 사용할 수 있다. GPTQ 가 대표적으로 많이 사용되는 quantized LLM 이다. (Quantized LLaMA, OPT 버전들보다 많이 사용된다)

A Survey of Large Language Models (3) 에서 계속…