AI 사전작동 원리

셀프 어텐션

셀프 어텐션은 같은 입력 안의 각 위치가 다른 위치들의 정보를 데이터에 따라 가중 합산해 자기 표현을 바꾸는 신경망 연산이다. 질의, 키, 값을 모두 같은 입력에서 만들며, 입력의 각 원소는 질의로 다른 원소의 키와 비교해 점수를 얻고 그 점수로 값을 섞어 출력을 만든다. 2017년 트랜스포머 논문에서 스케일드 점곱 셀프 어텐션과 멀티헤드 어텐션으로 정식화되었고, 트랜스포머의 핵심 구성 요소다.

루카스 · 수정 · AI Wiki 문서 번역·편집

쉽게 말하면, 셀프 어텐션은 입력 안의 각 위치가 같은 입력의 다른 위치들을 얼마나 참고할지 데이터에 따라 정해 정보를 섞는 연산이다. 예를 들어 문장의 한 단어가 문장 속 다른 단어들을 보고 자신의 뜻을 새로 정하는 방식이다. 트랜스포머의 핵심 부품이지만, 그 자체가 트랜스포머 모델 전체는 아니다.

셀프 어텐션
분류신경망 연산(어텐션 계열)
최초 정식화2017년 논문 「Attention Is All You Need」의 스케일드 점곱 셀프 어텐션
입력 표현같은 입력에서 질의(Query), 키(Key), 값(Value)을 만든다
핵심 계산질의와 키의 점수를 정규화해 값을 가중합한다2
관련 개념크로스 어텐션, 멀티헤드 어텐션, 인과 마스크

1. 개요

셀프 어텐션은 각 위치가 같은 입력 시퀀스나 집합 안의 위치들로부터 데이터에 따라 달라지는 가중 혼합을 만드는 신경망 연산이다. 입력 표현마다 질의(query), 키(key), 값(value)을 만든다. 각 질의를 키들과 비교해 점수를 얻고, 점수를 정규화한 뒤 값들의 가중합을 출력으로 삼는다. 가중치가 현재 입력에 따라 달라지므로, 토큰·이미지 패치·음성 프레임·집합 원소의 표현은 함께 처리되는 다른 원소에 따라 바뀔 수 있다.

‘셀프(self)’라는 말은 표현의 출처를 가리킨다. 셀프 어텐션에서는 질의, 키, 값이 모두 같은 집합에서 나온다. 크로스 어텐션에서는 질의는 한 집합에서, 키와 값은 다른 집합에서 나온다. 셀프 어텐션은 더 넓은 어텐션 계열의 한 종류이며 트랜스포머의 한 구성 요소다. 그 자체로 완전한 트랜스포머 층이나 모델은 아니다. 트랜스포머 블록에는 출력 투영, 잔차 경로, 정규화, 피드포워드 변환도 있으며, 인코더-디코더 트랜스포머에는 크로스 어텐션이 추가로 들어간다.2

트랜스포머 이전에도 ‘인트라 어텐션(intra-attention)’, ‘셀프 어텐션(self-attention)’ 등의 이름으로 한 시퀀스 안의 어텐션이 쓰였다. Cheng, Dong, Lapata는 2016년 순환 기계독해 모델에서 단일 시퀀스 안의 어텐션을 사용했고, Lin 등은 2017년 구조화된 셀프 어텐션 문장 임베딩을 발표했다. Vaswani 등은 2017년 트랜스포머 구조의 핵심 토큰 혼합 연산으로 스케일드 점곱 셀프 어텐션과 멀티헤드 어텐션을 정의했다. 이 정식화는 언어, 비전, 음성, 집합, 과학, 의사결정 시퀀스 모델에 널리 쓰이게 되었다. 다만 적용마다 토큰, 마스크, 위치 정보, 주변 구조가 다르다.2,3,4,5,6,7,8,9

2. 정의와 범위

입력에 n개의 원소가 있고 표현 폭이 d_model이라고 하자. 표현들을 쌓은 행렬을 X(크기 n × d_model)라 한다. 표준 셀프 어텐션 헤드는 세 투영을 만든다. Q = XW^Q, K = XW^K, V = XW^V이며, W^Q와 W^K는 d_model × d_k, W^V는 d_model × d_v 크기의 학습 가중치다. Q의 행은 질의, K의 행은 키, V의 행은 값이다. 내적을 하려면 질의와 키의 차원이 같아야 하지만 값의 차원은 달라도 된다. ‘같은 입력’이라는 말이 질의·키·값이 동일하다는 뜻은 아니다. 학습된 투영 행렬은 보통 서로 다르다.2

질의 행 q_i와 키 행 k_j의 정규화 전 호환성 점수, 허용 마스크 또는 가산 편향 M을 거친 계수, 헤드 출력은 다음과 같이 계산된다.

s_ij = q_i k_j^T / sqrt(d_k)
A = softmax(QK^T / sqrt(d_k) + M)
O = AV
점수, 계수, 출력 수식2

일반 셀프 어텐션에서 QK^T와 A는 n × n 모양이고, O는 n × d_v 모양이다. A의 i번째 행은 출력 위치 i에서 값 행들을 섞는 데 쓰는 계수다. 허용된 키에 대해 보통의 소프트맥스를 쓰면 이 계수는 음이 아니고 합이 1이다. 그래도 출력은 입력에 대한 확률적 진술이 아니라 학습된 표현이다. 값 벡터와 뒤의 출력 투영이 학습되기 때문이다.2

셀프 어텐션에 텍스트나 시퀀스가 꼭 필요한 것은 아니다. 입력은 집합, 패치로 펼친 격자, 음향 특징열 등 다른 모음일 수도 있다. 조밀한 셀프 어텐션은 모든 질의가 모든 키와 비교하는 것을 허용한다. 마스크는 허용되는 쌍을 제한할 수 있으므로, 셀프 어텐션은 인과적·국소적·블록 희소·그래프 구조 등으로 제약될 수도 있다. 정의상 핵심은 질의·키·값 표현이 같은 입력 모음에서 나온다는 점이지, 연결이 반드시 조밀해야 한다는 것이 아니다.

2.1. 직관

“The cat sat on the mat because it was tired”라는 문장에서 ‘it’ 위치에서 만든 질의는 ‘cat’, ‘mat’ 등 다른 토큰에서 만든 키에 서로 다른 점수를 줄 수 있다. 그러면 ‘it’의 출력은 이 점수로 각 값 벡터를 섞어 만들어진다. 학습된 모델은 이런 상호작용으로 일치, 지시 관계, 위치, 구두점, 복사 등 여러 패턴을 표현할 수 있다. 이 예시는 데이터 흐름을 설명할 뿐이며, 한 헤드가 대명사 해결을 반드시 학습한다거나 가장 큰 가중치가 모델 예측의 완전한 설명이라는 뜻은 아니다.10,11

