LLM 핸드북 1: 개념·구조·평가

LLM을 이해하기 위한 기본 언어, 구조, 생태계 지형을 빠르게 정리합니다.

개요

이 페이지는 LLM이 무엇인지, 어떤 구성 요소로 작동하는지, 그리고 산업 생태계가 어떻게 구성되는지를 한 장의 지도로 정리합니다. 학습·추론·운영은 다음 페이지에서 다룹니다.

데이터 학습 모델

LLM 파이프라인의 기본 흐름

핵심 용어와 개념

  • 토큰: 텍스트를 모델이 이해할 수 있도록 쪼갠 최소 단위. 비용과 지연을 직접 결정합니다.
  • 컨텍스트 윈도우: 한 번에 처리 가능한 토큰의 총량. 문서 길이, 대화 유지 범위를 결정합니다.
  • 모델 파라미터: 모델의 크기와 표현력. 크기만큼 학습/추론 비용도 증가합니다.
  • 추론: 학습된 모델에 입력을 주고 출력(응답)을 생성하는 단계.
  • 임베딩: 토큰을 고차원 벡터 공간에 매핑한 수치 표현. 의미적 유사성을 거리로 측정할 수 있게 합니다.
  • 어텐션: 입력 시퀀스 내에서 각 토큰이 다른 토큰과 얼마나 관련되는지 가중치를 계산하는 메커니즘.
  • 퍼플렉시티(Perplexity): 모델이 다음 토큰을 얼마나 잘 예측하는지를 나타내는 지표. 낮을수록 좋습니다.
  • Temperature: 출력 확률 분포의 날카로움을 조절하는 파라미터. 낮으면 결정적, 높으면 창의적입니다.
포인트: "모델 성능"은 하나의 숫자가 아니라, 정확도·지연·비용·안전성의 균형입니다.

Transformer 아키텍처 상세

2017년 Google의 "Attention Is All You Need" 논문에서 제안된 Transformer는 현대 LLM의 근간입니다. RNN/LSTM과 달리 순차 처리가 필요 없어 대규모 병렬 학습이 가능하며, Self-Attention을 통해 긴 거리의 의존성을 효과적으로 포착합니다.

Transformer 변형: Encoder-Decoder vs Decoder-Only

원래 Transformer는 Encoder-Decoder 구조였으나, 현대 LLM은 대부분 Decoder-Only 아키텍처를 사용합니다.

  • Encoder-Decoder: 입력을 인코더가 압축하고 디코더가 출력을 생성. 번역, 요약에 강점 (T5, BART)
  • Decoder-Only: 입력과 출력을 하나의 시퀀스로 처리. 범용 생성에 적합 (GPT, Claude, Llama)
  • Encoder-Only: 입력의 표현 학습에 집중. 분류, 임베딩 생성에 사용 (BERT, RoBERTa)
Decoder-Only Transformer Block Input Embedding + Positional Encoding Masked Multi-Head Self-Attention Q K V Add & Layer Norm residual Feed-Forward Network (FFN) Add & Layer Norm residual Nx Linear + Softmax Output Probabilities

Decoder-Only Transformer 한 블록의 내부 구조 (N번 반복)

Self-Attention 메커니즘

Self-Attention은 Transformer의 핵심 연산입니다. 입력 시퀀스의 각 토큰이 다른 모든 토큰과의 관계를 동시에 계산하여, 문맥에 따라 동적으로 가중치를 부여합니다.

수학적으로는 다음과 같이 표현됩니다:

// Scaled Dot-Product Attention
Attention(Q, K, V) = softmax(Q * K^T / sqrt(d_k)) * V

// 각 행렬의 의미:
Q (Query)  : "나는 어떤 정보를 찾고 있는가?" - 현재 토큰의 질의
K (Key)    : "나는 어떤 정보를 제공하는가?" - 각 토큰의 식별자
V (Value)  : "내가 실제로 전달할 정보" - 각 토큰이 담고 있는 내용

// d_k는 Key 벡터의 차원 수 (스케일링 팩터)
// softmax는 가중치를 0~1 확률 분포로 정규화

직관적으로 설명하면, "나는 오늘 공원에서 산책을 했다"라는 문장에서 "산책"이라는 토큰은 Query를 통해 "어디에서?", "누가?"와 같은 질문을 던지고, "공원"과 "나"의 Key가 높은 유사도를 반환하여, 해당 Value 정보를 강하게 반영합니다.

Multi-Head Attention

단일 어텐션 대신, 여러 개의 어텐션 "헤드"를 병렬로 실행하여 서로 다른 관계 패턴을 동시에 학습합니다.

