개념
어텐션(Attention)은 한 토큰의 의미를 계산할 때, 같은 문장 안의 다른 토큰들 가운데 무엇을 얼마나 참고할지를 가중치로 정하는 메커니즘이다. 예를 들어 "그것"이라는 대명사가 앞에 나온 어떤 명사를 가리키는지 파악하려면, 모델은 그 명사 토큰에 더 큰 가중치를 두어야 한다.
특히 같은 시퀀스 안에서 토큰들끼리 서로를 참고하는 방식을 셀프 어텐션(self-attention)이라 부른다. 각 토큰은 질의(query)·키(key)·값(value) 세 벡터로 표현되고, 질의와 키의 유사도로 가중치를 구한 뒤 값들을 가중합해 문맥이 반영된 새 표현을 만든다. 여러 개의 어텐션을 병렬로 두는 멀티헤드 어텐션(multi-head attention)은 문법·의미 등 서로 다른 관계를 동시에 포착하게 해 준다.
쓰임새
어텐션은 트랜스포머의 심장에 해당하는 연산으로, 오늘날 대규모 언어 모델(LLM)이 긴 문맥을 이해하는 능력의 바탕이 된다. 멀리 떨어진 토큰 사이의 관계도 거리에 상관없이 직접 연결해 계산하므로, 순차적으로 정보를 흘려보내던 이전 구조보다 장거리 의존성을 잘 다룬다.
다만 기본 셀프 어텐션은 토큰 수가 늘어날수록 계산량이 제곱으로 증가해, 컨텍스트 윈도우를 넓히는 데 비용이 든다. 이를 줄이기 위한 다양한 효율적 어텐션 기법이 활발히 연구되고 있다.