본문 바로가기
  • Good Metaphor about AI
논문 리뷰/Survey 논문

[2/4] Large Language Models: A Survey

by Like the Moon 2025. 1. 15.

목차

Abstract

I Introduction

II Large Language Models

III HOW LLMS ARE BUILT

IV. HOW LLMS ARE USED AND AUGMENTED

V. POPULAR DATASETS FOR LLMS

VI. PROMINENT LLMS’ PERFORMANCE ON BENCHMARKS

VII. CHALLENGES AND FUTURE DIRECTIONS

 


 

III HOW LLMS ARE BUILT

이 섹션에서는 LLM에 사용되는 주요 아키텍처를 먼저 검토하고, 데이터 준비, 토크나이제이션, 사전 학습, 명령 조정(instruction tuning), 그리고 정렬(alignment)에 이르는 데이터 및 모델링 기술을 논의한다.
모델 아키텍처가 선택된 후, LLM 훈련에 포함되는 주요 단계는 데이터 준비(수집, 정리, 중복 제거 등), 토크나이제이션, 모델 사전 학습(자기 지도 학습 방식), 명령 조정, 그리고 정렬이다. 각각의 단계는 아래 하위 섹션에서 따로 설명한다. 이 단계들은 Fig 25에 그림으로도 나타나 있다.

 

A. 주요 LLM 아키텍처

가장 널리 사용되는 LLM 아키텍처는 인코더 전용, 디코더 전용, 그리고 인코더-디코더이다. 이들 대부분은 Transformer를 기반으로 하고 있다(구성 요소로 사용). 따라서 이 섹션에서는 Transformer 아키텍처도 함께 검토한다.

 


1) Transformer

혁신적인 연구 [44]에서 Vaswani 등은 Transformer 프레임워크를 제안했으며, 이는 GPU를 사용한 효과적인 병렬 연산을 위해 처음 설계되었다. Transformer의 핵심은 (자기) 주의 메커니즘(self-attention mechanism)으로, 순환(recurrence) 및 합성곱(convolution) 메커니즘보다 GPU를 사용하여 장기적인 문맥 정보를 훨씬 더 효과적으로 포착할 수 있다. Fig 26은 Transformer 작업의 높은 수준의 개요를 제공한다. 이 섹션에서는 주요 요소와 변형에 대한 개요를 제공하며, 자세한 내용은 [44], [123]을 참조한다.

 

 

Transformer 언어 모델 아키텍처는 원래 기계 번역을 위해 제안되었으며, 인코더와 디코더로 구성된다. 인코더는 N = 6개의 동일한 Transformer 층(stack)으로 이루어져 있다. 각 층은 두 개의 하위 층으로 구성된다. 첫 번째 하위 층은 다중 헤드 자기 주의(multi-head self-attention) 층이고, 두 번째 하위 층은 단순한 위치별 완전 연결 피드포워드 네트워크이다.

디코더는 6개의 동일한 층으로 구성되며, 각 인코더 층에 포함된 두 개의 하위 층 외에도, 디코더는 세 번째 하위 층을 추가로 가지며, 이는 인코더 스택 출력에 대해 다중 헤드 주의를 수행한다. 주의(attention) 함수는 쿼리(query)와 키-값(key-value) 쌍 집합을 출력에 매핑하는 것으로 설명할 수 있다. 여기서 쿼리, 키, 값, 출력은 모두 벡터이다. 출력은 값들의 가중합(weighted sum)으로 계산되며, 각 값에 할당된 가중치는 쿼리와 해당 키 간의 호환성 함수(compatibility function)에 의해 계산된다. 단일 주의 함수를 dmodel 차원의 키, 값, 쿼리로 수행하는 대신, 쿼리, 키, 값을 각각 dk, dk, dv 차원으로 선형 투영(linear projection)하는 것이 더 유익하다는 점이 발견되었다. 이 투영은 서로 다른 학습된 선형 투영을 사용하여 이루어진다. 또한, 순서 내 토큰의 상대적 또는 절대적 위치에 대한 정보를 융합하기 위해 위치 인코딩(positional encoding)이 통합된다.

 


2) Encoder-Only

이 계열의 모델에서는 각 단계에서 주의 층이 초기 문장 내 모든 단어에 접근할 수 있다. 이러한 모델의 사전 학습은 일반적으로 주어진 문장을 일부 손상시키는 방식(예: 임의의 단어를 마스킹)으로 이루어지며, 모델에게 초기 문장을 찾거나 복원하도록 과제를 부여한다. 인코더 모델은 문장 분류, 개체명 인식(named entity recognition), 추출적 질문 답변과 같이 전체 시퀀스에 대한 이해가 필요한 작업에 적합하다. 대표적인 인코더 전용 모델로는 [24]에서 제안된 BERT(Bidirectional Encoder Representations from Transformers)가 있다.


 

3) Decoder-Only

이 모델에서는 각 단계에서 주의 층이 문장 내 해당 단어 이전에 위치한 단어들에만 접근할 수 있다. 이러한 모델은 종종 자기 회귀 모델(auto-regressive models)이라고도 불린다. 이 모델들의 사전 학습은 일반적으로 시퀀스 내 다음 단어(또는 토큰)를 예측하는 방식으로 구성된다. 디코더 전용 모델은 텍스트 생성과 관련된 작업에 가장 적합하다. GPT 모델이 이 모델 유형의 대표적인 예이다.

 


4) Encoder-Decoder