// Multi-Head Attention
MultiHead(Q, K, V) = Concat(head_1, ..., head_h) * W_O
head_i = Attention(Q * W_Q_i, K * W_K_i, V * W_V_i)
// 헤드별로 다른 패턴 학습: 구문, 의미, 위치 관계 등
포인트: Multi-Head Attention으로 구문·의미·위치 관계를 동시에 포착할 수 있어, 단순 RNN보다 표현력이 풍부합니다.

Feed-Forward Network (FFN)

각 Transformer 블록의 Attention 이후에는 2층 완전 연결 네트워크가 위치합니다. 이 FFN 층이 실제로 모델 파라미터의 대부분(약 2/3)을 차지하며, "지식 저장소" 역할을 합니다.

// FFN 구조
FFN(x) = GELU(x * W_1 + b_1) * W_2 + b_2

// 보통 은닉 차원이 임베딩 차원의 4배
// 예: d_model = 4096이면 d_ff = 16384
// 최신 모델은 활성화 함수로 SwiGLU를 주로 사용

잔차 연결과 Layer Normalization

깊은 네트워크에서 기울기 소실을 방지하기 위해 모든 서브레이어에 잔차 연결(skip connection)과 Layer Normalization을 적용합니다.

  • 잔차 연결: 입력을 서브레이어 출력에 더해 정보 흐름을 보존 (output = sublayer(x) + x)
  • Layer Norm: 각 층의 출력을 정규화하여 학습 안정성 확보
  • Pre-Norm vs Post-Norm: 최신 모델은 대부분 Pre-Norm (정규화를 먼저 적용) 방식을 채택

모델 구조 이해

대부분의 LLM은 Transformer 아키텍처를 기반으로 합니다. 입력은 임베딩으로 변환되고, 어텐션 층에서 문맥을 확장한 뒤, 디코더가 다음 토큰을 예측합니다.

curl -s "http://localhost:8000/v1/chat/completions" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"MODEL_ID","messages":[{"role":"user","content":"LLM 구조를 한 문장으로 요약해줘"}],"max_tokens":128}'
참고: 위 요청 형식은 OpenAI 호환 API의 대표적인 구조입니다. 실제 엔드포인트/모델명은 제공자별 문서를 확인하세요.

토크나이저와 텍스트 분해

토크나이저는 문장을 토큰으로 분해하는 규칙을 정의합니다. 같은 문장이라도 모델/제공자에 따라 토큰 수가 달라지므로 비용 추정과 컨텍스트 설계에 직접적인 영향을 줍니다.

  • 공백 기반 분해: 직관적이지만 한계가 큼
  • BPE/WordPiece: 자주 등장하는 조합을 학습
  • 문자 단위 분해: 드문 토큰을 줄이지만 길이가 늘어남

BPE (Byte Pair Encoding) 상세

BPE는 GPT 계열에서 사용하는 핵심 토크나이저 알고리즘입니다. 기본 원리는 단순합니다: 가장 자주 등장하는 인접 바이트(또는 문자) 쌍을 반복적으로 병합합니다.

# BPE 동작 예시 (한국어)
원문: "인공지능"
초기: ['인', '공', '지', '능']

# 학습 데이터에서 빈도 기반 병합:
1단계: ('인', '공') 빈도 높음 → ['인공', '지', '능']
2단계: ('지', '능') 빈도 높음 → ['인공', '지능']
3단계: ('인공', '지능') 빈도 높음 → ['인공지능']

# 학습 데이터에 자주 등장하면 하나의 토큰으로 합쳐짐
# 드문 단어는 더 작은 조각으로 분해됨

토크나이저 비교

  • tiktoken (BPE): GPT-4 계열. ~100K 어휘, 영어 최적화
  • SentencePiece (Unigram/BPE): Llama, Gemma. 언어 무관, 다국어 강점
  • Claude Tokenizer: BPE 변형. 다국어·코드 최적화
  • WordPiece: BERT 계열. ~30K 어휘, 분류 태스크
실무 팁: 프롬프트 템플릿을 고정해두면 토큰 수를 예측하기 쉬워집니다. 한국어는 영어 대비 동일 의미에 약 1.5~2배의 토큰을 소비하므로, 비용 추정 시 이를 반영하세요.

임베딩과 벡터 공간

임베딩은 이산적인 토큰을 연속적인 벡터 공간에 매핑하는 과정입니다. 이 벡터 공간에서 의미적으로 유사한 단어는 가까운 위치에, 다른 단어는 먼 위치에 배치됩니다.

