멀티 헤드 어텐션

어텐션 하나로 단어 사이의 관계를 다 볼 수 있을까요?

한계

어텐션 하나에는 비율 한 벌뿐입니다

한 단어가 다른 단어들을 보는 비율은 한 벌입니다. 가까운 단어를 주로 볼지, 먼 단어를 주로 볼지 둘 중 하나만 담을 수 있습니다.

막대는 예시 값입니다.

해법

어텐션을 여러 개 나란히 둡니다

코잘 어텐션 하나를 헤드라고 부릅니다. 같은 입력을 여러 헤드가 각자 처리하는 구조가 멀티 헤드 어텐션입니다.

헤드가 하나뿐이면 싱글 헤드 어텐션입니다. 막대는 예시 값입니다.

서로 달라지는 이유

헤드마다 W가 따로 있습니다

쿼리, 키, 값을 만드는 W 표가 헤드마다 따로 있고, 처음에 서로 다른 무작위 값으로 채웁니다. 그래서 같은 문장을 넣어도 가중치가 다르게 나옵니다.

칸의 밝기는 개념을 보여 주는 예시입니다.

결과 모으기

헤드의 결과를 옆으로 이어 붙입니다

Your의 결과는 헤드 1에서 −0.45, 0.22, 헤드 2에서 0.48, 0.11입니다. 붙이면 숫자 4개짜리 문맥 벡터입니다.

문맥 벡터의 숫자는 음수일 수도 있습니다.

전체 결과

숫자 2개 × 헤드 2개 = 4개

여섯 단어 모두 숫자 4개씩 받습니다. 헤드를 늘리면 결과도 그만큼 길어집니다.

문장 2개를 넣었으므로 결과 크기는 (2, 6, 4)입니다. 문장 2개, 단어 6개, 숫자 4개입니다.

아쉬운 점

헤드를 하나씩 차례로 계산합니다

헤드 하나마다 쿼리, 키, 값을 만드는 곱셈을 3번 합니다. 헤드가 12개면 36번을 차례로 해야 합니다.

12개는 가장 작은 GPT-2의 헤드 수입니다.

다음 편

한 번에 계산하는 방법이 있습니다

7편헤드가 12개면 계산도 12번일까? 5강 목록