Day 6: LLM이란? 대규모 언어모델의 원리
LLM(Large Language Model)은 단순히 “큰 모델”이 아닙니다. 일정 규모를 넘어서면 작은 모델에서는 불가능했던 능력이 갑자기 나타납니다. 이것이 LLM이 특별한 이유입니다.
LLM의 핵심: Next Token Prediction
LLM의 학습 목표는 놀라울 정도로 단순합니다. 다음 토큰을 예측하는 것 이 전부입니다.
# LLM의 사전학습은 이것이 전부
# 입력: "오늘 날씨가 정말"
# 정답: "좋다"
# 수조 개의 토큰에 대해 이 작업을 반복하면
# 언어의 문법, 사실, 추론 능력까지 학습
def next_token_prediction_loss(model, text_tokens):
"""사전학습의 핵심 손실 함수"""
total_loss = 0
for i in range(1, len(text_tokens)):
context = text_tokens[:i] # 이전 토큰들
target = text_tokens[i] # 다음 토큰 (정답)
predicted = model(context) # 모델의 예측
loss = cross_entropy(predicted, target)
total_loss += loss
return total_loss / (len(text_tokens) - 1)
스케일링 법칙 (Scaling Laws)
Chinchilla 논문(2022)이 밝힌 최적 학습 규칙:
| 파라미터 수 | 최적 토큰 수 | 예시 모델 |
|---|---|---|
| 1B | 20B 토큰 | Phi-2 수준 |
| 7B | 140B 토큰 | Llama 2 7B |
| 13B | 260B 토큰 | Llama 2 13B |
| 70B | 1.4T 토큰 | Llama 2 70B |
# Chinchilla 법칙: 최적 토큰 수 ≈ 20 × 파라미터 수
def optimal_tokens(num_params_billions):
return num_params_billions * 20 # 단위: 십억(B) 토큰
# 예시
for size in [1, 7, 13, 70]:
tokens = optimal_tokens(size)
print(f"{size}B 모델 → 최적 {tokens}B 토큰 학습")
하지만 최근에는 이 법칙을 초과하여 학습하는 경우가 많습니다. Llama 3 8B는 15T 토큰으로 학습했는데, 이는 Chinchilla 최적의 약 100배입니다.
파라미터 규모별 특징
model_capabilities = {
"1B 이하": {
"가능": ["간단한 분류", "감성 분석", "키워드 추출"],
"어려움": ["복잡한 추론", "긴 글 생성", "코드 작성"],
"예시": "DistilBERT, TinyLlama",
},
"7B ~ 13B": {
"가능": ["일반 대화", "간단한 코딩", "요약", "번역"],
"어려움": ["수학 추론", "복잡한 분석"],
"예시": "Llama 3 8B, Mistral 7B",
},
"30B ~ 70B": {
"가능": ["복잡한 추론", "전문 코딩", "긴 문서 분석"],
"어려움": ["최상위 수학", "전문 의료/법률"],
"예시": "Llama 3 70B, Mixtral 8x7B",
},
"100B 이상": {
"가능": ["고급 추론", "멀티턴 대화", "창의적 작문"],
"특징": "창발적 능력 본격 발현",
"예시": "최신 GPT 상위 모델, 최신 Claude Opus",
},
}
for size, info in model_capabilities.items():
print(f"\n{'='*40}")
print(f"규모: {size}")
print(f"가능: {', '.join(info['가능'])}")
print(f"예시: {info['예시']}")
창발적 능력 (Emergent Abilities)
# 창발적 능력: 모델 크기가 임계점을 넘으면 갑자기 나타나는 능력
# 작은 모델에서는 성공률이 0%에 가깝다가, 특정 크기에서 급등
emergent_abilities = {
"Chain-of-Thought 추론": "단계별 사고 과정을 거쳐 정답 도출",
"Few-shot 학습": "몇 개의 예시만 보고 새 태스크 수행",
"코드 생성": "자연어 설명을 코드로 변환",
"다국어 번역": "학습하지 않은 언어 쌍도 번역",
"산술 추론": "여러 단계의 수학 문제 풀기",
}
print("LLM의 창발적 능력:")
for ability, description in emergent_abilities.items():
print(f" - {ability}: {description}")
# 주의: 최근 연구에서는 "창발적 능력"이 측정 방식의
# 아티팩트일 수 있다는 반론도 있습니다.
# 평가 지표를 연속적으로 바꾸면 급격한 전환이 사라진다는 주장.
LLM의 힘은 단순한 목표(다음 토큰 예측)를 극단적 규모로 수행한 결과입니다. 내일부터는 실제 LLM 모델들을 하나씩 살펴봅니다.
오늘의 연습문제
- “다음 토큰 예측”만으로 어떻게 질문에 답하는 능력이 생기는지 직관적으로 설명해보세요. (힌트: 학습 데이터에 Q&A 형식의 텍스트가 포함)
- Chinchilla 법칙에 따르면 3B 파라미터 모델의 최적 학습 토큰 수는 얼마인지 계산하고, 실제 Phi-3(3.8B)가 몇 토큰으로 학습했는지 조사해보세요.
- 창발적 능력이 “측정의 아티팩트”라는 주장에 대해 조사하고, 본인의 의견을 정리해보세요.