트랜스포머, 시각적으로 이해하기
트랜스포머(Transformer)는 2017년 논문 'Attention is All You Need'로 소개된 신경망 구조로, GPT·Llama·Gemini 등 주요 생성형 AI 모델의 기반이 되는 핵심 기술입니다. 이 글은 토크나이징, 임베딩, 셀프 어텐션, MLP 등 트랜스포머의 핵심 구성요소를 GPT-2(small) 모델 예시로 시각적으로 설명합니다.
트랜스포머란 무엇인가?
트랜스포머(Transformer)는 인공지능 접근 방식을 근본적으로 바꾼 신경망 아키텍처입니다. 2017년 발표된 획기적인 논문 "Attention is All You Need"에서 처음 소개된 이후, 딥러닝 모델의 표준 아키텍처로 자리잡았으며 OpenAI의 GPT, Meta의 Llama, Google의 Gemini 같은 텍스트 생성 모델을 구동하고 있습니다. 텍스트를 넘어 오디오 생성, 이미지 인식, 단백질 구조 예측, 심지어 게임 플레이에도 적용되며 다양한 분야에서 그 다재다능함을 입증하고 있습니다.
근본적으로 텍스트 생성 트랜스포머 모델은 다음 토큰 예측(next-token prediction) 원리로 작동합니다. 사용자가 텍스트 프롬프트를 입력하면, 그 입력 다음에 올 가장 확률이 높은 토큰(단어 또는 단어의 일부)은 무엇인지 예측하는 것입니다. 트랜스포머의 핵심 혁신과 강력함은 셀프 어텐션(self-attention) 메커니즘 사용에 있으며, 이를 통해 전체 시퀀스를 처리하고 이전 아키텍처보다 효과적으로 장거리 의존성을 포착할 수 있습니다.
GPT-2 계열 모델은 텍스트 생성 트랜스포머의 대표적인 예입니다. 'Transformer Explainer'는 1억 2,400만 개 파라미터를 가진 GPT-2 (small) 모델로 구동됩니다. 최신이나 가장 강력한 모델은 아니지만, 현재 최고 수준 모델들과 동일한 아키텍처 구성요소와 원리를 많이 공유하고 있어 기초를 이해하기에 이상적인 출발점입니다.
트랜스포머 아키텍처
모든 텍스트 생성 트랜스포머는 다음 세 가지 핵심 구성요소로 이루어져 있습니다:
임베딩(Embedding): 텍스트 입력은 토큰이라 불리는 더 작은 단위(단어 또는 하위 단어)로 나뉩니다. 이 토큰들은 단어의 의미적 의미를 담은 임베딩이라는 수치 벡터로 변환됩니다.
트랜스포머 블록(Transformer Block): 입력 데이터를 처리하고 변환하는 모델의 기본 빌딩 블록입니다. 각 블록은 다음을 포함합니다:
- 어텐션 메커니즘(Attention Mechanism): 트랜스포머 블록의 핵심 구성요소로, 토큰이 다른 토큰과 소통하여 문맥 정보와 단어 간 관계를 포착할 수 있게 합니다.
- MLP(다층 퍼셉트론) 계층: 각 토큰을 독립적으로 처리하는 피드포워드 네트워크입니다. 어텐션 계층의 목표가 토큰 간 정보 전달이라면, MLP의 목표는 각 토큰의 표현을 정제하는 것입니다.
출력 확률(Output Probabilities): 마지막 선형(linear) 및 소프트맥스(softmax) 계층이 처리된 임베딩을 확률로 변환하여, 모델이 시퀀스에서 다음 토큰을 예측할 수 있게 합니다.
임베딩
트랜스포머 모델로 텍스트를 생성한다고 가정해 봅시다. "Data visualization empowers users to"(데이터 시각화는 사용자에게 힘을 실어준다)와 같은 프롬프트를 입력합니다. 이 입력은 모델이 이해하고 처리할 수 있는 형식으로 변환되어야 합니다. 여기서 임베딩이 등장합니다. 임베딩은 텍스트를 모델이 다룰 수 있는 수치 표현으로 변환합니다.
프롬프트를 임베딩으로 변환하려면 다음 단계를 거칩니다: 1) 입력 토크나이징, 2) 토큰 임베딩 획득, 3) 위치 정보 추가, 4) 토큰 인코딩과 위치 인코딩을 합산하여 최종 임베딩 획득.
각 단계가 어떻게 이루어지는지 살펴보겠습니다.
그림 1. 임베딩 계층 뷰를 확장하여 입력 프롬프트가 벡터 표현으로 변환되는 과정을 보여줍니다. 이 과정은 (1) 토크나이징, (2) 토큰 임베딩, (3) 위치 인코딩, (4) 최종 임베딩을 포함합니다.
1단계: 토크나이징
토크나이징은 입력 텍스트를 토큰이라 불리는 더 작고 다루기 쉬운 조각으로 나누는 과정입니다. 이 토큰은 단어 또는 하위 단어일 수 있습니다. "Data"와 "visualization"은 각각 고유한 토큰에 해당하지만, "empowers"는 두 개의 토큰으로 나뉩니다. 토큰의 전체 어휘 집합은 모델 학습 전에 결정되며, GPT-2의 어휘는 50,257개의 고유 토큰로 구성되어 있습니다.
이제 입력 텍스트를 고유 ID를 가진 토큰으로 나누었으니, 임베딩에서 이들의 벡터 표현을 얻을 수 있습니다.
2단계: 토큰 임베딩
GPT-2 (small)는 어휘의 각 토큰을 768차원 벡터로 표현합니다. 벡터의 차원은... (원문 여기서 중단)