이 모델은 인코더와 디코더를 모두 사용하며, 종종 시퀀스-투-시퀀스(sequence-to-sequence) 모델이라고 불린다. 각 단계에서 인코더의 주의 층은 초기 문장의 모든 단어에 접근할 수 있는 반면, 디코더의 주의 층은 입력에서 주어진 단어 이전에 위치한 단어들에만 접근할 수 있다. 이 모델들은 일반적으로 인코더 또는 디코더 모델의 목적을 사용하여 사전 학습되지만, 대개 조금 더 복잡한 방식을 포함한다. 예를 들어, 일부 모델은 여러 단어를 포함할 수 있는 랜덤 텍스트 구간을 하나의 특수 마스크 단어로 대체하여 사전 학습되며, 이 마스크 단어가 대체한 텍스트를 예측하는 것이 목표가 된다. 인코더-디코더 모델은 요약, 번역 또는 생성적 질문 답변과 같이 주어진 입력에 따라 새로운 문장을 생성하는 작업에 가장 적합하다.


B. Data Cleaning

데이터 품질은 해당 데이터를 사용하여 훈련된 언어 모델의 성능에 매우 중요하다. 필터링, 중복 제거와 같은 데이터 정리 기술은 모델 성능에 큰 영향을 미치는 것으로 나타났다. 예를 들어, Falcon40B [124]에서 Penedo 등은 적절히 필터링되고 중복 제거된 웹 데이터만으로도 강력한 모델을 만들 수 있음을 보여주었다. 이 모델은 최첨단 모델이 The Pile에서 훈련된 모델을 능가하는 성능을 보였다. 광범위한 필터링을 거쳤음에도 불구하고, CommonCrawl에서 5조 개의 토큰을 확보할 수 있었다. 또한, REFINEDWEB 데이터셋에서 추출한 6000억 개의 토큰과 이를 기반으로 훈련된 1.3/7.5B 매개변수 언어 모델을 공개하였다. Fig 27은 이 연구에서 CommonCrawl 데이터를 정제하는 과정을 보여준다.

 


1) Data Filtering (데이터 필터링)

데이터 필터링은 훈련 데이터의 품질과 훈련된 LLM의 효과를 향상시키는 것을 목표로 한다. 일반적인 데이터 필터링 기법은 다음과 같다. 

 

Removing Noise(노이즈 제거): 모델의 일반화 능력에 영향을 미칠 수 있는 관련 없거나 노이즈가 많은 데이터를 제거하는 것을 의미한다. 예를 들어, 훈련 데이터에서 잘못된 정보를 제거하여 모델이 잘못된 응답을 생성할 가능성을 줄이는 것을 생각할 수 있다.

데이터 품질 필터링을 위한 두 가지 주요 접근 방식은 다음과 같다:

  • 분류기 기반 프레임워크: 데이터 품질을 분류기로 평가하여 노이즈 데이터를 걸러내는 방식이다.
  • 휴리스틱 기반 프레임워크: 사전에 정의된 규칙과 기준에 따라 데이터를 필터링하는 방식이다.

Handling Outliers(이상치 처리): 데이터에서 이상치나 비정상 값을 식별하고 처리하여, 모델에 과도한 영향을 미치지 않도록 방지한다.

 

Addressing Imbalances(불균형 해결): 데이터셋 내 클래스나 범주의 분포를 균형 있게 조정하여 편향을 방지하고 공정한 표현을 보장한다. 이는 특히 책임감 있는 모델 훈련과 평가에 유용하다.

 

Text Preprocessing(텍스트 전처리): 불용어, 구두점 또는 모델 학습에 크게 기여하지 않는 요소들을 제거하여 텍스트 데이터를 정리하고 표준화한다.

 

Dealing with Ambiguities(모호성 처리): 훈련 중 모델을 혼란스럽게 할 수 있는 모호하거나 모순된 데이터를 해결하거나 제외한다. 이를 통해 모델이 더 명확하고 신뢰할 수 있는 답변을 제공하도록 돕는다.


2. Deduplication (중복 제거)

 중복 제거는 데이터셋에서 동일한 데이터가 중복되거나 반복적으로 나타나는 사례를 제거하는 과정을 의미한다. 중복된 데이터는 모델 훈련 과정에서 편향을 초래할 수 있으며, 동일한 예제를 여러 번 학습함으로써 데이터 다양성이 감소하고 특정 사례에 과적합될 가능성이 있다.

 일부 연구 [125]에서는 중복 제거가 모델이 새로운, 보지 못한 데이터에 대해 일반화하는 능력을 향상시킨다는 것을 보여주었다.

중복 제거 과정은 대규모 데이터셋을 처리할 때 특히 중요하다. 중복 데이터는 특정 패턴이나 특성의 중요성을 의도치 않게 과장시킬 수 있기 때문이다. 이는 다양한 데이터와 대표성을 갖춘 훈련 데이터가 강력한 언어 모델 구축에 필수적인 NLP 작업에서 더욱 중요하다.

 중복 제거 방법은 데이터의 특성과 훈련 중인 언어 모델의 요구 사항에 따라 달라질 수 있다. 이는 전체 데이터 포인트를 비교하거나 특정 특성을 비교하여 중복을 식별하고 제거하는 방식을 포함할 수 있다. 문서 수준에서 기존 연구들은 주로 문서 간의 고수준 특성(예: n-그램 중복률) 겹침을 기반으로 중복 샘플을 탐지하는 방법에 의존한다.

 


C. Tokenizations

