[LLM] LLM 완벽 가이드 시리즈 (Part 2: LLM의 핵심 원리)

당니·2026년 1월 21일

LLM

목록 보기
9/19
post-thumbnail

LLM 완벽 가이드 시리즈 | [Part 2] LLM의 핵심 원리 - Transformer부터 RLHF까지

시리즈 목차:
-[Part 1] LLM의 역사와 진화 - 2017년부터 2026년까지의 여정
-[Part 2] LLM의 핵심 원리 - Transformer부터 RLHF까지
-[Part 3] 2026년 최신 트렌드 - Hugging Face 인기 모델과 실전 코드


[Part 2] LLM의 핵심 원리

🧠 LLM은 어떻게 작동하는가?

1. Transformer 아키텍처

Transformer는 인코더(Encoder)디코더(Decoder)로 구성됩니다.

Encoder (BERT 스타일)

입력 문장: "나는 사과를 좋아한다"
         ↓
    Token 임베딩
         ↓
    위치 인코딩 (순서 정보)
         ↓
    Self-Attention (문맥 파악)
         ↓
    Feed Forward Network
         ↓
    출력: 문맥을 이해한 표현

Decoder (GPT 스타일)

프롬프트: "Python으로 피보나치"
         ↓
    Token 임베딩
         ↓
    Masked Self-Attention (이전 토큰만 참조)
         ↓
    Feed Forward Network
         ↓
    다음 토큰 예측: "수열을"
         ↓
    반복 → "수열을 구현하는 코드는..."

2. Self-Attention 메커니즘

문장 내 모든 단어가 서로를 "주목"합니다.

예시: "The cat sat on the mat"

# 'cat'이 다른 단어들과의 관계 파악
attention_scores = {
    "The": 0.1,
    "cat": 0.4,   # 자기 자신에 높은 점수
    "sat": 0.3,   # 동사와 강한 연결
    "on": 0.05,
    "the": 0.05,
    "mat": 0.1
}

3. 사전 학습 (Pre-training)

대규모 텍스트로 언어의 패턴을 학습합니다.

학습 목표:

  • 다음 토큰 예측 (GPT)
  • 마스킹된 토큰 예측 (BERT)
# GPT 스타일 학습
문장: "인공지능은 미래의 ___"
목표: "핵심" 예측

# BERT 스타일 학습
문장: "인공지능은 [MASK]의 핵심"
목표: "미래" 예측

4. 파인튜닝 (Fine-tuning)

특정 작업에 맞게 추가 학습합니다.

from transformers import AutoModelForSequenceClassification

# 사전 학습된 모델 로드
model = AutoModelForSequenceClassification.from_pretrained(
    "bert-base-uncased",
    num_labels=2  # 긍정/부정 분류
)

# 감성 분석 데이터로 파인튜닝
train_data = [
    ("이 영화 정말 좋아요!", 1),  # 긍정
    ("너무 지루했어요", 0),         # 부정
]
# ... 학습 코드 ...

5. RLHF (Reinforcement Learning from Human Feedback)

인간 피드백으로 모델을 개선합니다.

1단계: 여러 응답 생성
프롬프트: "Python 학습 방법은?"
→ 응답 A, B, C, D 생성

2단계: 인간 평가
평가자: "응답 B가 가장 도움됨"

3단계: 보상 모델 학습
B > A > D > C 순서 학습

4단계: 강화학습
더 나은 응답을 생성하도록 모델 최적화

6. 프롬프트 엔지니어링

효과적인 프롬프트 작성법:

# ❌ 나쁜 예
"코드 작성해줘"

# ✅ 좋은 예
"""
Python으로 다음 요구사항을 만족하는 코드를 작성해주세요:
- 기능: CSV 파일 읽기 및 데이터 분석
- 입력: pandas DataFrame
- 출력: 기술 통계량 (평균, 중앙값, 표준편차)
- 스타일: 주석 포함, PEP8 준수
"""

🔧 주요 구성 요소

Tokenization

텍스트를 모델이 이해할 수 있는 토큰으로 변환합니다.

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("gpt2")

text = "안녕하세요! LLM을 배워봅시다."
tokens = tokenizer.tokenize(text)
print(tokens)
# ['안', '녕', '하', '세', '요', '!', 'LLM', '을', ...]

ids = tokenizer.encode(text)
print(ids)
# [1234, 5678, 9012, ...]

Embedding

토큰을 고차원 벡터로 변환합니다.

# 각 토큰이 768차원 벡터로 표현됨 (BERT base)
"안녕"[0.23, -0.45, 0.67, ..., 0.12]  # 768개 숫자

Positional Encoding

단어의 순서 정보를 추가합니다.

# "I love AI"와 "AI love I"를 구분
position_1 = sin(1/10000^(0/768))
position_2 = sin(2/10000^(0/768))
# ...

📈 LLM의 학습 과정

1. 데이터 수집
   ↓
2. 전처리 (클리닝, 토큰화)
   ↓
3. 사전 학습 (수백억~수조 토큰)
   - 비용: 수백만~수천만 달러
   - 시간: 수주~수개월
   ↓
4. 파인튜닝 (특정 작업)
   ↓
5. RLHF (인간 피드백)
   ↓
6. 평가 및 배포

지금까지 LLM의 핵심 원리에 대해서 알아보았습니다. 질문이나 피드백이 있으시다면 댓글 부탁드립니다 !

profile
👩🏻‍💻

0개의 댓글