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인터랙티브 레슨 시작