질의, 키, 값은 학습 가능한 검색 인터페이스로도 볼 수 있다. 질의는 출력 위치가 찾는 것을, 키는 매칭에 참여하는 것을, 값은 출력에 실을 수 있는 정보를 나타낸다. 하나만 고르는 데이터베이스 조회와 달리 소프트맥스 어텐션은 보통 여러 값을 섞는다. 고정된 최근접 이웃 방식과 달리 투영과 주변 네트워크는 역전파로 함께 학습된다.

2.2. 셀프 어텐션, 크로스 어텐션, 일반 어텐션

세 가지 어텐션 형태 비교
형태질의 출처키·값 출처전형적 목적
셀프 어텐션한 시퀀스 또는 집합같은 시퀀스 또는 집합한 표현 흐름 안에서 정보 섞기
크로스 어텐션한 시퀀스 또는 집합다른 시퀀스 또는 집합표현 흐름 사이에서 정보 옮기기
인코더-디코더 어텐션디코더 상태인코더 출력인코딩된 입력을 바탕으로 대상 생성

이 이름은 점수 함수, 헤드 수, 마스크를 정하지 않는다. 셀프 어텐션과 크로스 어텐션은 모두 점곱, 다중 헤드, 국소 마스크 등 다양한 변형을 쓸 수 있다. 인과 마스크는 셀프 어텐션 질의가 쓸 수 있는 위치를 바꿀 뿐, 이를 크로스 어텐션으로 바꾸지 않는다.2

Bahdanau, Cho, Bengio의 2014년 어텐션 모델은 중요한 선행 연구지만, 디코더 질의가 인코더 주석에 어텐션하는 구조였다. 위 정의로 보면 이는 셀프 어텐션이 아니라 인코더-디코더 어텐션이다. 이 구분은 용어의 역사를 추적하거나 비용을 추정할 때 중요하다. 셀프 어텐션은 보통 질의와 키의 시퀀스 길이가 같지만, 크로스 어텐션은 그렇지 않을 수 있다.12

3. 스케일드 점곱 계산

트랜스포머 논문은 핵심 연산자를 스케일드 점곱 어텐션(scaled dot-product attention)이라 부른다. 배치와 여러 헤드를 쓰면 구현에는 배치 축과 헤드 축이 추가되지만 행렬 연산은 그대로다. 계산은 네 단계로 나눌 수 있다.2

스케일드 점곱 어텐션의 계산 단계
단계연산결과
투영X에서 Q, K, V 만들기학습된 질의·키·값 표현
쌍별 점수QK^T 계산마스크 적용 전 모든 질의-키 쌍의 점수
정규화M을 더하고 스케일한 뒤 행별 소프트맥스 적용어텐션 계수 행렬 A
집계AV 계산질의 위치마다 값의 혼합

점수 행렬은 방향성이 있다. 일반적으로 s_ij는 s_ji와 같지 않은데, 위치 i가 첫 번째 점수에서는 질의로, 두 번째 점수에서는 키로 작용하기 때문이다. 같은 입력 행렬로 둘을 만들 때에도 질의와 키 투영은 다를 수 있다. 정규화된 행렬도 보통 비대칭인데, 행마다 소프트맥스 분모가 따로 있기 때문이다.

3.1. 키 차원의 제곱근으로 나누는 이유

Vaswani 등은 1/√d_k 인수를 분산 계산으로 설명한다. 계산을 위해 질의와 키의 성분들이 서로 독립이고 평균 0, 분산 1이라고 가정하자. 두 벡터의 내적은 d_k개 곱의 합이다.

qk^T = sum_{r=1}^{d_k} q_r k_r
내적 식2

이 가정 아래 합의 분산은 d_k다. √d_k로 나누면 분산이 1 근처인 점수를 얻는다. 나누지 않으면 헤드 차원이 커질 때 점수 크기가 커지는 경향이 있고, 점수 차이가 크면 소프트맥스가 한쪽으로 치우쳐 대부분 항목의 기울기가 작아질 수 있다. 이 논증은 단순화된 가정 아래의 동기일 뿐, 학습된 질의와 키가 계속 독립이고 분산 1이라는 보장은 아니다.

이 스케일 때문에 트랜스포머의 연산자는 스케일 없는 점곱 점수와 구별된다. 가산 어텐션은 점곱 대신 작은 학습 네트워크를 쓴다. Vaswani 등은 자신들의 설정에서 점곱 어텐션이 행렬 곱으로 효율적으로 계산되어 더 빨랐다고 보고했고, 큰 키 차원에서 스케일 없는 점곱이 보인 나쁜 동작은 스케일링으로 보완했다. 다만 이 비교가 모든 과제나 하드웨어에서 어떤 점수 함수가 우월하다는 것을 보여 주지는 않는다.2

3.2. 마스크, 편향, 수치 동작

가산 마스크는 흔히 허용되는 쌍에 0을, 금지된 쌍에 음의 무한대를 준다. 다음과 같이 정의한다.

M_ij = 0 (키 j를 질의 i가 쓸 수 있으면)
M_ij = −∞ (그 밖의 경우)
가산 마스크 정의

소프트맥스 뒤에 금지된 위치의 계수는 0이 된다. 구현에서 큰 음의 유한값을 대신 쓸 수도 있지만, 그 값은 텐서의 수치 형식에서 안전해야 한다. 허용된 키가 하나도 없는 행에는 유효한 소프트맥스 분포가 없으므로 명시적으로 처리해야 한다. 패딩 마스크, 인과 마스크, 구조 마스크는 정규화 전에 합칠 수 있다.

모든 가산 점수 항이 마스크인 것은 아니다. 유한한 상대 위치 편향은 연결을 금지하지 않고 선호만 바꾼다. 이진 마스크와 인과 마스크는 사용 가능 여부를 정한다. 둘 다 간결한 수식에서 항 M을 차지할 수 있지만 의미는 다르며, 이 구분은 학습된 상대 편향, ALiBi, 인과 삼각 행렬, 희소 연결을 비교할 때 유용하다.13,14

안정적인 구현은 행의 최댓값을 뺀 뒤 소프트맥스를 계산한다. 융합 커널은 행을 블록 단위로 처리하며 실행 중인 최댓값과 정규화 항을 유지할 수 있다. 이런 순서 재배열은 같은 수학적 어텐션 결과를 내면서도, 점수나 계수 행렬 전체를 고대역폭 메모리에 만들지 않게 한다.15

4. 방향성과 마스킹

4.1. 마스크 없는 양방향 셀프 어텐션

