트랜스포머를 내부에서, 입력부터 출력 토큰까지 해부하기
SGAEIA 연구 시리즈 — 기사 22
Aridio Silva
독립 연구원, 브라질
SGAEIA(Secure Governed Autonomous Edge Intelligence Architecture) 창시자
ORCID: 0009-0008-2411-6995
DOI: https://doi.org/10.5281/zenodo.23540392
목차
- 초록 (Abstract)
- 서론 및 범위 (Introduction and scope)
- 추론 흐름 개요 (Overview of the inference flow)
- 입력 및 토큰화 (Input and tokenization)
- 임베딩 및 위치 인코딩 (Embeddings and positional encoding)
- 셀프 어텐션 (Self-attention)
- 멀티 헤드 어텐션 및 마스크 (Multi-head attention and masks)
- 잔차 연결 및 정규화 (Residual connection and normalization)
- 피드포워드 네트워크 (Feed-forward network, FFN)
- 다층 스태킹 (Multilayer stacking)
- 가중치: 그것이 무엇이며 어떻게 학습되는가 (Weights: what they are and how they are learned)
- 출력: 로짓(logits), 소프트맥스(softmax), 및 디코딩 (Output: logits, softmax, and decoding)
- 사례 연구: _banco_의 모호성 해소 및 메커니즘 해석 (Case study: disambiguating banco and interpreting the mechanism)
- 창발적 속성 및 스케일링 법칙 (Emergent properties and scaling laws)
- 한계점, 주의사항 및 열린 논쟁 (Limitations, caveats, and open debates)
- 추론에서 통제된 실행으로: SGAEIA에 대한 시사점 (From inference to governed execution: implications for SGAEIA)
- 결론 (Conclusion)
- 용어집 (Glossary)
- 참고 문헌 / 레퍼런스 (Bibliography / References)
- 저자 소개 (About the Author)
- 연구 및 프로젝트 자료 (Research & Project Resources)
- 그림 (Figures)
- 라이선스 (License)
- 시리즈 연속성 (Series continuity)
- 추천 인용 (Suggested citation)
초록
본 기사는 입력 토큰화부터 다음 토큰 선택에 이르기까지 Transformer 기반 언어 모델의 추론(inference) 과정을 기술적이고 형식적이며 교육적인 관점에서 설명합니다. 임베딩(embeddings), 위치 인코딩(positional encoding), 셀프 어텐션(self-attention), 마스크(masks), 잔차 연결(residual connections), 정규화(normalization), 피드포워드 네트워크(feed-forward networks), 로짓(logits), 소프트맥스(softmax), 그리고 디코딩 전략을 설명하기 위해 공식, 재현 가능한 수치 예시, 여섯 개의 그림을 결합합니다. 모호한 포르투갈어 단어 ‘banco’의 소규모 사례 연구는 문맥이 어떻게 표현(representations)을 변화시키는지 보여주며, 실제 훈련된 모델의 동작을 재현한다고 주장하지는 않습니다. 마지막으로, 본 기사는 모델 추론과 에이전트 시스템의 통제된 실행을 구분하고, SGAEIA에 대한 함의를 공적이고 비규범적인 해석을 제시합니다.
키워드: AI; Transformer; 추론(inference); LLM; 어텐션(attention); 토큰화(tokenization); 임베딩(embeddings); 소프트맥스(softmax); 창발적 속성(emergent properties); SGAEIA.
1. 서론 및 범위
본 섹션의 목적. 이 섹션은 어떤 기술을 소개하기 전에 기사의 목표, 관례, 한계를 설정합니다. 이는 뒤따르는 숫자와 그림들이 교육적인 것이기 때문에 필요하며, 이러한 고지 없이는 실제 모델의 측정치로 오해될 수 있습니다.
이 문서는 입력 텍스트부터 출력 토큰까지 Transformer 아키텍처(Vaswani et al., 2017)를 기반으로 하는 언어 모델 내부에서 발생하는 과정을 단계별로 설명합니다. 반복되는 예시는 모호한 포르투갈어 문장 “O banco estava lotado” (“은행이/좌석이 붐볐다”)입니다. 목표는 ‘블랙박스’를 이해하기 쉽게 만드는 것입니다: 각 단계는 개념, 수학적 메커니즘, 채택된 기술, 수치 예시 및 이를 뒷받침하는 참고 자료를 제시합니다.
관례. 본문 내 참고 문헌은 (저자, 연도) 형식으로 작성되며 섹션 18에 나열되어 있습니다. 기술 용어는 처음 등장할 때 굵게 표시되고 용어집(섹션 17)에서 정의됩니다. 행렬은 대문자(Q, K, V)로 표기하며, 차원은 n (시퀀스 길이), d_model (모델 차원), d_k (각 헤드의 차원)으로 작성합니다.
수치 예시에 대한 참고 사항. 섹션 3–11의 값들은 교육적 목적으로 축소된 차원과 수동으로 선택한 벡터를 사용하여 Python/NumPy로 계산되었습니다. 이 값들은 메커니즘의 산술을 보여줄 뿐이며, 실제 학습된 모델의 측정치가 아닙니다. 실제 모델에서는 가중치(weights)가 학습되며 차원 또한 훨씬 더 큽니다 (예: 원래 Transformer에서 d_model = 512, BERT-base에서 768).
범위. 이 글은 인코더 전용(encoder-only), 디코더 전용(decoder-only), 그리고 인코더–디코더 변형을 포괄하여 트랜스포머를 일반적인 용어로 설명합니다.
© 2026 Aridio Silva — 독립 연구원 · ORCID 0009-0008-2411-6995
2. 추론 흐름 개요
이 흐름에 각 단계가 이 순서로 포함된 이유. 각 단계는 이전 단계에서 남겨진 문제를 해결합니다. 네트워크는 오직 숫자(토큰화)에 대해서만 작동하며, 정수 ID는 기하학적 구조나 순서를 가지지 않습니다 (임베딩 및 위치). 각 토큰은 문맥이 필요하고 (어텐션), 이 문맥적 혼합물은 변환되고, 안정화되며, 깊이에 걸쳐 반복되어야 합니다 (FFN, Add & Norm, 스태킹). 동작은 학습해야 하는 가중치에 의존하며 (학습), 최종 결과는 토큰이 되어야 합니다 (로짓, 소프트맥스 및 디코딩). 다음 표는 각 단계가 해결하는 문제와 이 단계가 없을 경우 무엇이 빠지게 될지를 요약합니다.
| 단계(Stage) | 해결하는 문제(Problem it solves) | 이것이 없을 경우(Without it) |
|---|
| 토큰화(Tokenization) | 네트워크는 숫자만 처리할 수 있고, 어휘집은 유한해야 함 | 숫자 입력 자체가 없음; 희귀 단어는 표현을 갖지 못하거나 시퀀스가 너무 길어짐 |
| ... | | |
| **추론(Inference)**이란 이미 훈련된 모델의 가중치(weights)를 고정하여 입력을 받아 출력을 생성하는 과정입니다. 생성형 모델에서 이 실행은 순환적(cyclical)입니다: 모델이 다음 토큰에 대한 확률 분포를 계산하고, 하나의 토큰을 선택하여 입력에 추가하며, 이 주기가 반복됩니다 (자기회귀 생성(autoregressive generation)). 모든 레이어를 거치는 완전한 계산을 **순전파(forward pass)**라고 합니다. | | |
Figure 1 — Complete inference flow in a Transformer
원래 아키텍처는 인코더(encoder)와 디코더(decoder)를 결합합니다 (Vaswani et al., 2017). 현재 사용되는 두 가지 파생 계열이 지배적입니다: 양방향으로 시퀀스를 관찰하는 인코더 전용(encoder-only) 모델(예: BERT (Devlin et al., 2019))과 왼쪽에서 오른쪽으로 텍스트를 생성하는 디코더 전용(decoder-only) 모델(예: GPT 시리즈 (Radford et al., 2018; Radford et al., 2019; Brown et al., 2020))입니다. 다음 섹션에서 설명하는 메커니즘은 이 모든 모델에 적용되며, 주요 차이점은 어텐션 마스크(attention mask) (섹션 6)입니다.
| 단계(Stage) | 연산(Operation) | 주요 기술(Main technique) | 핵심 참고 문헌(Key reference) |
|---|
| 1. 토큰화(Tokenization) | 텍스트 → 정수 ID | BPE, SentencePiece | Sennrich et al., 2016; Kudo and Richardson, 2018 |
| ... | | | |
| 훈련(Training) (섹션 10)은 가중치를 정의하는 과정입니다. 추론(Inference)은 이 가중치만을 사용합니다. | | | |
3. 단계 1 — 입력 및 토큰화
이 단계가 필요한 이유. 컴퓨터는 숫자에 산술 연산을 적용합니다. 텍스트를 ID로 변환하지 않으면 네트워크에 입력할 것이 없습니다. 어휘집(vocabulary)은 유한하고 고정되어야 합니다. 왜냐하면 출력 계층(output layer)이 토큰당 하나의 차원을 가지고 있기 때문입니다 (Section 11). 서브워드 토큰화(Subword tokenization)는 실제적인 트레이드오프를 해결합니다. 전체 단어는 표현되지 않은 새로운 용어를 남기는 반면, 개별 문자는 긴 시퀀스를 생성하고 어텐션 비용을 증가시키는데, 이 비용은 시퀀스 길이의 제곱에 비례하여 증가합니다 (Section 5; Sennrich et al., 2016).**
개념. 신경망(Neural networks)은 텍스트가 아닌 숫자로 작동합니다. **토큰화(Tokenization)**는 문자열을 일련의 토큰(어휘 단위, vocabulary units)으로 변환하고, 각 토큰을 정수 ID로 변환하는 과정입니다. **어휘집(vocabulary)**은 훈련 전에 설정되는 유한한 집합이며, 일반적으로 수만 개의 항목을 포함합니다.
서브워드를 사용하는 이유. 전체 단어 어휘집은 희귀하거나 새로운 단어를 표현하지 못합니다 (어휘 범위를 벗어난 문제, Out-of-vocabulary, 또는 OOV 문제). 반면 문자 어휘집은 지나치게 긴 시퀀스를 생성합니다. **서브워드 단위(Subword units)**는 이러한 극단적인 상황의 균형을 맞춥니다: 자주 사용되는 단어는 하나의 토큰이 되고, 희귀한 단어는 재사용 가능한 조각들로 분해됩니다 (Sennrich et al., 2016).
논의된 기술.
- BPE (Byte Pair Encoding): 문자를 시작점으로 하여 가장 빈번하게 인접한 쌍을 반복적으로 새로운 심볼로 병합합니다. 이는 Gage(1994)에 의해 압축 알고리즘으로 제안되었으며, Sennrich et al.(2016)에 의해 기계 번역에 적용되었습니다. 바이트 레벨 변형은 GPT 시리즈 모델(Radford et al., 2019)에서 사용됩니다.
- WordPiece: 단순 빈도수가 아닌 언어 모델 우도(language-model likelihood) 증가량에 따라 병합을 선택합니다 (Schuster and Nakajima, 2012; Wu et al., 2016). 이는 BERT(Devlin et al., 2019)에서 사용됩니다.
- Unigram LM 및 SentencePiece: Unigram은 대규모 어휘집에서 기여도가 가장 낮은 항목들을 가지치기합니다 (Kudo, 2018). SentencePiece는 공백을 이용한 사전 토큰화 없이 원시 텍스트(raw text)에 직접 BPE와 Unigram을 구현하여 언어 독립적입니다 (Kudo and Richardson, 2018).
수치 예시 (교육용 코퍼스에서의 BPE). 다음 단어 빈도수를 가진 코퍼스를 고려해 봅시다. 여기서 </w>는 단어의 끝을 나타냅니다: low(5), lower(2), newest(6), widest(3). 초기에는 각 단어가 문자열 시퀀스로 구성됩니다. 매 단계마다 가장 빈번한 쌍이 병합되며, 동률일 경우 발생 순서에 따라 해결합니다. 코드는 다음과 같은 결과를 생성합니다:
| 단계 | 병합된 쌍 | 쌍 빈도수 | 새로운 심볼 |
|---|
| 1 | e + s | 9 | es |
| ... | | | |
여덟 번의 병합 후, _newest_는 단일 토큰(newest</w>)이 되고, _low_는 low 토큰 뒤에 </w>가 오는 형태로 구성되며, _widest_는 w, i, d, est</w>로 분해됩니다. 전체로서 한 번도 관찰되지 않은 단어도 _newest_에서 학습된 est</w> 조각을 재사용합니다.
반복되는 문장에 대한 적용. 실제 어휘에서는 포르투갈어 “O banco estava lotado”가 단어가 흔하기 때문에 보통 몇 개의 토큰만 생성합니다. 본 기사에서는 4단어 = 4토큰이라는 단순화를 채택했습니다: [O] [banco] [estava] [lotado]이며, 예시적인 정수 ID를 사용합니다 (예를 들어, 12, 4871, 905, 23019; 실제 값은 토크나이저에 따라 다름). _banco_의 ID는 단어의 두 가지 의미 모두에서 동일하며: 토큰화는 모호성을 해소하지 못합니다. 구별은 어텐션 레이어(Section 12)에서만 나타납니다.
4. 스테이지 2 — 임베딩 및 위치 인코딩 (Embeddings and positional encoding)
이 단계가 필요한 이유. 정수 ID는 임의적인 라벨입니다: ID 4871이 ID 4872보다 의미적으로 더 유사하지 않습니다. 임베딩(embedding)은 각 라벨을 벡터로 변환하여 학습이 유사성을 정리할 수 있게 하며 (Bengio et al., 2003; Mikolov et al., 2013), 합산이나 내적(dot products)과 같은 후속 연산은 오직 벡터에 대해서만 의미를 가집니다. 위치 인코딩(positional encoding)이 필요한 이유는 어텐션 메커니즘(attention) 자체가 순서를 본질적으로 사용하지 않기 때문입니다: “the cat eats the fish”와 “the fish eats the cat”는 동일한 토큰을 포함하며, 위치 정보가 없으면 마스크되지 않은 어텐션은 이들을 순열에 따라 동등하게 취급합니다 (Vaswani et al., 2017). 인과적으로 마스킹된 디코더(causally masked decoders)에서는 일부 위치 정보가 가시적인 토큰의 개수로부터 추론될 수 있지만, 명시적인 위치 인코딩은 여전히 표준 관행입니다.
임베딩(Embedding). 각 ID는 차원 $|V| imes d ext{ extunderscore model}$의 가중치 행렬 $W_E$에서 한 개의 행을 선택하여, 토큰을 나타내는 **밀집 벡터(dense vector)**를 생성합니다. 단어를 유사한 사용 빈도를 반영하는 연속적인 벡터로 표현하자는 아이디어는 신경 언어 모델(Bengio et al., 2003)과 word2vec(Mikolov et al., 2013)에서 비롯되었습니다. 트랜스포머(Transformer)에서는 이 행렬이 나머지 모델들과 함께 공동으로 학습되며, 벡터들은 $ ext{√}d ext{ extunderscore model}$로 곱해지고, 동일한 행렬이 종종 출력 투영(output projection)과 공유됩니다 (Vaswani et al., 2017; Press and Wolf, 2017). 핵심은 입력 임베딩이 **정적(static)**이라는 점입니다: _banco_는 모든 문장에서 동일한 벡터를 받습니다. 문맥화(Contextualization)는 나중에 어텐션(attention)을 통해 이루어집니다.
위치 인코딩(Positional encoding). 어텐션만으로는 입력을 집합(set)으로 취급합니다: 토큰의 순서를 바꾸면 순서에 관계없이 출력이 동일하게 바뀝니다. 따라서 위치에 의존하는 벡터가 임베딩에 추가됩니다. 원래 제안은 기하학적으로 변화하는 주파수의 사인 함수를 사용했습니다 (Vaswani et al., 2017):
$$PE_{(pos, 2i)} = ext{sin}igg(rac{pos}{10000^{2i/d ext{ extunderscore model}}}igg), ext{ } ext{ } PE_{(pos, 2i+1)} = ext{cos}igg(rac{pos}{10000^{2i/d ext{ extunderscore model}}}igg)$$
각 차원 쌍은 서로 다른 주파수로 진동하며, 위치 간의 차이는 벡터의 선형 변환으로 표현될 수 있어 상대적 거리 관계 학습을 용이하게 합니다 (Vaswani et al., 2017).
문헌에서 사용된 대안들(Alternatives used in the literature).