참조 사이트
- SKALA 4기 - LLM과 Transformer 아키텍처 (SK AX SKALA)
- Attention Is All You Need (Vaswani et al., 2017)
- OpenAI GPT-4 Technical Report
개요
SKALA 4기 과정 중'LLM과 Transformer 아키텍처'를 학습하며, LLM(대형 언어 모델)의 전체 데이터 처리 흐름과 동작 원리를 단계별로 깊이 있게 탐구하는 [LLM Pipeline] 시리즈를 시작한다.
본격적으로 각 세부 모듈(토크나이저, 임베딩, 어텐션 등)을 세세하게 들여다보기 전에, "우리가 자연어로 질문을 던졌을 때 신경망 내부에서 어떤 단계를 거쳐 다음 단어가 출력되는가?"에 대한 전체 아키텍처 조감도(Big Picture)와 5단계 데이터 파이프라인을 먼저 정리해 보았다.

1. LLM의 본질: 결국 "다음 단어 맞히기" 기계이다
ChatGPT나 Claude 같은 최신 LLM은 마치 사람처럼 고도의 논리적 추론을 수행하며 대화하는 것처럼 느껴진다. 그러나 기계적인 구조와 연산 관점에서 바라본 LLM의 본질은 의외로 매우 명확하고 단순하다.
"지금까지 주어진 단어들의 나열(Context)을 보고, 바로 다음에 올 가장 그럴듯한 단어(Next Token)의 확률을 계산하는 확률적 예측기(Next-Token Predictor)"
LLM은 한 번에 완성된 문장이나 문단을 통째로 뚝딱 만들어내는 것이 아니다. 단어(정확히는 토큰)를 하나씩 순차적으로 예측하고, 자신이 방금 출력한 단어를 다시 입력값 끝에 이어 붙여 다음 단어를 예측하는 자기회귀(Auto-regressive) 루프를 반복적으로 수행하며 점진적으로 문장을 완성해 나간다.
[입력] "오늘 날씨가 정말" -> [모델] -> [출력] "좋네요"
[다음 입력] "오늘 날씨가 정말 좋네요" -> [모델] -> [출력] "."
[다음 입력] "오늘 날씨가 정말 좋네요." -> [모델] -> [출력] "<s>" (종료)
2. LLM E2E 데이터 처리 5대 파이프라인
사람의 눈으로 보는 자연어 텍스트가 신경망 내부로 들어가 연산되고 최종 다음 단어로 출력되기까지의 End-to-End 과정은 크게 5단계의 파이프라인으로 구성된다.