토크나이제이션은 텍스트 시퀀스를 토큰이라고 불리는 더 작은 단위로 변환하는 과정을 말한다. 가장 단순한 토크나이제이션 도구는 공백을 기준으로 텍스트를 토큰으로 나누지만, 대부분의 토크나이제이션 도구는 단어 사전에 의존한다. 그러나 이 경우 토크나이저가 사전에 있는 단어만 알기 때문에 어휘 부족(out-of-vocabulary, OOV) 문제가 발생할 수 있다.

이러한 문제를 해결하기 위해, LLM에서 사용되는 인기 있는 토크나이저는 서브워드(sub-words)를 기반으로 하며, 이를 조합하여 훈련 데이터에 없는 단어나 다른 언어의 단어를 포함한 다수의 단어를 생성할 수 있다. 다음에서는 세 가지 주요 토크나이저에 대해 설명한다.

 


1) BytePairEncoding

BytePairEncoding(BPE)는 원래 데이터 압축 알고리즘의 한 유형으로, 바이트 수준에서 자주 나타나는 패턴을 사용하여 데이터를 압축한다. 이 알고리즘은 기본적으로 자주 사용되는 단어는 원래 형태를 유지하고, 그렇지 않은 단어는 분해하는 방식으로 동작한다.

이 간단한 방식은 어휘 크기를 지나치게 크게 만들지 않으면서도 일반적인 단어를 충분히 잘 표현할 수 있도록 한다. 또한, 접미사(suffix)나 접두사(prefix)가 알고리즘의 훈련 데이터에 자주 등장한다면, 자주 나타나는 단어의 형태 변화도 효과적으로 표현할 수 있다.


2) WordPieceEncoding

이 알고리즘은 주로 BERT와 Electra와 같은 잘 알려진 모델에 사용된다. 훈련 초기에 알고리즘은 훈련 데이터에서 모든 알파벳을 가져와 UNK(미지정 또는 unknown)로 남는 데이터가 없도록 한다. 이는 모델이 토크나이저로 토큰화할 수 없는 입력을 받았을 때 발생할 수 있다. 특히 일부 문자가 토크나이저에 의해 토큰화될 수 없을 때 이러한 문제가 발생한다.

BytePairEncoding과 유사하게, 이 알고리즘은 어휘 내 모든 토큰을 빈도에 기반하여 포함시키도록 최대한의 가능성을 추구한다.


3) SentencePieceEncoding

앞서 설명한 두 가지 토크나이저는 강력하며 공백 기반 토크나이제이션에 비해 많은 장점을 가지고 있지만, 여전히 단어가 항상 공백으로 분리된다는 가정을 전제로 한다. 그러나 이 가정은 항상 참이 아니며, 실제로 일부 언어에서는 불필요한 공백이나 심지어 만들어진 단어와 같은 다양한 노이즈 요소로 인해 단어가 손상될 수 있다. SentencePieceEncoding은 이러한 문제를 해결하려고 한다.

 


D. Positional Encoding

1) Absolute Positional Embeddings

(APE, Absolute Positional Encoding)은 원래 Transformer 모델에서 시퀀스 순서 정보를 보존하기 위해 사용되었다. 따라서 단어의 위치 정보는 인코더와 디코더 스택의 입력 임베딩 하단에 추가된다.

위치 인코딩에는 학습 가능한 방식과 고정된 방식 등 다양한 옵션이 있다. 기본 Transformer(vanilla Transformer)에서는 이를 위해 사인(sine)과 코사인(cosine) 함수가 사용된다.

Transformer에서 APE를 사용하는 주요 단점은 토큰 수에 특정 제한이 생긴다는 점이다. 또한, APE는 토큰 간 상대적 거리를 고려하지 못한다는 문제가 있다.


2) Relative Positional Embeddings

(RPE, Relative Positional Encoding)은 자기 주의(self-attention)를 확장하여 입력 요소 간의 쌍별 관계(pairwise links)를 고려하도록 한다. RPE는 모델에 두 가지 수준에서 추가된다: 첫째, 키(keys)에 추가적인 구성 요소로, 둘째, 값 행렬(values matrix)의 하위 구성 요소로 추가된다. 이 접근 방식은 입력을 라벨이 부여된 방향성 엣지(directed edges)를 가진 완전 연결 그래프(fully-connected graph)로 간주한다. 선형 시퀀스의 경우, 엣지는 입력 요소 간의 상대적 위치 차이에 대한 정보를 포착할 수 있다. 클리핑 거리(clipping distance)는 k로 표현되며, 2 ≤ k ≤ n−4의 범위를 가지며 상대적 위치의 최대 한계를 지정한다. 이를 통해 모델은 훈련 데이터에 포함되지 않은 시퀀스 길이에 대해서도 합리적인 예측을 할 수 있도록 한다.


3) Rotary Position Embeddings:

Rotary Positional Embedding (RoPE) [127]은 기존 방법의 문제를 해결하기 위해 도입되었다. 학습된 절대적 위치 인코딩은 특히 문장이 짧을 때 일반화와 의미 있는 표현이 부족할 수 있다. 또한, T5의 위치 인코딩과 같은 현재 방법들은 위치 간의 전체 주의 행렬(attention matrix)을 구성하는 데 어려움을 겪는다.

