일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- eecs 498
- Mask Processing
- real-time object detection
- Reinforcement Learning
- LSTM
- opencv
- 딥러닝
- dynamic programming
- MinHeap
- DP
- MySQL
- YoLO
- ubuntu
- BFS
- two-stage detector
- One-Stage Detector
- AlexNet
- 머신러닝
- C++
- machine learning
- NLP
- Python
- deep learning
- image processing
- dfs
- r-cnn
- 그래프 이론
- 강화학습
- 백준
- CNN
- Today
- Total
JINWOOJUNG
[ Transformer to LLaMA ] Transformer..02 본문
본 포스팅은 서울대학교 강필성 교수님의 Transformer to LLaMA 강의자료 및 강의를 기반으로
공부한 내용을 정리하는 포스팅입니다.
https://www.youtube.com/watch?v=Yk1tV_cXMMU&t=1021s
Transformer는 Attention Mechanism을 바탕으로 NLP, CV 등 다양한 분야에 새로운 발전을 이끌어 낸 딥러닝 모델입니다. 본 포스팅에 앞서, Attnetion Mechanism을 공부하지 않은 경우 아래 포스팅에서 먼저 공부 하시는 것을 추천합니다.
https://jinwoo-jung.tistory.com/148
[EECS 498] Lecture 17: Attention
본 포스팅은 Michigan Univ.의 EECS 498 강의를 수강하면서 공부한 내용을 정리하는 포스팅입니다.https://jinwoo-jung.tistory.com/147 [EECS 498] Lecture 16: Recurrent Neural Networks본 포스팅은 Michigan Univ.의 EECS 498
jinwoo-jung.com
Transformer를 공부하는데 있어서 강필설 교수님의 본 강의 뿐만 아니라, 앞서 다룬 Michigan Justin Johnson 교수님의 EECS 498의 Attention(Lecture 17) 및 서울대학교 이준석교수님의 Machine Learning&Deep Learning 1(Lecture 19,20) 역시 매우 뛰어난 강의의고, 3개의 강의를 모두 듣고 공부하며 최종적으로 정리하는 포스팅입니다.
https://jinwoo-jung.tistory.com/158
[ Transformer to LLaMA ] Transformer..01
본 포스팅은 서울대학교 강필성 교수님의 Transformer to LLaMA 강의자료 및 강의를 기반으로 공부한 내용을 정리하는 포스팅입니다. https://www.youtube.com/watch?v=Yk1tV_cXMMU&t=1021s08-2: Transformer Transformer는 At
jinwoo-jung.com
Residual Connection & Layer Normalization
Transformer의 Encoder와 Decoder 모두에는 Residual Connection이 존재한다. 이 개념은 Transformer에서 처음 등장한 것이 아니라, ResNet(Residual Network)에서 먼저 제안되었으며, 딥러닝 모델의 깊이에 따른 학습 안정성 문제, 특히 Vanishing Gradient 문제를 완화하기 위한 기법이다.
Residual Connection은 입력 $X$에 대해 어떤 연산 $을 수행한 뒤, 이를 다시 입력값 $와 더하는 방식이다. 즉, Self-Attention 과정을 $f$로 표현한다면, $$Output = f(X) + X$$와 같이 Input을 그데로 Output으로 전달하게 된다.
Transformer에서는 이 &f(X)가 Self-Attention 또는 Feed Forward Network와 같은 주요 블록들이고, 이렇게 연결함으로써 입력의 정보를 직접 다음 블록으로 전달하게 된다. 특히, 이 구조의 장점은 Gradient를 역전파할 때 나타난다.
$$\frac{d}{dX} (f(X)+X) = f'(X) + 1$$
이 되기 때문에 $f'(X)$가 매우 작은 값이여도 Gradient의 흐름을 유지해서 Vanishing Gradient Problem을 방지할 수 있다.
Transformer는 Batch Normalization이 아닌 Layer Normalization을 수행한다. 이를 통해 학습 초기의 Gradient의 불안정성을 줄이고, Gradient의 흐름을 잘 전달하도록 해 준다.
그렇다면 왜 Layer Normalization을 수행하는 것일까? 기존에 자주 사용되는 Batch Normalization은 Batch 전체의 통계를 이용해서 정규화 하게 된다. 즉, 같은 위치의 여러 Sample을 비교한다. 하지만, Transformer 기반의 Task는 문장 단위, 즉 한 Sequence의 각 Token을 독립적으로 처리하는 구조이다. 따라서 Layer Normalization이 요구된다.
Point-wise Feed-Forward Networks
각 Encoder Block 내에서 Self-Attention의 Output이 Residual과 더해져 Layer Normalization을 수행한 뒤, Feed-Forward Networks를 통과하게 된다.
FFN은 Fully connected Feed-Forward Network로, 각 위치에 대해서 독립적으로 수행된다. FFNN은 다음과 같이 구성되어 있으며, Activation Function으로 ReLU가 사용된다.
$$FFN(x) = max(0, xW_1 + b_1)W_2 + b_2$$
FFN은 같은 Encoder Block 내에서는 동일한 가중치를 가지며, Cross-token Dependency 없이 자기 자신에 대한 표현을 변환하는 과정이다.
FFN의 동작 과정은 1x1 크기, 2048(512) 개의 Kernel에 의한 Convolution이라고 생각하면 이해하기 쉽다.
여기까지가 Transformer의 Encoder 구조에 대한 설명이다.
Masked Multi-Head Attention
Decoder의 Multi-head Attention은 Encoder와 달리 Masked Multi-head Attention이 사용된다.
Decoding 단계에서는 Qurrent Query Token 보다 뒤에 위치한 Token 들의 정보는 활용하지 않기 때문에, Score를 무한대로 설정해서 Softmax를 통과한 Attention Weight가 0이 되도록 Mask를 설정한다. 즉, 오른쪽과 같이 Score를 0으로 설정해서 정보를 활용하지 못하도록 하는 것이다.
이러한 과정은 Sequence로 처리할 필요 없이 아래와 같이 Softmax를 통과하기 전, Score를 계산한 Matrix의 상 삼각행렬을 모두 무한대로 설정함으로써 쉽게 처리할 수 있다.
Multi-Head Attention with Encoder Outputs
Masked Multi-head Attention을 통과한 Output과 Encoder Output 사이의 Multi-head Attention이 Multi-Head Attention with Encoder Outputs이다.
이때, Encoder Output으로 부터 Key, Value Vector를 생성하고, Masked Multi-head Attention을 통과한 Output으로 부터 Query Vector를 생성하게 된다. 이는 Q,K,V Vector의 의미를 생각하면 당연한건데, 현재 우리가 대답해야 하는 문장 중 이전까지 대답 한 정보들은 Decoder에 저장되어 있고, 대답을 위한 질문의 정보는 Encoder Output에 존재하기 때문이다.
즉, Decoder는 이전까지의 생성 문장(Query)를 가지고, 입력 문장의 정보(Key, Value)에 얼마나 집중할지를 결정하는 구조이다.
Final Linear and Softmax Layer
마지막 Decoder Output은 Linear Layer를 거치고, Softmax를 통해 다음으로 출력할 단어를 결정하게 된다.
Linear Layer의 경우 단순한 FFNN 형태의 Layer로, 모든 단어들의 출력 확률을 계산하기 위해 차원을 늘리는 역할이다. 그 결과를 Softmax Layer를 통과시킴으로써 각 단어에 대한 출력 확률을 계산할 수 있다.
Experiment
다른 Model에 비해, Transformer가 월등한 성능을 보임을 확인할 수 있다.
만약, BLEU를 모르면은 아래 포스팅을 통해 공부하길 바란다. 실제로 BLEU는 0~1의 범위를 가지지만, 일반적으로 100을 곱해서 사용된다.
https://jinwoo-jung.tistory.com/159
[ NLP ] BLEU Score: 기계번역 평가지표
NLP에서 기계 번역의 성능이 얼마나 뛰어난가를 측정하기 위해 사용되는 평가지표 중 하나가 BLEU(Bilingual Evaluation Understudy)이다. 오늘은 BLEU를 계산하는 방법에 대해 알아보자. BLEUBLEU는 기계 번역
jinwoo-jung.com
아래는 Transformer의 Hyperparameter를 나타내는 표이다. 이러한 Hyperparameter를 Data/Task에 맞게 자동적으로 설정하는 연구가 AutoML 연구분야이다.
Reference
https://jalammar.github.io/illustrated-transformer/
The Illustrated Transformer
Discussions: Hacker News (65 points, 4 comments), Reddit r/MachineLearning (29 points, 3 comments) Translations: Arabic, Chinese (Simplified) 1, Chinese (Simplified) 2, French 1, French 2, Italian, Japanese, Korean, Persian, Russian, Spanish 1, Spanish 2,
jalammar.github.io
'NLP, LLM, Multi-modal' 카테고리의 다른 글
[ NLP ] BLEU Score: 기계번역 평가지표 (0) | 2025.04.25 |
---|---|
[ Transformer to LLaMA ] Transformer..01 (0) | 2025.04.25 |
[ VLM ] VLM Tasks와 Benchmarks..(1) (0) | 2025.04.15 |
[ NLP ] 어간 추출(Stemming) & 표제어 추출(Lemmatization) (0) | 2025.04.14 |
[ NLP ] Cleaning & Normalization (0) | 2025.04.14 |