[AI] Self Attention 에 관하여...(작성중)

늘 공부하는 괴짜·2026년 2월 20일

AI : Self attention

목록 보기
1/1

AI 공부한지 거의 1년이 다 되어서야 정리해본다. 그냥 이것저것 해보기에 여념없었던 지난 시간을 생각하며...

1. Attention 은!

단어들끼리 얼마나 관련 있는지 계산하고 그 비율만큼 정보를 섞어서
문맥을 만드는 기술이다.

2. 이게 뭔... 개소리냐면?

사용자의 텍스트 "I like cat" 를 임베딩하면 이런 식으로 벡터데이터로
저장되는데... 예를 들자면 이런 식이다.
I -> [1, 2, 3]
like -> [3, 4, 5]
cat -> [5, 6 ,7]

3. Position Encoding

같은 단어가 출현하더라도 위치에 따른 의미가 달라질 수 있기 때문에
임베딩 후 위치 정보를 넣는다. 이것도 공식이 별도로 있는데 나중에 다뤄볼 생각...
I -> [1, 2, 3] + 1번 위치
like -> [3, 4, 5] + 1번 위치
cat -> [5, 6 ,7] + 1번 위치

4. I, like, cat 의 역할을 분담

각 단어(토큰)의 역할을 비유하자면 이렇게 되는데...

I -> Q : 누구를 참고할까?
I -> K : 나는 이런 특징을 가지고 있어.
I -> V : 나는 이런 정보를 전달할거야.

like -> Q : 누구를 참고할까?
like -> K : 나는 이런 특징을 가지고 있어.
like -> V : 나는 이런 정보를 전달할거야.

cat -> Q : 누구를 참고할까?
cat -> K : 나는 이런 특징을 가지고 있어.
cat -> V : 나는 이런 정보를 전달할거야.

이건 모델이 자동으로 생성해 준다.

5. 서로 얼마나 관련 있는지 계산

예를 들자면 "like" 가 다른 단어들을 얼마나 참고해야 할지 계산한다.
like 의 Q 와 각 단어의 K 를 비교하는데 이건 벡터끼리 곱해서 점수를 계산하는 것이다.

결과 예시는 다음과 같다.
I -> 0.3
like -> 0.1
cat -> 2.0

대충 like 는 cat 과 가장 관련이 있다는 뜻이다.

6. 확률로 변환

I -> 10%
like -> 5%
cat -> 85%

7. 정보 섞기

이제 그 비율만큼 각 단어의 V를 섞어야 한다.
0.1 × V_I +
0.05 × V_like +
0.85 × V_cat

이렇게 하여 문맥이 반영된 like 가 만들어진다.

8. KV Cache 에 관하여

8-1. 첫 토큰 I

Q_I, K_I, V_I 생성
KV cache: [K_I, V_I]

8-2. 두 번째 토큰 like

Q_like 생성
KV cache: [K_I, V_I]를 가져와서 Q_love·K_I 계산
V를 곱해서 attention 결과 생성
K_love, V_love 추가 → KV cache: [K_I, V_I, K_love, V_love]

8-3. 세 번째 토큰 cat

Q_cat 생성
KV cache: [K_I, V_I, K_love, V_love]
Q_cat·K_? 계산 → softmax → V 합산
K_cat, V_cat 추가 → KV cache 업데이트

PagedAttention 도 정리중...

profile
인공지능이라는 옷을 입었습니다. 뭔가 멋지면서도 잘 맞습니다.

0개의 댓글