① 1단계: 토크나이징 (Tokenization)
- 역할: 기계는 사람이 쓰는 자연어 문자열을 직접 이해하거나 사칙연산할 수 없다. 따라서 문장을 의미 있는 최소 단위인 부단어(Subword) 조각으로 분절하고, 사전에 약속된 어휘 사전(Vocabulary)을 참조하여 각각의 조각을 고유한 정수 번호(Token ID)로 일대일 변환한다.
- 현대 LLM 표준: 주로 바이트 단위로 기본 어휘를 삼는 Byte-level BPE (BBPE) 방식을 채택하여 미등록 단어(
[UNK]) 문제 없이 안전하게 텍스트를 정수 시퀀스로 인코딩한다.
② 2단계: 임베딩 및 위치 인코딩 (Embedding & Positional Encoding)
- 역할: 토크나이저가 만든 정수 번호(Token ID)를 컴퓨터가 다차원적인 의미 관계를 연산할 수 있도록 고차원 실수 벡터(밀집 벡터) 공간의 좌표로 변환(Embedding)한다.
- 위치 인코딩: 트랜스포머 아키텍처는 단어들을 한 번에 병렬 처리하는 특성상 '어순(단어의 위치 정보)'을 인지하지 못한다. 이를 보완하기 위해 각 토큰의 위치 정보를 계산하는 특수 함수(Sinusoidal Encoding 또는 현대 LLM의 표준인 RoPE; Rotary Position Embedding)를 활용하여 위치 정보를 임베딩 벡터와 1:1로 결합해 준다. 이 과정을 통해 최종적으로 모델 연산의 출발점이 되는 3차원 입력 텐서 [B, T, D]가 완성된다.
③ 3단계: 트랜스포머 블록 연산 (Transformer Core Engine)
- 역할: 모델의 본체이자 두뇌 역할을 하는 심장부이다.
- 동작: 입력된 텐서는 단어 간의 연관성과 맥락을 계산하는 Self-Attention(Q, K, V 행렬 연산) 구조를 통과한다. 단어 간의 상호 관계(어디에 시선을 집중할지)를 조율한 뒤, 비선형 표현력을 극대화하는 FFN(Feed-Forward Network)을 거친다. 이 연산 과정은 안정적인 신호 흐름을 돕는 LayerNorm 및 잔차 연결(Residual Connection)과 함께 모델 크기에 따라 수십~수백 번 반복 통과하며 문맥이 풍부하게 녹아든 고차원 은닉 상태(Hidden State) 텐서를 만들어낸다.
④ 4단계: 언어 모델 출력 헤드 (LM Head & Logits)
- 역할: 트랜스포머 블록을 모두 거쳐 나온 최종 깊은 문맥 텐서(Hidden State)를 사람이 해석할 수 있는 후보군 정보로 복원하기 위한 선형 분류기(Linear Layer)를 거치는 단계이다.
- 동작: 이 출력층(LM Head)은 모델이 갖고 있는 어휘 사전의 전체 크기(Vocab Size, 대략 50,000 ~ 200,000개)와 동일한 차원으로 매핑하여, 다음 단어 자리에 올 모든 후보 단어별 예측 점수(Logits)를 계산한다. 점수가 높을수록 다음 자리에 등장할 확률이 높다는 뜻이다.
⑤ 5단계: 디코딩 및 샘플링 (Decoding & Sampling)
- 역할: 산출된 날것의 점수인 Logits를 수학적인 확률로 변환하고 최종 1개의 토큰을 확정하는 마지막 단계이다.
- 동작: 먼저 Logits에 Softmax 함수를 취해 모든 후보 단어의 확률 총합이 1.0(100%)이 되도록 확률 분포로 변환한다. 단순히 가장 확률이 높은 단어만 매번 뽑으면(Greedy Search) 매우 단조롭고 반복적인 문장만 생성되므로, 창의성과 무작위성을 제어하는 디코딩 파라미터를 적용해 최종 다음 토큰 1개를 선택(Sampling)한다.
Temperature: 확률 분포의 평탄화 정도를 조절하여 모델의 창의성 및 다양성을 조정한다.Top-k: 확률이 높은 상위 k개의 토큰 후보군만 남기고 나머지는 배제한다.Top-p: 누적 확률이 p 이하가 되는 상위 후보군만 유동적으로 필터링한다.
- 복원: 최종 선택된 다음 정수 Token ID는 디토크나이저(Detokenize)를 거쳐 사람이 읽을 수 있는 문자열로 결합 복원된다.
3. 데이터 형태와 텐서 차원(Tensor Shape)의 변화 요약
백엔드 개발자 및 머신러닝 엔지니어 관점에서 파이프라인의 각 단계마다 데이터가 어떤 모습의 텐서 모양(Shape)으로 변화하고 변환되는지 직관적으로 매핑하는 것은 필수적이다.