마스크가 없는 시퀀스 인코더는 각 비패딩 위치가 양쪽의 키를 모두 쓰도록 허용한다. 이를 흔히 양방향 셀프 어텐션이라 부른다. 예를 들어 BERT는 왼쪽과 오른쪽 문맥을 함께 조건으로 삼는 트랜스포머 인코더를 쓰고, 마스크드 언어 모델 목표로 학습한다. ‘양방향’은 허용되는 통신 패턴을 가리키며, 다른 호환 함수를 뜻하지 않는다.16

길이가 다른 예시를 한 배치에 묶으면, 양방향 인코더에서도 패딩 위치는 계속 가려야 한다. 자리표시자 위치는 값을 기여하지 않고 의미 있는 출력도 받지 않아야 한다. 응용에 따라 다른 위치를 제외할 수도 있다.

4.2. 인과 셀프 어텐션

인과 셀프 어텐션은 출력 위치 i가 i 이전과 i 위치의 값만 쓰도록 허용한다. 위치를 0부터 센다면 마스크는 다음과 같다.

M_ij = 0 (j ≤ i)
M_ij = −∞ (j > i)
인과 마스크 정의

허용된 점수 행렬은 하삼각 행렬이다. 교사 강제 학습에서는 모델이 모든 위치를 병렬로 처리하면서도, 마스크가 한 위치가 대상 시퀀스의 뒤쪽 토큰을 읽지 못하게 막는다. 원래 트랜스포머의 디코더도 이 패턴을 써서 한 위치의 예측이 앞선 출력에만 의존하게 했다.2

점진적 생성 중에는 미래의 키가 아직 존재하지 않는다. 디코더는 새 위치의 질의를 계산해 앞선 부분(접두부)의 저장된 키와 값에 어텐션한다. 인과 마스크는 프롬프트 처리, 배치 디코딩, 새로 처리되는 위치가 둘 이상인 모든 계산에서 여전히 관련이 있다.

4.3. 국소 및 구조 마스크

  • 슬라이딩 윈도 마스크는 가까운 위치를 허용하고 먼 위치는 제외한다.
  • 블록 마스크는 선택된 청크 안이나 청크 사이의 통신을 허용한다.
  • 그래프 마스크는 노드가 지정된 이웃에만 어텐션하도록 한다.
  • 전역 토큰 패턴은 선택된 위치에 조밀한 연결을 주고, 나머지 대부분의 위치는 국소적으로 유지한다.

이 패턴들은 참여하는 표현이 모두 같은 입력에서 나올 때 여전히 셀프 어텐션이다. 통신 그래프를 바꾸며, 구현이 마스크된 쌍의 계산을 건너뛰면 연산량을 줄일 수 있다. 다만 모든 점수를 계산한 뒤 조밀한 행렬에 음의 무한대를 쓰는 것만으로는 희소 알고리즘의 점근적 절감이 실현되지 않는다.17,18,19

5. 멀티헤드 셀프 어텐션

멀티헤드 셀프 어텐션은 투영된 어텐션 연산 여러 개를 병렬로 실행한다. r번째 헤드와 전체 출력은 다음과 같다.

head_r = Attention(XW_r^Q, XW_r^K, XW_r^V)
MultiHead(X) = Concat(head_1, ..., head_h) W^O
멀티헤드 수식2

모든 헤드의 값 폭이 d_v라면 W^O는 h·d_v에서 블록의 출력 폭으로 사상한다. 원래 트랜스포머에서는 d_model = 512, h = 8, d_k = d_v = 64였다. 따라서 헤드들의 투영 폭 합이 모델 폭과 같았다.2

여러 헤드를 쓰면 마지막 투영 전에 독립적으로 투영된 점수 행렬과 값 혼합이 여러 개 생긴다. 한 층이 상호작용을 만들 수 있는 표현 부분공간이 여럿이 되는 셈이다. 그러나 각 헤드가 안정적이고 사람이 읽을 수 있는 관계를 학습한다는 보장은 없다. Clark 등은 BERT 어텐션에서 반복되는 위치·구분자·언어 패턴을 찾았지만, 넓게 퍼지거나 이질적으로 행동하는 헤드도 있었다. Michel, Levy, Neubig는 평가한 모델에서 많은 헤드를 테스트 시점에 제거해도 측정된 성능 저하가 제한적이었지만, 일부 층과 과제는 특정 헤드에 민감했다고 보고했다. 이것들은 연구된 모델에 대한 경험적 관찰이며, 모든 다중 헤드 네트워크에 대한 보편 법칙이 아니다.10,20

5.1. 키-값 헤드 공유

표준 멀티헤드 어텐션은 질의 헤드마다 독립적인 키 헤드와 값 헤드를 준다. 디코딩을 고려한 두 변형은 키-값 헤드 수를 줄인다.

헤드 공유 방식 비교
형태질의 헤드 수키-값 헤드 수주요 효과
멀티헤드 어텐션h_qh_q질의 헤드마다 독립적인 키·값 투영
멀티 쿼리 어텐션(Multi-Query Attention)h_q1모든 질의 헤드가 키-값 헤드 하나를 공유21
그룹 쿼리 어텐션(Grouped-Query Attention)h_q1과 h_q 사이키-값 헤드 하나를 질의 헤드 묶음이 공유22

Shazeer는 증분 디코딩 중 불러오는 키-값 데이터 양을 줄이기 위해 멀티 쿼리 어텐션을 제안했다. Ainslie 등은 그 중간 형태로 그룹 쿼리 어텐션을 정의하고, 다중 헤드 체크포인트를 추가 학습으로 변환하는 방법을 평가했다. 헤드 차원이 고정되어 있으면 키-값 캐시 저장량은 키-값 헤드 수에 비례하므로, 공유는 캐시 크기와 메모리 트래픽을 줄일 수 있다. 다만 이 변형들이 조밀한 어텐션의 질의-키 위치 쌍 수 의존성을 없애지는 않는다.21,22

헤드 수만으로 보편적인 속도 향상이나 품질 손실을 주장하기는 어렵다. 실행 시간은 배치 크기, 시퀀스 길이, 커널, 장치, 병렬화, 정밀도, 모델의 나머지 부분에 따라 달라진다. 품질은 학습과 평가 조건에 따라 달라진다. 앞서 본 구조적 정의는 이런 설정 전반에서 유효하다.

6. 순서와 위치 정보

위치에 의존하는 입력이 없는 밀집 셀프 어텐션은 순열 등변(permutation equivariant)이다. 순열 행렬 P가 입력 행을 재배열하면 Q' = PQ, K' = PK, V' = PV가 되고, 점수 행렬은 Q'K'^T = P(QK^T)P^T가 된다. 행별 소프트맥스는 이 순열을 그대로 보존하므로 출력은 Attention(PX) = P·Attention(X)이다.

Q' = PQ, K' = PK, V' = PV
Q'K'^T = P(QK^T)P^T
Attention(PX) = P·Attention(X)
순열에 따른 변화

