Twowinn
[AI Research] 02 - Attention Is All You Need 본문
작성 목적
딥러닝기초 수업에서 'Attention Mechanism'에 대해 배우면서 근간이 되. 핵심 아키텍처인 'Transformer'가 처음 제시된 아주 유명한 논문이고 Q, K, V의 기본 개념을 정립하기 위해 정리해 보았다.
Abstract
원문 핵심 문장
“ We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. ”
Part 01. Introduction
[기존 RNN의 치명적인 한계 : 순차적 연산의 늪]
- 언어 모델이나 기계 번역 같은 Sequence 모델링 분야에서는 오랫동안 RNN, 특히 LSTM과 GRU가 핵심 기술로 굳건히 자리 잡고 있었다.
- 하지만 이 순환 모델들은 태생적인 한계를 지니고 있다. 바로 입력과 출력 시퀀스의 위치에 따라 연산을 '순차적'으로 처리해야 한다는 점이다.
- 즉, 현재 시점의 은닉 상태(hidden state)인 h_t를 생성하려면 반드시 이전 상태인 h_t-1의 연산이 끝날 때까지 기다려야 한다.
- 이러한 순차적 특성은 학습 과정에서의 병렬 처리(Parallelization)를 근본적으로 가로막는다. 문장의 길이가 길어질수록 메모리 제약이 심해져 연산 효율이 극도로 떨어진다.
- RNN의 특징인 순차적 연산이라는 근본적인 족쇄는 여전히 풀리지 않았다.
[Attention의 등장, 그러나 여전한 RNN의 그늘]
- 이후 시퀀스의 거리와 상관없이 중요한 부분에만 집중하여 의존성을 모델링할 수 있는 'Attention Mechanism'이 등장하며 큰 주목을 받았다.
- 그러나 아주 극소수의 예외를 제외하면, 이 훌륭한 어텐션 메커니즘조차 RNN에 얹혀서 사용되고 있었다.
[구원자 'Transformer'의 과감한 선전포고]
- 본 논문은 여기서 판을 완전히 엎어버린다. 순환(Recurrence) 구조를 과감히 내다 버리고, 입력과 출력 간의 의존성을 파악하기 위해 오직 '어텐션 메커니즘'에만 100% 의존하는 새로운 아키텍처, Transformer를 제안한다.
- 족쇄 같던 순차 연산을 걷어낸 트랜스포머는 압도적인 수준의 병렬 처리를 가능하게 만들었다.
- 결과는 놀라웠다. 8개의 P100 GPU로 단 12시간만 학습시키고도, 기계 번역 품질에서 기존의 모든 기록을 갈아치우며 새로운 최고 성능(State-of-the-art)을 달성해 냈다.
Part 02. Background
[CNN 기반 모델들의 시도와 한계 : 거리가 멀어지면 답이 없다]
- 순차적 계산을 줄이려는 목표는 Extended Neural GPU, ByteNet, ConvS2S 같은 모델들의 기반이 되었다.
- 이 모델들은 CNN을 기본 구성 요소로 사용하여, 모든 입력 및 출력 위치에 대한 은닉 표현(hidden representations)을 병렬로 계산한다.
- 하지만 치명적인 문제가 있다. 두 임의의 위치 간 신호를 연결하는 데 필요한 연산 횟수가 위치 간 거리에 따라 (ConvS2S는 선형적으로, ByteNet은 로그 형태로) 증가한다는 것이다.
- 이렇게 거리에 따라 연산량이 늘어나면, 결국 멀리 떨어진 위치 간의 의존성을 학습하기가 매우 어려워진다.
- 반면 Transformer는 이 연산 횟수를 거리와 무관하게 상수 수준으로 확 줄여버렸다.
- 어텐션 가중치가 적용된 위치들을 평균 내면서 유효 해상도(effective resolution)가 감소하는 부작용이 있지만, 이는 모델 구조에서 제시하는 Multi-Head Attention을 통해 상쇄한다.
[Self-Attention의 가능성과 Transformer의 의의]
- 셀프 어텐션은 단일 시퀀스 내의 여러 다른 위치들을 서로 연결하여 해당 시퀀스의 표현(representation)을 계산하는 어텐션 메커니즘이다.
- 이 방식은 기계 독해, 요약, 텍스트 함의 파악 등 다양한 자연어 처리 과제에서 이미 성공적으로 사용된 바 있다.
- End-to-end 메모리 네트워크 역시 시퀀스에 맞춰 정렬된 순환 구조 대신 순환 어텐션 메커니즘을 기반으로 하며, 질의응답 및 언어 모델링 과제에서 좋은 성능을 보여주었다.
- 하지만 트랜스포머는 여기서 판을 바꾼다. 시퀀스에 맞춰 정렬된 RNN이나 CNN을 전혀 사용하지 않고, 오직 '셀프 어텐션'에만 100% 의존하여 입력과 출력의 표현을 계산하는 최초의 모델이다.
Part 03. Model Architecture