차원이 클수록(4096~12288) 미묘한 의미 차이를 포착하지만 연산 비용이 증가합니다. 소형 모델은 256~512차원, 실용적 태스크는 1024~2048차원이면 충분합니다.

# 임베딩 활용: 의미 유사도 검색 (Python)
import numpy as np

vec_a = get_embedding("인공지능 개발")   # (1536,)
vec_b = get_embedding("AI 프로그래밍")  # (1536,)

# 코사인 유사도
sim = np.dot(vec_a, vec_b) / (np.linalg.norm(vec_a) * np.linalg.norm(vec_b))
print(f"유사도: {sim:.4f}")  # 약 0.92
참고: 임베딩은 RAG(검색 증강 생성)의 핵심 기반 기술입니다. 문서를 벡터로 변환하고, 질문과 가장 유사한 문서 조각을 검색하여 프롬프트에 포함합니다.

사전학습 vs 미세조정 vs RLHF/DPO 파이프라인

LLM의 학습은 크게 세 단계로 나뉩니다. 각 단계는 서로 다른 목적과 비용 구조를 가지며, 최종 모델의 품질을 결정합니다.

1단계: 사전학습 (Pre-training)

  • 데이터: 웹, 서적, 코드 등 수조 토큰
  • 목적: 다음 토큰 예측 (Causal LM)
  • 비용: 수백만~수천만 달러, GPU 수천 대
  • 결과: Base Model - 텍스트 완성은 가능하나 지시 따르기 약함

2단계: 미세조정 (SFT)

  • 데이터: 수만~수십만 고품질 (질문, 응답) 쌍
  • 비용: 사전학습의 1/100~1/1000
  • 결과: Chat Model - 대화 형태 응답 가능

3단계: 정렬 (RLHF / DPO)

인간의 선호도에 맞춰 모델의 출력을 정렬합니다.

# RLHF 과정
1. 동일 프롬프트 → 모델이 여러 응답 생성
2. 인간 평가자가 선호도 순위 부여
3. 보상 모델(Reward Model) 학습
4. PPO로 보상 최대화 정책 최적화

# DPO (Direct Preference Optimization)
- 보상 모델 없이 선호도를 직접 최적화
- RLHF와 수학적 동치, 구현이 단순
- 학습 안정성 높아 최근 주류로 부상
주의: 정렬 단계는 모델의 안전성과 유용성을 결정하는 핵심 과정입니다. 부실한 정렬은 편향, 유해한 출력, 지시 무시 등의 문제를 야기합니다.
사전학습 수조 토큰 SFT 수만 쌍 RLHF / DPO 선호도 데이터 최종 모델 Assistant Base Model Chat Model Aligned

LLM 학습 3단계 파이프라인

스케일링 법칙

LLM의 성능은 세 가지 요소의 함수입니다: 모델 크기(파라미터 수), 데이터 양(토큰 수), 학습 컴퓨팅(FLOPs). 이 관계를 수학적으로 정리한 것이 스케일링 법칙입니다.

Chinchilla 스케일링 법칙

초기 Kaplan 법칙(2020)은 모델을 키우는 것이 효율적이라 했으나, DeepMind의 Chinchilla(2022)가 이를 수정했습니다. 핵심: 모델 크기와 데이터 양을 균형 있게 늘려야 최적입니다.

# Chinchilla 최적 비율: D ≈ 20 * N
7B 모델 → 140B 토큰,  70B 모델 → 1.4T 토큰

# 현대 모델은 Chinchilla 초과 학습 (Over-training)
Llama 3 8B15T 토큰 (최적 비율의 ~10배)
실무 포인트: 최근 트렌드는 "Over-training" 입니다. Chinchilla 최적보다 더 많은 데이터로 작은 모델을 학습하면, 추론 비용을 절감하면서도 높은 품질을 유지할 수 있습니다. Llama 3가 이 전략의 대표적 사례입니다.

컨텍스트 윈도우와 위치 인코딩

Transformer는 본질적으로 순서 정보가 없으므로, 토큰의 위치를 별도로 인코딩해야 합니다. 위치 인코딩 방식은 컨텍스트 윈도우 크기와 직접 연관됩니다.

위치 인코딩 방식

  • 절대 위치 (Sinusoidal / Learned): 고정 패턴 또는 학습 벡터. 학습 길이 초과 불가 (GPT-2, 원래 Transformer)
  • RoPE: 회전 행렬 기반 상대 위치. 외삽 가능 (Llama, Qwen, Gemma)
  • ALiBi: 어텐션 점수에 거리 패널티. 무제한 외삽 (BLOOM, MPT)

RoPE (Rotary Position Embedding)

