인공지능(AI)

인공지능 모델 용어 정리 (LLM)

더큰돌 2026. 5. 14. 21:57

인공지능 모델, 특히 트랜스포머 기반 대형 언어 모델(LLM)의 훈련과 추론 과정을 이해하는 데 필수적인 핵심 용어를 정리해 보겠습니다. 모델의 입력 처리 단계부터 시작합니다.

토큰(Token)은 원본 텍스트를 모델이 이해할 수 있는 최소 단위로 나누는 것입니다. 예를 들어 “안녕하세요”라는 문장을 “안녕”, “하세요” 같은 서브워드 단위로 쪼개거나, 더 세밀한 바이트 단위로 나눌 수도 있습니다. 이 토큰들은 숫자 ID로 변환되어 모델에 들어갑니다.

토큰을 만드는 도구가 바로 토크나이저(Tokenizer)이며, 토크나이저가 사용하는 전체 단어 집합을 어휘(Vocabulary)라고 부릅니다.

토큰화된 결과는 임베딩(Embedding) 과정을 거쳐 고차원 벡터로 바뀝니다. 임베딩은 단어의 의미를 숫자로 압축한 표현으로, 모델이 문맥을 이해할 수 있게 해주는 첫 번째 변환입니다.

임베딩된 토큰 시퀀스에 위치 정보를 더해주는 것이 포지셔널 인코딩(Positional Encoding)입니다. 트랜스포머는 순서를 고려하지 않기 때문에, 각 토큰의 위치를 사인·코사인 함수 등으로 인코딩해 더합니다. 이렇게 준비된 입력이 모델의 본체인 트랜스포머(Transformer) 아키텍처로 들어갑니다.

트랜스포머는 인코더(Encoder)와 디코더(Decoder)로 구성되는데, 최근 LLM은 주로 디코더-온리 구조(예: GPT 계열)를 사용합니다.

트랜스포머의 핵심은 어텐션 메커니즘(Attention Mechanism), 특히 셀프 어텐션(Self-Attention)입니다. 여기서 쿼리(Query), 키(Key), 벨류(Value)가 등장합니다. 각 토큰의 임베딩은 세 개의 서로 다른 선형 변환을 거쳐 쿼리·키·벨류 벡터로 분리됩니다.

쿼리는 “내가 지금 무엇을 찾고 있는가”를,
키는 “다른 토큰들이 가진 정보의 색인”을,
벨류는 “실제로 전달할 정보”를 각각 담당합니다.
쿼리와 키의 내적(유사도 계산)으로 어텐션 스코어를 구하고, 이를 소프트맥스로 정규화한 뒤 벨류에 가중합을 적용해 출력합니다. 이 과정을 스케일드 닷-프로덕트 어텐션(Scaled Dot-Product Attention)이라고 합니다. 실전에서는 여러 개의 어텐션 헤드를 병렬로 사용하는 멀티 헤드 어텐션(Multi-Head Attention)을 통해 다양한 관점에서 문맥을 포착합니다.

각 어텐션 층 뒤에는 피드 포워드 네트워크(Feed-Forward Network)가 붙습니다. 이는 간단한 두 층짜리 완전 연결 신경망으로, 각 토큰을 개별적으로 비선형 변환합니다. 어텐션과 피드 포워드 사이, 그리고 층과 층 사이에는 레이어 노멀라이제이션(Layer Normalization)이 적용되어 학습을 안정화합니다.

이제 훈련 과정으로 넘어가 보죠.

모델이 처음부터 대량의 텍스트로 학습하는 단계를 프리트레이닝(Pre-training)이라고 합니다. 주로 다음 토큰 예측(Next Token Prediction)이라는 자기 지도 학습을 통해 진행되며, 손실 함수(Loss Function)는 보통 크로스 엔트로피(Cross-Entropy)를 사용합니다.

학습 시 전체 데이터를 여러 번 반복하는데, 한 번 전체 데이터를 보는 것을 에포크(Epoch)라고 부릅니다. 실제로는 데이터를 작은 묶음으로 나누어 업데이트하는데, 이 묶음을 배치(Batch), 배치의 크기를 Batch Size라고 합니다.

가중치를 업데이트하는 핵심 알고리즘이 역전파(Backpropagation)입니다. 출력에서 계산된 손실을 거꾸로 전파하며 각 파라미터의 그래디언트(Gradient)를 구하고, 옵티마이저(Optimizer) (대표적으로 AdamW)가 학습률(Learning Rate)을 적용해 가중치를 조정합니다. 학습 중 모델이 훈련 데이터에만 과도하게 맞춰지는 현상을 과적합(Overfitting)이라고 하며, 이를 막기 위해 정규화 기법(드롭아웃, 가중치 감쇠 등)을 사용합니다.

프리트레이닝 이후 특정 작업에 맞게 추가 학습하는 과정을 파인튜닝(Fine-tuning)이라고 합니다. 최근에는 인간 피드백을 활용한 RLHF(Reinforcement Learning from Human Feedback)도 중요한 훈련 기법입니다.

마지막으로 추론(Inference) 단계입니다.

훈련된 모델이 새로운 프롬프트(Prompt)를 받아 출력을 생성하는 과정을 순전파(Forward Pass)라고 합니다. 효율성을 위해 과거 키·벨류를 저장해 재사용하는 KV 캐시(KV Cache) 기법이 필수적입니다.

한 번에 생성할 토큰의 수를 컨텍스트 윈도우(Context Window)가 제한하며, 이를 초과하면 정보가 잘립니다.