[전체적인 큰 그림: 인코더-디코더 (Encoder-Decoder) 구조]
- 잘나가는 대부분의 시퀀스 모델들처럼, 트랜스포머 역시 인코더-디코더 구조를 기본 베이스로 둔다.
- 인코더(Encoder): 입력 시퀀스 (x_1, ..., x_n)을 받아서 연속적인 표현 형태인 z = (z_1, ..., z_n)으로 변환해 주는 역할을 한다.
- 디코더(Decoder): 인코더가 압축해 준 z를 바탕으로 출력 시퀀스 (y_1, ..., y_m)을 한 번에 하나씩 생성해. 이때, 이전에 만들어낸 기호(symbol)들을 다음번 기호를 만들 때 추가 입력으로 사용하는 자기회귀(Auto-regressive) 방식을 사용한다.
[인코더 (Encoder) 파헤치기: 6층 석탑 구조]
- 인코더는 완벽히 똑같이 생긴 레이어를 무려 N=6 개나 겹겹이 쌓아 올린 형태이다. (그림 왼쪽 부분)
- 각 레이어는 다시 2개의 서브 레이어(Sub-layer)로 쪼개진다.
- 멀티 헤드 셀프 어텐션 (Multi-head self-attention mechanism)
- 포지션 와이즈 피드 포워드 네트워크 (Position-wise fully connected feed-forward network)
- 핵심 디테일: 각 서브 레이어를 통과할 때마다 잔차 연결(Residual connection)을 해주고, 그 다음 레이어 정규화(Layer Normalization)를 빡세게 적용한다. 수식으로 깔끔하게 쓰면 LayerNorm(x + Sublayer(x)) 가 된다.
- 잔차 연결을 쉽게 연산하기 위해서, 모델 내부의 모든 서브 레이어와 임베딩 레이어의 출력 차원을 전부 d_model=512 로 싹 통일한다.
[디코더 (Decoder) 파헤치기: 인코더바라기 + 미래 가리기]
- 디코더 역시 인코더처럼 똑같은 레이어를 N=6 개 쌓아서 만든다. (그림 오른쪽 부분)
- 근데 인코더와는 다르게 서브 레이어가 3개이다. 인코더가 가진 2개의 서브 레이어에, '인코더의 최종 출력 결과물'에 어텐션을 수행하는 서브 레이어가 중간에 딱 하나 더 추가되었기 때문이다.
- 디코더도 인코더와 마찬가지로 각 서브 레이어마다 잔차 연결과 레이어 정규화를 적용한다.
- 가장 중요한 차이점 (Masking): 디코더의 첫 번째 셀프 어텐션 서브 레이어는 미래의 정보를 미리 커닝하지 못하도록 Masking 한다. 즉, 위치 i를 예측할 때는 그보다 앞서있는 (이미 알고 있는) 출력값들만 참고할 수 있게 뒤쪽 정보는 -∞로 masking한다.

