거대 언어 모델(LLM)이 텍스트를 생성하는 과정은 단순한 확률 게임을 넘어, 수조 개의 파라미터가 정밀하게 맞물려 돌아가는 거대한 기계 장치와 같습니다.
토큰화(Tokenization)부터 시작하여 임베딩(Embedding), 트랜스포머 블록(Transformer Block)에서의 복잡한 어텐션 연산, 그리고 최종적인 샘플링(Sampling)까지. 각 단계에서 어떤 연산이 일어나고 어디서 병목이 발생하는지 직관적으로 이해할 수 있는 아키텍처 구조도를 소개합니다.
특히 성능 최적화의 핵심인 **KV 캐시(KV Cache)**와 최근의 속도 향상 기법인 **추측 디코딩(Speculative Decoding)**의 원리를 한눈에 확인해 보세요.
LLM 텍스트 생성 아키텍처
(연산 병목)
임베딩 레이어
임베딩
(seq_len x d_model)
4096차원 벡터
트랜스포머 블록
(x N 레이어)멀티헤드 셀프 어텐션
피드포워드 네트워크 (FFN)
(d_model x d_ff)
(d_ff x d_model)
토큰을 하나씩 생성
(메모리 병목)
KV 캐시 (레이어별)
→ 재계산 방지
어텐션 연산을 합쳐 HBM 읽기 감소
선형층 + 소프트맥스
(LM 헤드)
(d_model x 128K)
(어휘 크기 = 128K)
샘플링 전략
INT8/INT4 가중치로
메모리 2~4배 절감
추측 디코딩
(속도 트릭)후보 토큰 k개를
빠르게 생성
병렬 검증
생성