Transformer Explainer: LLM 아키텍처를 위한 시각적 가이드
Transformer Explainer는 GPT-2 (small) 아키텍처에 대한 대화형 시각적 가이드를 제공하여 대규모 언어 모델(LLM)이 텍스트를 처리하고 토큰을 예측하는 방식을 이해하기 쉽게 설명합니다.
조지아 공과대학교(Georgia Institute of Technology) 연구진이 개발한 이 도구를 사용하면 사용자가 직접 텍스트를 입력하고 토큰이 임베딩, 어텐션 메커니즘, MLP 레이어를 통과하는 과정을 실시간으로 관찰할 수 있습니다. 이 구현은 Andrej Karpathy의 nanoGPT에서 파생되어 ONNX Runtime으로 변환된 실시간 GPT-2 (small) 모델을 활용하며, Svelte와 D3.js를 통해 브라우저에서 직접 실행됩니다.
핵심 Transformer 아키텍처
텍스트 생성 Transformer는 다음 토큰 예측 원리에 따라 작동합니다. 이 아키텍처는 임베딩, Transformer 블록, 출력 확률이라는 세 가지 주요 단계로 구성됩니다.
1. 임베딩: 텍스트를 벡터로 변환
임베딩은 원시 텍스트를 모델이 처리할 수 있는 숫자 형식으로 변환하며, 네 단계의 과정을 거칩니다:
- 토큰화(Tokenization): 입력 텍스트를 토큰(단어 또는 하위 단어)으로 분할합니다. GPT-2는 50,257개의 고유 토큰으로 구성된 어휘 사전을 사용합니다.
- 토큰 임베딩(Token Embedding): 각 토큰은 약 3,900만 개의 파라미터 행렬에서 768차원 벡터로 매핑됩니다. 이를 통해 의미가 유사한 토큰은 고차원 공간에서 더 가깝게 배치됩니다.
- 위치 인코딩(Positional Encoding): Transformer는 시퀀스를 순차적이 아닌 병렬로 처리하기 때문에, 모델은 입력 순서를 유지하기 위해 각 토큰에 위치 정보를 추가합니다.
- 최종 임베딩(Final Embedding): 토큰과 위치 인코딩을 합산하여 최종 표현을 생성합니다.
2. Transformer 블록
GPT-2 (small)와 같은 모델은 여러 개의 Transformer 블록(총 12개)을 쌓아 입력에 대한 고차원 표현을 구축합니다. 각 블록은 두 가지 주요 구성 요소로 이루어져 있습니다:
멀티 헤드 셀프 어텐션(Multi-Head Self-Attention)
셀프 어텐션을 통해 토큰들은 서로 소통하고 문맥적 관계를 포착할 수 있습니다. 이는 Query(Q), Key(K), Value(V) 행렬을 통해 달성됩니다:
- Query (Q): 정보를 찾는 토큰을 나타냅니다.
- Key (K): 쿼리가 주목할 수 있는 잠재적 토큰을 나타냅니다.
- Value (V): Q와 K 사이의 일치가 발견되었을 때 추출될 실제 내용을 포함합니다.
이 벡터들은 여러 개의 "헤드"(GPT-2 small에서는 12개)로 분할되어 다양한 언어적 특징(예: 통사적 vs 의미적)을 병렬로 포착합니다. 모델은 **마스크된 셀프 어텐션(Masked Self-Attention)**을 사용하여 학습 및 추론 중에 모델이 미래의 토큰을 "엿보는" 것을 방지하며, 현재 위치의 왼쪽에 있는 토큰에만 집중하도록 합니다.
다층 퍼셉트론(MLP)
어텐션이 토큰 간의 정보를 라우팅하는 동안, MLP는 각 토큰의 표현을 독립적으로 정교화합니다. 이는 GELU 활성화 함수를 사용하는 두 번의 선형 변환을 거칩니다. 첫 번째 변환은 복잡한 패턴을 포착하기 위해 차원을 768에서 3072로 확장하고, 두 번째 변환은 다시 768로 압축합니다.
3. 출력 확률
마지막 Transformer 블록을 통과한 후, 표현은 50,257차원 공간(어휘 사전 크기)으로 투영되어 **로짓(logits)**을 생성합니다. 이 로짓은 소프트맥스(softmax) 함수를 통해 확률 분포로 변환됩니다.
출력의 다양성을 제어하기 위해 샘플링 중에 세 가지 하이퍼파라미터가 사용됩니다:
- Temperature: 확률 분포를 조정합니다. 낮은 온도(<1)는 모델을 결정론적으로 만들고, 높은 온도(>1)는 무작위성과 "창의성"을 증가시킵니다.
- Top-k: 후보군을 가장 확률이 높은 $k$개의 토큰으로 제한합니다.
- Top-p: 누적 확률이 임계값 $p$를 초과하는 가장 작은 토큰 집합으로 후보군을 제한합니다.
보조 성능 기능
학습 중 안정성과 효율성을 보장하기 위해 Transformer는 여러 보조 메커니즘을 사용합니다:
- 레이어 정규화(Layer Normalization): 내부 공변량 변화를 방지하기 위해 특징 전반에 걸쳐 입력을 정규화하여 학습을 안정화합니다.
- 드롭아웃(Dropout): 과적합을 방지하기 위해 학습 중에 무작위로 뉴런을 비활성화하는 정규화 기법입니다.
- 잔차 연결(Residual Connections): 레이어의 입력을 출력에 더하는 지름길을 만들어 심층 네트워크에서 기울기 소실 문제를 완화합니다.
기술적 통찰 및 커뮤니티 관점
Transformer Explainer에 대한 커뮤니티 논의는 이 아키텍처의 몇 가지 중요한 뉘앙스를 강조합니다:
동적 네트워크 구성
커뮤니티에서 얻은 한 가지 통찰은 어텐션 메커니즘이 추론 중에 본질적으로 작고 단일 레이어인 네트워크를 동적으로 구성한다는 점입니다. 사용자 @andblac은 다음과 같이 언급했습니다:
"어텐션 행렬은 이미 계산되어 있으며 Value 벡터와 곱해집니다. 이는 어텐션 행렬이 해당 레이어의 가중치를 형성하는 일반 네트워크의 Dense 레이어를 통해 Value 벡터를 밀어넣는 것과 정확히 동일하게 작동합니다." — @andblac
아키텍처의 진화
GPT-2는 훌륭한 교육적 기준점이 되지만, 사용자들은 현대의 LLM이 진화했음을 경고했습니다. 특히 GPT-2에서 사용된 절대적 위치 인코딩은 최신 모델에서 RoPE(Rotary Positional Embeddings)와 같은 더 유연한 방식으로 대체되었습니다.
자원 집약도
브라우저에서 실시간 모델을 실행하기 때문에 일부 사용자는 상당한 하드웨어 부하를 보고했으며, Chromebook과 같은 저사양 기기에서는 높은 RAM 사용량(최대 2.2GB)과 성능 저하가 발생한다는 보고가 있었습니다.
Sources
관련
- Dispatch
- 프로젝트
- Dispatch
- Dispatch
- Dispatch