RoPE는 회전 행렬(rotation matrix)을 사용하여 단어의 절대 위치를 인코딩하며, 동시에 자기 주의(self-attention)에 명시적인 상대적 위치 정보를 포함한다. RoPE는 다음과 같은 유용한 특징들을 제공한다:

  • 문장 길이에 대한 유연성.
  • 상대적 거리가 증가할수록 단어 간 의존성 감소.
  • 상대적 위치 인코딩을 활용하여 선형 자기 주의를 향상시키는 능력.

GPT-NeoX-20B, PaLM, CODEGEN, 그리고 LLaMA와 같은 모델들이 RoPE를 아키텍처에 활용하고 있다.


4) Relative Positional Bias:

이 유형의 위치 인코딩 개념은 훈련 중에 경험한 것보다 더 긴 시퀀스에 대해 추론 시 외삽(extrapolation)을 가능하게 하는 데 있다.

Press 등은 [128]에서 Attention with Linear Biases (ALiBi)를 제안하였다. 단순히 위치 임베딩을 단어 임베딩에 추가하는 대신, 쿼리-키(query-key) 쌍의 주의(attention) 점수에 편향(bias)을 도입하였다. 이 편향은 두 토큰 간 거리에 비례하는 패널티를 부여한다.BLOOM 모델은 ALiBi를 활용하여 이러한 방식으로 위치 정보를 처리한다.

 


E. Model Pre-training

사전 학습(Pre-training)은 대형 언어 모델(LLM) 훈련 파이프라인의 첫 번째 단계로, LLM이 기본적인 언어 이해 능력을 획득하도록 돕는다. 이는 다양한 언어 관련 작업에서 유용하다.

사전 학습 동안 LLM은 보통 방대한 양의 비레이블(unlabeled) 텍스트 데이터를 사용하여 자기 지도 학습(self-supervised learning) 방식으로 훈련된다. 사전 학습에는 여러 접근 방식이 사용되며, 대표적으로 다음 문장 예측(next sentence prediction)이 있다. 가장 일반적인 두 가지 방법은 다음과 같다:

  • 다음 토큰 예측(autoregressive language modeling)
  • 마스크 언어 모델링(masked language modeling)

 

자동 회귀 언어 모델링(Autoregressive Language Modeling) 프레임워크에서는, n개의 토큰 x1,...,xnx_1, ..., x_n이 주어졌을 때, 모델이 다음 토큰 xn+1x_{n+1}(또는 때로는 다음 시퀀스의 토큰)을 자동 회귀 방식으로 예측하려고 한다. 이 경우 일반적으로 사용되는 손실 함수는 예측된 토큰의 로그 가능도(log-likelihood)이며, 이는 다음 식(Eq 2)으로 표현된다.

 

자동 회귀 특성을 가진 이 프레임워크에서는 디코더 전용 모델이 이러한 작업을 학습하는 데 자연스럽게 더 적합하다.

마스크 언어 모델링(Masked Language Modeling)에서는 시퀀스 내 일부 단어를 마스킹하고, 모델이 주변 문맥을 기반으로 마스킹된 단어를 예측하도록 훈련된다. 이 접근 방식은 때때로 디노이징 오토인코딩(denoising autoencoding)이라고도 불린다.

마스킹되거나 손상된 시퀀스 샘플을 x~\tilde{x}로 나타낸다면, 이 접근 방식의 훈련 목표는 다음과 같이 표현할 수 있다.

 

최근 들어 Mixture of Experts(MoE) [130], [131]는 LLM 분야에서도 매우 인기를 얻고 있다. MoE는 모델을 훨씬 적은 연산량으로 사전 학습할 수 있게 하여, 동일한 연산 예산으로 밀집(dense) 모델과 비교해 모델 또는 데이터셋의 크기를 크게 확장할 수 있다.

MoE는 두 가지 주요 요소로 구성된다:

  1. 희소 MoE 레이어: 밀집 피드포워드 네트워크(FFN) 레이어 대신 사용되며, 일정 수의 "전문가"(예: 8개)를 포함한다. 각 전문가는 신경망으로, 일반적으로 FFN이지만 더 복잡한 네트워크일 수도 있다.
  2. 게이트 네트워크 또는 라우터: 각 토큰을 어떤 전문가에게 보낼지를 결정한다. 토큰을 한 명 이상의 전문가에게 보낼 수도 있다.

토큰을 전문가에게 라우팅하는 방법은 MoE 작업에서 중요한 결정 중 하나이다. 라우터는 학습된 파라미터로 구성되며 네트워크의 다른 부분과 동시에 사전 학습된다. Fig 29는 MoE에서 사용되는 Switch Transformer 인코더 블록의 예를 보여준다.

 


 

F. Fine-tuning and Instruction Tuning

초기 언어 모델인 BERT는 III-E 섹션에서 설명한 자기 지도 학습(self-supervision)을 통해 훈련되었으나, 특정 작업을 수행할 수 없었다. 기본 모델이 유용하려면 레이블이 있는 데이터로 특정 작업에 맞게 미세 조정(fine-tuning)을 해야 했다(이를 지도 학습 기반 미세 조정 또는 SFT라고 한다). 예를 들어, 원래 BERT 논문 [24]에서는 모델이 11가지 서로 다른 작업에 대해 미세 조정되었다.

더 최근의 LLM은 더 이상 미세 조정 없이도 사용할 수 있지만, 여전히 작업 또는 데이터에 특화된 미세 조정을 통해 성능 향상을 얻을 수 있다. 예를 들어, OpenAI는 훨씬 더 작은 GPT-3.5 Turbo 모델이 작업별 데이터로 미세 조정되었을 때 GPT-4를 능가할 수 있다고 보고했다.

 