[Attention Function : Q, K, V]
- 논문에서는 어텐션 함수를 '하나의 쿼리(Query)와 여러 개의 키-값(Key-Value) 쌍들을 결과값(Output)으로 매핑해 주는 과정'이라고 설명한다.
- 여기서 등장하는 쿼리(Q), 키(K), 값(V), 그리고 최종 결과물은 전부 벡터(Vector) 형태를 띠고 있다.
- 이해하기 쉽게 검색 엔진에 비유해 보자. 내가 검색창에 친 검색어가 '쿼리(Q)'라면, 각 문서들의 제목이나 태그가 '키(K)'가 되고, 실제 문서 내용이 '값(V)'이 되는 셈이다.
[결과값 계산]
- 최종 결과값은 결국 각 '값(Value)'들에 가중치를 곱해서 모두 더한 가중합(Weighted sum)으로 계산된다.
- 그럼 이 가중치는 어떻게 구하는 걸까? 바로 내가 던진 '쿼리(Query)'와 그에 대응하는 각각의 '키(Key)'가 얼마나 찰떡같이 연관성이 있는지(Compatibility function)를 계산해서 알아낸다. 내 검색어(Q)와 문서 제목(K)이 잘 맞을수록 그 문서 내용(V)의 비중이 커지는 원리다.
[Figure 2: 두 가지 Attention 구조]
- 첨부된 그림을 보면 이 논문에서 핵심적으로 사용하는 두 가지 attention 구조가 등장한다.
- 왼쪽 (Scaled Dot-Product Attention): Q, K, V를 가지고 행렬 곱(MatMul)과 소프트맥스(SoftMax) 등을 거쳐 실제 어텐션 가중치를 구하는 가장 기본적인 내부 연산 과정을 보여준다.
- 오른쪽 (Multi-Head Attention): 왼쪽에서 만든 어텐션 레이어를 하나만 쓰는 게 아니라, 여러 개를 병렬로 쫙 깔아서 동시에 돌리는(running in parallel) 강력한 구조를 보여준다.
[Scaled Dot-Product Attention]
- 기본 원리: 본 논문의 어텐션은 쿼리(Q)와 키(K)의 차원인 d_k, 그리고 값(V)의 차원인 d_v로 구성된다. 쿼리와 모든 키 간의 내적(Dot-product)을 계산한 후, 이를 √d_k로 나누고(Scaling) Softmax 함수를 적용하여 값(V)에 부여할 가중치를 획득한다.
- 행렬 수식: 실제 연산에서는 효율성을 위해 쿼리, 키, 값들을 각각 행렬 Q, K, V로 묶어 다음과 같이 동시에 계산한다.

