멀티헤드 어텐션은 트랜스포머 아키텍처의 핵심 구성 요소로, 딥러닝에서 중요한 역할을 한다. 이는 기본 어텐션 메커니즘을 확장하여 여러 개의 어텐션 연산을 병렬로 수행하며, 각 연산은 쿼리, 키, 값에 대해 고유하게 학습된 투영을 사용한다. 이를 통해 모델은 입력 시퀀스 내에서 통사적 의존 관계, 상호참조, 위치 단서 등 다양한 유형의 관계와 패턴을 여러 표현 부분공간에서 포착할 수 있다. 이러한 병렬 어텐션 헤드의 출력은 연결된 후 선형 투영을 거쳐 최종 결과를 생성하며, 모델이 서로 다른 위치의 다양한 표현 부분공간에서 정보를 공동으로 주목할 수 있게 한다.
이 개념은 2017년 논문 "Attention Is All You Need"에서 Google 연구자들인 야코프 우슈코레이트, 루카스 카이저, 니키 파르마르에 의해 소개되었다. 이 논문은 순환 신경망과 합성곱을 배제하고 전적으로 어텐션 메커니즘에 의존하는 트랜스포머를 제안하여, 시퀀스-투-시퀀스 작업에서 훈련 속도와 성능을 크게 개선했다. 이후 멀티헤드 어텐션은 GPT, BERT, T5와 같은 대규모 언어 모델의 기초 요소가 되었으며, 자연어 처리, 컴퓨터 비전, 음성 인식에서 널리 사용된다.
메커니즘
어텐션 메커니즘에서 각 입력 토큰은 벡터, 즉 토큰 임베딩으로 표현된다. 토큰 시퀀스에 대해 모델은 쿼리(Q), 키(K), 값(V)의 세 가지 행렬을 계산한다. 쿼리와 키 사이의 어텐션 점수는 일반적으로 키 차원의 제곱근으로 스케일링된 내적으로 계산된다. 이러한 점수는 소프트맥스 함수를 사용하여 정규화되어 어텐션 가중치를 생성하며, 이 가중치는 값의 가중 합을 계산하는 데 사용된다.
멀티헤드 어텐션은 이 과정을 병렬로 여러 번 실행하며, 각 실행은 원래 쿼리, 키, 값의 서로 다른 학습된 선형 투영을 사용한다. 예를 들어, 8개의 헤드를 사용하면 모델은 시퀀스의 서로 다른 측면에 초점을 맞춘 8개의 개별 어텐션 출력을 계산한다. 출력은 연결된 후 최종 선형 계층을 통과한다. 이 설계는 모델이 서로 다른 표현 부분공간의 정보를 주목할 수 있게 하며, 다양한 언어적 패턴을 포착하는 데 특히 유용하다.
훈련 중에 설정되는 "하드" 가중치와 달리, 어텐션 가중치는 "소프트"하며 순방향 패스 중에 계산되므로 입력에 따라 변화한다. 이를 통해 모델은 입력의 관련 부분에 동적으로 초점을 맞출 수 있으며, 기계 번역의 정렬 예에서 볼 수 있듯이 "I love you"를 프랑스어로 번역할 때 모델은 "je"를 생성할 때 "I"에, "t'"를 생성할 때 "you"에, "aime"를 생성할 때 "love"에 높은 어텐션 가중치를 할당한다.
역사
어텐션 메커니즘은 순환 신경망(RNN)의 약점을 해결하기 위해 개발되었는데, RNN은 문장 끝의 정보를 선호하고 초기 단어의 중요성을 약화시키는 경향이 있다. 초기 어텐션 메커니즘인 Bahdanau 스타일의 가산 어텐션(2014)과 Luong 스타일의 승산 어텐션(2015)은 기계 번역을 위한 인코더-디코더 RNN 아키텍처에 접목되었다. 이를 통해 디코더는 최종 은닉 상태에만 의존하지 않고 모든 인코더 은닉 상태에 직접 접근할 수 있었다.
주요 돌파구는 자기 어텐션(self-attention)에서 나왔으며, 입력 시퀀스의 각 요소가 다른 모든 요소에 주목하여 모델이 전역 의존성을 포착할 수 있게 했다. 이 아이디어는 순환 구조를 어텐션 메커니즘으로 완전히 대체한 트랜스포머의 핵심이었다. 트랜스포머의 병렬화 가능한 아키텍처는 훈련 속도를 크게 향상시켜 BERT, T5, 생성적 사전 훈련 트랜스포머(GPT)와 같은 모델에 채택되었다.
변형
여러 어텐션 변형이 개발되었으며, 대부분 소프트 가중치를 구현한다. 여기에는 다음이 포함된다:
- 패스트 가중치 프로그래머 (1992): "느린" 신경망이 외적을 통해 다른 신경망의 "빠른" 가중치를 출력한다. 이후 "선형화된 자기 어텐션"으로 명명되었다.
- Bahdanau 스타일 어텐션 (가산 어텐션): 피드포워드 네트워크를 사용하여 정렬 점수를 계산한다.
- Luong 스타일 어텐션 (승산 어텐션): 디코더와 인코더 상태 사이의 내적을 사용한다.
- 위치 어텐션 및 분해 위치 어텐션: 위치 정보를 어텐션 계산에 통합한다.
- 합성곱 신경망을 위한 공간 및 채널 어텐션: 공간 차원 또는 특징 채널에서 작동한다.
이러한 변형은 인코더 측 입력을 재결합하여 각 대상 출력에 효과를 재분배하며, 종종 재가중 계수를 위한 내적 기반의 상관 스타일 행렬을 사용한다.
최적화
어텐션 행렬의 크기는 입력 토큰 수의 제곱에 비례하므로, 긴 시퀀스에서는 메모리 집약적일 수 있다. 플래시 어텐션(Flash attention)은 정확도를 희생하지 않으면서 메모리 요구를 줄이고 효율성을 높이는 구현이다. 이는 어텐션 계산을 GPU의 더 빠른 온칩 메모리에 맞는 더 작은 블록으로 분할하여 큰 중간 행렬을 저장할 필요를 줄인다.
Meta가 개발한 FlexAttention은 소프트맥스 전에 어텐션 점수를 수정할 수 있고 최적의 어텐션 알고리즘을 동적으로 선택하는 어텐션 커널로, 사용자 정의 어텐션 패턴에 유연성을 제공한다.
응용
어텐션은 자연어 처리, 컴퓨터 비전, 음성 인식에서 널리 사용된다. NLP에서는 질문 응답 및 요약과 같은 작업에서 맥락 이해를 향상시킨다. 비전에서는 시각적 어텐션이 모델이 관련 이미지 영역에 초점을 맞추도록 도와 객체 탐지 및 이미지 캡셔닝을 개선한다.
컴퓨터 비전에서 비전 트랜스포머(ViT)는 이미지 패치에 멀티헤드 어텐션을 적용한다. 어텐션 점수를 히트 맵으로 시각화하는 어텐션 맵은 ViT 모델의 의사 결정 과정을 검사하는 일반적인 방법이 되었다. 더 깊은 계층은 더 의미론적으로 유의미한 시각화를 보여주는 경향이 있다. 어텐션 롤아웃은 연속적인 어텐션 맵의 내적을 계산하여 모든 계층의 어텐션 점수를 결합하는 재귀 알고리즘이다.
비전 트랜스포머는 일반적으로 자기 지도 방식으로 훈련되므로 어텐션 맵은 일반적으로 클래스에 민감하지 않다. 분류 헤드가 부착되면 클래스 판별 어텐션 맵(CDAM)이 어텐션 맵과 클래스 토큰에 대한 기울기를 결합하여 클래스별 설명을 제공한다.
영향
멀티헤드 어텐션은 생성형 AI와 대규모 언어 모델의 부상에 중요한 역할을 했다. 이는 모델이 긴 시퀀스를 효율적으로 처리하고 복잡한 의존성을 포착할 수 있게 하여, 오픈AI, 앤트로픽, 구글 딥마인드와 같은 조직이 개발한 시스템의 핵심 구성 요소가 되었다. 이 아키텍처는 하드웨어 설계에도 영향을 미쳤으며, 엔비디아와 세레브라스 같은 기업이 어텐션 기반 계산에 최적화된 칩을 개발하고 있다.
어텐션 효율성과 해석 가능성을 개선하기 위한 연구가 계속되고 있다. 희소 어텐션, 선형 어텐션, 커널 기반 방법과 같은 기술은 어텐션의 이차 복잡성을 줄이는 것을 목표로 하며, 해석 가능성 도구는 모델이 학습하는 내용을 이해하는 데 도움을 준다. 멀티헤드 어텐션은 머신러닝과 인공지능에서 여전히 활발한 연구 분야로 남아 있다.