미세 조정은 단일 작업에만 국한되지 않으며, 멀티태스크 미세 조정(multi-task fine-tuning)에 대한 다양한 접근 방식도 존재한다(예: Mahabi 등 [132]). 하나 또는 여러 작업에 대해 미세 조정을 수행하면 결과를 개선하고 프롬프트 엔지니어링의 복잡성을 줄이는 것으로 알려져 있으며, 검색 증강 생성(retrieval augmented generation)에 대한 대안으로도 활용될 수 있다.

또한, 미세 조정을 권장할 만한 다른 이유들도 있다. 예를 들어, 사전 학습 중에 노출되지 않은 새로운 데이터나 독점 데이터를 모델에 노출하기 위해 미세 조정을 수행할 수 있다.

 

LLM을 미세 조정하는 중요한 이유 중 하나는 프롬프트를 통해 제공된 지시에 대해 사람이 기대하는 반응에 모델을 맞추는 것이다. 이를 명령 조정(instruction tuning) [133]이라고 한다.

IV-B 섹션에서 프롬프트를 설계하고 엔지니어링하는 방법에 대해 자세히 다루지만, 명령 조정의 맥락에서 중요한 점은 명령이 LLM이 수행해야 할 작업을 명시하는 프롬프트라는 것이다. 명령 조정 데이터셋(예: Natural Instructions [134])은 작업 정의뿐만 아니라 긍정/부정 예제 또는 피해야 할 사항과 같은 다른 구성 요소도 포함한다.

 

명령 조정을 위해 사용되는 접근 방식과 명령 데이터셋은 다양하지만, 일반적으로 명령 조정된 모델은 기반이 된 원래의 기본 모델보다 더 우수한 성능을 보인다. 예를 들어, InstructGPT [59]는 대부분의 벤치마크에서 GPT-3를 능가하며, Alpaca [62] 역시 LLaMA와 비교했을 때 더 나은 성능을 보인다.

Wang 등이 제안한 Self-Instruct [135]도 이러한 맥락에서 인기 있는 접근 방식 중 하나이다. 이 접근법은 사전 학습된 언어 모델의 지시 수행 능력을 개선하기 위해 자체 생성 결과를 활용하는 부트스트래핑 프레임워크를 도입하였다. 이 파이프라인은 언어 모델로부터 명령, 입력, 출력 샘플을 생성한 뒤, 이를 필터링하여 유효하지 않거나 유사한 샘플을 제거한 후 원래 모델을 미세 조정하는 데 사용한다.

 


 

G. Alignment

AI 정렬(AI Alignment)은 AI 시스템을 인간의 목표, 선호, 원칙에 맞도록 조정하는 과정이다. 단어 예측을 위해 사전 학습된 LLM은 종종 의도하지 않은 행동을 보일 수 있다. 예를 들어, 독성, 해로움, 오해를 불러일으키거나 편향된 내용을 생성할 수 있다. 앞서 논의된 명령 조정은 LLM을 정렬에 한 걸음 더 가까이 나아가게 하지만, 많은 경우 모델의 정렬을 더욱 개선하고 의도하지 않은 행동을 방지하기 위해 추가적인 단계가 필요하다. 이 하위 섹션에서는 정렬을 위한 가장 인기 있는 접근 방식을 검토한다.

 

RLHF(인간 피드백을 활용한 강화 학습)과 RLAIF(AI 피드백을 활용한 강화 학습)는 두 가지 대표적인 정렬 접근 방식이다.

RLHF는 보상 모델을 사용하여 인간 피드백으로부터 정렬을 학습한다. 이 보상 모델은 조정 후, 다양한 출력물을 평가하고 인간이 제공한 정렬 선호도에 따라 점수를 부여할 수 있다. 보상 모델은 원래 LLM에 피드백을 제공하며, 이 피드백은 LLM을 추가로 조정하는 데 사용된다 [137]. 반면 RLAIF는 사전 학습되고 잘 정렬된 모델을 LLM에 직접 연결하여, 더 크고 잘 정렬된 모델로부터 학습하도록 돕는다 [138].

 

최근 연구(DPO) [139]에서 Rafailov 등은 RLHF가 복잡하고 종종 불안정한 절차임을 지적하며 이를 해결하기 위한 새로운 접근 방식을 제안했다. 그들은 보상 함수와 최적 정책 간의 매핑을 활용하여, 이 제약된 보상 극대화 문제를 단일 정책 훈련 단계로 정확히 최적화할 수 있음을 보여주었다. 본질적으로 이는 인간 선호 데이터에 대한 분류 문제를 해결하는 방식이다.

이 결과로 나온 알고리즘은 직접 선호 최적화(Direct Preference Optimization, DPO)로, 안정적이고 성능이 뛰어나며 계산 비용이 적다. 이는 보상 모델을 맞추거나, 미세 조정 중 LM에서 샘플링하거나, 과도한 하이퍼파라미터 튜닝을 수행할 필요를 없앤다.

연구 결과에 따르면, DPO를 사용한 미세 조정은 RLHF보다 생성물의 감정을 더 효과적으로 제어할 수 있으며, 요약 작업에서 응답 품질을 향상시킨다. Fig 30은 DPO와 RLHF 간의 높은 수준의 비교를 보여준다.

 

 

