EveryDay.DevUp

[AI] Transformer 본문

AI

[AI] Transformer

EveryDay.DevUp 2025. 6. 14. 18:07
Transformer 아키텍처 완벽 가이드

Transformer 아키텍처

🏗️ Transformer란?

💡 핵심 개념

Transformer는 "Attention is All You Need" 논문(2017)에서 제안된 혁신적인 아키텍처입니다. RNN이나 CNN 없이 오직 Attention 메커니즘만으로 구성되어, 순차 처리의 한계를 극복하고 완전한 병렬 처리를 가능하게 했습니다.

🎯 혁신적인 변화

🔄 기존 방식 vs Transformer

🐌 기존 RNN/LSTM

순차적 처리
느린 훈련
장거리 의존성 어려움

⚡ Transformer

병렬 처리
빠른 훈련
모든 위치 직접 연결

"순서대로 하나씩"에서 "모든 것을 동시에"로 패러다임 전환!

🏗️ Transformer 전체 구조

입력
문장
📥 ENCODER
• Multi-Head Attention
• Feed-Forward
• Residual + Norm
• Positional Encoding
📤 DECODER
• Masked Attention
• Cross Attention
• Feed-Forward
• Residual + Norm
출력
문장
📥 인코더 핵심 부품
Multi-Head Attention: 문장 내 모든 단어 관계 분석
Feed-Forward: 각 단어 개별 변환
Residual + Norm: 정보 보존 + 안정화
Positional Encoding: 위치 정보 추가
📤 디코더 핵심 부품
Masked Attention: 이전 단어들만 참고
Cross Attention: 인코더 정보 활용
Feed-Forward: 각 위치 개별 변환
Residual + Norm: 정보 보존 + 안정화
📝 한국어: "어제 비가 오는 날씨에도 불구하고 열심히 공부한 학생이 시험에서 좋은 성적을 받았다"
🎯 영어: "Despite the rainy weather yesterday, the student who studied hard received good grades on the exam"

🧩 Transformer의 6가지 핵심 부품

📚 모든 예시는 동일한 문장으로 설명

"어제 비가 오는 날씨에도 불구하고 열심히 공부한 학생이 시험에서 좋은 성적을 받았다"
1. 🎯 Multi-Head Attention

역할: 여러 개의 attention을 병렬로 실행하여 다양한 관점에서 정보를 처리합니다.

🎬 8개 카메라가 동시에 다른 관점에서 촬영

Head 1: "학생이" ↔ "받았다"
주어-동사 관계
Head 2: "어제" ↔ "날씨"
시간-상황 관계
Head 3: "불구하고" ↔ "열심히"
역접-강조 관계
Head 4: "공부한" ↔ "성적을"
원인-결과 관계
2. 📍 Positional Encoding

역할: 순서 정보가 없는 Attention에 위치 정보를 추가합니다.

🏷️ 각 단어에 위치 번호표 부착

어제
1번
비가
2번
오는
3번
날씨에도
4번
...
...

→ "어제 비가 오는"과 "비가 어제 오는"을 구분 가능!

3. 🔄 Residual Connection

역할: 입력을 출력에 더해서 정보 손실을 방지합니다.

🚫 Residual Connection이 없는 경우

1층: "어제 비가 오는 날씨에도..." → "학생이 성적이 좋았다" (세부사항 손실)
2층: "학생이 성적이 좋았다" → "학생 성적 좋음" (더 많은 손실)
→ "어제", "비가 오는", "불구하고", "열심히" 등 중요 맥락 모두 손실!

✅ Residual Connection이 있는 경우

각 층: 원본 전체 문장 + 새로 분석된 정보 = 완전한 정보 보존
→ 모든 세부 맥락 유지 + 각 층의 분석 정보 누적!
4. 📏 Layer Normalization

역할: 각 층의 출력을 정규화하여 안정적인 학습을 돕습니다.

⚖️ 각 단어의 데이터 크기를 일정하게 조정

조정 전: "어제"=1000, "불구하고"=0.01, "학생이"=500 (크기 제각각)
조정 후: "어제"=0.7, "불구하고"=0.2, "학생이"=0.8 (모두 0~1 범위)

→ 모든 단어가 공평하게 학습에 참여할 수 있게 됨!

5. 🧠 Feed-Forward Network

역할: 각 위치의 정보를 독립적으로 변환하는 완전연결 신경망입니다.

🏭 각 단어마다 전용 가공 공장

"어제" 공장: 시간 표현 → 과거 맥락 + 시간적 거리감
"불구하고" 공장: 역접 표현 → 강한 의지 + 극복 의미
"학생이" 공장: 주어 → 행위자 + 학습 주체

→ 각 단어가 문맥에 맞는 더 깊은 의미를 갖게 됨!

6. 📚 인코더-디코더 구조

역할: 인코더는 입력을 이해하고, 디코더는 출력을 생성합니다.

📞 통역 과정

인코더
"어제 비가 오는..."
→ 완전 이해 & 분석
디코더
"Despite the rainy..."
→ 단계별 생성

✅ 장점

  • 완전한 병렬 처리
  • 뛰어난 성능
  • 전이 학습 가능
  • 확장성 우수

❌ 단점

  • 높은 계산 비용
  • 대량의 데이터 필요
  • 메모리 사용량 많음
  • 복잡한 구조

🌟 Transformer 기반 혁신 모델들

  • BERT (2018): 양방향 언어 이해의 혁신
  • GPT 시리즈 (2018-2024): 텍스트 생성의 새로운 기준
  • T5 (2019): 모든 NLP 태스크를 텍스트 생성으로 통합
  • Vision Transformer (2020): 이미지 분야까지 확장
  • ChatGPT/Claude: 인간과 자연스러운 대화 가능
  • DALL-E: 텍스트로 이미지 생성

'AI' 카테고리의 다른 글

[AI] Gradient Descent 옵티마이저의 진화  (2) 2025.06.14
[AI] Attention  (2) 2025.06.14
[AI] RNN모델부터 Seq2Seq 모델 까지  (7) 2025.06.14
[AI] AI의 발전 과정  (0) 2025.06.14
[AI] 텍스트 임베딩  (4) 2025.06.14