제01권 · 제10호 CS · AI · Infra 2026년 5월 30일

AI 용어집

용어 사전레퍼런스학습
딥러닝 LLM · 생성AI

Attention어텐션

난이도

쉽게 이해하기

문제는 긴 시퀀스에서 멀리 떨어진 요소들 간의 관계를 잡기 어렵다는 점이었습니다. RNN은 순서대로 처리해야 해서 길어질수록 정보가 희미해지고, CNN은 지역 패턴 중심이라 전역 관계를 바로 보기 어렵습니다. 어텐션은 이 한계를 넘기 위해, 입력 전체를 훑어보며 지금 중요한 부분에 집중하도록 설계되었습니다. 비유로 말하면, 긴 글을 읽을 때 중요한 문장에 형광펜을 칠하고 그 부분만 모아 요지를 파악하는 것과 같습니다. 모델은 현재 필요한 기준(질의)에 따라 각 단어(키)와의 관련성을 점수화하고, 점수가 높은 내용(값)에 더 큰 비중을 주어 정보를 모읍니다. 그래서 문장 처음과 끝처럼 멀리 떨어진 단어들 사이의 연관도 한 번에 반영할 수 있습니다. 구체적으로는 질의(Query)·키(Key)·값(Value)라는 표현을 만들어 유사도를 계산하고 가중합을 구합니다. 트랜스포머에서는 이를 다중 시각으로 병렬 처리하는 multi-head 방식으로 확장해, 평균화로 생길 수 있는 해상도 손실을 보완하면서도 순환 없이 병렬 연산을 가능하게 합니다. 다만 시퀀스 길이에 따라 연산과 메모리가 증가하는 특성이 있어, 매우 긴 입력에서는 비용이 커집니다.

비유와 예시

  • 기계 번역 단어 정렬: 출력 단어를 생성할 때, 입력 문장의 어떤 단어에 주목해야 하는지 어텐션이 가중치로 표시합니다. 멀리 떨어진 단어 간 대응 관계를 반영할 수 있습니다.
  • 문서 요약의 핵심 문장 포착: 긴 문서에서 현재 요약 문장을 만들 때 중요한 문장과 구절에 높은 가중치를 주어 정보를 모읍니다. 전역적으로 문맥을 참조할 수 있습니다.
  • 이미지 캡셔닝의 영역 집중: 그림 설명 문장을 생성할 때, CNN 특징 지도에서 해당 단어에 필요한 공간 위치에 더 큰 주의를 할당합니다. 시각 질문응답 같은 작업에서도 관련 영역을 선택하는 데 활용됩니다.

한눈에 비교

Self-AttentionRNN/LSTMCNN 기반 시퀀스 모델
처리 경로 길이O(1) 전역 참조O(n) 순차 전파O(log_k n) 단계적 확장
병렬성토큰 간 병렬 계산시간축 순차 처리병렬 가능(커널 한계)
연산 복잡도(대략)O(n^2·d)O(n·d^2)O(k·n·d^2)
장점장거리 의존성, 전역 컨텍스트순차 동역학지역 패턴 효율

Self-attention은 전역 문맥을 한 번에 참조해 병렬화가 유리하지만, 시퀀스 길이에 따라 메모리·연산이 급증한다는 trade-off가 있다.

어디서 왜 중요한가

  • 순차 계산 축소와 병렬화: 어텐션만으로 전역 의존성을 학습해, 순환 없이도 병렬 학습이 가능해졌습니다.
  • 장거리 의존성 학습 개선: 입력 내 임의 위치 간 관계를 일정 단계 수로 연결해, 멀리 떨어진 토큰 간 상호작용을 쉽게 모델링합니다.
  • 모델 설계의 표준화: 인코더–디코더 연결에서 self-attention과 cross-attention이 핵심 결합부로 자리 잡았습니다.
  • 멀티헤드로 표현력 보완: 단일 가중합의 해상도 저하를 다중 헤드가 서로 다른 하위공간에서 보완합니다.
  • 자원 비용 인식 확산: self-attention의 시퀀스 길이 제곱 스케일 특성으로, 긴 입력 처리 시 계산·메모리 최적화가 중요한 고려사항이 되었습니다.

자주 하는 오해

  • ❌ 오해: 어텐션은 항상 RNN보다 계산이 가볍다 → ✅ 실제: 병렬성은 높지만 self-attention은 길이에 따라 O(n^2)로 비용이 커질 수 있습니다.
  • ❌ 오해: 어텐션만 쓰면 위치 정보가 자동으로 보존된다 → ✅ 실제: 별도의 위치 표현이 필요합니다.
  • ❌ 오해: dot-product와 additive 어텐션은 동일하다 → ✅ 실제: 이론 복잡도는 비슷해도 dot-product는 행렬 곱 최적화로 더 빠르고 메모리 효율적인 경우가 많습니다.

대화에서는 이렇게

  • "이번 요약 모델은 self-attention 길이 때문에 배치가 작아져요. 입력 길이 줄이거나 슬라이딩 윈도 검토합시다."
  • "디코더에 cross-attention 추가하면 소스 문장 정렬이 좋아질 텐데, 헤드 수는 8로 시작해 보죠."
  • "scaled dot-product로 가고, 헤드당 d_k는 64 유지하면 GPU 매트멀이 효율적이에요."
  • "라벨 길이가 길어져서 O(n^2) 메모리 터집니다. 길이 버킷팅이랑 축약 전처리를 묶어야 해요."
  • "인퍼런스 latency가 민감하니, 헤드 수는 그대로 두고 sequence truncation 먼저 실험해요."

함께 읽으면 좋은 용어

참고 자료

도움이 되었나요?