- 최근 개발된 LLM은 GPT와 같이 Transformer 구조의 Decoder만을 활용한 "Decoder only Transformer" (ex. GPT-4, LLaMA 등) 또는 Encoder와 Decoder를 모두 사용하는 Encoder-Decoder Transformer(ex. BART, T5) 아키텍처를 기반으로 구축이 되고 있습니다.
- 이때, 특히 Decoder only 모델인 GPT 계열의 모델이 더 좋은 성능을 발휘하고 있습니다.
- 이번 포스팅에서는 이 두 모델 아키텍처를 비교해보고, Decoder only 기반으로 LLM이 발전되어가는 이유를 분석해보고자 합니다.
1. Transformer 기반 LLM의 두 가지 주요 구조
(1) Encoder-Decoder Transformer(ex. BART, T5)
- BART 또는 T5와 같은 모델은 Seq2Seq (Sequence to Sequence) 구조를 따릅니다.
- 입력 문장을 Encoding 한 뒤, 이를 바탕으로 Decoder를 통해 새로운 문장을 생성하게 됩니다.
(2) Decoder Only Transformer(GPT 계열)
- GPT-4, LLaMA로 대표되는 Decoder only 모델은 "Auto-Regressive 방식의 Decoder Only" 구조를 사용한다고 할 수 있습니다.
- 즉, 입력된 프롬프트(Context)를 활용해 다음 토큰을 순차적으로 예측하는 구조인 것입니다.
- 이때 Causal Masking과 같은 방법을 통해 순차적으로 텍스트를 생성하게 됩니다.
(3) Encoder-Decoder 와 Decoder Only 모델의 차이점 정리
- 두 방법에 대한 차이점을 정리하면 아래와 같습니다.
비교 항목 | Encoder - Decoder | Decoder-Only |
입력 데이터 처리 | 양방향 인코딩(Bidirectional Encoding) | 단방향 인코딩(Causal, Auto-Regressive) |
출력 생성 | 전체 시퀀스를 한번에 예측 | 한 단어씩 순차적으로 예측 |
대표적 사용 분야 | 번역, 문서 요약 | 대화형 AI, 생성형 모델 |
학습 방식 | Encoder : Masked Learning Decoder : Auto-Regressive |
Auto-Regressive |
장점 | 문맥 이해 능력 좋음, 길고 복잡한 텍스트 처리 용이 |
자연스럽고 일관성 있는 텍스트 생성 |
단점 | 속도가 느림 | 문맥이 길어지면 생성 능력 저하 |
2. 왜 Decoder Only 모델이 많이 활용될까?
- 최근 LLM 연구에서는 GPT-4, LLaMA와 같은 Decoder Only 모델들이 많이 개발되고 있는데요. 이러한 모델들이 많이 활용되는 이유를 정리해보면 아래와 같습니다.
1) Auto-Regressive 방식의 자연스러운 텍스트 생성이 가능
* 이전 단어(또는 문맥)을 기반으로 한 단어씩 생성해나가다보니 사람의 언어 생성 방식과 유사한 더 자연스러운 텍스트 생성 가능
* Encoder-Decoder 모델은 전체 문장을 한번에 생성하기에 자연스러움이 더 떨어질 수 있음
2) 효율적인 학습 가능 (Scaling Laws & Pretraining)
* Decoder Only 모델은 단순한 Auto Regressive 방식 기반이기에 확장성이 더 좋습니다.(Scalling Law)
* 즉, 대규모 데이터에 대해 효율적인 사전학습이 가능하며, 파라미터 수의 증가에 따라 성능이 비교적 선형적으로 향상되기에 데이터 및 모델의 크기가 커짐에 따라 성능 향상을 기대할 수 있습니다.
* 하지만, Encoder-Decoder 모델은 두 개의 네트워크가 상호작용을 하다보니 학습이 상대적으로 복잡하게 됩니다.
3) Few-shot Learning 과 In-Context Learning에 대한 최적화
* Decoder Only 모델은 사용자가 제공한 프롬프트를 기반으로 Auto Regressive 하게 답변을 내놓을 수 있기에, 몇개의 정답을 포함한 Prompt 기반의 학습이 Few-shot Learning이 가능합니다. 즉, 주어진 context 에서 학습이 가능한 In-Context Learning 이 가능하게 됩니다.
'딥러닝 with Python' 카테고리의 다른 글
[딥러닝 with Python] MoE란?(Mixture of Experts란?) (0) | 2025.02.24 |
---|---|
[딥러닝 with Python] NAS(Neural Architecture Search) 알아보기 - 강화학습을 기반으로 (0) | 2025.02.23 |
[딥러닝 with Python] DPO(Direct Preference Optimization)와 RLHF(Reinforcement Learning with Human Feedback) (0) | 2025.02.22 |
[딥러닝 with Python] In-Context Learning이란? ICL이란? (0) | 2025.02.21 |
[딥러닝 with Python] Affinity Score란? (0) | 2025.02.20 |
댓글