최근 Ethayarajh 등은 Kahneman-Tversky Optimization (KTO) [136]이라는 새로운 정렬 접근 방식을 제안했다. 기존 최첨단 방법과 달리, KTO는 쌍별 선호 데이터 (x,yw,yl)(x, y_w, y_l)를 필요로 하지 않으며, 단지 (x,y)(x, y)yy가 바람직한지 또는 바람직하지 않은지에 대한 정보만 필요하다.

KTO로 정렬된 모델은 1B에서 30B 규모에 이르기까지 DPO로 정렬된 모델과 동등하거나 더 나은 성능을 보이는 것으로 나타났다. 또한 KTO는 선호 최적화 방법보다 실제 환경에서 훨씬 사용하기 쉬운데, 필요한 데이터 유형이 훨씬 더 풍부하기 때문이다.

예를 들어, 대부분의 소매 회사는 고객 상호작용 데이터와 그 상호작용이 성공적이었는지(예: 구매 완료) 또는 실패했는지(예: 구매 미완료)에 대한 데이터를 많이 보유하고 있다. 그러나 실패한 고객 상호작용 yly_l을 성공적인 상호작용 ywy_w로 바꾸는 데 필요한 반사실적(counterfactual) 데이터는 거의 또는 전혀 보유하고 있지 않다.

Fig 31은 KTO와 위에서 논의된 다른 정렬 접근 방식 간의 높은 수준의 비교를 보여준다.

H. Decoding Strategies

디코딩은 사전 학습된 LLM을 사용하여 텍스트를 생성하는 과정을 의미한다. 입력 프롬프트가 주어지면, 토크나이저가 입력 텍스트의 각 토큰을 해당하는 토큰 ID로 변환한다. 그런 다음 언어 모델은 이 토큰 ID들을 입력으로 받아 가장 가능성이 높은 다음 토큰(또는 토큰 시퀀스)을 예측한다. 최종적으로 모델은 로짓(logits)을 생성하고, 이를 소프트맥스(softmax) 함수를 사용해 확률로 변환한다. 다양한 디코딩 전략이 제안되었으며, 가장 널리 사용되는 방법으로는 그리디 탐색(greedy search), 빔 탐색(beam search), 그리고 top-K 및 top-P(누클리어스 샘플링)와 같은 샘플링 기법이 있다.


1) Greedy Search

그리디 탐색은 각 단계에서 가장 확률이 높은 토큰을 다음 시퀀스의 토큰으로 선택하며, 다른 모든 잠재적 옵션은 제외한다. 이 방식은 간단하지만, 시간적 일관성(temporal consistency)과 문맥적 일관성(coherency)을 잃을 가능성이 크다. 각 단계에서 가장 확률이 높은 토큰만 고려하고 전체 시퀀스에 미치는 영향을 고려하지 않기 때문에, 속도가 빠르다는 장점이 있지만, 약간 낮은 확률의 다음 토큰을 선택했을 경우 나타날 수 있는 더 나은 시퀀스를 놓칠 수 있다는 단점도 있다.


2) Beam Search

그리디 탐색이 단일 가장 높은 확률의 다음 토큰만 고려하는 것과 달리, 빔 탐색(Beam Search)은 NN개의 가장 가능성이 높은 토큰을 고려한다(NN은 빔의 개수를 나타냄). 이 과정은 미리 정의된 최대 시퀀스 길이에 도달하거나, 시퀀스 종료 토큰(end-of-sequence token)이 나타날 때까지 반복된다.

그 시점에서, 전체 점수가 가장 높은 시퀀스(즉, "빔")가 출력으로 선택된다. 예를 들어, 빔 크기가 2이고 최대 길이가 5일 경우, 빔 탐색은 25=322^5 = 32개의 가능한 시퀀스를 추적해야 한다. 따라서 빔 탐색은 그리디 탐색보다 계산 비용이 더 크다.


3) Top-k Sampling

Top-k 샘플링은 언어 모델이 생성한 확률 분포를 사용하여 가장 가능성이 높은 kk개의 옵션 중 하나를 무작위로 선택하는 기법이다.

예를 들어, 6개의 토큰(A, B, C, D, E, F)이 있고 k=2k=2이며, 각 토큰의 확률이 P(A)=30%P(A)=30\%, P(B)=20%P(B)=20\%, P(C)=P(D)=P(E)=P(F)=12.5%P(C)=P(D)=P(E)=P(F)=12.5\%라고 가정하자. Top-k 샘플링에서는 토큰 C,D,E,FC, D, E, F가 무시되며, 모델은 AA를 60%의 확률로, BB를 40%의 확률로 출력한다. 이 방법은 가장 가능성이 높은 토큰을 우선시하면서도 선택 과정에 무작위성을 도입하여 다양성을 보장한다.

 

무작위성은 보통 온도(temperature) 개념을 통해 도입된다. 온도 TT는 0에서 1 사이의 매개변수로, 소프트맥스 함수에서 생성된 확률 분포에 영향을 미쳐 가장 가능성이 높은 토큰의 영향을 더 크게 만든다. 실제로는 입력 로짓(logits)을 온도 값으로 나누는 방식으로 적용된다:

 

온도가 낮을수록 확률 분포가 크게 변형되며, 이는 생성된 텍스트에서 "창의성"의 수준을 조정하는 데 자주 사용된다. 반면, 온도가 높아질수록 높은 확률의 토큰들이 더 우선시된다.