| 파이프라인 매핑 | 단계별 데이터 형태 | 텐서 차원 (Tensor Shape) | 의미와 구체적 예시 |
|---|---|---|---|
| 0. 준비 단계 | 원본 자연어 텍스트 | String (텍스트 자료형) | "오늘 날씨가 정말" |
| 1. 토크나이징 | 정수 ID 배열 (인코딩) | [Batch, Time(Seq_len)] |
[8, 4] (8개의 배치 문장, 각 문장당 4개의 토큰 분절 상태) |
| 2. 임베딩 & 위치 | 실수 밀집 텐서 | [Batch, Time, Dimension] |
[8, 4, 768] (토큰 1개마다 고차원 의미 좌표 768개가 부여된 입력값) |
| 3. 트랜스포머 블록 | 심층 문맥 텐서 | [Batch, Time, Dimension] |
[8, 4, 768] (셀프 어텐션을 통과하며 주변 맥락이 고도로 융합된 상태) |
| 4. 출력층 헤드 | 전체 어휘 사전 점수표 | [Batch, Time, Vocab_size] |
[8, 4, 50257] (사전에 있는 5만여 개 단어 후보군 각각에 매겨진 예측 점수) |
| 5. 디코딩 & 샘플링 | 최종 선택 다음 단어 ID | [Batch, 1] $-> String |
확률 샘플링을 거쳐 "좋네요"를 선별 후 디코딩하여 문자열 결합 |
💡 차원 기호의 의미 파악하기
- B (Batch Size): 모델이 한 번에 병렬로 동시에 처리하는 문장의 개수이다.
- T (Time / Sequence Length): 문장에 포함된 토큰의 총 개수(컨텍스트 길이)이다.
- D (Embedding Dimension): 1개의 토큰을 수치화된 의미적 특징값으로 표현하는 고차원 공간 벡터의 크기이다.
- V (Vocab Size): 토크나이저가 구분할 수 있도록 모델 학습 단계에서 미리 구축한 고유 어휘 사전의 총 크기이다.
4. 학습(Training)과 추론(Inference)의 차이
파이프라인을 온전히 이해하려면, 모델이 지식을 배우고 가중치를 찾아가는 학습(Training) 단계와, 완성된 모델이 실제로 말을 생성하는 추론(Inference) 단계의 하드웨어적·알고리즘적 구동 방식의 핵심적인 차이를 인지해야 한다.

