1.4 LLM의 작동 원리 요약 (Transformer, Pretraining, Fine-tuning)
대형 언어 모델(LLM: Large Language Model)은 자연어를 이해하고 생성하는 데 뛰어난 성능을 보이는 인공지능 모델입니다. 특히 GPT(Generative Pre-trained Transformer) 계열의 모델은 2018년부터 오늘날의 GPT-4o에 이르기까지 인공지능 기술의 패러다임을 바꾸어 놓았습니다.
이 절에서는 LLM, 특히 GPT처럼 Transformer 기반의 생성형 모델이 어떻게 작동하는지를 총체적으로 개관해보겠습니다. 주요 키워드는 다음과 같습니다:
Transformer 아키텍처
사전 학습 (Pretraining)
미세 조정 (Fine-tuning)
이들을 하나하나 자세히 살펴봅시다.
1.4.1 Transformer 아키텍처의 이해
GPT를 포함한 대부분의 LLM은 “Transformer”라는 신경망 구조를 기반으로 만들어졌습니다. 트랜스포머는 2017년 Google이 공개한 논문 “Attention is All You Need”에서 처음 제안되었으며, 이후 자연어처리(NLP) 분야에서 사실상 표준이 되었습니다.
Transformer의 기본 개념
Transformer는 시퀀스 간의 관계를 파악하는 데 강하며, 전체 문장을 한꺼번에 보고 입력 간의 상관관계를 계산할 수 있다는 점에서 기존 RNN이나 LSTM보다 훨씬 효율적입니다. 핵심 구성요소는 다음과 같습니다:
➊ Self-Attention
‘Self-Attention’은 입력된 단어들 간의 중요도를 정량적으로 계산하는 메커니즘입니다.
예를 들어, “그는 영화를 보고 울었다”라는 문장에서 “그는”과 “울었다”의 관련성이 높다는 것을 모델이 이해할 수 있도록 합니다.
각 단어는 Query, Key, Value라는 세 벡터로 변환되어, 이들 간의 dot-product로 연관성을 측정합니다.
→ 이 메커니즘 덕분에 문맥을 이해하고 장기 의존성을 잘 반영할 수 있습니다.
➋ 토큰 임베딩 (Token Embedding)
입력된 텍스트는 먼저 ‘토큰(Token)’이라는 소 단위로 쪼개집니다. 토큰은 단어나 문자 조각 등일 수 있습니다.
OpenAI의 GPT 모델은 Byte Pair Encoding(BPE) 기반의 cl100k_base와 같은 tokenizer를 사용하여 문자열을 정수 시퀀스로 변환합니다. 예: “Hello GPT” → [15496, 50256]
이 정수들은 임베딩 벡터로 변환되어 모델의 입력으로 사용됩니다. 즉, 각 토큰마다 고정된 차원의 벡터가 존재합니다.
➌ 포지셔널 인코딩 (Positional Encoding)
Transformer는 입력 순서를 알 수 없기 때문에, 토큰이 문장 내 어디에 위치했는지를 나타내는 정보가 필요합니다.
이를 위해 포지셔널 인코딩(Position Encoding)이라는 추가 벡터가 임베딩에 더해지며, 순서 정보를 제공합니다.
➍ 인코더 vs 디코더 구조
원래 Transformer는 인코더(Encoder) + 디코더(Decoder)의 쌍으로 구성되어 있었지만, GPT 계열은 오직 디코더만 사용하는 구조(Autoregressive decoder-only architecture)를 채택합니다.
→ 디코더는 입력 시퀀스를 보고 다음 단어를 예측하는 데 초점을 맞추기 때문입니다.
GPT와 같은 모델 구조
GPT는 N개의 Transformer 디코더 블록을 연속으로 쌓아올려 모델을 구성합니다.
각 블록은 Layer Normalization → Self-Attention → Feed Forward Network (FFN) → Residual 연결을 포함합니다.
마지막에는 Linear Projection 계층과 Softmax를 통해, 다음에 등장할 가능성이 높은 단어 분포를 출력합니다.
이처럼 GPT 모델은 입력된 문장을 벡터화하고, Attention을 통해 문맥 관계를 계산하며, 반복된 Transformer 블록을 통해 정보를 누적해가며 다음 단어를 예측합니다.
1.4.2 사전 학습 (Pretraining)
Transformer 구조가 준비되었다면, 이제 모델에게 “학습”을 시켜야 합니다. 그 첫 단계는 “사전 학습”입니다. 이름 그대로, 넓고 일반적인 텍스트 지식을 미리 학습하는 단계입니다.
🔹 목적: 일반 언어 능력 습득
GPT 류의 모델은 사전 학습 시, 아주 방대한 웹 텍스트 데이터를 통해 '다음 토큰 예측(Task: Next Token Prediction)'이라는 단순한 과제를 학습합니다.
이 과제를 통해 모델은 문법, 논리, 구조, 어휘 사용 등 인간이 쓰는 문장의 통계적 패턴을 내재화합니다.
학습 데이터에는 인터넷 문서, 뉴스 기사, 위키피디아, 책, 포럼 등 다양한 출처가 포함됩니다.
🔸 학습 방식: 자동회귀(Autoregressive)
모델은 문장을 왼쪽에서 오른쪽으로 읽으며 반복적으로 다음 단어를 예측합니다.
예시: “OpenAI is creating” → 다음 토큰으로 “powerful” 등 적절한 단어를 예측
입력: “OpenAI is creating”
타깃(정답): “is”, “creating”, “powerful”…
목표는 Cross-Entropy Loss를 최소화하면서 실제 다음 토큰에 높은 확률을 부여하는 것입니다.
🔹 학습 특징
지도학습 기반이지만 라벨이 필요 없습니다 (Self-supervised Learning).
수조 개의 토큰을 수천억 개의 파라미터로 학습하기 위해 수주, 수개월의 시간과 수천 대의 GPU가 사용됩니다.
1.4.3 미세 조정 (Fine-tuning)과 Instruction Tuning
사전 학습된 언어 모델은 일반적인 언어 능력을 갖췄지만, 실제 응용에 사용하려면 보다 목표 지향적인 능력이 필요합니다. 이를 위해 “미세 조정(Fine-tuning)” 과정이 수행됩니다.
🔹 일반적인 Fine-tuning: Task-Specific Adaptation
특정 목적을 위한 데이터를 준비하고, 그에 맞게 이미 학습된 언어 모델을 ‘조정’합니다.
예: 뉴스 기사 요약 모델, 법률 문서 분류기 등
예)
기존 GPT 모델 + 수천 건의 법률 요약 데이터 → GPT-Law 모델
기존 BERT 모델 + 감정 분석 데이터셋 → 감성 분석기
🔸 Instruction Tuning의 부상
GPT-3 이후, OpenAI와 학계는 새로운 방향으로 전환했습니다. 그것이 바로 "Instruction Tuning"입니다.
단순한 텍스트 예측이 아닌 “사용자가 요청한 대로 문장을 출력”하도록 훈련시키는 것입니다.
예: “이 문장을 영어로 번역해줘” → 명령을 이해하고 특정 방식으로 출력을 생성
Instruction Tuning은 다음 단계를 포함합니다:
➊ Supervised Fine-Tuning (SFT)
수천~수십만 개의 명령-응답 쌍(prompt-response pair)을 모델에 학습시킵니다.
예)
프롬프트: “이 문장을 요약해줘: 대한민국은 동아시아에 위치한…”
응답: “대한민국은 동아시아에 위치한 민주국가다.”
➋ PPO 기반 Reinforcement Learning (RLHF)
“어떤 응답이 더 좋은가?”를 인간 피드백으로 측정하고, 보상 신호(reward)를 부여하여 모델을 개선합니다.
→ 이 과정을 통해 GPT-3.5, GPT-4 같은 모델이 더욱 친절하고 유용하며, 인간의 기대에 부합하는 대답을 하게 됩니다.
정리
모델 아키텍처
Transformer 기반, Self-Attention, 디코더-only 구조
Attention, 토큰 임베딩
사전 학습 (Pretraining)
방대한 텍스트로 다음 단어 예측, 일반 언어 습득
Autoregressive, Self-supervised
미세 조정 (Fine-tuning)
특정 용도나 프롬프트 처리 능력 향상
Instruction tuning, RLHF
응용
챗봇, 요약기, 번역기, 코드 생성기 등 다양한 분야에 활용
ChatGPT, Codex 등
이처럼 GPT와 같은 대형 언어 모델은 단순히 큰 모델로 많은 데이터를 학습한 것이 아니라, 구조적 설계와 학습 절차를 정교하게 단계별로 나누어 구현한 결과입니다. 이러한 LLM의 작동 원리를 이해함으로써, 개발자는 모델에게 더 효과적으로 작업을 요청하고, API를 현명하게 활용할 수 있습니다. 다음 장에서는 이러한 모델 구조가 API 상에서 어떻게 제공되는지 살펴보겠습니다.
Last updated