- 스케일링(Scaling)을 적용하는 이유: d_k 값이 클 경우, 내적 결괏값의 규모가 과도하게 커지면서 소프트맥스 함수의 Vanishing Gradient 문제가 발생할 수 있다. 이를 방지하고 안정적인 학습을 이끌어내기 위해 1/√d_k 로 스케일링을 수행한다.
[Multi-Head Attention]
- 핵심 개념: 단일 어텐션 함수를 d_model 차원에 적용하는 대신, 쿼리, 키, 값을 각각 d_k, d_k, d_v 차원으로 h번 선형 투영(Linear projections)한다. 투영된 각 버전들에 대해 병렬적으로 어텐션 함수를 수행하여 d_v 차원의 출력값들을 산출한다.
- 병합 및 최종 투영: 도출된 출력값들을 하나로 병합(Concatenation)한 뒤 한 번 더 선형 투영하여 최종 결과값을 얻어낸다.
- 도입 이점: 멀티 헤드 어텐션을 사용하면 모델이 각기 다른 위치의 서로 다른 표현 부분 공간(Representation subspaces)으로부터 오는 정보에 공동으로 집중(Jointly attend)할 수 있게 되어, 단일 어텐션의 한계를 극복한다.
- 효율성: 논문에서는 h=8개의 병렬 어텐션 레이어(헤드)를 사용했으며, 각 헤드의 차원을 d_k = d_v = d_model/h = 64로 축소시켰기 때문에 전체 연산 비용은 전체 차원을 가진 단일 헤드 어텐션과 유사하다.
[Multi-head Attention In Transformer 3가지 적용 방식]
- Encoder-Decoder Attention : 쿼리(Q)는 이전 디코더 레이어에서 오고, 키(K)와 값(V)은 인코더의 출력 결과에서 온다. 이를 통해 디코더의 모든 위치에서 입력 시퀀스 전체를 조망하고 참조할 수 있다.
- Encoder Self-Attention : 쿼리, 키, 값이 모두 동일한 출처(이전 인코더 레이어의 출력)에서 오는 구조다. 인코더의 각 위치는 이전 레이어의 모든 위치를 자유롭게 참조할 수 있다.
- Decoder Self-Attention : 디코더의 각 위치가 자신을 포함해 그 이전 위치까지만 참조할 수 있도록 제한한다. 모델의 자기회귀(Auto-regressive) 특성을 보존하기 위해, 미래의 정보 흐름을 참조하는 잘못된 연결은 소프트맥스 입력값을 -∞(마이너스 무한대)로 설정하여 마스킹(Masking) 처리한다.
[Position-wise Feed-Forward Networks]
- 인코더와 디코더의 각 레이어는 어텐션 서브 레이어 외에도, 각 위치마다 개별적이고 동일하게 적용되는 완전 연결(Fully connected) 피드포워드 네트워크를 포함한다.
- 이 네트워크는 두 번의 선형 변환과 그 사이에 적용되는 ReLU 활성화 함수로 구성된다.

- 입력과 출력의 차원은 d_model = 512로 유지되지만, 내부 은닉층(Inner-layer)은 d_ff = 2048 차원으로 확장하여 더욱 풍부한 특징을 학습한다.
[Embeddings and Softmax]
- 다른 시퀀스 변환 모델들과 마찬가지로, 트랜스포머도 학습된 임베딩(Learned embeddings)을 사용해 입력 토큰과 출력 토큰을 d_model 차원의 벡터로 변환한다.
- 또한 디코더의 출력을 '다음 토큰의 예측 확률'로 변환하기 위해 일반적인 선형 변환(Linear transformation)과 소프트맥스(Softmax) 함수를 사용한다.
- 눈여겨볼 점은, 두 개의 임베딩 레이어와 소프트맥스 이전의 선형 변환에서 동일한 가중치 행렬(Weight matrix)을 공유한다는 것이다. 단, 임베딩 레이어에서는 이 가중치들에 √d_model (루트 d_model)을 곱해주는 디테일이 들어간다.
[Positional Encoding : 순서의 의미를 부여하다]
- 트랜스포머의 가장 큰 특징은 순환이나 합성곱을 전혀 사용하지 않는다는 것이다. 이는 치명적인 약점을 낳는데, 바로 '단어의 순서(Sequence order)'를 인식하지 못한다는 점이다. 모든 단어를 동시에 병렬로 처리하기 때문이다.
- 이를 해결하기 위해 시퀀스 내 토큰들의 상대적, 혹은 절대적 위치 정보를 모델에 주입해야 하는데, 이것이 바로 '위치 인코딩(Positional Encoding)'이다.
- 위치 인코딩은 인코더와 디코더 스택 맨 아래에 있는 입력 임베딩에 더해진다. 임베딩과 완벽히 동일한 d_model 차원을 가지기 때문에 자연스럽게 둘을 합산(Sum)할 수 있다.
- 사인/코사인 함수 활용: 본 논문에서는 다양한 주파수의 사인(Sine) 및 코사인(Cosine) 함수를 사용해 위치 정보를 인코딩했다.
- 짝수 차원(2i): PE(pos, 2i) = sin(pos / 10000^(2i / d_model))
- 홀수 차원(2i+1): PE(pos, 2i+1) = cos(pos / 10000^(2i / d_model)) (여기서 pos는 위치, i는 차원을 의미한다.)
- 왜 이 함수를 썼을까? : 모델이 단어 간의 '상대적인 위치'에 쉽게 집중하도록 돕기 위해서다. 어떤 고정된 거리(offset) k에 대해서도 PE(pos+k)를 PE(pos)의 선형 함수로 표현할 수 있기 때문이다. 또한, 학습할 때 보지 못했던 훨씬 긴 시퀀스가 들어와도 모델이 유연하게 예측(외삽, Extrapolate)할 수 있도록 돕는 장점이 있다.