출력은 재배열된 입력을 따라가지만, 이 연산 자체는 ‘처음’, ‘다음’, 특정 거리에 특별한 의미를 부여하지 않는다. 이 성질은 집합 처리에 유용하다. 순서를 구별해야 하는 마스크 없는 시퀀스 모델에는 부족하다.7

마스크 조건도 중요하다. 인과 마스크처럼 인덱스에 의존하는 마스크는 이미 순서가 있는 통신 구조를 주므로, 이 경우 인과 셀프 어텐션은 고정된 마스크 아래의 임의 재배열에 대해 등변이 아니다. 위치 표현은 절대·상대·기하·응용별 정보를 더 풍부하게 추가한다.

6.1. 주요 위치 기법

셀프 어텐션과 짝지어 쓰인 위치 인코딩 기법은 여러 가지다. 아래 표는 위치 정보가 들어가는 지점과 핵심 구성을 비교한다.

위치 기법 비교
기법위치가 들어가는 곳핵심 구성
정현파 절대 인코딩입력 표현에 더함위치와 채널에 대한 고정된 사인·코사인 함수
학습된 절대 임베딩입력 표현에 더함위치 인덱스로 고르는 학습 가능한 벡터
상대 위치 표현쌍별 점수와 값의 계산에 더하거나 활용두 위치 사이 관계나 거리의 학습된 표현
회전 위치 임베딩(RoPE)질의와 키에 적용위치에 따른 회전으로 내적이 상대 거리에 의존
ALiBi어텐션 점수에 더함질의-키 거리에 기반한 헤드별 선형 페널티

원래 트랜스포머는 위치 인코딩을 인코더와 디코더 스택 앞의 토큰 임베딩에 더했다. 고정 버전은 다음과 같다.2

PE(pos, 2i) = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))
고정 위치 인코딩 식2

저자들은 학습된 위치 임베딩도 시험했으며, 번역 설정에서 비슷한 결과를 보고했다. 학습된 절대 위치 표는 지원하는 위치 개수와 모델 폭으로 모양이 정해진다. 그 크기는 토큰 어휘 임베딩 표와 다르며, 우연히 차원이 같을 때만 같다.2

Shaw, Uszkoreit, Vaswani는 학습된 상대 위치 표현을 셀프 어텐션에 넣었고, 질의와 키 거리의 잘린 표현을 포함했다. 이들은 이 방법을 선형 시퀀스를 넘어설 수 있는 관계 인식 셀프 어텐션의 사례로도 설명했다. RoPE는 질의와 키 좌표의 쌍을 위치에 따른 각도로 회전시킨다. 이 구성에서 한 위치의 질의와 다른 위치의 키의 내적은 상대 거리 정보를 담는다. ALiBi는 입력에 위치 임베딩을 더하는 대신 점수에 고정된 헤드별 선형 거리 페널티를 더한다. 보고된 길이 외삽 결과는 그 논문이 평가한 모델과 학습 설정에 해당한다.13,14,23

어떤 위치 방식도 모든 길이와 과제에서 신뢰할 수 있는 외삽을 보장하지 않는다. 모델은 더 긴 텐서를 받아들이면서도 모든 위치를 효과적으로 쓰지 못할 수 있다. 위치 방식, 학습 분포, 마스크, 최적화, 평가 과제가 모두 길이 일반화에 영향을 준다.14,24

7. 계산 비용

길이 n인 밀집 셀프 어텐션 헤드 하나에서 QK^T를 만드는 데 대략 n²d_k번의 산술 연산이 든다. 계수에 V를 곱하는 데에는 대략 n²d_v가 든다. 단순한 구현은 n × n 점수 또는 계수 행렬을 저장한다. 전체 투영 폭이 고정된 여러 헤드를 쓰면 쌍별 산술은 보통 O(n²·d_model)로 요약된다.

투영 층의 비용은 n에 선형이고 표현 폭에 대해서는 이차로 늘어난다. 어떤 항이 지배적인지는 시퀀스 길이, 폭, 배치 크기, 커널, 하드웨어에 따라 다르다. 셀프 어텐션을 이차(quadratic)라고 부르는 것은 시퀀스 길이에 대한 밀집 쌍별 의존성을 가리키며, 트랜스포머 블록의 모든 연산이 이차라는 뜻은 아니다.2

밀집 점수 행렬 하나의 원소 수는 n²이다. 길이 2,048이면 헤드와 배치 원소당 4,194,304개, 길이 131,072이면 17,179,869,184개다. 이 수치는 단순한 행렬 구체화가 왜 비현실적이 되는지를 보여 준다. 다만 메모리 사용량은 자료형, 학습 중 저장되는 활성값, 헤드 수, 배치 크기, 구현이 행렬을 실제로 만드는지 여부에도 달려 있다.

7.1. 병렬성과 경로 길이

한 층 안에서 셀프 어텐션은 행렬 연산으로 학습 시 모든 위치를 한꺼번에 계산할 수 있다. 순환 네트워크는 보통 시퀀스를 따라 순환 상태를 한 위치씩 진행해야 한다. 원래 트랜스포머 논문은 셀프 어텐션 층당 순차 연산 수가 시퀀스 길이와 무관하게 상수이고, 위치 사이의 최대 경로 길이도 상수라고 요약했다. 밀집 산술의 양은 여전히 이차였다.2

이 비교는 층의 계산 그래프에 관한 것이며, 완전한 네트워크가 한 단계에 실행된다는 뜻이 아니다. 트랜스포머 층은 서로에 대해 여전히 순차적이고, 자기회귀 디코딩은 생성된 토큰 사이에서 순차적으로 진행된다. 짧은 그래프 경로가 있다고 해서 학습된 모델이 먼 정보를 반드시 찾아낸다고 보장되지도 않는다.

8. 자기회귀 디코딩과 키-값 캐시

인과 디코더에서는 새 토큰을 덧붙여도 특정 층의 이전 은닉 상태가 바뀌지 않는다. 매 생성 단계마다 이들의 키와 값 투영을 다시 계산하면 같은 일이 반복된다. KV 캐시는 각 디코더 층에서 이미 만든 키와 값을 저장한다. 다음 토큰은 새 질의, 키, 값을 만들고, 그 질의는 캐시된 접두부와 새 키에 어텐션한다.

고정된 모델과 배치에서 새 토큰 하나의 어텐션 연산량은 캐시된 접두부 길이에 선형으로 늘어난다. 생성된 시퀀스 전체에 걸친 누적 밀집 어텐션 연산량은 생성 길이에 대해 이차로 늘어난다. 캐시 저장량은 유지되는 위치 수, 층 수, 키-값 헤드 수, 헤드 폭에 비례해 선형으로 늘어난다. 캐시는 재계산을 피하지만 점점 커지는 메모리 점유를 낳고, 디코딩 중 이전 키와 값을 읽어야 한다.