생성 전략으로는 단순히 가장 높은 확률의 토큰을 선택하는 그리디 디코딩(Greedy Decoding), 여러 후보를 동시에 고려하는 빔 서치(Beam Search), 그리고 확률 분포를 조절하는 샘플링(Sampling) 기법이 있습니다.

샘플링에서는 온도(Temperature)로 확률 분포를 부드럽게 하거나, Top-k / Top-p로 상위 후보들만 고려합니다. 실제 서비스에서는 모델 크기를 줄이고 속도를 높이기 위해 양자화(Quantization) (가중치를 8비트나 4비트로 압축)를 자주 적용합니다.

이렇게 토큰에서 시작해 쿼리·키·벨류를 거쳐 트랜스포머 전체 구조, 훈련 알고리즘, 추론 최적화까지 핵심 용어를 모두 연결지어 설명했습니다. 이 용어들은 서로 유기적으로 연결되어 있으며, LLM을 이해하는 데 가장 중요한 기초가 됩니다.


[부록] KV Cache Optimization은 LLM(대형 언어 모델) 추론(Inference) 단계에서 가장 중요한 메모리·성능 병목 해결 기법입니다. 특히 자동회귀(Autoregressive) 생성 과정에서 필수적입니다.

KV Cache 기본 개념
트랜스포머 디코더에서 각 토큰을 생성할 때마다 Self-Attention을 수행합니다. 과거 모든 토큰의 Key(K)와 Value(V)를 다시 계산하면 비용이 O(n²)로 폭증합니다(여기서 n은 현재 시퀀스 길이).
KV Cache는 이전 단계에서 계산된 K와 V를 저장해 두고, 새 토큰의 Query(Q)만 계산해 재사용합니다. 이렇게 하면 각 스텝의 비용이 O(n)으로 줄어 선형으로 효율화됩니다.
• 장점: 추론 속도가 수십 배 빨라짐.
• 단점: 메모리 사용량이 시퀀스 길이 × 레이어 수 × 헤드 수 × 차원 × 바이트(보통 FP16=2바이트)만큼 선형 증가. 긴 컨텍스트(128K~1M 토큰)나 대규모 배치에서는 GPU 메모리의 대부분을 차지합니다.

주요 KV Cache Optimization 기법 (2026년 기준)
1 PagedAttention (vLLM의 핵심)
운영체제 페이징처럼 KV Cache를 고정 크기 블록으로 나누어 비연속(non-contiguous) 메모리에 저장합니다.
◦ 메모리 단편화(Fragmentation) 대폭 감소.
◦ Continuous Batching과 결합해 높은 처리량(Throughput) 달성.
◦ Prefix Sharing(공통 프롬프트 재사용)에도 유리.
현재 대부분의 고성능 서빙 엔진(vLLM, SGLang 등)의 기본 기술입니다.
2 Quantization (양자화)
KV Cache의 정밀도를 낮춰 메모리를 줄입니다.
◦ FP16 → FP8: 메모리 50% 감소, 속도 향상. vLLM에서 쉽게 지원.
◦ INT8 / FP8 / NVFP4 (NVIDIA Blackwell): 최근 4-bit까지 내려가도 정확도 손실이 매우 적음 (<1%).
◦ Per-tensor 또는 Per-head 양자화로 정밀도 관리.
→ 컨텍스트 길이 2배, 배치 크기 증가 효과.
3 Cache Eviction & Compression (압축·제거)
불필요하거나 중요도가 낮은 KV를 제거/압축합니다.
◦ H2O (Heavy-Hitter Oracle): Attention Score가 높은 “Heavy Hitter” 토큰만 유지.
◦ SnapKV: Observation Window(최근 토큰) + 중요 토큰 선택. H2O보다 더 정확함.
◦ StreamingLLM, Scissorhands, FastGen, Attention Matching: Attention Sink(초반 토큰 유지) + 동적 압축.
◦ 최근 50x 압축 기술(예: MIT Attention Matching)도 등장.
초장 컨텍스트(1M+ 토큰)에서 특히 강력합니다.
4 Architectural Optimization
모델 설계 단계부터 KV 크기를 줄임:
◦ Multi-Query Attention (MQA) / Grouped-Query Attention (GQA): KV 헤드 수를 Query 헤드보다 크게 줄임 (Llama 2/3, Mistral 등 표준).
◦ MLA (Multi-head Latent Attention): DeepSeek 등 최신 모델에서 사용.
◦ Sliding Window Attention (SWA): 로컬 윈도우만 보는 방식.
5 기타 고급 기법
◦ Prefix Caching / RadixAttention: 공통 프롬프트나 반복 패턴을 Trie-like 구조로 캐싱.
◦ Hybrid Memory (Offloading): KV를 GPU → CPU → Disk로 계층 이동.
◦ Dynamic Memory Sparsification: 추론 중 실시간 희소화.
◦ Preemption: 메모리 부족 시 요청 일시 중단 후 재개 (vLLM).
실제 효과 (2026년 기준)
• PagedAttention + FP8 KV + GQA 조합 → 4~40배 비용 감소 (긴 컨텍스트 기준).
메모리 병목이 줄면 동시 사용자 수(Throughput)와 최대 컨텍스트 길이가 크게 증가.
• NVIDIA TensorRT-LLM, vLLM 0.7+, SGLang 등 최신 엔진에서 대부분 기본 지원.

KV Cache Optimization은 단순한 “속도 트릭”이 아니라, LLM을 실서비스에서 economically하게 운영할 수 있게 만드는 1순위 최적화입니다. 특히 컨텍스트가 길어질수록( RAG, Agent, Long-document) 그 중요도가 기하급수적으로 커집니다. [끝]