현재 가장 널리 사용되는 방식입니다. Q/K 벡터에 위치 기반 회전을 적용하여 상대 위치를 내적에 자연스럽게 반영합니다. NTK-aware scaling, YaRN 등으로 학습 길이를 초과하는 외삽도 가능합니다.

ALiBi (Attention with Linear Biases)

임베딩 대신 어텐션 점수에 거리 비례 패널티를 부여합니다. 구현이 단순하고 외삽 성능이 뛰어납니다.

# ALiBi: 멀리 있는 토큰일수록 어텐션 점수 감소
score = Q * K^T / sqrt(d_k) - m * |i - j|
# m: 헤드별 고정 기울기, |i-j|: 토큰 간 거리
주의: 컨텍스트가 크다고 모든 토큰을 균등하게 처리하지는 않습니다. "Lost in the middle" 현상으로 중간 정보의 활용률이 떨어질 수 있으므로, 중요한 정보는 시작이나 끝에 배치하세요.

컨텍스트 설계

컨텍스트는 "모델이 참고할 수 있는 작업 메모리"입니다. 길이를 늘리면 더 많은 정보를 담을 수 있지만, 비용과 지연이 증가합니다.

  • 시스템 프롬프트: 역할/정책/톤을 정의
  • 작업 컨텍스트: 입력 문서, 요약, 요건
  • 대화 히스토리: 최근 메시지만 유지하고 이전은 요약
// 컨텍스트 구성 예시
{
  "system": "당신은 요약 전문가입니다.",
  "context": "요청 문서 요약/핵심 키워드",
  "messages": [ ... ]
}

LLM 계보: 주요 모델 패밀리

2017년 Transformer 논문 이후 LLM은 폭발적으로 발전했습니다. 주요 모델 패밀리의 계보와 특징을 정리합니다.

GPT 계열 (OpenAI)

  • GPT-1~3 (2018~2020): 1.17억 → 1750억 파라미터. Few-shot 학습의 시대를 열다
  • GPT-4/4o (2023~2024): MoE 추정. 네이티브 멀티모달, 추론 능력 대폭 향상
  • o1/o3 (2024~2025): 추론 시간 컴퓨팅(Chain-of-Thought)에 특화

Claude 계열 (Anthropic)

  • Claude 1~2 (2023): Constitutional AI 기반. 100K 컨텍스트로 긴 문서 처리
  • Claude 3/3.5 (2024): Haiku/Sonnet/Opus 3종. 비전 지원, 코딩 능력 비약적 향상
  • Claude 4 (2025): 에이전트 코딩, 병렬 도구 사용, 200K 컨텍스트

Gemini 계열 (Google DeepMind)

  • Gemini 1.0~1.5 (2023~2024): 네이티브 멀티모달, MoE, 1M 토큰 컨텍스트
  • Gemini 2.5 Pro (2025): 하이브리드 추론 모델. 코드·수학 강점

오픈소스 계열

  • Llama 1/2/3 (Meta): 오픈소스 LLM의 기준점. 7B~405B
  • Mistral/Mixtral (Mistral AI): Sliding Window Attention, MoE
  • Qwen 2.5 (Alibaba): 다국어·코드·수학 강점. 0.5B~72B
  • DeepSeek V3/R1: 비용 효율적 MoE. 추론 특화 R1
  • Gemma 2 (Google): 경량 오픈모델. 2B/9B/27B

모델 크기 vs 성능 비교

모델의 파라미터 수가 크다고 항상 더 좋은 것은 아닙니다. 아키텍처, 학습 데이터의 질, 정렬 기법 등이 실질적인 성능 차이를 만듭니다.

모델 파라미터 코딩 추론 컨텍스트 접근성
Claude 4 Opus 비공개 최상 최상 200K API
GPT-4o 비공개 (MoE) 128K API
Gemini 2.5 Pro 비공개 (MoE) 최상 1M API
Llama 3.1 405B 405B 128K 오픈소스
DeepSeek R1 671B (MoE, 37B 활성) 최상 128K 오픈소스
Qwen 2.5 72B 72B 중상 중상 128K 오픈소스
포인트: MoE(Mixture of Experts) 모델은 전체 파라미터가 크지만, 추론 시 일부 전문가만 활성화되어 실제 연산량은 훨씬 적습니다.

평가 지표와 측정

LLM은 정확도만으로 평가하기 어렵습니다. 서비스 목적에 맞는 지표를 혼합해야 합니다.

  • 정확도/일관성: 동일 입력에 대한 응답 품질
  • 안전성: 금지 주제 회피, 개인정보 노출 방지
  • 유용성: 사용자 만족도, 업무 성과 개선
  • 비용/지연: 토큰 사용량, 응답 시간