멀티 쿼리 어텐션과 그룹 쿼리 어텐션은 저장되는 키-값 헤드 수를 줄이고, 국소 마스크는 질의마다 쓰는 위치 수를 제한할 수 있다. 양자화, 제거(eviction), 페이징, 접두부 공유는 저장과 할당 방식을 바꾸지만 셀프 어텐션 자체의 정의는 아니다.21,22

학습과 디코딩은 하드웨어에 다른 부담을 준다. 전체 시퀀스에 걸친 학습은 큰 행렬 곱과 활성값 저장을 노출한다. 한 토큰 디코딩은 더 작은 행렬 연산을 쓰며 커지는 캐시를 스트리밍하는 경우가 많다. 한 체제를 개선하는 방법이 다른 체제도 같은 정도로 개선한다는 보장은 없다.

9. 효율화 방법

‘효율적 어텐션’이라 불리는 방법들은 계산의 서로 다른 부분에 작용한다. 하나의 복잡도 표기로 묶으면 오해를 낳을 수 있다.

효율화 방법의 계열
계열수학적 연결성이나 연산자를 바꾸는가?주로 줄이는 자원대표 연구
정확한 타일 구현아니오(정확한 밀집 모드)고대역폭 메모리 트래픽과 저장된 중간값FlashAttention15
희소 연결예, 질의-키 쌍을 선택함으로써쌍별 산술과 점수 저장Sparse Transformer, Longformer, BigBird17,18,19
커널 또는 랜덤 특징 방법예, 커널을 대체하거나 소프트맥스 어텐션을 근사함집계의 시퀀스 길이 스케일링Linear Transformer, Performer25,26
키-값 헤드 공유투영 공유를 바꾸며, 밀집 위치 연결은 아님디코딩 캐시 크기와 대역폭MQA, GQA21,22
분산 블록 실행아니오(정확한 경우)장치별 시퀀스 저장과 통신 중첩RingAttention27

9.1. 정확한 타일링 어텐션

플래시 어텐션(FlashAttention)은 스케일드 점곱 어텐션을 위한 정확하며 입출력(IO)을 고려한 알고리즘이다. 계산을 빠른 온칩 메모리에 맞는 타일로 나누고, 블록 사이에서 소프트맥스 정규화를 유지한다. 이 방법은 GPU의 고대역폭 메모리와 온칩 SRAM 사이의 읽기·쓰기를 줄이고, 완전한 어텐션 행렬을 고대역폭 메모리에 저장하지 않는다.

FlashAttention이 밀집 어텐션의 쌍별 산술을 시퀀스 길이에 대해 선형으로 만들지는 않는다. 이점은 메모리 트래픽, 타일링, 융합, 중간 저장 감소에서 나온다. 논문은 근사 블록 희소 확장도 설명하지만, 그 확장을 정확한 밀집 알고리즘과 혼동해서는 안 된다.15

9.2. 희소 어텐션

희소 어텐션은 질의-키 쌍의 선택된 부분집합만 계산한다. Sparse Transformer는 밀집 연결을 스트라이드 패턴과 고정 패턴으로 인수분해해 논문 고유의 준이차 패턴을 만들었다. Longformer는 슬라이딩 국소 윈도와 선택된 전역 위치를 결합했으며, 고정된 윈도와 전역 위치 수에서 어텐션 비용은 시퀀스 길이에 선형이다. BigBird는 국소, 전역, 무작위 연결을 결합했고, 그 특정 희소 구성에 대해 표현력 결과를 증명했다.17,18,19

희소 방법은 완전한 상호작용 그래프를 선택된 그래프로 바꾼다. 점근적 절감은 알고리즘과 커널이 빠진 쌍을 실제로 건너뛸 때만 실현된다. 정확도는 관련 정보가 선택된 패턴과 충분한 층을 통해 전달될 수 있는지에 달려 있다. 한 패턴의 증명이 다른 패턴이나 특정 학습 모델에 자동으로 적용되지는 않는다.

9.3. 선형 및 커널 어텐션

선형 어텐션 방법은 어텐션 커널을 바꾸거나 근사한 뒤 행렬 결합법칙을 쓴다. 일반적인 특징 맵 형태는 다음과 같다.

LinearAttention(Q, K, V) = φ(Q) (φ(K)^T V)
일반 특징 맵 형태

φ(K)^T V를 먼저 계산하면 명시적인 n × n 행렬을 피할 수 있다. Katharopoulos 등은 정규화된 커널 형식을 제시했고, 인과 형식을 순환적으로 갱신할 수 있음을 보였다. 이 연산자는 선택한 특징 표현이 소프트맥스 커널을 재현하지 않는 한 일반 소프트맥스 어텐션과 같지 않다.25

Performer는 FAVOR+라는 양의 직교 랜덤 특징을 써서, 고정된 특징 수에서 공간과 시간이 시퀀스 길이에 선형인 방식으로 소프트맥스 어텐션을 근사한다. 이 근사를 ‘정확한 소프트맥스 어텐션’이라 부르는 것은 부정확하다. 근사 오차, 특징 개수, 수치 동작, 커널 구현, 하드웨어가 실제 절충을 정한다.26

9.4. 분산 정확 어텐션

Ring Attention은 긴 시퀀스를 여러 장치에 나눈다. 각 장치는 질의 블록을 유지하고, 키-값 블록은 링을 따라 순환해 장치가 정확한 블록 단위 어텐션 결과를 누적할 수 있게 한다. ICLR 2024 논문은 이 통신을 로컬 블록 계산과 겹치게 하고, 피드포워드 작업도 분산한다.27

링 실행은 장치별 시퀀스 저장량을 줄이고 전체 집계 시퀀스를 더 길게 만든다. 그러나 밀집 어텐션의 총 쌍별 산술을 희소 방법이나 커널 방법처럼 줄이지는 않는다. 그 동작은 장치 메모리, 상호연결 대역폭, 블록 크기, 통신 중첩에 달려 있다.

10. Transformer 블록에서의 역할

원래 트랜스포머 인코더 층은 멀티헤드 셀프 어텐션 하위 층과 위치별 피드포워드 하위 층을 가지며, 하위 층 주위에 잔차 연결과 층 정규화가 있다. 디코더 층은 마스크 셀프 어텐션 하위 층과 인코더-디코더 어텐션 하위 층을 추가한 뒤 피드포워드 변환을 한다. 이후 구조는 정규화 순서, 활성화 함수, 게이팅, 위치 방식, 헤드 공유 등 다른 세부를 바꾸지만, 이는 셀프 어텐션의 기본 정의와 별개다.2

