초록
커다란 트랜스포머 모델들은 NLP에서 SOTA 결과를 내어왔습니다. 하지만 이 모델들을 학습시키고 배포하는 것은
시퀀스 길이 n에 대해 시간 복잡도와 공간 복잡도가
인 트랜스포머
의 Self-Attention
때문에 긴 시퀀스에 대해서 아주 비용이 많이 듭니다.본 논문은 Self-Attention이
Low-Rank 행렬에 의해 근사
될 수 있음을 보입니다. 더 나아가 Self-Attention의 시간 복잡도와 공간 복잡도
를 로 줄이는 새로운 Self-Attention 방법을 모색합니다.이렇게 찾은 선형 트랜스포머를
Linformer
라고 부르며, 이 모델은 표준 트랜스포머 모델과 비교해 더 적은 메모리와 시간으로 동일한 성능을 낼 수 있습니다.도입
최근 2년간(19,20년) NLP의 SOTA 모델들의 파미티서 수는 급증하여 모델 성능은 올라갔지만 학습시키고 배포하는 것은 굉장히 느립니다.
이렇게 트랜스포머를 느리게 하는 주요 원인은 Self-Attention의 Bottleneck 메커니즘 때문입니다.
각 토큰의 표현은
이전 층에 있는
다른 모든 토큰에 대해 주의(Attending)
함으로써 업데이트 됩니다.이 연산을 하는 이유는
Long-Term 정보를 유지
하기 위함인데, 이 주의(Attending)는 각 층에서 시퀀스 길이 n
에 대해 의 복잡도를 가지게 합니다.따라서 본 논문은 다음과 같은 질문에 대한 답을 찾으려 합니다.
1. 이차(Quadratic) 연산을 피하기 위해 트랜스포머 모델을 최적화 할 수 있을까?
2. 좋은 성능을 내기 위해서 이 연산이 반드시 필요할까?
기존 연구들은 Self-Attention의 효율성을 개선하기 위해 몇가지 기술들을 제안해왔습니다.
한 가지 방법으로, 각 토큰이 전체 시퀀스에 있는 토큰들의
Subset
에만 주의(Attending)함으로써, Attention 층에 Sparsity
을 도입하는 것이 있습니다. 이 방법은 전반적 복잡도를 으로 줄였습니다. 하지만 2% 성능이 떨어지는 대신 오직 20%의 속도 향상만 이루어지는 등의 제한적인 효율 이득
으로 인해 오히려 성능이 더 떨어지게 되었습니다. 또 하나의 방법으로,
Reformer
라는 모델은 Locally-Sensitive Hashing(LSH)
를 사용하여 Self-Attention의 복잡도를 으로 줄였습니다. 하지만 Reformer의 효율 이득은 실제로 시퀀스 길이가 2048보다 클 때만 나타났습니다.위와 관련된 더 구체적인 내용은 후술하겠습니다.
본 연구에서는 Self-Attention의 Bottleneck을 해결하는 새로운 방법을 소개합니다. 이 방법은 Self-Attention에 의해 생성된
Stochastic Matrix
가 Low-Rank 행렬로 근사
될 수 있음을 이론적, 그리고 실험적으로 밝힙니다.이를 통해 Self-Attention의 시간 & 공간 복잡도를 연산으로 줄이는 새로운 메커니즘을 제안합니다. 그것은
Linear Projection
을 통해 기존 Scaled Dot-Product Attention을 분할하여 여러 개의 작은 Attention
으로 만드는 것입니다. 이러한 연산의 조합이 기존 Attention의 Low-Rank Factorization을 만듭니다.배경 지식과 관련 연구
Transformer And Self-Attention
트랜스포머는 Multi-Head Self-Attention(MHA) 개념으로 만들어졌고, 이것으로 모델이 다른
표현 하위 공간
의 다른 위치
에 있는 정보에 공동으로 주의(Attend)할 수 있습니다.MHA는 다음과 같이 정의됩니다.
여기서 는 입력 임베딩 행렬이며, n은 시퀀스 길이, 은 임베딩 차원, 는 헤드 갯수 입니다.
각 헤드는 다음과 같이 정의됩니다.
여기서 는 학습된 행렬이며, 는 투영 하위공간의 은닉 차원입니다. 본 논문의 나머지 부분에서는 를 구분하지 않고 로 표기합니다.
Self-Attention은
문맥 매핑 행렬
를 참조합니다. 트랜스포머는 P를 사용하여 주어진 토큰에 대한 입력 문맥
을 포착합니다.하지만 P를 계산하는 것은 비쌉니다. 2개의
행렬
을 곱하는 연산이 필요한데 이는 시간 복잡도와 공간 복잡도가 이기 때문입니다. 이러한 시퀀스 길이에 대한 Quadratic Dependency는 트랜스포머의 Bottleneck이 됩니다.Related Works
트랜스포머의 효율을 개선하기 위한 많은 연구들이 있었습니다. 특히 Self-Attention의 Bottleneck을 줄이기 위한 연구들이 많았습니다. 트랜스포머에 적용 가능한 모델 효율 기술은 다음과 같습니다.
- Mixed Precision
- Knowledge Distillation
- Sparse Attention
- LSH Attention
- Improving Optimizer Efficiency
Mixed Precision
부동 소수점
의 Half-Precision이나 Mixed Precision 표현은 트랜스포머를 학습시키는데 많이 사용됩니다. 이 기술은 Quantization Aware Training
을 통해 더 개선될 수 있습니다. QAT는 학습 중에 가중치가 양자화
되고, 기울기가 Straight-Through Estimator
에 의해 근사되는 것입니다.임계 값 함수를 사용할 때 함수의 기울기가 0인 경향이 있습니다. STE는 이를 해결하기 위해 Backprop. 동안 Gradient를 그대로 전달하는 추정기 입니다.
다음과 같은 함수가 임계 값 함수입니다.
STE는 아래와 같이 작동합니다.
Knowledge Distillation
Knowledge Distillation은 커다란 Teacher 모델로부터 '지식'을 추출해
가벼운 가중치
의 Student 모델에게 전달하는 것입니다. 그리하여 추론시 이 Student 모델을 사용하는 것이 목표입니다. 하지만 이 방식에는 다음과 같은 단점이 있습니다.1) Teacher 모델의 속도를 높이는 것을 다루지 않음
2) Student 모델의 성능 저하
Sparse Attention
이 방법은 문맥 매핑 행렬 P에
Sparsity를 도입
하는 것으로 Self-Attention의 효율을 개선
하는 것 입니다. 예를 들어, Sparse Transformer
는 오직 행렬 P의 대각성분 주변에서만 를 계산합니다. 반면, Blockwise Self-Attention
은 P를 나누어 여러 개의 블록을 만들고 를 선택된 블록안에서만 계산합니다.이 방법들 또한 성능 저하를 겪으며 속도는 제한적으로 상승됩니다.
BigBird의 Block Sparse Attention 참고
LSH Attention
Locally-Sensitive Hashing(LSH) Attention은 Dot-Product Attention을 계산할 때
Multi-Round Hashing Scheme
을 활용합니다. 이는 토큰을 Hashing하고 같은 Hash Key를 가지는 토큰끼리만 Attention Score를 구하는 방법입니다. 이것은 이론적으로 Self-Attention의 복잡도를 으로 감소시키지만 실제로는 복잡도 항은 이라는 커다란 상수를 가지며, 시퀀스 길이가 극단적으로 길 때 오직 Vanilla Transformer보다 효율적입니다.Improving Optimizer Efficiency
Microbatching
은 하나의 Batch를 작은 Microbatches로 분할하고, 각각에 대해 Forward와 Backward Passes를 수행해 Gradient Accumulation을 하는 것입니다.Gradient Checkpointing
은 레이어들의 하위셋의 활성화만 캐싱함으로써 메모리를 아껴줍니다. 캐싱되지 않은 활성화는 마지막 체크포인트로부터 역전파가 진행될 때 다시 계산됩니다.방법
기본 역전파 방식은 최대 7개 노드를 기억하고 있어야 합니다.
위의 그림처럼 일부 노드를 체크포인트로 지정하여 그 정보를 저장합니다.
체크포인트를 사용하는 방법은 최대 5개 노드의 정보만 기억하면 됩니다.
두 가지 기술 모두 학습 시간과 메모리에 대한 Trade-Off가 있으며, 추론에 대한 속도를 올려주진 않습니다.
Self-Attention Is Low Rank
문맥 매핑 행렬 P를 분석하기 위해 Masked-Language-Modeling 태스크와 Classification 태스크에 대해 RoBERTa-BASE와 RoBERTa-LARGE를 사용합니다.
위 그림의 왼쪽 도표는
Singular Value Decomposition(SVD)
를 다른 층들과 다른 헤드들에 걸쳐 행렬 P에 적용
한 결과를 1만개 문장에 대해 평균낸 Normalized Cumulative Singular Value를 플롯한 것입니다. 이 결과는 각 레이어와 헤드, 태스크에 걸친 선명한(Clear) Long-Tail Spectrum Distribution을 보여줍니다.SVD
SVD는
특이값 분해
로, 임의의 차원의 행렬 A에 대하여 다음과 같이 행렬분해
하는 방법입니다.여기서 4개의 행렬()의 크기와 성질은 다음과 같습니다.
Orthogonal
이라 함은 행렬 X를 Transpose한 후 X에 행렬곱을 했을 때 그 값이 Identity
인 성질입니다.간단한 설명을 위해 A를 2x2 행렬로 한정해서 생각해봅니다.
2차원 실수 벡터 공간에서 하나의 벡터가 주어지면 언제나 그 벡터의 직교벡터는 Gram-Schmidt 알고리즘을 통해 구할 수 있습니다.
그런데 직교하는 두 벡터에 대해 동일한 선형 변환 A를 취한다고 했을 때, 변환 후의 벡터들이 여전히 직교한다고 보장할 수 없습니다.
위 그림에서 보이는 것처럼 와 가 직교하게 되는 경우는 단 한번만이 아닙니다. 또한 와 는 A라는 선형 변환을 통해 변환되었을 때
길이가 조금씩 변합니다
. 이렇게 변하게 되는 값들을 Scaling Factor, 혹은 Singular Value
라고 부르며, 크기가 큰 값부터 등으로 불립니다.선형 변환 관점에서 4개의 행렬()의 관계는 다음과 같습니다.
V에 있는 열벡터를
행렬 A를 통해 선형변환
할 때, 그 크기는 만큼 변하지만, 여전히 직교하는 벡터들을 찾는 것이 특이값 분해입니다.즉, 특이값 분해의 기하학적 의미는 다음과 같습니다.
직교하는 벡터 집합에 대하여, 선형 변환 후에 그 크기는 변하지만 여전히 직교할 수 있게 되는 직교 집합
여기서 V는 Orthogonal Matrix이므로 입니다. 따라서 다음이 성립합니다.
특이값 분해의 활용은 분해된 행렬을 다시
조합
하는 과정에 있습니다.기존의 로 분해되어 있던 행렬 A를
특이값 p개
만을 사용해 A'
이라는 행렬로 부분 복원할 수 있습니다. 특이값의 크기에 따라 행렬 A의 정보량이 결정되기 때문에 값이 큰 몇 개의 특이값들을 가지고도 충분히 유용한 정보를 유지할 수 있습니다.이것이 내포하는 의미는
행렬 P의 정보 대부분
은 첫 몇 개의 가장 큰 Singular Value(Eigenvalue)로부터 복원(Recover)
될 수 있다는 것입니다. 위 그림의 오른쪽 도표를 보면 512개 중 128번째로 큰 Singular Value의 Normalized Cumulative Singular Value 히트맵이 있습니다. 여기서 관측할 수 있는 것은 상위 계층의 스펙트럼 분포가 하위 계층의 스펙트럼 분포보다 더 치우쳐있고, 이것은 상위 계층에서는 더 많은 정보가 가장 큰 Singular Values에 집중되어 있고 P의 Rank는 낮다는 의미입니다. 다음과 같이 위의 스펙트럼 결과를 이론적으로 분석할 수 있습니다.
정리 1. (Self-Attention은 Low Rank입니다.)
모든 , 에 대해,
그리고 행렬 의 모든 열 벡터 에 대해,
과 을 만족하는
저차원 행렬(Low-Rank Matrix) 이 존재합니다.
여기서 P는 문맥 매핑 행렬 P를 의미합니다.
증명
정의에 의해 문맥 매핑 행렬 P는 다음과 같습니다.
여기서 는 대각 행렬입니다. 이 증명의 핵심 아이디어는
The Distributional Johnson-Lindenstrauss 정리(JL)
에 기반합니다. The Approximate Low Rank Matrix
를 로 구성할 수 있습니다. 여기서 은 로부터 Independent And Identically Distribution(i.i.d)으로 뽑은 원소들로 구성된 행렬입니다.JL Lemma를 사용해서, 행렬 의 모든 열 벡터 에 대해, 일 때,
이 됨을 보일 수 있습니다.
구체적 증명
간단한 작업을 위해, 행렬 에서 첨자 i를 생략합니다. 그리고 를 로 생각합니다.
문맥 매핑 행렬 P의 정의에 기반해
라 정의하면, 다음과 같은 식을 얻을 수 있습니다.
여기서 는 다음을 만족하는 대각 행렬입니다.
모든
근사 오차(Approximation Error)
을 고려하면, 다음과 같은 행렬을 정의할 수 있습니다.여기서 은 이고 분포로부터 i.i.d로 샘플링한 행렬입니다.
()
행렬 의 Rank는 명백히 다음의 관계를 유지합니다.
(Rank는 선형 대수의 그 Rank입니다. 즉, 행렬이 나타낼 수 있는 벡터 공간에서 기저의 개수를 의미하며, 이 기저는 서로 독립인 행 또는 열 벡터의 개수에 의해 결정됩니다. 열과 행의 랭크는 서로 같은 값을 가지므로, 행렬의 랭크를 구할 때에는 한쪽의 랭크만 계산하면 됩니다. 즉, 서로 선형 독립인 벡터가 몇 개가 되는지 확인하면 됩니다.)
더 나아가, 일 때, 모든 열 벡터 에 대해 다음과 같은 관계식이 성립합니다.
이 것으로 정리(Theorem)가 결론납니다. 행렬 P의 모든 행 벡터 와 행렬 의 모든 열 벡터 에 JL Lemma를 적용하면 다음의 식을 얻을 수 있습니다.
따라서 다음의 식을 얻을 수 있습니다.
여기서 Step(a)는 The Union Bound(Boole' Inequality)에 기반하며 Step(b)는 JL Lemma의 결과를 활용한 것입니다. 여기에 이라 하면 Theorem이 완성됩니다.
Union Bound는 사건(Event)의 임의의 유한(Finite) 또는 Countable 집합(Set)에 대해, 적어도 하나의 사건이 발생할 확률은 개별 사건의 확률의 합보다 더 클 수 없음을 말합니다.
()
JL Lemma에 대한 구체적 증명은 다음을 참고하시면 됩니다.
문맥 매핑 행렬 P의 Low-Rank 속성을 고려하면, 하나의 쉬운 아이디어는 Singular Value Decomposition(SVD)를 사용하여 행렬 를 하나의 Low-Rank 행렬 로 다음과 같이 근사하는 것입니다.
여기서 는 i번째로 가장 큰 Singular Values에 대응되는 Singular Vectors입니다.
를 오차 을 가지는 Self-Attention의 근사치로 사용할 수 있지만, 시간 복잡도와 공간 복잡도가 가 되고, 이러한 SVD를 모든 Self-Attention 행렬에 적용하게 되면 추가적인 복잡도가 생깁니다.
따라서 저자는 다른 방법의 Low-Rank Approximation을 소개합니다.
Model
저자는 시퀀스 길이에 대한 선형 시간과 메모리 복잡도를 가지는 문맥 매핑 를 계산하는 새로운 Self-Attention 메커니즘을 소개합니다.
핵심 아이디어는 위 그림에서 보이다 싶이
2개의 Linear Projection 행렬
를 키와 밸류를 계산할 때 추가하는 것입니다.먼저 차원의 원본 키 레이어 와 밸류 레이어 를 차원의 사영된 키와 밸류 레이어로 사영(Project)시킵니다.
그 후, Scaled Dot-Product Attention을 사용해 차원의 문맥 매핑 행렬 를 계산합니다.
마지막으로, 위 식과 같이 각 헤드에 대해 를 사용해 문맥 임베딩을 계산합니다. 이 연산은 의 시간 복잡도와 공간 복잡도를 요구합니다.
따라서 만약 사영 차원 k를 을 만족하는 굉장히 작은 값으로 선택한다면, 메모리 소비를 굉장히 크게 줄일 수 있게됩니다.
정리 2. (선형 Self-Attention)
모든 , 그리고 에 대해
만일 이면,
행렬 의 모든 행 백터 에 대해
다음과 같은 행렬 이 존재합니다. 따라서 다음과 같은 식이 성립합니다.
위 정리가 말하는 것은 일 때, 오차 을 가지는 선형 Self-Attention을 사용해 를 근사할 수 있다는 것입니다.
증명
행렬 의 모든 행 벡터 와 행렬 의 열 벡터 에 대해 다음 식이 성립합니다.
여기서 이며, 은 로부터의 i.i.d 원소들로 구성된 행렬입니다. 그리고 는 작은 상수입니다. 위 식을 행렬 A의 모든 행 벡터와 행렬 V의 모든 열 벡터에 적용하면
으로 설정함으로써 자동적으로 행렬 A의 모든 행 벡터 에 대해 다음과 같이 증명됩니다.
이 결과는 행렬 A의 Low-Rank 속성()을 활용하지 않습니다. 그리고 결과로써 생기는(Resultant) k는 시퀀스 길이 n에 종속적입니다.
저자는 인 사실을 활용하여 k를 선택하는 것이 Constant하며 시퀀스 길이 n에 독립적임을 미래에 증명할 것이라고 합니다.
구체적 증명
로 정의하며, 여기서 은 로부터 i.i.d로 샘플링된 원소들로 구성된 행렬입니다. 그리고 는 상수로 입니다.
행렬 의 모든 행 벡터 과 행렬 V의 모든 열 벡터 에 대해 다음이 성립합니다.
삼각 부등식에 의해 다음이 성립합니다.
Step (a)는 코시 부등식(Cauchy Inequality)과 JL Lemma에 따른 값이며,
Step (b)는 Exponential Function이 Compact Region에 대한 립시츠 연속(Lipchitz Continuous)라는 것을 활용한 값입니다.
(립시츠 연속성이란 쉽게 말해 어떠한 함수가 주어진 구간안의 함수의 두 점을 이은 직선의 기울기가 임의의 값 K보다 작으면 립시츠 연속성을 가진다고 생각하시면 됩니다. 이 속성은 Skip Connection의 Loss Landscape를 설명할 때 쓰이는 것처럼, 비용 함수가 립시츠 연속성을 보이면 Gradient Exploding을 막을 수 있습니다. 이 외에도 여러 속성이 있지만 이는 패스하겠습니다.)
여기서 를 충분히 작게, 예를 들어 를 만족하는 정도로 설정합니다.
Step (c)는 JL Lemma에 따른 값입니다.
위 식의 결과를 행렬 A의 모든 행 벡터, 그리고 행렬 V의 모든 열 벡터에 적용하면, 행렬 A의 모든 행 벡터 에 대해 으로 설정함으로써 다음 식이 나옴을 직접적으로 증명할 수 있게 됩니다.
이 결과는 행렬 A의 Low-Rank 속성을 활용하지 않았으며, Resultant k는 시퀀스 길이 n에 종속적입니다. 저자들은 이를 해결하여 추후에 k를 상수로 받으며 시퀀스 길이 n에 독립적이도록 증명할 계획이라 합니다.
라는 사실에 기반해 를 만족하는 행렬 의 Row Submatrix 를 찾을 수 있습니다.
위 식의 결과를 행렬 의 모든 행 벡터와 행렬 V의 모든 열 벡터에 적용하면,
행렬 의 모든 행 벡터 에 대해 다음 식을 얻을 수 있습니다.
여기에 행렬 를 다음과 같이 정의할 수 있습니다.
일 때 행렬 A의 모든 행 벡터 에 대해 다음의 부등식을 얻을 수 있습니다.
Step (a)는 가 행렬 A의 Spectrum Norm인 부등식 을 활용한 결과입니다( 은 가장 큰 Eigenvalue입니다.).
Step (b)는 가 행렬 A의 프로베니우스 놈(Frobenius Norm)인 행렬 놈 부등식 에 기반한 값입니다.
Step (c)는 아래의 식을 활용한 결과입니다.
위 그림의 오른쪽 상단 도표는 트랜스포머와 Linformer의 토큰 길이에 따른 추론 속도를 플롯한 것입니다. 표준 트랜스포머는 시퀀스 길이가 길어짐에 따라 느려지지만(추론 시간이 길어짐) Linformer는 상대적으로 Flat을 유지하며 확실히 긴 시퀀스에서 추론 속도가 빠릅니다.
추가적인 효율성 기술
Parameter Sharing Between Projections
Linear Projection Matrices 의 파라미터들을 레이어들과 헤드들에 걸쳐 공유하는 방법이 있습니다. 구체적으로는 다음과 같이 3단계 공유가 있습니다.
- Headwise Sharing
모든 레이어에 대해 를 만족하는 2개의 사영 행렬 E와 F를 모든 헤드들 i에 걸쳐 공유합니다.
- Key-Value Sharing
Key와 Value의 사영을 공유하는 것에 추가적인 제한을 걸어 Headwise Sharing을 할 수 있습니다. 모든 레이어에 대해, 모든 Key-Value 사영 행렬에 대해 를 만족하는 1개의 사영 행렬 E를 모든 헤드들 i에 걸쳐 생성합니다.
- Layerwise Sharing
모든 헤드들과 Key-Value에 대해 1개의 사영 행렬 E를 모든 레이어에 걸쳐 사용합니다.
예를 들어 12-Layer, 12-Head가 쌓여진 트랜스포머 모델에서, Headwise Sharing, Key-Value Sharing, Layerwise Sharing은 각각 24, 12, 1개의 별개의(Distinct) 선형 사영 행렬을 Introduce합니다.
Nonuniform Projected Dimension
다른 헤드와 레이어에 대해 다른 Projected Dimension k를 정할 수 있습니다.
위 그림의 오른쪽에서 보이다싶이, 다른 헤드와 레이어에 있는 문맥 매핑 행렬은 별개의 스펙트럼 분포를 가집니다. 그리고 상위 레이어에 있는 헤드들은 더 치우친 분포 스펙트럼(Lower Rank)을 보이는 경향이 있습니다.
이것이 내포하는 바는, 상위 계층을 위해 작은 Projected Dimension k를 정할 수 있다는 것입니다.
General Projections
간단한 선형 사영이 대신에 다른 종류의 Low-Dimensional Projection 방법을 선택할 수 있습니다. 예를 들어 Kernel과 Stride가 n/k로 설정된 Mean/Max Pooling 혹은 Convolution을 사용할 수 있습니다. Convolutional Function은 학습이 필요한 파라미터를 포함하고 있습니다.
Experiments
Pretraining Perplexities
RoBERTa와 Linformer의 사전학습 성능을 비교합니다. 모든 모델은 MLM으로 사전학습되며 동일한 환경에서 학습됩니다.
Effect Of Projected Dimension
Projected Dimension k에 대해 다양한 값을 설정해 실험합니다. 위 그림의 (a)와 (b)를 보면, 시퀀스 길이 에 대해 여러 k값을 가지고 표준 트랜스포머(RoBERTa)와 Linformer의 Validation Perplexity Curves를 비교합니다. 이때 모든 레이어와 헤드에서는 같은 k를 사용합니다.
Perplexity
Perplexity는 언어 모델의 Generation 성능을 판단할 수 있는 지표입니다.
단어 으로 구성된 문장의 Perplexity는 다음과 같은 수식으로 나타낼 수 있습니다.
분모의 는 문장에 대한 Generation Probability를 의미하는데, 이를 조건부 확률의 Chain Rule을 활용하여 와 같이 나타낼 수 있습니다.
Perplexity는 문장에 대한 Generation Probability의 역수의 기하 평균을 구하는 식입니다. 이는 Perplexity가 문장 생성 확률의 역수를 단어의 수 N으로 정규화함을 의미합니다.
따라서 문장 발생 확률이 높을수록 해당 문장에 대한 Perplexity 값은 낮아집니다. 반대로 Perplexity 값이 높다는 것은 "발생할 수 있는 문장의 가짓수가 많다" = "혼란스럽다" = "원하는 결과를 얻지 못할 가능성이 크다"로 해석할 수 있습니다.
예상된 바와 같이, Linformer는 Projected Dimension k가 증가함에 따라 성능이 좋아졌습니다.
Effect Of Sharing Projections
위 그림의 (c)를 보면, 일 때 3가지 파라미터 공유 전략(Headwise, Key-Value, Layerwise)에 대한 Validation Perplexity Curves가 있습니다.
1개의 사영 행렬만 사용할 때(Layerwise Sharing), Linformer 모델의 성능은 파라미터를 공유하지 않은 모델과 거의 동일함을 보였습니다.
이것이 의미하는 바는 본 논문의 모델의 추가적인 파라미터 수를 줄여 성능 저하 없이 메모리 소모를 줄일 수 있다는 것입니다.
Effect Of Longer Sequences
위 그림의 (d)를 보면, k를 256으로 고정하고, 시퀀스 길이 에 대해서 Linformer의 Validation Perplexity를 알 수 있습니다.
시퀀스 길이가 증가함에 따라, Projected Dimension이 고정되있음에도 수렴 후의 최종 Perplexities는 거의 동일하게 유지됩니다.
이는 실험적으로 Linformer는 Linear-Time이라는 본 논문의 가정(Assertion)을 지지합니다.
Downstream Results
Linformer를 IMDB, SST-2, QNLI, QQP에 대해 파인 튜닝시킵니다. 또한 RoBERTa, 12-Layer BERT-base, 6-Layer Distilled BERT도 파인 튜닝합니다. 트랜스포머 베이스라인을 포함하여 모든 모델들은 같은 Objective로 사전학습되었고, 같은 말뭉치와 같은 업데이트 수로 학습되었습니다(Linformer는 같은 업데이트 수를 진행할 때 가장 적은 Wall-Clock Time이 소요 되었습니다).
위 테이블을 보면 Linformer(n=512,k=128) 모델은 RoBERTa의 다운스트림 태스크 성능에 비견되며, k=256일 때는 RoBERTa보다 살짝 더 좋은 성능을 내었습니다.
게다가, Linformer의 Layerwise Sharing 전략이 1개의 사영 행렬만을 모델 전체에 공유하지만, 이것이 3가지 공유 전략 중 가장 좋은 성능을 내었습니다.
또한 더 긴 시퀀스 길이로 학습된 Linformer(n=1024,k=256)는 짧은 길이(n=512,k=256)의 사전학습모델과 거의 비슷한 성능을 내었습니다. 이는 실험적으로 Linformer의 성능은 대부분 비율 n/k가 아닌 Projected Dimension k에 의해 결정된다는 것을 알 수 있습니다.
Inference-Time Efficiency Results
표준 트랜스포머 모델과 Linformer(With Layerwise Sharing)의 추론 속도를 비교합니다. 두 모델의 추론 속도와 메모리를 16GB Tesla V100 GPU 카드 1장에서 벤치마크합니다. 시퀀스 길이 n까지 랜덤하게 데이터를 생성하고 Multiple Batches에서 Full Forward Pass를 수행합니다.
배치 크기는 메모리에 들어갈 수 있을만큼의 최대 배치크기로 설정하며, 본 논문의 메모리 절약은 이 숫자에 기반해 계산됩니다.
위 표를 보면, n=512, k=128인 경우에도 Linformer는 1.5배 빠른 추론 속도를 보이며 트랜스포머의 최대 배치 크기보다 1.7배 큰 배치크기를 수용할 수 있습니다. 시퀀스 길이가 증가함에 따라, 추론 속도는 빨라지며 메모리 절약은 더 극적으로 진행됩니다.
결론
트랜스포머 모델들은 Self-Attention의 시퀀스 길이 n에 대한 의 복잡도 때문에 학습과 배포가 매우 느린것으로 악명이 높습니다. 본 논문은 이론적으로, 그리고 실험적으로 Self-Attention 메커니즘에 의해 생성된 확률적 행렬이 Low-Rank임을 보여줍니다.
이러한 관찰을 통해 새롭고 매우 효율적인 Self-Attention 메커니즘을 제안합니다. 이론과 실험 분석의 조합으로 이러한 방법론이 시퀀스 길이 n에 대해 의 복잡도를 가짐을 보여줍니다.
요약하면 본 논문은 Key와 Value의 차원을 낮춰 연산량을 줄여 선형 복잡도를 보여주었습니다. 이러한 결과를 통해 더 많은 토큰들을 학습에 활용할 수 있게 되었고, 이는 Vision 영역에서도 잠재력이 있다고 생각됩니다. 또한 다른 딥러닝 모델의 코어 빌딩 블록 구조에 영향을 주지않으므로 응용성이 높다고 생각됩니다.
Share article