- Authors

- Name
- Youngju Kim
- @fjvbn20031
들어가며 — LLM을 "잘 쓰는 사람"과 "잘 만드는 사람"의 차이
2023년엔 프롬프트 엔지니어링이 뜨거웠고, 2024년엔 RAG가 핵심이었다면, 2025년엔 LLM 내부 구조를 이해하는 것이 엔지니어의 분수령이 되었다.
왜?
- 토큰화 이해 없이는 비용·컨텍스트 한계 이해 불가
- Attention 이해 없이는 긴 컨텍스트 성능 저하 이해 불가
- RLHF vs DPO 이해 없이는 모델 선택 불가
- RAG 아키텍처 이해 없이는 할루시네이션 제어 불가
- Evaluation 이해 없이는 프로덕션 이전 불가
이 글은 LLM을 블랙박스에서 꺼내 회로도까지 내려보는 한 편이다.
1부 — Transformer 아키텍처: 왜 이것이 모든 것을 바꿨나
1.1 이전 패러다임 (RNN/LSTM)의 한계
- 순차 처리 → GPU 병렬화 불가
- 긴 의존성 학습 실패 (gradient vanishing)
- 학습 시간 선형 증가
1.2 "Attention Is All You Need" (2017)
Vaswani et al.의 6명 저자 8페이지 논문이 AI를 재편. 핵심 아이디어:
"토큰 간의 관계를 직접 계산하자. 순차 처리 없이."
1.3 Transformer 블록 구조
Input Tokens
↓
Embedding + Positional Encoding
↓
┌─ N개 반복 ─────────────────┐
│ Multi-Head Self-Attention │
│ + │
│ Layer Norm + Residual │
│ + │
│ Feed-Forward Network │
│ + │
│ Layer Norm + Residual │
└────────────────────────────┘
↓
Output (logits over vocabulary)
Decoder-only (GPT 계열): 위 블록이 여러 개 쌓인 구조.
1.4 현대 Transformer 변형 (2023~2025)
- RoPE (Rotary Position Embedding): 절대 위치 인코딩 대체. 외삽 성능 우수
- GQA (Grouped-Query Attention): Key/Value 헤드 공유로 추론 속도·메모리 절감
- MoE (Mixture of Experts): Mixtral, DeepSeek, GPT-4 일부 레이어에 사용
- SwiGLU: ReLU 대체 활성함수, 성능 개선
- RMSNorm: LayerNorm 대체, 안정성·속도
2부 — Attention 메커니즘 완전 이해
2.1 Self-Attention 수식
각 토큰을 Query, Key, Value 세 벡터로 투영:
- Q와 K의 내적 → 토큰 간 "관련도 점수"
sqrt(d_k)로 스케일링 (gradient 안정)- softmax로 확률 분포화
- V에 가중합 → 컨텍스트 벡터
2.2 직관적 이해
문장 "The cat sat on the mat"에서 "sat"이라는 토큰을 처리할 때:
- Query: "나는 어떤 동사인가?"
- Key: 다른 토큰들의 "나는 무엇인가?" 표지
- Attention Score: "The(0.1) cat(0.6) sat(0.1) on(0.05) the(0.05) mat(0.1)"
- Output: 가중치만큼 Value 섞어서 "sat의 문맥을 담은 새 표현"
2.3 Multi-Head: 여러 관계를 동시에
하나의 Attention이 여러 종류의 관계(문법·의미·참조)를 다 잡기는 어렵다 → H개 병렬 head로 분할 후 concat.
2.4 Causal Mask (Decoder)
GPT 같은 생성 모델은 미래 토큰을 보면 안 됨 → 위쪽 삼각 행렬을 -inf로 마스킹해 softmax 후 0이 되게.
2.5 Attention의 계산 복잡도 문제
- 시퀀스 길이 N에 대해 O(N²) 메모리·연산
- N=128K면 16억 연산/레이어
- 2024~2025 해결책: FlashAttention, Ring Attention, Sliding Window
3부 — LLM 학습 파이프라인 4단계
3.1 Pre-training (사전 학습)
- 데이터: 수조 토큰 (Web, Books, Code, Wiki)
- 목적: 다음 토큰 예측 (Next Token Prediction)
- 비용: GPT-4 클래스
수천만수억 달러 - 결과: "Base Model" — 유창하지만 제어 어려움
3.2 Supervised Fine-Tuning (SFT)
- 데이터: 수만~수십만 개 (instruction, response) 쌍
- 목적: 질문에 답하는 "형식" 학습
- 결과: "Instruct Model" — 명령 따를 줄 알지만 선호도 부족
3.3 RLHF (Reinforcement Learning from Human Feedback)
- Reward Model 학습: 인간이 2개 응답 중 선호 선택 → "좋은 응답 점수" 학습
- PPO로 LLM 업데이트: Reward Model 점수 최대화
- 장점: 세밀한 선호도 반영
- 단점: 복잡·불안정·비용
3.4 DPO (Direct Preference Optimization, 2023)
- Reward Model 없이, 선호 쌍으로 바로 모델 업데이트
- 훨씬 간단·안정·효과적
- 2024~2025 새 오픈소스 모델의 기본값
3.5 Constitutional AI / RLAIF
- 인간 대신 AI가 선호 판단 (Anthropic)
- 규칙(Constitution) 기반 자기 수정
- 스케일·일관성 우수
3.6 2024~2025 추론 모델 (o1, DeepSeek-R1, Claude 3.7 Thinking)
- RL로 Chain-of-Thought 최적화
- 추론 과정 자체를 강화학습으로 학습
- 수학·코딩·논리에서 점프
4부 — Tokenization: 모든 비용과 한계의 근원
4.1 BPE (Byte Pair Encoding)
GPT·Claude가 사용. 자주 나오는 문자쌍을 병합해 토큰 생성.
"Hello, world!" → ["Hello", ",", " world", "!"] (4 tokens)
"안녕하세요" → ["안", "녕", "하", "세", "요"] (5 tokens, UTF-8 바이트 수 더 많음)
4.2 언어별 효율 편차
| 언어 | 1000자 → 토큰 |
|---|---|
| 영어 | ~750 |
| 한국어 | |
| 중국어 | ~1500 |
| 일본어 | ~1500 |
| 코드(Python) | ~600 |
한국어는 영어 대비 2~3배 토큰: 비용·컨텍스트 한계 그만큼 불리.
4.3 Context Window의 현실
2025년 주요 모델:
- GPT-4o: 128K
- Claude 3.5 Sonnet: 200K
- Gemini 2.0 Flash: 1M~2M
- Llama 4: 10M 실험
하지만: "컨텍스트 128K = 128K 모두 잘 사용"이 아니다. Needle-in-Haystack 테스트에서 중간 부분 정확도 하락.
5부 — RAG: 3세대 진화
5.1 RAG가 필요한 이유
- 모델 지식 컷오프 (예: 2024년 6월)
- 회사 내부 문서·최신 정보
- 할루시네이션 감소
- 출처 추적 가능
5.2 1세대: Naive RAG
Query → [Vector Search] → Top-K chunks → [Stuff into context] → LLM
- 간단, 하지만 검색 실패 = 답변 실패
- Chunk 크기·중첩에 민감
- 복잡한 질문에 취약
5.3 2세대: Advanced RAG
개선 포인트 6가지:
- Query Rewriting: 사용자 질문을 검색에 유리하게 재작성
- HyDE (Hypothetical Document Embedding): 가상의 답변을 생성해 그것으로 검색
- Hybrid Search: Dense(벡터) + Sparse(BM25) 병용
- Reranking: Cross-encoder로 Top-K 재정렬 (Cohere Rerank 등)
- Contextual Retrieval (Anthropic 2024): 청크 앞에 요약 붙여 저장
- Query Routing: 질문 유형별 다른 검색 경로
5.4 3세대: Agentic RAG
LLM이 능동적으로 검색 전략을 결정:
User Query
↓
[LLM Agent]
├→ "이 질문은 최신 뉴스가 필요해" → Web Search
├→ "이건 내부 문서에 있을 거야" → Vector DB
├→ "계산이 필요해" → Code Interpreter
└→ "두 결과를 합쳐야 함" → Synthesis
↓
Final Answer
특징: 반복적 검색, 자기 수정, 다중 소스 통합.
5.5 RAG 아키텍처 결정 트리
Q1. 문서가 몇 개인가?
<100 → 전체 컨텍스트에 stuff (RAG 불필요)
100~10,000 → Naive RAG + Rerank
10K~1M → Advanced RAG + 하이브리드 검색
1M+ → Agentic RAG + 샤딩
Q2. 질문 복잡도?
단일 fact lookup → Naive
다중 홉(multi-hop) → Advanced + Query Decomposition
계산·비교·요약 → Agentic
Q3. 지연시간 예산?
<500ms → Cache + 단순 검색
<3s → Standard RAG
<30s → Agentic 가능
5.6 2024~2025 핵심 기술
- Contextual Retrieval (Anthropic): 35~50% 검색 실패율 감소
- ColBERT / ColPali: Late interaction으로 정확도·속도 균형
- GraphRAG (MS): 지식 그래프로 다중 홉 질문 해결
- LightRAG: GraphRAG의 경량 버전
6부 — Agent 설계 패턴
6.1 ReAct (Reasoning + Acting)
Thought: 사용자가 서울 날씨를 묻는다
Action: search_weather(city="Seoul")
Observation: 18°C, 맑음
Thought: 정보 확보, 답변 생성
Final Answer: "서울은 현재 18°C 맑음입니다."
가장 단순·강력한 Agent 패턴. 대부분의 Agent가 이 변형.
6.2 Plan-and-Execute
Plan:
1. 서울 기온 조회
2. 뉴욕 기온 조회
3. 차이 계산
4. 더 따뜻한 도시 반환
Execute step-by-step
복잡한 멀티스텝에 유리. 계획 수립 단계가 추가되어 안정성 ↑.
6.3 Reflection / Self-Critique
1. 답변 생성
2. 스스로 비평: "누락된 것 있는가?"
3. 수정본 생성
품질 ↑, 비용·지연 ↑.
6.4 Multi-Agent
- Supervisor + Workers: CEO가 팀원에게 분배
- Swarm (OpenAI 2024): 에이전트 간 직접 handoff
- AutoGen / CrewAI: 역할 기반 협업
6.5 Tool Use (Function Calling)
tools = [{
"name": "search",
"description": "Search the web",
"parameters": {
"type": "object",
"properties": {"q": {"type": "string"}},
"required": ["q"]
}
}]
response = llm.complete(messages, tools=tools)
if response.tool_calls:
for call in response.tool_calls:
result = execute(call.name, call.args)
# result를 다시 LLM에 전달
2025 트렌드: MCP (Model Context Protocol, Anthropic)로 도구 정의 표준화.
7부 — LLM Evaluation: 미해결 문제
7.1 왜 평가가 어려운가
- 정답이 없음: 창의적 글쓰기, 요약
- 부분 정답: 코딩은 동작하지만 엘레강스 ↓
- 맥락 의존: 같은 답변이 상황에 따라 좋/나쁨
- Benchmark 오염: 훈련 데이터에 포함됐을 가능성
7.2 전통 메트릭의 한계
| 메트릭 | 한계 |
|---|---|
| BLEU | 문자열 매칭, 의미 미반영 |
| ROUGE | 요약 평가, 순서·의미 약함 |
| Perplexity | 모델 비교용, 품질과 상관 약함 |
| Exact Match | 다양한 정답 허용 안 됨 |
7.3 LLM-as-a-Judge (2023~)
"더 큰 LLM이 작은 LLM의 답을 채점"
장점: 뉘앙스·맥락 평가 가능 단점:
- Position Bias (앞에 나온 답 선호)
- Verbosity Bias (긴 답 선호)
- Self-Preference (자기 비슷한 스타일 선호)
- 비용 ↑
7.4 현대 평가 스택 (2024~2025)
- Unit Test: 예상 동작 단위 테스트
- Eval Set: 100~1000개 대표 예시 + 평가 기준
- LLM Judge + Rubric: 명시적 기준으로 judge 유도
- Human-in-the-loop: 샘플링 검수
- A/B 테스트: 프로덕션에서 실제 지표 (전환율, 만족도)
7.5 주요 벤치마크
| 벤치마크 | 측정 |
|---|---|
| MMLU | 다학제 지식 |
| HumanEval / MBPP | 코딩 |
| GSM8K / MATH | 수학 |
| HellaSwag | 상식 추론 |
| TruthfulQA | 진실성 |
| MT-Bench | 다중 턴 대화 |
| ARC-AGI | 추상 추론 |
| SWE-bench | 소프트웨어 엔지니어링 |
2025 현실: 기존 벤치마크 상당수 포화. 새 벤치마크 지속 등장.
8부 — 프로덕션 LLM 시스템 설계
8.1 운영 시스템 구성 요소
User
↓
[Rate Limit + Auth]
↓
[Prompt Cache (KV Cache)]
↓
[Input Safety Filter]
↓
[Router] → Model A (빠름·싼 것) / Model B (추론·비싼 것)
↓
[Streaming Response]
↓
[Output Safety Filter]
↓
[Logging + Eval + Feedback Loop]
8.2 비용 최적화 6가지
- Prompt Caching (Anthropic, OpenAI): 고정 앞부분 캐시 → 90% 비용 감소
- Batching: 여러 요청 합침 (offline 작업)
- Model Routing: 쉬운 건 Haiku/mini, 어려운 건 Opus/o1
- Fine-tuning 작은 모델: 특정 태스크는 소형 모델이 대형보다 싸고 빠름
- Quantization: Self-hosting 시 INT8/INT4로 메모리·속도 ↑
- Semantic Cache: 유사 질문 → 같은 답 재사용
8.3 지연시간 최적화
- Streaming: 첫 토큰 시간 최소화 (TTFT)
- Speculative Decoding: 작은 모델이 추측 → 큰 모델이 검증
- Parallel Tool Use: 여러 도구 동시 호출
- Pre-compute: 자주 나올 답 미리 생성
8.4 안전성·신뢰성
- Input Filtering: Prompt Injection 방어
- Output Filtering: PII·욕설 제거
- Hallucination Guards: Citation 요구, 검증 에이전트
- Fallback: 모델 실패 시 안전한 기본 답변
- Audit Log: 모든 요청·응답 기록 (규제·디버깅)
9부 — 2024~2025 LLM 생태계 지도
9.1 Foundation Model Tier
| Tier | 예시 | 특징 |
|---|---|---|
| Frontier | GPT-5, Claude 4, Gemini 2.5 | 최첨단, 비쌈 |
| Reasoning | o1/o3, Claude Thinking, DeepSeek-R1 | 긴 사고, 복잡 문제 |
| Balanced | Claude Sonnet, GPT-4o | 가성비 최상 |
| Fast | Haiku, GPT-4o-mini, Gemini Flash | 저렴·빠름 |
| Open-weight | Llama 3/4, Mistral, Qwen, DeepSeek | 자가 호스팅 |
9.2 오픈소스의 급부상 (2024~2025)
- Llama 3.1 405B / Llama 4: Meta 무료 공개
- DeepSeek V3 / R1 (중국): Frontier급 성능, 오픈
- Qwen 2.5 (Alibaba): 다국어 강함
- Mistral Large 2: 유럽 대표
"오픈 모델이 Frontier를 6개월 안에 따라잡는" 패턴 반복.
9.3 추론 시간 스케일링 (Test-time Compute)
2024~2025 패러다임 전환:
- 기존: 모델을 크게
- 새로움: 추론 시 더 오래 생각 (Chain-of-Thought + RL)
- 예: o1이 30초 생각 → GPT-4o 1초보다 정확
10부 — AI 엔지니어의 2025년 스킬 로드맵
Month 1~2: 기초
- Transformer·Attention 수식까지 이해
- Tokenization 실습 (tiktoken, SentencePiece)
- OpenAI/Anthropic SDK 기본
Month 3~4: RAG
- Embedding 모델 선택 (OpenAI ada, BGE, e5)
- Vector DB 운영 (Qdrant, Weaviate, pgvector)
- Reranker + Hybrid Search 구축
- Contextual Retrieval 적용
Month 5~6: Agent
- ReAct 직접 구현
- LangGraph로 상태 기반 Agent
- MCP (Model Context Protocol)로 도구 표준화
- Multi-Agent 실험
Month 7~8: Evaluation
- Eval 셋 100개 직접 작성
- LLM-as-a-Judge 구축 (bias 완화)
- Ragas·TruLens 활용
- CI에 eval 통합
Month 9~10: 운영
- Prompt Caching·Semantic Cache
- Model Routing 시스템
- 관측성 (LangSmith, Langfuse)
- 비용 모니터링·최적화
Month 11~12: 심화
- Fine-tuning (LoRA, QLoRA)
- Reasoning 모델 활용 설계
- 보안 (Prompt Injection, Data Poisoning)
- 새 논문 팔로업 루틴
11부 — LLM 체크리스트 12
- Self-Attention 수식을 말할 수 있다 (Q, K, V + softmax)
- Tokenization이 비용에 미치는 영향을 언어별로 안다
- Pre-training → SFT → RLHF → DPO 순서와 역할을 안다
- DPO가 PPO보다 인기 있는 이유를 안다
- RAG 1/2/3세대의 차이를 설명할 수 있다
- Contextual Retrieval (Anthropic 2024)의 아이디어를 안다
- ReAct · Plan-and-Execute · Reflection 차이를 안다
- **MCP (Model Context Protocol)**의 목적을 안다
- LLM-as-a-Judge의 4가지 편향을 말할 수 있다
- Prompt Caching의 비용 절감 원리를 안다
- 추론 모델(o1, R1)의 학습 방식을 안다
- 오픈소스와 폐쇄 모델의 현재 격차를 안다
12부 — LLM 안티패턴 10
- 프롬프트에 모든 컨텍스트 우겨넣기: 비용 ↑, 정확도 ↓. 선택적 RAG
- Naive RAG 그대로 프로덕션: Rerank·Hybrid 없이는 정확도 부족
- Temperature 0만 쓰기: 창의 작업엔 0.7~1.0 필요
- Eval 셋 없이 배포: 변경 영향 측정 불가
- LLM-as-a-Judge 맹신: Position Bias 인식 못하면 잘못된 결론
- 하나의 모델로 모든 것: Router로 태스크별 분리해야 비용·지연 ↓
- Streaming 안 쓰기: TTFT 체감 품질 핵심
- Prompt Injection 방어 없음: 사용자 입력을 시스템 프롬프트에 직결
- LLM에게 수학·정밀 계산 맡기기: Tool (Code Interpreter) 써야
- Caching 미적용: Anthropic Prompt Cache는 90% 할인. 안 쓰면 손해
마치며 — LLM은 도구이자 조합 언어다
LLM은 "새로운 프로그래밍 언어"로 볼 수 있다. 프롬프트가 코드, 모델이 컴파일러, Eval이 테스트.
이 언어를 잘 쓰는 엔지니어와 못 쓰는 엔지니어의 차이는 2025년에 연봉 2~3배 차이로 벌어지고 있다.
핵심은:
- 내부 구조 이해: Transformer·Attention·Tokenization
- 학습 파이프라인 이해: RLHF vs DPO, 왜 추론 모델이 등장했나
- RAG·Agent 설계 패턴: 2~3세대, 5가지 Agent 패턴
- Evaluation 능력: eval 셋 설계, LLM-as-a-Judge 한계 이해
- 운영 감각: Caching, Routing, 비용·지연·안전
이 5가지가 2025년 AI 엔지니어의 베이스라인이다.
다음 글 예고 — "MLOps 완전 가이드: 모델 배포·Feature Store·Drift·A/B 테스트·GPU 운영"
Season 2 Ep 7은 ML을 프로덕션에 올리는 실전. 다음 글은:
- Model Serving (TorchServe, Triton, vLLM)
- Feature Store (Feast, Tecton)
- Training Infra (Ray, Determined)
- Experiment Tracking (MLflow, W&B)
- Data/Concept Drift 감지
- Model A/B 테스트·Shadow Deployment
- GPU 운영 경제학 (on-demand vs spot vs 자체 구매)
논문에서 프로덕션까지의 거리, 다음 글에서 이어진다.