Top-k 샘플링은 창의적인 샘플링 방법으로, 빔 탐색(beam search)과 함께 사용할 수도 있다. Top-k 샘플링으로 선택된 시퀀스는 빔 탐색에서 가장 높은 확률의 시퀀스와 일치하지 않을 수 있다. 그러나 가장 높은 점수를 얻는 시퀀스가 항상 더 현실적이거나 의미 있는 시퀀스를 생성하는 것은 아니라는 점을 기억하는 것이 중요하다.


4) Top-p Sampling

Top-p 샘플링, 또는 누클리어스 샘플링(Nucleus Sampling)은 Top-k 샘플링과는 약간 다른 접근 방식을 취한다. Top-k 샘플링이 가장 가능성이 높은 kk개의 토큰을 선택하는 데 반해, 누클리어스 샘플링은 확률의 합이 pp를 초과하는 컷오프 값을 기준으로 토큰을 선택한다. 이를 통해 "핵심 집합(nucleus)"을 형성하고, 이 집합 내에서 다음 토큰을 무작위로 선택한다.

즉, Top-p 샘플링에서는 언어 모델이 확률이 높은 토큰들을 내림차순으로 평가하고, 확률의 합이 임계값 pp를 초과할 때까지 토큰을 목록에 추가한다. 이 방식은 특히 Top-k 토큰들이 큰 확률 질량을 가지지 않는 경우에 더 유리할 수 있다.

Top-k 샘플링과 달리, 누클리어스 샘플링에 포함되는 토큰의 수는 고정되지 않는다. 이러한 가변성은 더 다양한 결과를 생성하는 데 기여하며, 누클리어스 샘플링이 텍스트 생성과 관련된 작업에서 인기가 높은 이유 중 하나이다.

 

 

I. 비용 효율적인 훈련/추론/적응/압축

이 부분에서는 LLM의 훈련과 활용을 더 비용 및 연산 친화적으로 만들기 위해 사용되는 대표적인 접근 방식을 검토한다.

 

1) Optimized Training (최적화된 훈련)

LLM 훈련을 최적화하기 위해 개발된 다양한 프레임워크가 있으며, 여기서 몇 가지 주요 사례를 소개한다.

 

ZeRO: Rajbhandari 등 [140]은 메모리를 최적화하고 LLM의 훈련 속도를 크게 개선하며 효율적으로 훈련 가능한 모델 크기를 증가시키기 위해 Zero Redundancy Optimizer(ZeRO)를 개발했다. ZeRO는 데이터 병렬 및 모델 병렬 훈련에서 메모리 중복성을 제거하면서도 통신량을 낮게 유지하고 계산 세분성을 높게 유지한다. 이를 통해 디바이스 수에 비례하여 모델 크기를 확장할 수 있으며 높은 효율성을 지속적으로 유지할 수 있다.

 

RWKV: Peng 등 [141]은 Receptance Weighted Key Value (RWKV)라는 새로운 모델 아키텍처를 제안했다. 이는 Transformer의 효율적인 병렬 훈련과 RNN의 효율적인 추론을 결합한 방식이다.

이 접근법은 선형 주의 메커니즘(linear attention mechanism)을 활용하며, 모델을 Transformer 또는 RNN으로 공식화할 수 있게 한다. 이를 통해 훈련 중에는 계산을 병렬화하고, 추론 시에는 계산 및 메모리 복잡도를 일정하게 유지할 수 있다. 이로써 RWKV는 Transformer가 아닌 아키텍처로는 처음으로 수십억 개의 매개변수까지 확장 가능한 모델이 되었다.

RWKV 아키텍처는 Fig 32에 나타나 있으며, RWKV와 다양한 Transformer의 시간 복잡도 비교는 Fig 33에서 제공된다.


2) Low-Rank Adaptation (LoRA)

Low-Rank Adaptation(LoRA)는 경량화된 훈련 기법으로, 훈련 가능한 매개변수 수를 크게 줄이는 데 널리 사용된다. 이 기법은 특정 작업에 맞춰 미세 조정된 가중치와 초기 사전 학습 가중치 간의 차이가 "낮은 내재적 랭크(low intrinsic rank)"를 나타낸다는 중요한 통찰에 기반한다. 이는 이러한 차이를 낮은 랭크 행렬로 잘 근사할 수 있음을 의미한다 [142].

 

LoRA를 활용한 훈련은 더 빠르고, 메모리 효율적이며, 몇 백 MB 수준의 더 작은 모델 가중치를 생성하므로 저장 및 공유가 용이하다. 낮은 랭크 행렬의 특징 중 하나는 두 개의 더 작은 행렬의 곱으로 표현될 수 있다는 점이다. 이를 통해 미세 조정된 가중치와 초기 사전 학습 가중치 간의 차이(델타)가 두 개의 더 작은 행렬의 곱으로 표현될 수 있다는 가설이 도출되었다.

원래의 가중치 행렬 전체를 업데이트하는 대신, 이 두 작은 행렬만 업데이트하는 데 집중함으로써 계산 효율성을 크게 향상시킬 수 있다.

구체적으로, 사전 학습된 가중치 행렬 W0∈Rd×kW_0 \in \mathbb{R}^{d \times k}에 대해 LoRA는 업데이트를 낮은 랭크 분해로 제한한다. 이를 통해 W0+ΔW=W0+BAW_0 + \Delta W = W_0 + BA로 표현하며, 여기서 B∈Rd×rB \in \mathbb{R}^{d \times r}, A∈Rr×kA \in \mathbb{R}^{r \times k}, 그리고 랭크 r≪min⁡(d,k)r \ll \min(d, k)이다.