┌────────────────────────────────────────────────────────┐
│ 학습 (Training): 모든 토큰의 정답을 병렬로 한 번에 연산 │
│ [ x_1, x_2, x_3 ] ───> [ 병렬 연산 ] ───> Loss 계산 │
└────────────────────────────────────────────────────────┘
VS
┌────────────────────────────────────────────────────────┐
│ 추론 (Inference): 한 단어씩 예측해서 입력에 다시 넣는 루프│
│ [ x_1 ] ───> 예측 ───> [ x_1, y_1 ] ───> 예측 ───> ... │
└────────────────────────────────────────────────────────┘
- 학습 (Training - 병렬 연산)
- 방식: 수조 개 단위의 거대한 텍스트 코퍼스로부터 모델을 훈련시킬 때는 교사 강요(Teacher Forcing) 방식을 사용한다. 입력 텍스트(x)와 한 칸씩 뒤로 밀린 정답 시퀀스(y)를 모델에 동시에 주입한다.
- 원리: 트랜스포머는 문장 안에서 미래 단어를 엿보지 못하게 만드는 인과적 마스킹(Causal Masking) 메커니즘을 적용하여, 입력 단어들의 모든 다음 자리 단어들을 병렬로 한 번에 예측한다.
- 최종 오차 계산: 모델이 예측한 확률 분포와 실제 정답 토큰 간의 오차(Cross-Entropy Loss)를 계산하고, 이 오차를 기반으로 역전파(Backpropagation)를 수행하여 수십억~수천억 개의 가중치(Weights) 매트릭스를 업데이트한다.
- 추론 (Inference - 순차적 자기회귀 연산)
- 방식: 가중치가 고정된 상태에서 사용자의 프롬프트를 처리하여 한 글자씩 실시간으로 생성해 내는 과정이다.
- 원리: 입력이 주어지면 파이프라인 전체를 통과시켜 딱 '다음 1개'의 토큰만 출력한다. 그리고 방금 생성해 낸 그 토큰을 기존 입력 문장에 결합하여 다시 파이프라인의 입력으로 집어넣는 순차적인 자기회귀(Auto-regressive) 루프를 돈다.
- 종료: 이 과정은 모델 스스로 문장의 끝을 알리는 특수 종료 토큰(
</s>또는<|endoftext|>)을 생성해 낼 때까지 반복적으로 연산된다. - 엔지니어링 참고: 매 루프마다 이전 단어들의 어텐션 연산 결과를 처음부터 다시 계산하면 극심한 속도 저하가 발생하기 때문에, 실무에서는 연산된 K, V 값을 메모리에 캐싱해 두는 KV 캐시(KV Cache) 기술을 활용해 추론 효율을 극대화한다.
5. [LLM Pipeline 시리즈] 연재 로드맵
앞으로 본 연재 블로그 시리즈를 통해 위의 E2E 5대 파이프라인 속 핵심 원리와 코드를 차근차근 깊게 파헤쳐 볼 예정이다.
- 📌 [0편] LLM 전체 아키텍처와 5단계 데이터 파이프라인 조감도 (현재 글)
- 📌 [1편] 자연어 처리의 첫 번째 관문: 토크나이저(Tokenizer)와 BPE 알고리즘
- 📌 [2편] LLM 학습을 위한 데이터 파이프라인: Sliding Window & Stride 데이터로더
- 📌 [3편] Token ID에서 고차원 텐서로: 토큰 임베딩과 위치 인코딩(RoPE)의 원리
- 📌 [4편] 트랜스포머: Q·K·V 수식 분해와 4대 어텐션(Attention) 메커니즘
- 📌 [5편] 트랜스포머: 텐서의 심층 순전파 흐름: Residual Connection, LayerNorm, 그리고 FFN
- 📌 [6편] 로짓에서 사람의 언어로: Softmax와 디코딩 전략 (Temperature, Top-k, Top-p)
(작성이 완료되면 하나씩 링크를 삽입하겠습니다)
요약
- LLM은 마법 같은 유기적 사고를 하는 생명체가 아니라, "텍스트 → 정수 ID → 고차원 텐서 → 문맥 어텐션 → 확률 분포 → 다음 토큰 선택"으로 끝없이 이어지는 극도로 정교하고 수학적으로 정의된 데이터 변환 파이프라인의 결과물이다.
- 이 전체적인 파이프라인과 데이터의 조감도(Big Picture)를 항상 머릿속에 담아둔 상태에서 세부 모듈을 파고든다면, 각 단계의 기술들이 왜 존재하고 극복하려던 한계가 무엇인지 훨씬 입체적으로 파악할 수 있다.
다음 편에서는 전체 파이프라인의 첫 관문인 '토크나이저와 BPE 알고리즘'에 대한 내용으로 본격적인 기술 깊게 읽기를 시작할 예정이다.
틀린 부분이 있거나 인용한 부분에 대해 문제가 있을 시
댓글로 알려주시면 감사하겠습니다.
'Programming > Dev notes' 카테고리의 다른 글
| [LLM Pipeline 4] 트랜스포머: Q·K·V 수식 분해와 4대 어텐션(Attention) 메커니즘 (0) | 2026.08.31 |
|---|---|
| [LLM Pipeline 3] 토큰 임베딩(Token Embedding)과 위치 인코딩(Positional Encoding & RoPE) (0) | 2026.08.28 |
| [LLM Pipeline 2] Sliding Window와 Stride 기반 데이터로더(DataLoader) 파이프라인 (0) | 2026.08.28 |
| [LLM Pipeline 1] 토크나이저(Tokenizer)와 BPE 알고리즘 (0) | 2026.08.27 |
| [Dev notes] Spring Boot 실행 방식 비교 (bootRun, bootJar, java -jar, Docker) (0) | 2026.08.03 |
