모델

어텐션 메커니즘

Attention Mechanism

어텐션은 AI가 문장을 읽을 때 지금 단어와 관련이 깊은 다른 단어에 더 집중하게 하는 방법이다. "나는 사과를 먹었다. 그것은 달았다"에서 '그것'이 '사과'라는 걸 알아내는 것이 어텐션이 하는 일이다. 거의 모든 LLM이 쓰는 Transformer의 핵심이라, 긴 대화를 기억하고 프롬프트를 이해하는 방식이 모두 여기서 나온다.

방식앞 내용을 보는 법한계
RNN (이전 방식)앞에서부터 차례로 요약해 넘긴다멀리 떨어진 내용을 잊기 쉽다
어텐션모든 단어를 한 번에 직접 비교한다입력이 길수록 계산이 크게 늘어난다

단어마다 '누구를 볼지' 점수를 매긴다

각 단어는 "내가 찾는 것(Query)", "내 꼬리표(Key)", "내가 건넬 내용(Value)" 세 가지를 만든다. Query와 Key가 잘 맞을수록 점수가 높고, 점수가 높은 단어의 내용을 더 많이 가져와 문맥을 만든다. 2017년 Transformer 논문에서 제안된 Self-Attention이 이 방식이다.

멀티헤드 어텐션은 이 계산을 여러 개 동시에 돌려 문법 관계, 의미 유사성처럼 서로 다른 관점을 함께 본다. 코드에서 함수 선언과 호출부를 이어 보는 것도 같은 원리다.

입력이 두 배면 계산은 네 배

모든 단어 쌍을 서로 비교하므로 계산량은 입력 길이의 제곱으로 늘어난다. 긴 문서를 통째로 넣으면 응답이 느려지고 비용이 커지는 이유다.

기본 길이1배
길이 2배4배
길이 4배16배

기본 어텐션의 계산량을 기본 길이 대비 상대값으로 나타냈다. 실제 서비스는 여러 최적화로 차이를 줄인다.

프롬프트는 어텐션이 잘 보게 쓴다

어텐션은 입력 전체를 볼 수 있지만, 긴 입력의 중간에 있는 정보를 잘 놓친다는 연구가 있다. 그래서 꼭 지켜야 할 조건은 프롬프트 맨 앞이나 끝에 두고, 관련 없는 자료는 빼는 편이 낫다.

대화가 아주 길어지면 중요한 조건을 다시 적어 주거나, 지금까지 내용을 요약해 새 대화로 옮기면 정확도가 올라간다. API의 프롬프트 캐싱은 앞부분의 계산 결과를 재사용하므로, 고정된 지시문을 맨 앞에 두면 비용도 줄일 수 있다.

FlashAttention은 결과는 같고 더 빠르다

FlashAttention은 계산식은 그대로 두고 GPU 메모리를 읽고 쓰는 순서만 바꿔 속도를 높이고 메모리를 아낀다. 근사치가 아니라 같은 결과를 내므로, 모델을 직접 학습하거나 서빙할 때 켜 두는 것이 보통이다.

방식결과이럴 때 쓴다
기본 어텐션정확짧은 입력, 구현 검증
FlashAttention정확직접 학습·서빙하는 대부분의 경우
윈도우·희소 어텐션근사아주 긴 입력에서 비용을 줄일 때

직접 고르기보다 모든 모델 안에 들어 있다

어텐션은 따로 켜고 끄는 기능이 아니라 오늘날 AI 모델 안에 기본으로 들어 있는 부품이다. 사용자는 주로 프롬프트를 짤 때와 모델을 직접 학습·서빙할 때 이 원리를 의식하게 된다.

어디서어떻게 쓰나
챗봇·LLM API 프롬프트꼭 지킬 조건은 앞이나 끝에, 고정 지시문은 맨 앞에 두어 캐싱까지 활용
모델 직접 학습·서빙FlashAttention을 켜 속도와 메모리를 아끼고, 아주 긴 입력은 윈도우 어텐션을 검토
이미지·음성 모델이미지는 조각으로, 소리는 짧은 구간으로 나눠 같은 방식으로 서로 비교
#Transformer#self-attention#가중치
참고 자료
관련 영상
← AI Wiki에서 더 보기
updated at 2026-10-20