어텐션 메커니즘
이 페이지는 AI 에이전트 문맥에서 자주 쓰이는 어텐션 메커니즘의 뜻과 쓰임을 고급 난이도 기준으로 정리한 AI 용어사전 항목입니다. 정의와 맥락, 관련 용어 8개 순서로 묶었으니, 아래 설명을 먼저 읽고 연결된 개념과 글까지 이어서 보면 이해가 빨라집니다.
어텐션 메커니즘(Attention Mechanism)은 현재 처리하는 표현과 다른 입력 표현의 관련도를 계산해 필요한 정보를 섞는 연산입니다. 문장 속 먼 관계를 다루는 데 강하지만, 높은 점수를 사람과 같은 이해나 설명으로 해석해서는 안 됩니다.
Q, K, V로 필요한 정보를 모읍니다
어텐션은 쿼리(Query), 키(Key), 밸류(Value)를 사용합니다. 도서관에서 "반납 기한"을 찾는 상황을 떠올리면 쉽습니다. 쿼리는 지금 찾는 조건이고, 키는 안내문마다 붙은 "대출", "분실", "반납" 같은 표지이며, 밸류는 각 안내문의 실제 내용입니다. 모델은 쿼리와 각 키의 관련도를 점수로 계산하고, 그 점수에 맞춰 여러 밸류를 가중 합산합니다. 한 안내문만 꺼내는 검색보다 관련 내용을 비율에 따라 섞는 방식에 가깝습니다.
실제 신경망에서는 같은 토큰 표현을 서로 다른 학습 행렬에 통과시켜 Q, K, V를 만듭니다. Q와 K의 내적을 키 차원의 제곱근으로 나눠 크기를 조정하고, 소프트맥스로 정규화한 뒤 V를 합치는 과정이 기본입니다. PyTorch의 scaled dot product attention 문서는 이 계산과 마스크 적용 순서를 명시합니다. 숫자 하나의 의미보다 중요한 점은 각 토큰이 현재 문맥에 필요한 다른 토큰의 정보를 선택해 새 표현을 만든다는 사실입니다.
멀티헤드 어텐션은 이 계산을 여러 학습 공간에서 병렬로 수행한 뒤 결과를 합칩니다. 한 헤드만 쓸 때보다 여러 종류의 관계를 동시에 담을 여지가 생깁니다. 어떤 헤드가 구문이나 위치 같은 패턴을 보일 수는 있지만, 헤드마다 사람이 붙일 수 있는 고정 역할이 보장되지는 않습니다. 원 논문 Attention Is All You Need는 여러 헤드가 서로 다른 표현 부분공간과 위치에 주목하도록 설계했다고 설명합니다.
자기 어텐션, 교차 어텐션, 마스크
자기 어텐션에서는 Q, K, V가 같은 시퀀스에서 나옵니다. "민지가 컵을 놓고 그것을 닦았다"라는 문장을 처리할 때 "그것"의 표현은 같은 문장에 있는 "컵"과 "민지"를 비교해 문맥 정보를 받습니다. 인코더처럼 양방향 문맥을 쓰는 구조라면 앞뒤 토큰을 모두 볼 수 있습니다. 패딩처럼 읽지 않아야 할 자리에는 마스크를 씌워 어텐션 계산에서 제외합니다.
교차 어텐션에서는 Q와 K·V의 출처가 다릅니다. 번역 디코더의 현재 상태가 Q가 되고 원문 인코더의 출력이 K와 V가 되는 구성이 대표적입니다. 이미지 설명 모델에서는 텍스트 쿼리가 이미지 표현에서 관련 정보를 가져올 수도 있습니다. Hugging Face의 어텐션 마스크 문서는 인코더의 양방향 마스크, 디코더에서 인코더 상태를 읽는 교차 어텐션, 디코더의 인과 마스크를 구분합니다.
인과 마스크(causal mask)는 현재 토큰이 미래 토큰의 정답을 미리 보지 못하게 막습니다. 디코더가 세 번째 토큰을 예측할 때 첫째와 둘째 토큰은 볼 수 있지만 넷째 이후 토큰은 볼 수 없습니다. 훈련 데이터의 완성된 문장이 배치에 포함되어 있어도 이 제한을 적용하므로 다음 토큰 예측 규칙이 유지됩니다. 마스크 방향을 잘못 구현하면 훈련 성능은 좋아 보여도 실제 생성에서는 재현되지 않는 누수가 생길 수 있습니다.
높은 어텐션 점수는 특정 층과 헤드가 그 계산에서 어느 밸류를 많이 섞었는지 보여 줍니다. 모델의 전체 판단 원인이나 사람이 납득할 설명을 그대로 제공하지는 않습니다. 중요도를 검토할 때는 입력 변화 실험, 기울기 기반 분석, 여러 실행의 일관성 같은 다른 증거와 함께 봐야 합니다.
어텐션 지도를 읽을 때는 특히 조심해야 합니다. Attention is not Explanation 연구는 매우 다른 어텐션 분포가 비슷한 예측을 만들 수 있고, 어텐션 가중치가 다른 중요도 척도와 자주 일치하지 않는 사례를 보고했습니다. 이 결과만으로 모든 어텐션 구조의 해석 가능성을 같은 방식으로 판단할 수도 없습니다. 실무에서는 점수를 유용한 진단 신호로 다루되, 모델이 왜 결론을 냈는지 입증하는 단독 근거로 쓰지 않는 편이 안전합니다.
긴 입력에서는 비용과 패턴을 함께 봅니다
밀집 어텐션은 길이가 n인 입력에서 대체로 n×n개의 토큰 쌍 점수를 다룹니다. 입력 길이가 두 배가 되면 점수 행렬의 원소 수는 네 배가 되므로 메모리와 계산 부담이 빠르게 커집니다. 플래시 계열 구현은 같은 밀집 계산을 블록으로 재배치해 메모리 이동과 중간 저장을 줄일 수 있습니다. 계산 결과의 연결 범위를 바꾸는 희소 어텐션과는 목적이 다릅니다.
슬라이딩 윈도, 블록 희소, 선택 토큰의 전역 어텐션은 비교할 쌍 자체를 줄입니다. 주변 문맥이 중요한 긴 로그나 문서에는 지역 창이 잘 맞을 수 있습니다. 문서 앞의 규칙과 끝의 결론처럼 먼 관계가 핵심이면 작은 창만으로 정보가 끊길 위험이 있습니다. Hugging Face의 어텐션 백엔드 설명은 밀집 계산 최적화와 희소·블록 지역·슬라이딩 윈도 패턴을 별도 선택지로 제시합니다. 구현을 고를 때는 입력 길이뿐 아니라 필요한 관계의 거리, 마스크 지원, 하드웨어, 정확도 손실 허용 범위를 함께 확인해야 합니다.
관련 용어
어텐션 메커니즘와 함께 자주 언급되는 개념들입니다. 비슷한 말처럼 보여도 역할과 쓰임은 다를 수 있습니다.
