Ch.0 LLM은 어떻게 작동하는가?

LLM은 어떻게 작동하는가?

LLM이 텍스트를 처리하는 5단계 파이프라인을 설명한다토큰화, 임베딩, Self-Attention의 핵심 원리를 이해한다KV Cache, Temperature, RLHF 등 최신 개념을 이해한다

ChatGPT는 어떻게 대답을 만들까?

"오늘 날씨 어때?"라고 물으면 ChatGPT는 즉시 "좋아요"라고 답합니다. 이 한 마디가 나오기까지 내부에서 무슨 일이 벌어지는 걸까요?

글자를 입력하면 어떤 과정을 거쳐 다음 글자가 나오는 걸까?

5단계 파이프라인 — 입력 → 토큰화 → 임베딩 → Transformer → 출력. 하나씩 뜯어봅시다.

lightbulb

핵심 개념

LLM

Large Language Model, 대규모 언어 모델

토큰

텍스트를 분리한 최소 단위


article

핵심 내용

LLM은 본질적으로 "다음에 올 단어를 예측하는 기계"입니다

직접 만들어봅시다 가장 단순한 토큰화 코드입니다

# 직접 실험: 토큰화가 뭔지 눈으로 보자!

sentence = "오늘 날씨가 좋아서 산책하고 싶다"

# 1단계: 띄어쓰기로 나누기
tokens = sentence.split(" ")
print("토큰:", tokens)

# 2단계: 각 토큰에 번호(ID) 부여
vocab = {}
for i, token in enumerate(tokens):
    vocab[token] = i
print("단어 사전:", vocab)

# 3단계: 문장을 숫자 배열로 변환!
token_ids = [vocab[t] for t in tokens]
print("숫자로 변환:", token_ids)
# 단어를 좌표로 바꾸면 '의미의 계산'이 가능!

embeddings = {
    "왕":   [0.9, 0.8, 0.1],
    "여왕": [0.9, 0.8, 0.9],
    "남자": [0.1, 0.3, 0.1],
    "여자": [0.1, 0.3, 0.9],
}

# 벡터 연산: 왕 - 남자 + 여자 = ?
result = [0, 0, 0]
for i in range(3):
    result[i] = (
        embeddings["왕"][i]
        - embeddings["남자"][i]
        + embeddings["여자"][i]
    )

print(f"왕 - 남자 + 여자 = {result}")
print(f"여왕 임베딩:       {embeddings['여왕']}")
print("거의 같다! 의미의 계산 성공!")
# Temperature로 확률 분포를 조절해보자!
import math

def softmax_temp(logits, temperature=1.0):
    scaled = [x / temperature for x in logits]
    max_s = max(scaled)
    exps = [math.exp(x - max_s) for x in scaled]
    total = sum(exps)
    return [e / total for e in exps]

logits = [2.0, 1.0, 0.5, 0.1, -0.5]
words  = ["좋아요", "맑아요", "화창해", "괜찮아", "우주급"]

for temp in [0.2, 0.7, 1.0, 1.5]:
    probs = softmax_temp(logits, temp)
    print(f"Temperature = {temp}")
    for w, p in zip(words, probs):
        bar = "#" * int(p * 30)
        print(f"  {w:6s} {p:.1%} {bar}")
    print()

LLM의 핵심 기능을 한 문장으로 표현하면?

KV Cache의 핵심 이점은?

Temperature를 높이면 AI의 답변은?

RLHF의 목적은?

LLM의 비밀을 파헤쳤다!

edit_note

정리 노트

LLM은 어떻게 작동하는가?

5단계 파이프라인

① 토큰화
문장을 작은 조각(토큰)으로 분해 → 숫자(ID)로 변환
② 임베딩
토큰을 의미 벡터로 변환 — 비슷한 의미 = 가까운 위치
③ Self-Attention
단어 간 관계 파악 — Q×K로 점수, V로 가중 합산
④ Transformer
Attention + FFN을 수십 층 반복 → 깊은 문맥 이해
⑤ 다음 토큰 예측
Softmax → 확률 분포 → 가장 높은 확률의 단어 선택

추론 최적화

Autoregressive
한 토큰씩 생성 → 입력에 추가 → 반복 (루프)
KV Cache
이전 K/V 저장 → 새 토큰은 Q만 계산 → 10배 빠름
Temperature
낮으면 뻔한 답, 높으면 창의적이지만 엉뚱

학습 & 최신 기술

Pre-training
빈칸 채우기 수조 번 → 파라미터 점점 정확
RLHF
인간 평가 → 보상 모델 → LLM 교정 (착한 AI 만들기)
MoE
전문가 8명 중 2명만 활성화 → 연산 75% 절약
RAG
외부 문서 검색 → 최신 정보 반영 (오픈 북 시험)

LLM = "다음에 올 단어를 예측하는 기계" — 이 한 문장이 전부의 핵심!

image

시각 자료

다이어그램: py-scene-pipeline
다이어그램: py-scene-tokenization
다이어그램: py-scene-embedding
다이어그램: py-scene-attention
다이어그램: py-scene-transformer
다이어그램: py-scene-autoregressive
다이어그램: py-scene-kv-cache
다이어그램: py-scene-temperature
다이어그램: py-scene-training
다이어그램: py-scene-rlhf
다이어그램: py-scene-moe-quant
다이어그램: py-scene-rag-cot
check_circle

핵심 정리

  • 1LLM = 다음 단어를 예측하는 기계
  • 2토큰화 → 임베딩 → Attention → Transformer → 출력
  • 3KV Cache로 추론 10배 가속
  • 4Temperature로 창의성 조절
  • 5RLHF로 인간 선호 교정
  • 6MoE로 효율적 전문가 배정, RAG로 최신 정보 활용

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작