주요 벤치마크

  • MMLU: 57개 학문 분야 객관식 (지식·추론)
  • HumanEval / SWE-bench: 코드 생성 및 실제 이슈 해결
  • MATH / GPQA: 경시대회 수학, 대학원 수준 과학
  • Arena ELO: 사용자 투표 기반 블라인드 비교 (종합 선호도)
주의: 벤치마크는 "시험 점수"에 불과합니다. 실제 업무 성능과 괴리가 있을 수 있으므로, 자체 평가 세트(eval set)를 구축하는 것이 가장 정확합니다.

평가 템플릿

다음 템플릿을 복사해 내부 평가 시트를 구성하면 비교가 쉬워집니다.

# 평가 카드 템플릿
목표: 어떤 문제를 해결하는가?
시나리오: 실제 사용자 입력 5~10개
정답 기준: 기대 응답의 조건
실패 기준: 금칙어, 허위 사실, 누락
메트릭: 정확도/지연/비용/안전
결론: 선택/보류/대체

평가 카드 예시

항목 내용
목표 긴 문서 요약 품질 향상
시나리오 정책 문서 5종 요약
정답 기준 핵심 항목 5개 이상 포함
실패 기준 허위 사실, 개인정보 노출
메트릭 정확도, 지연, 비용, 안전

LLM 생태계 지형

LLM 생태계는 크게 모델 제공자, 인프라/서빙, 애플리케이션/에이전트로 나뉩니다. 각 계층은 서로 다른 비용 구조와 잠금(lock-in) 지점을 갖습니다.

  • 모델 제공자: Claude, OpenAI, Gemini, 오픈소스 계열
  • 서빙 인프라: vLLM, TGI, Triton, GPU 클라우드
  • 애플리케이션: 문서 요약, 코딩, 고객지원, 검색 보강(RAG)

모델 패밀리와 특성

  • 범용 모델: 대화, 요약, 추론 등 균형형
  • 코드 특화: 코드 생성/수정, 리포지토리 이해
  • 멀티모달: 텍스트+이미지/오디오 처리
  • 경량 모델: 저비용·저지연, 간단한 작업에 적합
  • 추론 특화: Chain-of-Thought 기반 복잡한 문제 해결 (o1, o3, DeepSeek R1)
  • MoE 모델: 전문가 네트워크로 효율적 스케일링 (Mixtral, DeepSeek V3)
주의: 특정 태스크에 최적화된 모델은 일반 대화에서 품질이 낮을 수 있습니다.

모델 비교 템플릿

아래 구조를 사용하면 팀 내에서 모델 선택 논의를 빠르게 정렬할 수 있습니다.

항목 모델 A 모델 B
태스크 적합성 일반 대화 강점 코드/도구 호출 강점
컨텍스트 중간 길이 긴 문서 처리
비용/지연 중간 비용 저지연
안전 정책 보수적 유연

모델 선택 기준

  • 업무 적합성: 일반 대화 vs 코드, 긴 문서 처리 여부
  • 비용 구조: 입력/출력 토큰, 이미지/도구 호출 비용
  • 지연 요구: 인터랙티브 UX인지, 배치 처리인지
  • 거버넌스: 데이터 보관 정책, 지역 규제, 감사 로그
주의: "가장 강력한 모델"이 항상 최선은 아닙니다. 요구사항에 맞는 균형점이 핵심입니다.

프롬프트 템플릿 기본형

# 프롬프트 골격
역할: 당신은 {역할}이다.
목표: {목표}를 달성하라.
제약: {형식, 길이, 금지사항}
컨텍스트: {관련 문서 요약}
출력: {정확한 출력 형식}

프롬프트 템플릿 예시

# 문서 요약 예시
역할: 정책 문서를 요약하는 분석가
목표: 8줄 이하로 핵심 조항 요약
제약: 원문 용어 유지, 추측 금지
컨텍스트: {문서 요약을 위한 핵심 문단}
출력: 불릿 5개

도메인별 사례 요약

  • 코딩: 리포지토리 요약, 코드 리뷰, 패치 제안
  • 문서: 보고서 요약, 정책 문서 질의응답
  • 지원: FAQ 자동 응답, 티켓 분류/요약
다음 단계: 도메인별 상세 패턴은 "LLM 핸드북 2: 학습·정렬", "LLM 핸드북 3: 배포·운영·안전", "LLM 핸드북 4: 추론·RAG·도구사용"에서 이어집니다.

참고자료