본문 바로가기
기억하고 싶은 지식/인공지능

[전자/인공지능] Transformer란 무엇인가? LLM의 핵심 구조 이해하기

by Remember-me 2026. 10. 23.
반응형

안녕하세요. 어려운 기술을 차근차근 정리하는 리멤버미입니다.

LLM을 공부하다 보면 빠지지 않는 이름이 Transformer입니다. 문장을 숫자로 바꾸는 것만으로 어떻게 문맥을 파악하고 긴 답변을 만들 수 있을까요?

Transformer는 Attention으로 토큰 사이의 관계를 계산하고, 여러 신경망 블록을 거치며 문맥을 반영한 표현을 만드는 구조입니다. 2017년 「Attention Is All You Need」에서 제안되었으며, 원래는 번역을 위한 Encoder-Decoder 구조로 소개됐습니다. Transformer의 등장과 구조

1. 토큰 사이의 관계를 직접 계산한다

기존 순환신경망(RNN)은 이전 위치의 상태를 다음 위치로 전달하며 문장을 처리합니다. 한 문장 안에서 위치별 계산이 순차적으로 연결되는 구조입니다.

Transformer의 셀프 어텐션(Self-Attention)은 같은 시퀀스 안에서 허용된 토큰 사이의 관련성을 계산합니다. 앞쪽의 정보를 여러 순차 단계를 통해 전달해야 하는 부담을 줄이고, 떨어진 표현도 연결할 수 있습니다.

예를 들어 “민수는 회로도를 열었다. 그는 배선을 확인했다”에서 ‘그는’의 의미를 처리할 때 앞선 ‘민수’가 단서가 됩니다. 이는 설명용 예시이며, 모델의 특정 Attention 값을 측정한 결과는 아닙니다. Google의 Self-Attention 설명

2. 전체 구조를 먼저 살펴보자

텍스트를 생성하는 Decoder-only 모델의 기본 흐름은 다음처럼 나타낼 수 있습니다.

토큰의 숫자 표현 + 위치 정보 → Transformer 블록 반복 → 출력 변환 → 다음 토큰 확률

토큰 임베딩(Embedding)은 입력 토큰을 벡터로 바꿉니다. 여기에 순서도 반영해야 합니다. “고양이가 개를 쫓는다”와 “개가 고양이를 쫓는다”는 비슷한 단어를 써도 뜻이 다르기 때문입니다.

원래 Transformer는 임베딩에 위치 인코딩(Positional Encoding)을 더했습니다. 위치를 반영하는 구체적인 방식은 모델마다 달라질 수 있습니다. 원 논문의 위치 정보 설명

3. Attention의 Q, K, V는 무엇일까?

Self-Attention에서는 각 토큰의 현재 표현을 학습된 변환에 통과시켜 세 벡터를 만듭니다.

  • Query(Q): 어떤 정보를 찾을지 나타내는 표현.
  • Key(K): Query와 관련성을 비교하는 표현.
  • Value(V): 계산된 가중치로 합쳐질 정보.

Query와 Key를 비교해 점수를 구하고, Softmax로 가중치를 만든 뒤 Value를 가중합합니다. 대표적인 식은 다음과 같습니다.

Attention(Q, K, V) = softmax(QKᵀ / √dₖ)V

여기서 Kᵀ는 K의 전치, dₖ는 Query와 Key 벡터의 차원입니다. √dₖ로 나누는 항은 점수의 크기를 조절합니다. ‘정보를 찾는다’는 설명은 직관적인 비유이며, 실제로는 벡터와 행렬 연산입니다. 원 논문의 Scaled Dot-Product Attention

멀티헤드 어텐션(Multi-Head Attention)은 서로 다른 학습된 변환으로 이런 계산을 여러 갈래 수행하고 결과를 합칩니다. 여러 표현 공간에서 관계를 다룰 수 있지만, 각 head의 역할이 문법·의미 등으로 고정되어 있는 것은 아닙니다.

4. Attention 뒤에도 중요한 계산이 남아 있다

Transformer 블록에는 보통 다음 요소가 함께 들어갑니다.

  • Feed-Forward Network(FFN): 각 토큰의 특징을 비선형적으로 변환합니다.
  • Residual Connection: 입력을 처리 결과에 더해 깊은 층에서도 정보와 학습 신호가 전달되도록 돕습니다.
  • Normalization: 표현의 스케일을 조절해 학습을 돕습니다.

Attention이 토큰 사이의 정보를 섞는다면, 기본 FFN은 각 위치의 특징을 변환합니다. 이런 블록을 여러 층 쌓아 표현을 갱신합니다. Normalization의 위치 등 세부 구성은 모델에 따라 달라집니다. PyTorch의 Transformer 블록 설명

5. Encoder와 Decoder는 어떻게 다를까?

Transformer 계열은 크게 세 가지 형태로 구분할 수 있습니다.

구조 문맥 처리의 특징 대표적인 활용
Encoder-only 입력의 앞뒤 문맥을 함께 반영 문장 분류, 개체명 인식
Decoder-only 앞선 토큰을 바탕으로 다음 토큰 예측 문장·코드 생성
Encoder-Decoder 입력 표현을 만들고 이를 참조해 출력 생성 번역, 요약

많은 생성형 LLM은 Decoder-only 구조를 사용합니다. 별도의 Encoder 없이 입력 프롬프트와 생성된 토큰을 같은 시퀀스의 문맥으로 처리합니다. Hugging Face의 구조별 설명

이때 인과적 마스크(Causal Mask)로 각 위치가 뒤쪽 토큰을 참조하지 못하게 합니다. 학습할 때 정답에 해당하는 미래 토큰을 미리 보고 다음 토큰을 맞히는 일을 막는 것입니다. Causal Language Modeling 설명

6. 병렬 처리한다면서 왜 답변은 순서대로 나올까?

학습에서는 정답 시퀀스가 주어지므로, 마스크를 적용한 상태에서 여러 위치의 다음 토큰 예측을 병렬로 계산할 수 있습니다. RNN처럼 위치마다 이전 상태 계산이 끝날 때까지 기다리는 제약을 줄일 수 있습니다. 학습 중 Decoder의 입력과 마스크

하지만 일반적인 자기회귀 생성에서는 다음 입력에 쓸 출력 토큰이 아직 정해지지 않았습니다. 따라서 토큰을 선택하고, 그 결과를 반영해 다음 토큰을 생성하는 순서가 필요합니다.

즉 학습 중 위치별 병렬 계산과 답변 생성의 순차성은 서로 다른 이야기입니다.

Transformer는 토큰의 관계를 연결하는 Attention과 특징을 변환하는 신경망을 반복해 문맥을 처리합니다. 이 구조 위에 학습된 가중치와 다음 토큰 예측 과정이 더해지면, 우리가 사용하는 LLM의 텍스트 생성 흐름으로 이어집니다.

반응형

댓글