인코더 셀프 어텐션은 패딩이나 구조적 제한을 제외하면 흔히 마스크가 없다. 디코더 셀프 어텐션은 흔히 인과적이다. 인코더-디코더 어텐션은 크로스 어텐션이다. 따라서 인코더 전용, 디코더 전용, 인코더-디코더 모델은 서로 다른 표현 출처와 마스크를 가지고 같은 스케일드 점곱 연산자를 쓸 수 있다.

셀프 어텐션은 문맥적 혼합을 제공하지만 주변 블록도 필수다. 값과 출력 투영은 무엇을 기록할지 정하고, 잔차 경로는 흐름을 보존·결합하며, 피드포워드 층은 각 위치를 변환하고, 정규화는 최적화에 영향을 주며, 위치 방식은 순서나 기하 정보를 준다. 모델 전체의 능력을 어텐션 행렬에 돌리는 것은 이 구성 요소들을 빠뜨린다.

11. 응용

셀프 어텐션은 모델이 호환되는 특징 너비를 가진 원소로 표현하는 모든 모음에 적용될 수 있다.

11.1. 언어

언어 트랜스포머는 하위 단어, 문자, 기타 언어 단위를 시퀀스 원소로 다룬다. 양방향 인코더는 왼쪽과 오른쪽 문맥을 결합할 수 있고, 인과 디코더는 왼쪽에서 오른쪽으로의 생성을 지원한다. BERT는 첫 번째 패턴의 문서화된 예다. 원래 트랜스포머는 양방향 인코더 셀프 어텐션, 인과 디코더 셀프 어텐션, 둘 사이의 크로스 어텐션을 갖춘 인코더-디코더 예시다. 셀프 어텐션은 생성 이외에도 모델과 목표에 따라 분류, 검색 표현, 태깅, 시퀀스 대 시퀀스 예측 등에 쓰인다.2,16

11.2. 비전

비전 트랜스포머(ViT)는 이미지를 패치로 나누고, 패치를 벡터로 바꾸고, 위치 정보를 더한 뒤 트랜스포머 인코더로 결과 시퀀스를 처리한다. Dosovitskiy 등은 이 설계를 이미지 분류에서 평가했다. 패치 격자 때문에 위치 방식과 패치 수에 대한 이차 의존성이 중요해진다. 이후의 국소적 또는 계층적 비전 설계는 어텐션 패턴을 바꾸지만, 원래 ViT 근거만으로 합성곱에 대한 보편적 우위가 입증되지는 않는다.5

11.3. 음성

wav2vec 2.0은 먼저 원시 오디오를 다층 합성곱 특징 인코더로 처리하고, 사전 학습 중 잠재 시퀀스의 구간을 가리며, 잠재 표현을 트랜스포머 문맥 네트워크에 넣는다. 따라서 셀프 어텐션은 멜 스펙트로그램 패치에 직접 작용하기보다 학습된 잠재 음성 단계에 작용한다. 음성 시스템은 프런트엔드, 마스크, 스트리밍 제약, 위치 방식에서 서로 다르다.6

11.4. 집합과 과학 구조

Set Transformer는 어텐션 모듈로 집합 원소들 사이의 상호작용을 모델링하고 순열 불변 출력을 만든다. 대형 집합 처리 비용을 줄이기 위해 유도점(inducing-point) 어텐션도 제안했다. 이 설정에서는 입력 순서가 없다는 점이 결함이 아니라 유용한 성질이다.7

AlphaFold 2의 Evoformer는 다중 서열 정렬과 잔기 쌍 표현에 대한 어텐션 기반 및 비어텐션 기반 갱신을 결합하며, 구조 모듈은 불변 점 어텐션(invariant point attention)을 쓴다. 이 기하 인식 및 쌍 편향 연산은 더 큰 과학 아키텍처 안의 특수한 활용이므로, 일반적인 텍스트 셀프 어텐션으로 환원해서는 안 된다.8

11.5. 의사결정 시퀀스

Decision Transformer는 오프라인 강화 학습을 보상, 상태, 행동에 대한 조건부 시퀀스 모델링으로 재구성한다. 이 인과 트랜스포머는 앞선 궤적 정보와 원하는 보상을 바탕으로 행동을 예측한다. 이는 인과 셀프 어텐션을 의사결정 궤적에 적용할 수 있다는 근거이지, 모든 강화 학습 문제가 시퀀스 모델링으로 가장 잘 풀린다는 근거는 아니다.9

12. 어텐션 헤드와 해석

어텐션 행렬은 관찰할 수 있지만, 그 계수의 의미는 좁다. 한 헤드, 한 층, 한 입력, 한 번의 순전파에서 값 벡터들을 섞는 데 쓰인 정규화된 가중치일 뿐이다. 값 벡터의 내용, 출력 투영, 잔차 덧셈, 피드포워드 변환, 이후 층은 포함하지 않는다. 높은 계수가 관련 출력 방향에서 거의 기여하지 않는 값에 곱해질 수 있고, 정보는 잔차 경로로도 흐를 수 있다.

Clark 등은 BERT를 분석해 일부 헤드는 단순한 위치 패턴을 따르고, 일부는 구분자 토큰에 강하게 주의하며, 일부는 우연보다 자주 언어 관계와 맞는다는 것을 확인했다. 같은 연구는 모든 헤드에 깔끔한 이름을 붙이는 것이 정당하지 않다는 점도 보여 준다. 패턴은 헤드, 층, 입력, 분석 기준에 따라 다르다.10

12.1. 설명 논쟁

Jain과 Wallace는 자신들이 연구한 NLP 모델에서 학습된 어텐션 가중치를 기울기 기반 중요도 측정과 비교했다. 그 결과 상관이 자주 약했고, 비슷한 예측을 내면서도 크게 다른 어텐션 분포를 만들 수 있었다. 이 결과는 원 어텐션 맵을 충실한 특징 중요도 설명으로 취급하는 관행에 의문을 던진다.11

Wiegreffe와 Pinter는 결론이 ‘설명’의 정의와 모델 전체를 고려하는 검정에 달려 있다고 주장했다. 이들은 진단용 기준선, 랜덤 시드 간 비교, 가중치 고정 검정, 적대적 학습을 더 유익한 평가로 제안했다. 두 논문은 ‘어텐션은 예측을 항상 설명한다’는 주장도, ‘어텐션은 유용한 증거를 줄 수 없다’는 주장도 뒷받침하지 않는다.28

Abnar와 Zuidema는 어텐션과 잔차 혼합이 반복되므로 한 층의 원 가중치는 특히 불완전하다고 지적했다. 이들은 층 사이 정보를 합치는 어텐션 롤아웃과 어텐션 플로를 제안했고, 자신들의 실험에서 원 어텐션보다 제거 실험 및 기울기 측정과의 상관이 높다고 보고했다. 이 기법들은 여전히 사후 진단이며 인과적 책임을 증명하지 않는다.29

