retriever가 문서를 찾아 augmented prompt를 만들고 LLM이 답을 낸다 — 여러 번 본 흐름이다. 이제 한 단계 더 깊이 들어가 왜 이게 되는가를 묻는다. LLM은 어떻게 검색된 정보를 이해할까? Module 4의 첫 편은 LLM의 토대인 트랜스포머(Transformer) 구조다.
1. 배경과 Encoder–Decoder
트랜스포머는 2017년 논문 "Attention is All You Need"에서 기계 번역을 풀기 위해 제안됐다. 두 부품 — encoder와 decoder — 로 이뤄졌다.
https://arxiv.org/abs/1706.03762
Attention Is All You Need
The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new
arxiv.org

encoder는 원문(예: 독일어 문단)을 처리해 의미를 깊이 이해하고, decoder는 그 이해를 바탕으로 새 영어 문장을 생성한다. 대부분의 LLM은 텍스트 생성만 하므로 decoder만 쓴다. encoder는 풍부한 의미 표현을 만드는 게 목적이라 주로 임베딩 모델 안에 쓰인다.

2. 프롬프트 처리 흐름 ① — 토큰화와 임베딩
프롬프트가 LLM(=decoder)을 통과하는 여정을 따라가 보자. 먼저 프롬프트가 토큰으로 쪼개진다. 각 토큰에는 그 의미의 첫 추정치(first guess)인 dense 벡터가 부여된다(이 값은 정적이라, 같은 토큰엔 늘 같은 첫 추정 벡터). 그다음 프롬프트 내 위치를 담은 위치 벡터(positional vector)가 더해진다. 이 둘이 함께 처리로 넘어간다.

3. ② Attention — 어디에 주목할까
이제 토큰들이 attention(어텐션) 메커니즘에 들어간다. 각 토큰은 다른 모든 토큰의 의미와 위치를 보고, 어느 토큰에 가장 주목할지 정한다. attention은 곧 "어떤 토큰이 내 의미에 가장 큰 영향을 주는가"를 정하는 것이다. "the brown dog sat next to the red fox"에서 dog는 자신과 직접 관련된 brown에 70%, sat에 20%, 나머지 10%를 다른 토큰에 분배하는 식이다.

이 주의를 배분하는 장치가 attention head다. 대부분의 모델은 서로 다른 관계 유형에 특화된 여러 개의 attention head를 갖는다 — 하나는 사물↔묘사(fox↔brown), 다른 하나는 공간 관계(fox↔sat, next)에 특화되는 식이다. 실제로는 사람이 정한 관계가 아니라 학습으로 얻은 복잡·추상적 관계다. 소형 모델은 8~16개, 대형은 100개 이상을 쓴다. 덕분에 모든 토큰이 서로의 관계를 여러 관점에서 동시에 추적해, 아주 상세한 관계 표현이 만들어진다.

4. ③ Feed Forward — 의미 갱신
모든 토큰이 attention 점수를 매기면, 정보는 feed-forward(피드포워드) 단계로 들어간다. 이 단계가 LLM에서 파라미터가 가장 많은 부분이다. 각 토큰의 원래 임베딩·위치·attention을 바탕으로 갱신된 벡터(second guess)를 만든다 — 이제 다른 토큰들의 맥락이 반영된 의미다.

5. 반복 정제
대부분의 LLM은 이 과정 전체를 반복한다. second guess 벡터를 다시 attention·feed-forward에 넣어 더 정제된 third guess를 만들고, 보통 8~64회 이 레이어들을 통과하며 이해를 점차 다듬는다.

6. 생성 — 다음 토큰 고르기
정제된 벡터를 바탕으로 모델은 "학습 데이터 기준, 다음에 올 법한 토큰은?"을 묻는다. 이는 vocabulary 전체에 대한 확률 분포로 계산된다. 소수 토큰만 높은 확률을 갖고 나머지는 사실상 0이다. 모델은 이 분포에서 확률에 가중해 하나를 무작위로 고른다. 고른 토큰을 프롬프트 끝에 붙이고, 다음 토큰을 생성하려면 전 과정을 다시 반복한다(이번엔 방금 생성한 토큰까지 포함). 이 반복은 토큰 한도에 이르거나 종료 토큰(EOS)이 나올 때까지 계속되고, 마지막에 텍스트로 디토큰화되어 사용자에게 반환된다.

7. RAG 관점에서의 시사점
이 구조는 RAG 설계의 많은 부분을 설명한다.
- 왜 RAG가 되는가 — attention의 처리와 feed-forward에 담긴 세상 지식 덕분에, LLM은 프롬프트에 추가된 정보의 의미·관련성을 깊이 이해한다.
- 여전히 랜덤하다 — 의미 있는 정보를 넣어도 LLM이 그 정보를 안 쓰기로 무작위 선택할 수 있다. 답을 검색 정보에 근거하도록 통제하는 일이 여전히 중요하다.
- 계산이 비싸다 — 토큰 하나 생성에도 큰 연산이 들고, 프롬프트·응답이 길수록 비용이 커진다(각 토큰이 다른 모든 토큰을 봐야 하므로). RAG 비용의 대부분이 이 트랜스포머 실행에서 나온다.


다음 글에서는 이 "확률 분포에서 토큰을 고르는" 과정을 조절하는 방법 — LLM 샘플링 전략(temperature·top-k·top-p 등) — 을 다룬다.
'AI > RAG' 카테고리의 다른 글
| 어떤 LLM을 고를까 (0) | 2026.07.03 |
|---|---|
| LLM Sampling 전략 (0) | 2026.07.03 |
| Reranking (0) | 2026.07.03 |
| Cross Encoder & ColBERT (0) | 2026.07.02 |
| Query Parsing (0) | 2026.07.02 |