훈련 중에는 W0W_0가 고정되며, 그래디언트 업데이트를 받지 않고, AABB만 훈련 가능한 매개변수를 포함한다. W0W_0ΔW=BA\Delta W = BA는 동일한 입력과 곱해지며, 각각의 출력 벡터는 좌표별로 합산된다. 예를 들어, h=W0xh = W_0x라면 수정된 순방향 패스는 다음과 같이 표현된다:

h=W0x+ΔWx=W0x+BAxh = W_0x + \Delta Wx = W_0x + BAx

훈련 초기에, AA는 일반적으로 랜덤 가우시안 초기화를 사용하고, BB는 0으로 초기화한다. 따라서 ΔW=BA\Delta W = BA는 훈련 시작 시 0이다. 이후, ΔWx\Delta Wxαr\frac{\alpha}{r}로 스케일링되며, 여기서 α\alpharr에 비례하는 상수이다. 이 재구성 방식은 그림 34에 나타나 있다.

LoRA는 신경망의 가중치 행렬 중 일부 하위 집합에 적용하여 훈련 가능한 매개변수 수를 줄일 수 있다. Transformer 아키텍처에서 자기 주의 모듈(Self-Attention Module)에는 네 개의 가중치 행렬(Wq,Wk,Wv,WoW_q, W_k, W_v, W_o)이 있고, MLP 모듈에는 두 개의 가중치 행렬이 있다. 대부분의 경우, LoRA는 다운스트림 작업에 대해 주의 가중치만 조정하고, MLP 모듈은 단순성과 매개변수 효율성을 위해 동결(freeze)하여 훈련하지 않는다.

 

3) Knowledge Distillation

지식 증류(Knowledge Distillation)는 더 큰 모델로부터 학습하는 과정이다 [143]. 초기의 최고 성능 모델들이 출시되었을 때, API 증류 접근법(API distillation approach)으로 활용되더라도 이 방법이 매우 유용하다는 것이 증명되었다.

지식 증류는 단일 모델뿐만 아니라 여러 모델의 지식을 하나의 작은 모델로 증류하는 접근법으로도 알려져 있다. 이러한 방법으로 작은 모델을 생성하면 모델 크기를 줄일 수 있어 엣지 디바이스에서도 활용 가능하다.

Fig 35는 이러한 훈련 방식을 일반적으로 설정한 모습을 보여준다.

 

 

지식은 다양한 학습 형태로 전달될 수 있다: 응답 증류(Response Distillation), 특징 증류(Feature Distillation), 그리고 API 증류(API Distillation)이다.

  • 응답 증류(Response Distillation): 교사 모델의 출력에만 초점을 맞추어, 학생 모델이 교사 모델과 동일하거나 유사하게(예측의 관점에서) 수행하도록 가르친다.
  • 특징 증류(Feature Distillation): 마지막 층의 출력뿐만 아니라 중간 층의 출력을 활용하여 학생 모델이 더 나은 내부 표현을 학습하도록 돕는다. 이를 통해 작은 모델도 교사 모델과 유사한 표현을 가질 수 있도록 한다.

이러한 증류 방법은 학생 모델이 교사 모델의 지식을 더 효과적으로 학습할 수 있게 한다.

 

API 증류(API Distillation)는 API(주로 OpenAI와 같은 LLM 제공업체의 API)를 사용하여 더 작은 모델을 훈련하는 과정이다. LLM의 경우, 더 큰 모델의 직접적인 출력을 사용해 모델을 훈련하며, 이는 응답 증류(Response Distillation)와 매우 유사하다.

이러한 증류 방식에는 여러 우려가 제기된다. 모델 자체가 공개되지 않은 경우, 보통 유료로 제공되는 API가 최종 사용자에게 노출되기 때문이다. 한편, 사용자는 호출할 때마다 비용을 지불하며, 예측 결과를 사용하는 방식에도 제한이 있다. 예를 들어, OpenAI는 자사의 API를 사용하여 경쟁 모델로 활용될 LLM을 만드는 것을 금지하고 있다. 이러한 경우의 주요 가치는 훈련 데이터에 있다.

 

4) Quantization

딥러닝의 핵심은 행렬에 특정 정밀도의 모델 가중치를 적용하여 수학적 함수를 수행하는 것이다. 가중치의 정밀도를 줄이면 모델 크기를 줄이고 속도를 높일 수 있다. 예를 들어, Float-32 연산은 Int-8 연산에 비해 느리다. 이러한 과정을 **양자화(quantization)**라고 하며, 이는 다양한 단계에서 적용될 수 있다.

모델 양자화의 주요 접근 방식은 다음과 같이 분류된다:

  • 훈련 후 양자화(Post-Training Quantization)
    훈련된 모델에 대해 양자화를 적용하는 방식으로, 대표적으로 **동적(dynamic)**과 정적(static) 방법이 있다.
    • 동적 훈련 후 양자화는 실행 시(runtime)에 양자화 범위를 계산하며, 정적 방법에 비해 느리다.
    • 정적 훈련 후 양자화는 사전에 양자화 범위를 설정하여 보다 빠른 실행을 가능하게 한다.
  • 양자화 인지 훈련(Quantization-Aware Training)
    양자화 기준을 훈련 과정에 통합하여 모델을 훈련하고 최적화하는 방식이다. 이 접근법은 최종 모델이 높은 성능을 유지하도록 보장하며, 훈련 후 별도의 양자화 과정이 필요하지 않다.