12.2. 헤드 특수화와 중복

멀티헤드 어텐션은 헤드가 서로 다른 투영된 상호작용을 학습하도록 허용하지만, 특수화는 정의가 아니라 경험적 결과다. Michel 등은 학습된 번역 모델과 BERT 모델의 헤드를 제거하는 실험을 했다. 많은 헤드가 테스트 시점에 제거되어도 측정된 성능 저하가 제한적이었지만, 일부 층과 과제는 선택된 헤드에 민감했다. 따라서 헤드 수, 보이는 패턴, 인과적 중요도는 서로 다른 질문이다.20

해석 가능성과 관련해 어텐션 시각화는 가설을 만드는 도구로 다루는 것이 적절하다. 더 강한 분석은 어텐션을 제거 실험, 활성화 패칭, 기울기나 기여도 방법, 통제된 반사실, 여러 입력에 걸친 평가와 결합할 수 있다. 적절한 방법은 질문이 라우팅, 연관, 예측 민감도, 인과 기전 중 무엇인지에 따라 달라진다.

13. 한계

13.1. 밀집 이차 스케일링

완전한 셀프 어텐션은 허용된 모든 쌍에 대해 상호작용을 만들므로, 시퀀스 길이에 대해 이차의 산술이 들고 단순한 구현에서는 이차 크기의 중간값이 생긴다. 플래시 어텐션 같은 정확한 타일링은 중간 저장량과 메모리 트래픽을 줄이고, 분산 실행은 작업을 나눌 수 있지만, 둘 다 전체 밀집 쌍의 수를 바꾸지는 않는다. 희소 방법과 커널 방법은 연결성이나 연산자를 바꾸므로 목표 과제에서 따로 평가해야 한다.15,17,18,19,25,26,27

13.2. 연결성이 사용을 보장하지는 않음

밀집 층은 허용된 모든 위치에 서로 직접 계산 경로를 준다. 그러나 이 능력이 학습 후 모든 위치에서 안정적으로 정보를 찾아낸다는 보장은 아니다. Liu 등은 다중 문서 질의응답과 키-값 검색에서 언어 모델을 평가했고, 관련 정보가 긴 문맥의 중간에 있을 때 성능이 자주 떨어졌다고 보고했다. 이 결과는 평가한 모델과 과제에 대한 것이지만, 광고된 문맥 길이와 밀집 연결성이 효과적인 문맥 사용의 충분한 척도가 아님을 보여 준다.24

13.3. 위치와 외삽

마스크 없는 셀프 어텐션은 순서가 중요할 때 위치 의존 정보가 필요하다. 인과 마스크는 방향을 주지만 절대 거리, 상대 거리, 외삽에 관한 모든 문제를 해결하지는 않는다. 위치 방식은 서로 다른 귀납 편향을 부여하며, 학습 범위 안의 좋은 성능이 그 밖의 행동을 증명하지는 않는다.13,14,23

13.4. 최적화와 수치 민감성

점곱 스케일, 마스크 값, 정규화 정밀도, 초기화, 잔차 구조는 최적화에 영향을 준다. 매우 뾰족한 소프트맥스 분포에서는 대부분 항목의 기울기가 작을 수 있다. 낮은 정밀도와 융합 커널은 같은 수학적 연산자를 구현하더라도 누적, 마스킹, 오버플로에 주의해야 한다.2,15

13.5. 형식 결과의 전제

Hahn은 논문이 명시한 가정 아래에서, 선택된 형식 언어에 대해 고정 깊이 셀프 어텐션 모델 클래스의 한계를 증명했다. 소프트 어텐션에 대해서는 매끄러움과 유계성 조건이 포함되며, 결론은 깊이, 헤드 수, 매개변수 크기가 입력 길이에 따라 커질 수 있는지에 따라 구분된다. 이 정리는 표현력과 관련이 있지만, 모든 유한한 실제 언어 과제가 트랜스포머로 풀 수 없다거나 경험적 성공이 증명과 모순된다는 뜻은 아니다.30

13.6. 어텐션은 모델의 한 부분일 뿐

토큰화, 임베딩, 위치 정보, 피드포워드 층, 잔차 연결, 정규화, 목표 함수, 데이터, 디코딩이 모두 모델 행동을 만든다. 어텐션을 다른 구조와 비교하려면 어떤 구성 요소와 학습 조건을 고정할지 명시해야 한다. 특정 논문의 벤치마크 결과를 한 연산자가 보편적으로 우월하다는 주장으로 일반화해서는 안 된다.

14. 역사적 발전

신경 어텐션은 처음부터 셀프 어텐션이었던 것은 아니다. Bahdanau, Cho, Bengio는 2014년 처음 게시되고 ICLR 2015에서 발표된 신경 기계 번역 연구에서 공동 학습되는 소프트 정렬을 제안했다. 디코더 상태가 인코더 주석에 점수를 매기고, 단계마다 다른 문맥 벡터를 만들었다. 질의와 키-값 표현이 인코더-디코더 모델의 서로 다른 부분에서 왔으므로, 이는 나중의 용어로 크로스 어텐션에 해당한다.12

한 시퀀스 안의 어텐션은 순환 구조와 문장 표현 시스템에서 발전했다. Cheng, Dong, Lapata의 2016년 기계 독해기는 메모리 네트워크와 처리 중인 텍스트 안의 어텐션을 써서 토큰 사이의 관계를 유도했다. Lin 등의 ICLR 2017 모델은 제목에 ‘self-attentive’를 명시했고, 양방향 LSTM 은닉 상태의 여러 어텐션 가중 관점을 학습해 행렬 문장 표현을 만들었다. 이 시스템들은 시퀀스 내부 어텐션을 썼지만 트랜스포머 블록은 아니었다.3,4

2017년 트랜스포머 논문은 셀프 어텐션이라는 용어를 쓰고, 같은 연산을 가리키는 인트라 어텐션이라는 이름도 언급했다. 이 논문은 스케일드 점곱 어텐션, 다중 헤드, 마스크, 위치 인코딩, 피드포워드 하위 층, 잔차 연결, 정규화를 결합했고, 순환이나 합성곱 없이 시퀀스를 혼합하는 구조를 제시했다. 논문이 모든 선행 아이디어를 발명한 것은 아니지만, 지금 트랜스포머 셀프 어텐션이라고 흔히 가리키는 정식화를 확립했다.2