[트랜스포머는 왜 그렇게 빠르고 강력할까?]
- 순차적 연산(Sequential Operations): RNN은 이전 계산이 끝날 때까지 기다려야 하므로 O(n)의 연산이 필요하지만, 셀프 어텐션은 O(1)로 한 방에 병렬 처리가 가능하다. 이것이 트랜스포머가 훈련 시간을 극단적으로 단축시킨 핵심 비결이다.
- 최대 경로 길이(Maximum Path Length): 네트워크 내에서 두 위치 간의 거리를 의미한다. RNN은 길이가 O(n)이라 멀리 있는 정보를 잃어버리기 쉽지만(장기 의존성 문제), 셀프 어텐션은 이 역시 O(1)의 상수 시간을 가진다. 즉, 아무리 멀리 있는 단어라도 단 한 번의 연결로 직접적인 관계를 파악할 수 있다.
- 연산 복잡도(Complexity per Layer): 문장 길이(n)가 길어지면 셀프 어텐션의 복잡도(O(n^2 * d))가 커진다는 단점이 있다. 하지만 일반적으로 기계 번역과 같은 작업에서는 문장 길이(n)가 표현 차원 수(d)보다 작기 때문에 실제 연산에서는 RNN보다 훨씬 빠르고 효율적이다.
Part 04. Why Self-Attention
본 논문에서는 기존 시퀀스 변환 모델에서 흔히 쓰이던 순환 및 합성곱 레이어를 과감히 배제하고 Self-Attention을 도입했다.
저자들은 그 타당성을 입증하기 위해 다음 세 가지 핵심 기준(Desiderata)을 통해 각 레이어의 성능을 비교 분석한다.
1. 층당 총 연산 복잡도 (Computational Complexity per Layer)
- 비교: 셀프 어텐션 레이어의 연산 복잡도는 O(n^2 * d)이고, 순환(RNN) 레이어는 O(n * d^2)이다.
(n은 시퀀스 길이, d는 표현 차원) - 결론: 최신 기계 번역 모델에서 주로 사용하는 단어 표현(Word-piece 등) 환경에서는 대부분 문장의 길이(n)가 차원의 크기(d)보다 작다. 따라서 일반적인 상황에서는 셀프 어텐션이 RNN보다 연산량이 적고 훨씬 빠르다. (만약 아주 긴 시퀀스를 처리해야 할 경우, 출력 위치를 중심으로 특정 크기(r)의 이웃만 고려하도록 제한하여 복잡도를 줄이는 방식도 제안하고 있다.)
2. 병렬화 가능한 연산량 (Amount of Parallelizable Computation)
- 비교: 연산의 병렬화 가능성은 '최소 순차적 연산(Sequential operations) 횟수'로 측정된다.
- 결론: RNN은 본질적으로 이전 단계(t-1)의 계산이 끝나야 현재 단계(t)의 계산을 할 수 있으므로 O(n) 번의 순차 연산이 필수적이다. 반면, 셀프 어텐션은 모든 위치를 한 번에 상수 시간 내에 연결하므로 O(1)의 순차 연산만 필요하다. 즉, 대규모 병렬 처리에 압도적으로 유리하다.
3. 장기 의존성을 위한 네트워크 경로 길이 (Path Length for Long-Range Dependencies)
- 비교: 문장 내에서 멀리 떨어진 단어들 간의 관계(장기 의존성)를 학습하는 것은 시퀀스 모델링의 핵심 과제다. 이 의존성을 잘 학습하려면 네트워크 내에서 신호가 오가는 '경로의 길이(Path length)'가 짧아야 한다.
- 결론: 앞서 보았듯 RNN은 첫 단어와 끝 단어를 연결하려면 O(n) 만큼의 단계를 거쳐야 한다. 하지만 셀프 어텐션은 아무리 멀리 있는 단어라도 단 한 번에 직접 참조할 수 있기 때문에 **최대 경로 길이가 O(1)**에 불과하다. 덕분에 장기 의존성 문제를 아주 쉽게 극복할 수 있다.
4. 합성곱(CNN) 레이어와의 비교 및 부가적 이점
- CNN의 한계: CNN 레이어 역시 커널 크기(k)가 시퀀스 길이(n)보다 작을 경우, 한 번에 모든 입력과 출력을 연결하지 못한다. 이를 해결하려면 층을 여러 겹 쌓아야 하며(O(n/k) 또는 O(log_k(n))), 기본적으로 RNN보다 k배 더 많은 연산 비용이 든다.
- 해석 가능성(Interpretability): 연산적인 이점 외에도, 셀프 어텐션은 모델이 어떻게 작동하는지 인간이 이해하기 쉬운 '해석 가능성'을 제공한다. 논문의 부록에 포함된 어텐션 분포(Attention distributions) 시각화 자료를 보면, 개별 어텐션 헤드들이 문장 내에서 구문론적, 의미론적 구조와 관련된 명확한 역할을 수행하고 있음을 확인할 수 있다.
Part 05. Why Self-Attention
트랜스포머 모델의 뛰어난 성능은 효율적인 아키텍처뿐만 아니라, 정교하게 설계된 학습 환경과 하이퍼파라미터 세팅을 통해 완성된다.
1. 훈련 데이터 및 배칭 (Training Data and Batching)
- 영어-독일어 (En-De): 약 450만 개의 문장 쌍으로 구성된 WMT 2014 표준 데이터셋을 사용했다. 토큰화에는 약 37,000개의 공유 어휘 사전을 가진 바이트 페어 인코딩(BPE)을 적용했다.
- 영어-프랑스어 (En-Fr): 훨씬 큰 규모인 3,600만 개의 문장으로 구성된 WMT 2014 데이터를 사용했으며, 32,000개의 워드피스(word-piece) 어휘로 분리했다.
- 배칭: 대략적인 시퀀스 길이에 따라 문장 쌍을 묶었으며, 각 훈련 배치에는 약 25,000개의 소스 토큰과 25,000개의 타겟 토큰이 포함되도록 설정했다.
2. 하드웨어 및 스케줄 (Hardware and Schedule)
- 하드웨어: 8개의 NVIDIA P100 GPU가 장착된 머신 한 대를 사용했다.
- 기본(Base) 모델: 각 훈련 스텝당 약 0.4초가 소요되었으며, 총 100,000스텝(약 12시간) 동안 학습시켰다.
- 빅(Big) 모델: 스텝당 1.0초가 소요되었고, 총 300,000스텝(약 3.5일) 동안 학습을 진행했다.
3. 최적화 도구 (Optimizer)
- Adam Optimizer: beta_1 = 0.9, beta_2 = 0.98, epsilon = 10^-9 의 하이퍼파라미터를 적용했다.
- lrate = d_model^-0.5 * min(step_num^-0.5, step_num * warmup_steps^-1.5)
- 학습률(Learning Rate) 스케줄링: 다음의 공식을 사용하여 훈련 과정 동안 학습률을 변화시켰다.
- 이는 초기 4,000스텝 동안은 학습률을 선형적으로 증가시키다가(warmup_steps = 4000), 이후에는 스텝 수의 역제곱근에 비례하여 감소시키는 방식이다.
4. 정규화 (Regularization)
- 잔차 드롭아웃(Residual Dropout): 각 서브 레이어의 출력이 더해지고 정규화되기 전, 그리고 임베딩과 위치 인코딩이 합쳐진 결과물에 드롭아웃을 적용했다. 기본 모델의 드롭아웃 비율(P_drop)은 0.1로 설정했다.
- 레이블 스무딩(Label Smoothing): 0.1 값의 레이블 스무딩을 적용했다. 이는 모델이 예측에 너무 확신을 갖지 않게 하여 퍼플렉서티(Perplexity)에는 손해를 줄 수 있으나, 정확도와 BLEU 점수 향상에는 도움을 준다.
Part 06. Results
1. 기계 번역 성능 (Machine Translation)
- 최고 성능 달성: WMT 2014 영어-독일어 번역에서 빅 모델은 기존의 최고 기록(앙상블 포함)을 2.0 BLEU 이상 뛰어넘는 28.4 점을 기록했다. 영어-프랑스어에서도 41.8 점이라는 단일 모델 최고 점수를 획득했다.
- 훈련 효율성: 트랜스포머는 기존 문헌에 보고된 최고 모델들의 훈련 비용 중 아주 적은 일부(Table 2 참조)만 사용하고도 더 높은 품질을 달성했다.
2. 모델 변형 실험 (Model Variations)
- 어텐션 헤드(h): 헤드가 하나인 것보다는 적절한 개수(h=8)를 유지하는 것이 성능이 좋았으나, 너무 많아지면 오히려 품질이 저하되었다.
- 키 차원(d_k): 어텐션 키의 크기를 줄이는 것은 모델의 품질을 저하시켰다.
- 모델 크기 및 드롭아웃: 당연하게도 모델의 크기가 클수록 성능이 좋았으며(C 파트), 드롭아웃은 과적합 방지에 매우 효과적이었다(D 파트).
- 위치 인코딩: 사인/코사인 함수 방식과 학습된 위치 임베딩(learned positional embeddings) 방식은 거의 동일한 결과를 보였다.
3. 일반화 능력: 영어 구문 분석 (English Constituency Parsing)
- 번역 외 작업에서도 트랜스포머가 잘 일반화되는지 확인하기 위해 구문 분석 실험을 진행했다.
- 결과: 특정 태스크를 위한 별도의 튜닝 없이도 BerkeleyParser 등 기존의 모델들보다 우수한 성능(92.7 F1)을 보여주며, 모델의 강력한 범용성을 입증했다.
Part 07. Conclusion
본 연구에서는 순환(Recurrence) 레이어를 완전히 배제하고 멀티 헤드 셀프 어텐션(Multi-headed self-attention)으로 대체한 최초의 시퀀스 변환 모델, Transformer를 제시했다.
- 강점: 기존의 순환 또는 합성곱 기반 아키텍처보다 훨씬 빠르게 훈련이 가능하며, 번역 품질 면에서 새로운 최고 기록(State-of-the-art)을 달성했다.
- 향후 과제: 텍스트 외에 이미지, 오디오, 비디오와 같은 다른 양상(Modalities)의 입출력 문제에 트랜스포머를 적용할 계획이며, 생성 과정을 덜 순차적으로 만드는 연구도 목표로 하고 있다.
딥러기와 인공지능하드웨어 수업에서 배운 내용을 복습 삼아 공부한 내용을 한번 더 정리하겠다 ~
'[AI Research]' 카테고리의 다른 글
| [AI Research] 04 - LoRA: Low-Rank Adaptation Of Large Language Model (0) | 2026.03.19 |
|---|---|
| [AI Research] 00 – 머신러닝 개요와 핵심 개념 정리 (0) | 2025.09.30 |