셀프 어텐션 발전의 주요 연구
연도연구이 문서와 관련된 기여
2014-2015Bahdanau 어텐션학습된 인코더-디코더 정렬이며, 셀프 어텐션의 선행 형태는 아님12
2016Cheng 기계 독해기순환 구조 안에서 한 입력 시퀀스 내부의 어텐션3
2017구조화된 셀프 어텐션 문장 임베딩순환 상태 위에서 문장 내부의 여러 어텐션 관점4
2017트랜스포머토큰 혼합 연산으로서의 스케일드 점곱 및 멀티헤드 셀프 어텐션2
2018상대 위치 표현셀프 어텐션에 통합된 쌍별 위치 관계13
2019멀티 쿼리 어텐션디코딩을 위한 키-값 헤드 공유21
2020-2021Longformer, BigBird, Linear Transformer, Performer밀집 이차 어텐션의 희소 또는 커널 기반 대안18,19,25,26
2022FlashAttention정확한 IO 인식 타일 구현15
2023그룹 쿼리 어텐션중간 수의 키-값 헤드22
2024RingAttention여러 장치에 분산된 정확한 블록 단위 어텐션27

이 표는 한 줄이 이전 줄을 대체했다는 주장이 아니다. 이 작업들은 표현 출처, 위치 구조, 연결성, 근사, 캐시 대역폭, 메모리 트래픽, 장치 분산 등 서로 다른 문제를 다룬다.

15. 흔한 구분

용어별 가리키는 것과 가리키지 않는 것
용어가리키는 것가리키지 않는 것
어텐션데이터에 따라 달라지는 가중 집계 연산의 계열트랜스포머 어텐션만
셀프 어텐션질의, 키, 값이 같은 입력 모음에서 나오는 것반드시 조밀하거나 인과적이거나 다중 헤드인 것
크로스 어텐션질의가 키·값과 다른 출처에서 나오는 것모든 인코더-디코더 계산의 동의어
인과 마스크미래 위치를 막는 제한다른 질의-키 점수 함수
멀티헤드 어텐션투영된 어텐션 헤드 여러 개와 뒤따르는 출력 투영모든 헤드가 고유하고 해석 가능한 역할을 갖는다는 보장
위치 인코딩순서, 거리, 기하, 기타 관계에 대한 정보정의상 내용만 다루는 셀프 어텐션의 일부
FlashAttention밀집 모드의 정확한 타일 구현선형 어텐션 연산자
KV 캐시앞선 디코더 위치에서 저장된 키와 값학습 시점의 어텐션 정의
트랜스포머어텐션과 다른 하위 층을 포함하는 더 큰 구조셀프 어텐션만

16. 구현과 평가 점검

몇 가지 점검은 흔한 셀프 어텐션 오류를 잡아낸다.

  • 텐서를 곱하기 전에 배치, 헤드, 질의 길이, 키 길이, 특징 축을 확인한다.
  • 인과, 패딩, 구조 제한은 소프트맥스 전에 적용하고, 금지된 계수가 0인지 시험한다.
  • 허용된 키가 하나도 없는 행을 명시적으로 처리한다.
  • 유한한 점수 편향과 하드 마스크를 구분한다.
  • 안정적인 소프트맥스와 적절한 누적 정밀도를 쓴다.
  • 구현이 어텐션 행렬을 실제로 만드는지, 온라인 타일 정규화를 쓰는지 확인한다.
  • 속도를 보고할 때 전체 시퀀스 학습 처리량, 프롬프트 처리, 단일 토큰 디코딩을 분리한다.
  • 시퀀스 길이, 배치 크기, 헤드 차원, 자료형, 하드웨어, 커널, KV 캐시 사용 여부를 보고한다.
  • 희소 또는 근사 방법은 같은 모델 크기, 학습 예산, 평가 설정에서 비교한다.
  • 어텐션 맵은 중간 계수로 취급하고, 해석 주장은 개입이나 다른 진단으로 검증한다.
출처 30개
  1. AI Wiki: Self-attention (2026-07-30 수정본) aiwiki.ai · CC BY 4.0 · 확인 2026-10-17
  2. Attention Is All You Need proceedings.neurips.cc · 확인 2026-10-18
  3. Long Short-Term Memory-Networks for Machine Reading aclanthology.org · 확인 2026-10-18
  4. A Structured Self-Attentive Sentence Embedding openreview.net · 확인 2026-10-18
  5. An Image Is Worth 16x16 Words: Transformers for Image Recognition at Scale openreview.net · 확인 2026-10-18
  6. wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations proceedings.neurips.cc · 확인 2026-10-18
  7. Set Transformer: A Framework for Attention-based Permutation-Invariant Neural Networks proceedings.mlr.press · 확인 2026-10-18
  8. Highly Accurate Protein Structure Prediction with AlphaFold nature.com · 확인 2026-10-18
  9. Decision Transformer: Reinforcement Learning via Sequence Modeling proceedings.neurips.cc · 확인 2026-10-18
  10. What Does BERT Look At? An Analysis of BERT's Attention aclanthology.org · 확인 2026-10-18
  11. Attention Is Not Explanation aclanthology.org · 확인 2026-10-18
  12. Neural Machine Translation by Jointly Learning to Align and Translate arxiv.org · 확인 2026-10-18
  13. Self-Attention with Relative Position Representations aclanthology.org · 확인 2026-10-18
  14. Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation openreview.net · 확인 2026-10-18
  15. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness proceedings.neurips.cc · 확인 2026-10-18
  16. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding aclanthology.org · 확인 2026-10-18
  17. Generating Long Sequences with Sparse Transformers arxiv.org · 확인 2026-10-18
  18. Longformer: The Long-Document Transformer arxiv.org · 확인 2026-10-18
  19. Big Bird: Transformers for Longer Sequences proceedings.neurips.cc · 확인 2026-10-18
  20. Are Sixteen Heads Really Better than One? proceedings.neurips.cc · 확인 2026-10-18
  21. Fast Transformer Decoding: One Write-Head Is All You Need arxiv.org · 확인 2026-10-18
  22. GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints aclanthology.org · 확인 2026-10-18
  23. RoFormer: Enhanced Transformer with Rotary Position Embedding arxiv.org · 확인 2026-10-18
  24. Lost in the Middle: How Language Models Use Long Contexts aclanthology.org · 확인 2026-10-18
  25. Transformers Are RNNs: Fast Autoregressive Transformers with Linear Attention proceedings.mlr.press · 확인 2026-10-18
  26. Rethinking Attention with Performers openreview.net · 확인 2026-10-18
  27. RingAttention with Blockwise Transformers for Near-Infinite Context proceedings.iclr.cc · 확인 2026-10-18
  28. Attention Is Not Not Explanation aclanthology.org · 확인 2026-10-18
  29. Quantifying Attention Flow in Transformers aclanthology.org · 확인 2026-10-18
  30. Theoretical Limitations of Self-Attention in Neural Sequence Models aclanthology.org · 확인 2026-10-18